:root{--bg:#fdfcff;--surface:#f3f2f8;--text:#1b1b1f;--muted:#5f5e66;--line:#e2e1ec;--line-strong:#c7c5d0;--accent:#3f51b5;--accent-text:#fff;--today:#3f51b5;--now:#d32f2f;--error:#c62828;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}@media (prefers-color-scheme:dark){:root{--bg:#131316;--surface:#1d1d22;--text:#e4e1e6;--muted:#a09fa8;--line:#2c2c33;--line-strong:#46464f;--accent:#b8c3ff;--accent-text:#1b1b1f;--today:#b8c3ff;--now:#ff8a80;--error:#ff8a80;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text)}button{font:inherit;color:inherit;border:1px solid var(--line-strong);cursor:pointer;background:0 0;border-radius:8px;padding:.35rem .8rem}button:hover{background:var(--surface)}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);padding:.6rem 1.2rem}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:.9em}.error{color:var(--error)}.welcome{max-width:32rem;margin:18vh auto 0;padding:0 1rem}.welcome h1{margin-bottom:.25rem;font-size:2.2rem}.app{grid-template-rows:auto 1fr;grid-template-columns:240px 1fr;height:100%;display:grid}.topbar{border-bottom:1px solid var(--line);grid-column:1/-1;align-items:center;gap:.6rem;padding:.6rem 1rem;display:flex}.brand{width:200px;margin:0 1.2rem 0 .2rem;font-size:1.15rem}.nav{gap:.2rem;display:flex}.nav button{border:none;padding:.1rem .6rem;font-size:1.4rem;line-height:1}.range-title{margin:0 .5rem;font-size:1.15rem;font-weight:500}.spacer{flex:1}.segmented{border:1px solid var(--line-strong);border-radius:8px;display:flex;overflow:hidden}.segmented button{border:none;border-radius:0}.segmented button.is-selected{background:var(--accent);color:var(--accent-text)}.badge{background:var(--surface);color:var(--muted);border-radius:999px;padding:.25rem .7rem}.sidebar{border-right:1px solid var(--line);padding:.8rem 1rem;overflow-y:auto}.sidebar h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:.6rem 0 .4rem;font-size:.8rem}.sidebar ul{margin:0 0 1rem;padding:0;list-style:none}.calendar-list label{cursor:pointer;align-items:center;gap:.5rem;padding:.2rem 0;display:flex}.key-list button{text-align:left;border:none;align-items:center;gap:.5rem;width:100%;padding:.25rem .3rem;display:flex}.key-swatch{border-radius:3px;flex:none;width:.8rem;height:.8rem}.view{flex-direction:column;min-width:0;min-height:0;display:flex}.time-grid{flex-direction:column;height:100%;min-height:0;display:flex}.tg-head,.tg-allday{grid-template-columns:64px repeat(var(--days), 1fr);border-bottom:1px solid var(--line);display:grid}.tg-allday{grid-template-columns:64px 1fr}.tg-day-head{color:var(--muted);flex-direction:column;align-items:center;padding:.4rem 0;display:flex}.tg-weekday{text-transform:uppercase;font-size:.8rem}.tg-date{color:var(--text);border-radius:50%;place-items:center;width:2.2rem;height:2.2rem;font-size:1.35rem;display:grid}.tg-day-head.is-today .tg-weekday{color:var(--today)}.tg-day-head.is-today .tg-date{background:var(--today);color:var(--accent-text)}.tg-allday-area{position:relative}.event-chip{text-align:left;white-space:nowrap;text-overflow:ellipsis;border:none;border-radius:6px;padding:.1rem .4rem;font-size:.85rem;overflow:hidden}.event-chip:hover{filter:brightness(1.08);background-blend-mode:normal}.tg-allday-bar{height:21px;position:absolute}.tg-body{flex:1;grid-template-columns:64px 1fr;min-height:0;display:grid;overflow-y:auto}.tg-hours{position:relative}.tg-hour{color:var(--muted);font-size:.75rem;position:absolute;right:.5rem;transform:translateY(-50%)}.tg-columns{background-image:linear-gradient(var(--line) 1px, transparent 1px);background-size:100% var(--hour);position:relative}.tg-column-line{border-left:1px solid var(--line);position:absolute;top:0;bottom:0}.tg-stripe{cursor:pointer;border-left:3px solid;border-radius:6px;position:absolute}.tg-event{white-space:normal;box-shadow:0 0 0 1px var(--bg);flex-direction:column;align-items:flex-start;display:flex;position:absolute}.tg-event.is-short{flex-direction:row;align-items:center}.tg-event-title{text-overflow:ellipsis;width:100%;font-weight:500;overflow:hidden}.tg-event-time{opacity:.9;font-size:.75rem}.tg-now{background:var(--now);pointer-events:none;height:2px;position:absolute}.tg-now:before{content:"";background:var(--now);border-radius:50%;width:10px;height:10px;position:absolute;top:-4px;left:-5px}.month-grid{flex-direction:column;height:100%;display:flex}.mg-weekdays{border-bottom:1px solid var(--line);grid-template-columns:repeat(7,1fr);display:grid}.mg-weekdays span{text-align:center;text-transform:uppercase;color:var(--muted);padding:.4rem 0;font-size:.8rem}.mg-rows{flex:1;grid-template-rows:repeat(6,1fr);min-height:0;display:grid}.mg-row{border-bottom:1px solid var(--line);grid-template-columns:repeat(7,1fr);min-height:0;display:grid;position:relative}.mg-cell{border-right:1px solid var(--line);flex-direction:column;min-height:0;padding:.2rem .25rem;display:flex;overflow:hidden}.mg-cell.is-other-month .mg-date{color:var(--muted)}.mg-date{border:none;border-radius:50%;align-self:center;width:1.8rem;height:1.8rem;padding:0;font-size:.9rem}.mg-date.is-today{background:var(--today);color:var(--accent-text)}.mg-events{flex-direction:column;gap:2px;min-height:0;margin-top:20px;display:flex}.mg-chip{text-align:left;white-space:nowrap;text-overflow:ellipsis;border:none;border-radius:4px;padding:.05rem .3rem;font-size:.8rem;overflow:hidden}.mg-chip:not(.is-allday):before{content:"";background:var(--dot);border-radius:50%;width:.5rem;height:.5rem;margin-right:.3rem;display:inline-block}.mg-time{color:var(--muted);margin-right:.3rem}.mg-more{color:var(--muted);text-align:left;border:none;padding:0 .3rem;font-size:.8rem}.mg-context-band{pointer-events:none;height:18px;position:absolute;top:2.25rem;left:0;right:0}.mg-context-bar{opacity:.55;pointer-events:auto;cursor:pointer;border-radius:2px;height:4px;position:absolute}.mg-context-bar.is-past{opacity:.28}.details{background:var(--bg);min-width:22rem;max-width:32rem;color:var(--text);border:none;border-radius:14px;padding:0;box-shadow:0 12px 40px #00000040}.details::backdrop{background:#00000040}.details-body{padding:1.2rem 1.4rem}.details-title{align-items:center;gap:.6rem;display:flex}.details-title h2{margin:0;font-size:1.3rem}.context-reason{background:var(--surface);border-radius:8px;padding:.5rem .7rem}.details-actions{justify-content:flex-end;align-items:center;gap:1rem;margin-top:1rem;display:flex}.account h3{text-transform:none;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.account{margin-bottom:.8rem}.account.is-expired h3{color:var(--muted)}button.link{color:var(--muted);border:none;padding:0;font-size:.85rem;text-decoration:underline}.add-account{width:100%;margin-top:.4rem}.app.has-panel{grid-template-columns:240px 1fr 400px}.topbar button.is-selected{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.rules-panel{border-left:1px solid var(--line);background:var(--bg);flex-direction:column;grid-area:2/3;min-height:0;display:flex}.rules-panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:.7rem 1rem;display:flex}.rules-panel-head h2{margin:0;font-size:1.05rem}button.icon{border:none;padding:.2rem .5rem}.rules-body{flex:1;min-height:0;padding:.8rem 1rem;overflow-y:auto}button.full{width:100%;margin-bottom:.8rem}.rule-list{margin:0;padding:0;list-style:none}.rule-row{border-bottom:1px solid var(--line);align-items:center;gap:.5rem;display:flex}.rule-row.is-disabled .rule-main{opacity:.55}.rule-main{text-align:left;border:none;border-radius:0;flex-direction:column;flex:1;align-items:flex-start;gap:.15rem;padding:.6rem .2rem;display:flex}.rule-title{align-items:center;gap:.45rem;font-weight:500;display:flex}.rule-sub{color:var(--muted);font-size:.85rem}.warn{color:var(--error);font-weight:500}.field{flex-direction:column;gap:.25rem;margin-bottom:.8rem;display:flex}.field>span{color:var(--muted);font-size:.8rem}.field input:not([type=radio]):not([type=color]),.field select{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line-strong);border-radius:8px;padding:.45rem .6rem}.color-row{align-items:center;gap:1rem;display:flex}.color-row input[type=color]{background:0 0;border:none;width:2.4rem;height:1.8rem;padding:0}.notice{background:var(--surface);border-radius:8px;padding:.5rem .7rem}.editor-actions{align-items:center;gap:.5rem;margin:.5rem 0 1rem;display:flex}button.danger{color:var(--error);border-color:var(--error)}button:disabled{opacity:.5;cursor:default}.matches h3{margin:.4rem 0 .1rem;font-size:.95rem}.match-list{margin:.5rem 0 0;padding:0;list-style:none}.match-list button{text-align:left;border:none;border-radius:6px;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;width:100%;padding:.3rem;display:grid}.match-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.match-when{color:var(--muted);white-space:nowrap;font-size:.8rem}.is-highlighted{outline:2px dashed var(--accent);outline-offset:1px;z-index:2}.details-rule-actions{flex-wrap:wrap;gap:.5rem;margin-top:.8rem;display:flex}
