:root{--text:#374151;--text-h:#111827;--bg:#fff;--border:#e5e7eb;--code-bg:#f3f4f6;--accent:#4f46e5;--accent-bg:#4f46e51a;--accent-border:#4f46e566;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/145% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#d1d5db;--text-h:#f9fafb;--bg:#111827;--border:#374151;--code-bg:#1f2937;--accent:#818cf8;--accent-bg:#818cf826;--accent-border:#818cf866}}#root{box-sizing:border-box;width:100%;max-width:1200px;min-height:100svh;margin:0 auto}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:600}h1{margin:0;font-size:1.75rem}h2{margin:0 0 .5rem;font-size:1.25rem}p{margin:0}.calendar-app{box-sizing:border-box;min-height:100svh;padding:1rem}.calendar-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.calendar-header h1{margin:0;font-size:1.5rem}.calendar-header .nav{align-items:center;gap:.5rem;display:flex}.calendar-header .views{gap:.5rem;display:flex}.calendar-header button,.modal-actions button,.event-form button{cursor:pointer;border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;border-radius:6px;padding:.4rem .8rem}.calendar-header button:hover,.modal-actions button:hover,.event-form button:hover{background:var(--accent-bg);border-color:var(--accent-border)}.calendar-header button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.calendar-grid{background:var(--border);border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.week-view{background:var(--border);border:1px solid var(--border);border-radius:8px;grid-template-columns:60px repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.week-view .time-slot,.week-view .week-day-header,.week-view .week-cell{background:var(--bg);box-sizing:border-box;min-height:48px;padding:.4rem}.week-view .time-slot{color:var(--text);justify-content:flex-end;align-items:flex-start;font-size:.75rem;display:flex}.week-view .week-day-header{text-align:center;min-height:auto;font-weight:500}.week-view .week-cell{cursor:pointer;position:relative}.week-view .week-cell:hover,.week-view .week-cell.today{background:var(--accent-bg)}.week-view .week-event{background:var(--accent);color:#fff;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;margin-bottom:.15rem;padding:.15rem .35rem;font-size:.75rem;overflow:hidden}.day-header{text-align:center;background:var(--bg);border-bottom:1px solid var(--border);padding:.4rem;font-weight:500}.day-cell{background:var(--bg);cursor:pointer;flex-direction:column;gap:.25rem;min-height:100px;padding:.4rem;display:flex}.day-cell:hover{background:var(--accent-bg)}.day-cell.other-month{color:var(--text);background:var(--code-bg)}.day-cell.today{background:var(--accent-bg)}.day-cell.selected{outline:2px solid var(--accent);outline-offset:-2px}.day-number{align-self:flex-start;font-weight:500}.day-events{flex-direction:column;gap:.2rem;display:flex}.event-chip{background:var(--accent);color:#fff;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:.15rem .35rem;font-size:.75rem;overflow:hidden}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--border);width:100%;max-width:480px;max-height:90svh;box-shadow:var(--shadow);text-align:left;border-radius:12px;padding:1.25rem;overflow:auto}.modal h2{margin-top:0}.event-list{flex-direction:column;gap:.5rem;margin:1rem 0;display:flex}.event-item{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:.5rem;padding:.6rem;display:flex}.event-item .info{flex-direction:column;gap:.2rem;display:flex}.event-item .title{color:var(--text-h);font-weight:500}.event-item .meta{color:var(--text);font-size:.85rem}.event-item .actions{gap:.4rem;display:flex}.event-item .actions button{cursor:pointer;border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;border-radius:6px;padding:.25rem .5rem}.event-item .actions button:hover{background:var(--accent-bg)}.event-item .actions button.danger:hover{background:#fee2e2;border-color:#f87171}.event-form{flex-direction:column;gap:.75rem;margin:1rem 0;display:flex}.event-form label{flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}.event-form input,.event-form textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:6px;padding:.5rem}.event-form textarea{resize:vertical;min-height:80px}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.empty-state{color:var(--text);text-align:center;padding:1rem 0}
