*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:light dark;--bg:#f8fafc;--surface:#fff;--surface2:#f1f5f9;--text:#0f172a;--text2:#64748b;--border:#e2e8f0;--hover:#f1f5f9;--shadow:0 1px 3px rgba(0,0,0,.06);--radius:8px;--accent:#3b82f6;--today:#3b82f6}:root.dark{--bg:#0f172a;--surface:#1e293b;--surface2:#334155;--text:#f1f5f9;--text2:#94a3b8;--border:#334155;--hover:#273548;--shadow:0 1px 3px rgba(0,0,0,.3);--radius:8px;--accent:#38bdf8;--today:#38bdf8}html{transition:background .2s}html,html.light,html.dark{background:var(--bg)}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);min-height:100vh;transition:color .2s}.app{max-width:900px;margin:0 auto;padding:16px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}h1{font-size:1.4rem;font-weight:700;white-space:nowrap}.header-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.search-wrap{position:relative;display:flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:0 10px;gap:6px;min-width:0;flex:1;max-width:280px}.search-wrap svg{color:var(--text2);flex-shrink:0}.search-wrap input{border:none;background:none;color:var(--text);font-size:.9rem;padding:8px 0;width:100%;outline:none;min-width:0}.search-wrap input::placeholder{color:var(--text2)}.search-results{position:absolute;top:100%;left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:100;max-height:300px;overflow-y:auto;margin-top:4px}.search-result{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:.85rem}.search-result:hover{background:var(--hover)}.sr-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sr-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-date{color:var(--text2);font-size:.8rem;flex-shrink:0}.theme-toggle,.gh-link,.lang-toggle{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px;cursor:pointer;display:flex;align-items:center;color:var(--text);text-decoration:none;flex-shrink:0;transition:background .15s}.theme-toggle:hover,.gh-link:hover,.lang-toggle:hover{background:var(--hover)}.lang-toggle{font-size:.8rem;font-weight:600;padding:6px 10px}.filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.filter-btn{display:flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--border);border-radius:20px;background:var(--surface);color:var(--text);font-size:.8rem;cursor:pointer;transition:all .15s}.filter-btn:hover{background:var(--hover)}.filter-btn.active{color:#fff}.filter-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.month-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:16px}.month-nav h2{font-size:1.2rem;font-weight:600;min-width:180px;text-align:center}.month-nav button{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:36px;height:36px;font-size:1.3rem;cursor:pointer;color:var(--text);display:flex;align-items:center;justify-content:center;transition:background .15s}.month-nav button:hover{background:var(--hover)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-header{text-align:center;font-size:.75rem;font-weight:600;color:var(--text2);padding:8px 0;text-transform:uppercase;letter-spacing:.5px}.cal-cell{aspect-ratio:1;border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.85rem;cursor:default;transition:opacity .15s,background .12s;position:relative;background:var(--surface);border:1px solid var(--border)}.cal-cell.empty{background:transparent;border-color:transparent}.cal-cell.has-events{cursor:pointer}.cal-cell.dimmed{opacity:.3}.cal-cell:hover{opacity:1}.cal-cell.today{outline:2px solid var(--today);outline-offset:-2px}.cal-cell.today .day-num{font-weight:700;color:var(--today)}.day-num{font-size:.8rem}.event-dots{display:flex;gap:2px;flex-wrap:wrap;justify-content:center}.dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.dot.more{width:auto;height:auto;font-size:.5rem;color:var(--text2);background:none;border:none}.tooltip{position:fixed;z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px 0;min-width:200px;max-width:300px}.tooltip-event{display:flex;align-items:center;gap:8px;padding:6px 14px;font-size:.82rem}.tooltip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tooltip-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tooltip-type{color:var(--text2);font-size:.75rem;flex-shrink:0}.tooltip-time{color:var(--text2);font-size:.75rem;flex-shrink:0;font-variant-numeric:tabular-nums}.tooltip-close{position:absolute;top:4px;right:8px;cursor:pointer;color:var(--text2);font-size:1rem;line-height:1;padding:2px 6px}.tooltip-close:hover{color:var(--text)}@media(max-width:600px){.app{padding:10px}header{flex-direction:column;align-items:stretch}h1{text-align:center;font-size:1.2rem}.header-controls{justify-content:center}.search-wrap{max-width:100%}.cal-cell{aspect-ratio:auto;min-height:44px;font-size:.75rem;padding:6px 0}.cal-header{font-size:.65rem;padding:6px 0}.month-nav h2{font-size:1rem;min-width:auto;flex:1}.month-nav{gap:10px}.filters{justify-content:center}.tooltip{min-width:160px;max-width:240px;font-size:.78rem}}
