: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:Inter,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}.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}}.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{position:fixed;top:auto;bottom:0;left:0;right:0;width:auto;height:auto;flex-direction:row;align-items:center;padding:8px 12px calc(8px + env(safe-area-inset-bottom));gap:10px;z-index:100;box-shadow:0 -4px 20px #141e0c24}.side-brand{display:none}.side-nav{flex-direction:row;flex:1;justify-content:space-around;gap:4px}.side-foot{margin-top:0;flex:0 0 auto}.side-user{display:none}}@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}}
