@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/raleway-400.woff2) format("woff2")}@font-face{font-family:Raleway;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/raleway-500.woff2) format("woff2")}@font-face{font-family:Raleway;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/raleway-600.woff2) format("woff2")}@font-face{font-family:Raleway;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/raleway-700.woff2) format("woff2")}@font-face{font-family:Raleway;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/raleway-800.woff2) format("woff2")}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/fraunces-500.woff2) format("woff2")}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fraunces-600.woff2) format("woff2")}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/fraunces-700.woff2) format("woff2")}@font-face{font-family:DSEG7 Classic;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/dseg7-classic.woff2) format("woff2")}:root{--bg: #f3f6ef;--surface: #ffffff;--surface-alt: #f0f4ea;--hover: #e9f0e1;--sidebar: #1f2e18;--sidebar-alt: #2a3d22;--sidebar-text: #dce7cf;--sidebar-muted: #93a47f;--border: #e4e9dd;--border-strong: #d2dbc7;--ink: #1c2616;--muted: #5c6650;--faint: #66704e;--green: #3c7a1b;--green-deep: #316414;--green-soft: #e8f1e1;--on-green: #ffffff;--overdue: #bd3524;--overdue-soft: #fbebe8;--due: #8a6208;--due-soft: #faf2dc;--ok: #3c7a1b;--ok-soft: #e8f1e1;--shadow-sm: 0 1px 2px rgba(20, 30, 12, .06);--shadow: 0 1px 2px rgba(20, 30, 12, .05), 0 6px 18px rgba(20, 30, 12, .07);--shadow-lg: 0 14px 40px rgba(20, 30, 12, .18)}[data-theme=dark]{--bg: #10150d;--surface: #181e12;--surface-alt: #272f1e;--hover: #303a24;--sidebar: #0b0f07;--sidebar-alt: #1a2413;--sidebar-text: #d6e3c6;--sidebar-muted: #8f9c79;--border: #2a3320;--border-strong: #3b4a2c;--ink: #e9efdf;--muted: #a6b095;--faint: #8f9a7d;--green: #4f9a24;--green-deep: #3c7a1b;--green-soft: #22311a;--on-green: #ffffff;--overdue: #e8654f;--overdue-soft: #37201b;--due: #d7a23b;--due-soft: #322813;--ok: #5bb02e;--ok-soft: #22311a;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 18px rgba(0, 0, 0, .5);--shadow-lg: 0 14px 40px rgba(0, 0, 0, .6)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100vh}body{background:var(--bg);color:var(--ink);font-family:Raleway,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}button{font-family:inherit;-webkit-tap-highlight-color:transparent;transition:transform .06s ease,background .12s ease,border-color .12s ease}button:active,.pressable:active{transform:scale(.97)}input,select,textarea{font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}input::placeholder{color:var(--faint)}::selection{background:var(--green-soft);color:var(--ink)}.app-shell{display:flex;min-height:100vh;background:var(--bg)}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.app-content{width:100%;max-width:1240px;margin:0 auto;padding:34px 40px 72px}.sidebar{width:236px;flex-shrink:0;background:var(--sidebar);display:flex;flex-direction:column;padding:22px 16px;position:sticky;top:0;height:100vh;gap:18px}.side-brand{display:flex;align-items:center;gap:10px}.side-nav{display:flex;flex-direction:column;gap:4px}.side-foot{margin-top:auto;display:flex;align-items:center;gap:10px}.side-user{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.mobile-topbar,.mobile-nav{display:none}.mnav-tab{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 4px;border:none;border-radius:11px;background:transparent;cursor:pointer;color:var(--sidebar-muted);font-weight:600;font-size:11px;letter-spacing:.01em}.mnav-tab span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mnav-tab[data-on=true]{color:#fff}.mnav-tab[data-open=true]{color:#fff;background:#ffffff1f}.mnav-slot{flex:1;min-width:0;display:flex;position:relative}.mnav-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.mnav-menu{position:absolute;bottom:calc(100% + 8px);right:0;min-width:180px;z-index:101;display:flex;flex-direction:column;gap:2px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);animation:view-in .16s ease both}.mnav-item{display:flex;align-items:center;gap:11px;width:100%;padding:11px 12px;border:none;border-radius:9px;background:transparent;cursor:pointer;text-align:left;color:var(--ink);font-weight:600;font-size:14.5px}.mnav-item:hover{background:var(--hover)}.today-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}@media (max-width: 760px){.today-grid{grid-template-columns:1fr}}.filter-bar{flex-wrap:wrap}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}@media (max-width: 560px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.tl-del{transition:background .12s ease,color .12s ease}.tl-del:hover{background:var(--hover);color:var(--ink)}.hl{transition:border-color .12s ease,box-shadow .15s ease,transform .12s ease}.hl:hover,.hl:focus-within{border-color:var(--green)!important;box-shadow:var(--shadow)!important;transform:translateY(-2px)}.hl:focus-visible{outline:2px solid var(--green);outline-offset:2px}.icon-btn{border-radius:8px;transition:background .12s ease,color .12s ease}.icon-btn:hover{background:var(--hover);color:var(--ink)!important}.day-cell:hover,.day-cell:focus-visible{outline:2px solid var(--green);outline-offset:2px}.row-open:hover .row-name{color:var(--green)}@media (max-width: 760px){.app-shell{flex-direction:column}.app-content{padding:18px 15px 96px}.sidebar{display:none}.mobile-topbar{display:flex;align-items:center;position:sticky;top:0;z-index:100;background:var(--sidebar);padding:calc(9px + env(safe-area-inset-top)) 15px 9px}.mobile-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:100;align-items:stretch;gap:4px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:var(--sidebar);box-shadow:0 -4px 20px #141e0c24}.filter-bar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-left:-15px;margin-right:-15px;padding-left:15px;padding-right:15px}.filter-bar::-webkit-scrollbar{display:none}.filter-bar>*{flex-shrink:0}.week-strip{flex-basis:100%;justify-content:space-between}}@keyframes view-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}@keyframes list-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.view-fade{animation:view-in .28s ease both}.list-in>*{animation:list-in .34s ease both}.list-in>*:nth-child(1){animation-delay:.02s}.list-in>*:nth-child(2){animation-delay:.06s}.list-in>*:nth-child(3){animation-delay:.1s}.list-in>*:nth-child(4){animation-delay:.14s}.list-in>*:nth-child(5){animation-delay:.18s}.list-in>*:nth-child(6){animation-delay:.22s}.list-in>*:nth-child(n+7){animation-delay:.26s}@media (prefers-reduced-motion: reduce){button,.pressable{transition:none}button:active,.pressable:active{transform:none}.view-fade,.list-in>*{animation:none}.hl{transition:none}.hl:hover,.hl:focus-within{transform:none}}
