:root,html[data-theme=light]{--bg: #f6f1f2;--surface: #ffffff;--ink: #111111;--muted: #6d6164;--line: #eadfe2;--brand: #b0213c;--brand-hover: #8c1a30;--brand-soft: #f8e7eb;--ok: #1c7a4d;--ok-soft: #e5f6ec;--warn: #9a5b10;--warn-soft: #fff1dc;--low: #1d4f8f;--low-soft: #e7f0fb;--high: #9d1230;--shadow: 0 14px 40px rgba(17, 17, 17, .08);--sidebar: #ffffff;--sidebar-ink: #111111;--sidebar-muted: #6d6164;--sidebar-border: #eadfe2;--sidebar-hover: #f8e7eb;--radius: 16px}html[data-theme=dark]{--bg: #141214;--surface: #211c1e;--ink: #f6eef0;--muted: #b7a8ac;--line: #3a3033;--brand: #b0213c;--brand-hover: #8c1a30;--brand-soft: #3c242b;--ok: #8ddebe;--ok-soft: #1c332b;--warn: #f0c27a;--warn-soft: #3a2d1c;--low: #9ec0ef;--low-soft: #1c2838;--high: #9d1230;--shadow: 0 16px 40px rgba(0, 0, 0, .35);--sidebar: #0c0b0c;--sidebar-ink: #f6eef0;--sidebar-muted: #b7a8ac;--sidebar-border: #2a2426;--sidebar-hover: #3c242b;color-scheme:dark}.logo-dark,html[data-theme=dark] .logo-light{display:none!important}html[data-theme=dark] .logo-wide.logo-dark,html[data-theme=dark] .topbar-logo.logo-dark,html[data-theme=dark] .login-card .logo-dark{display:block!important}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:Figtree,Segoe UI,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--brand)}button,.ghost,.primary,.danger{border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:.55rem .95rem;font-weight:650}button.primary,.primary{background:var(--brand);border-color:var(--brand);color:#fff}button.primary:hover,.primary:hover{background:var(--brand-hover)}button.ghost,.ghost{background:transparent}button.danger,.danger{background:var(--brand-soft);color:var(--brand);border-color:transparent}button:disabled{opacity:.55;cursor:not-allowed}.icon-btn{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;padding:0}.icon-btn svg,.menu-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.shell{--sidebar-width: 250px;--sidebar-collapsed: 84px;min-height:100%;display:grid;grid-template-columns:var(--sidebar-width) 1fr}.shell.collapsed{grid-template-columns:var(--sidebar-collapsed) 1fr}.sidebar{background:var(--sidebar);color:var(--sidebar-ink);border-right:1px solid var(--sidebar-border);padding:1.1rem .85rem 1rem;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar-top{display:flex;align-items:center;gap:.4rem;margin-bottom:1rem}.brand-plate{flex:1;min-width:0;border-radius:14px;padding:.35rem .2rem}.brand-plate img{width:100%;height:auto}.logo-wide.logo-light{display:block}.logo-wide.logo-dark,.brand-plate .logo-compact,.brand-plate .logo-compact.logo-light,.brand-plate .logo-compact.logo-dark,html[data-theme=dark] .brand-plate .logo-wide.logo-light{display:none!important}html[data-theme=dark] .brand-plate .logo-wide.logo-dark{display:block!important}html[data-theme=dark] .brand-plate .logo-compact,html[data-theme=dark] .brand-plate .logo-compact.logo-light,html[data-theme=dark] .brand-plate .logo-compact.logo-dark{display:none!important}.collapse-btn{width:34px;height:34px;flex:none;border-radius:10px;border:1px solid var(--sidebar-border);background:transparent;color:var(--sidebar-ink);display:grid;place-items:center;padding:0}.collapse-btn:hover{background:var(--sidebar-hover)}.collapse-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s ease}.shell.collapsed .collapse-icon{transform:rotate(180deg)}.sidebar nav{display:flex;flex-direction:column;gap:.2rem;overflow:auto}.sidebar a{display:flex;align-items:center;gap:.7rem;color:var(--sidebar-ink);text-decoration:none;border-radius:12px;padding:.62rem .7rem;font-weight:600}.sidebar a svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}.sidebar a:hover{background:var(--sidebar-hover)}.sidebar a.active{background:var(--brand);color:#fff}.sidebar-foot{margin-top:auto;padding-top:.75rem;border-top:1px solid var(--sidebar-border);display:flex;flex-direction:column;gap:.45rem}.who{margin:0;padding:0 .75rem;font-size:.82rem;font-weight:400;color:var(--brand);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}button.logout-btn,.logout-btn{display:flex;align-items:center;justify-content:flex-start;gap:.65rem;border:1px solid var(--sidebar-border);background:var(--surface);border-radius:10px;padding:.55rem .75rem;color:var(--sidebar-ink);cursor:pointer;font:inherit;font-weight:600;width:100%}.logout-btn .nav-icon{width:18px;height:18px;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.logout-btn:hover{background:var(--sidebar-hover)}.shell.collapsed .logout-btn .nav-icon{width:20px;height:20px}.shell.collapsed .link-text,.shell.collapsed .who{display:none}.shell.collapsed .brand-plate .logo-wide,.shell.collapsed .brand-plate .logo-wide.logo-light,.shell.collapsed .brand-plate .logo-wide.logo-dark,html[data-theme=dark] .shell.collapsed .brand-plate .logo-wide,html[data-theme=dark] .shell.collapsed .brand-plate .logo-wide.logo-light,html[data-theme=dark] .shell.collapsed .brand-plate .logo-wide.logo-dark{display:none!important}.shell.collapsed .brand-plate .logo-compact{width:36px;margin:0 auto}.shell.collapsed .brand-plate .logo-compact.logo-light{display:block!important}.shell.collapsed .brand-plate .logo-compact.logo-dark,html[data-theme=dark] .shell.collapsed .brand-plate .logo-compact.logo-light{display:none!important}html[data-theme=dark] .shell.collapsed .brand-plate .logo-compact.logo-dark{display:block!important}.shell.collapsed .brand-plate{padding:.2rem}.shell.collapsed .sidebar-top{flex-direction:column;align-items:center}.shell.collapsed .sidebar a,.shell.collapsed .logout-btn{justify-content:center;padding-left:.55rem;padding-right:.55rem}.shell.collapsed .logout-btn{width:100%}.topbar{display:none}.content{min-width:0;padding:1.4rem 1.4rem 2.5rem}.theme-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:.35rem}.theme-choice{display:flex;align-items:center;gap:.75rem;width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:.85rem 1rem;cursor:pointer;font-weight:600}.theme-choice:hover{background:var(--sidebar-hover)}.theme-choice.active{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 28%,transparent);background:var(--brand-soft)}.theme-choice-icon{width:28px;height:28px;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--brand)}.theme-choice-label{display:flex;flex-direction:column;gap:.15rem;min-width:0}.theme-choice-label strong{font-size:.95rem}.theme-choice-label span{font-size:.8rem;font-weight:500;color:var(--muted)}.page-head,.toolbar,.entry-bar,.form-actions,.done-head,.cal-nav,.panel header,.stat-row{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.page-head{justify-content:space-between;margin-bottom:.8rem}.page-head h1,.modal-head h2,.panel h2{margin:0;letter-spacing:-.03em}.home-greeting{color:var(--brand);font:inherit;font-weight:inherit}.lead,.muted,.empty,small{color:var(--muted)}.lead{margin:0 0 .25rem;font-weight:400}.search,input,select,textarea{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:.7rem .8rem;font:inherit;font-size:16px;font-weight:400}.search{max-width:280px}.toolbar{margin-bottom:1rem}.toolbar-actions{display:flex;gap:.45rem;flex-wrap:wrap;margin-left:auto}.view-switch{display:flex;gap:.35rem;flex-wrap:wrap}.check{display:flex;align-items:center;gap:.45rem;font-weight:400}.check input{width:auto}button.toggle-on{background:var(--brand);color:#fff;border-color:var(--brand)}.error-banner,.notice{background:var(--brand-soft);color:var(--brand);border-radius:12px;padding:.75rem .9rem;margin-bottom:.8rem}.notice{background:var(--ok-soft);color:var(--ok)}.table-wrap{overflow:auto;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow)}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:.8rem .9rem;border-bottom:1px solid var(--line);vertical-align:middle}.data-table th{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:700}.data-table tbody tr.clickable{cursor:pointer}.data-table tbody tr.clickable:hover{background:var(--brand-soft)}.col-type{width:2.5rem}.subject-cell{display:flex;align-items:center;gap:.55rem;min-width:0}.subject-cell>span{min-width:0}.linkish{background:none;border:0;padding:0;color:var(--ink);font-weight:600;text-align:left;font:inherit}.linkish small,td small{display:block;font-weight:400}.row-actions{white-space:nowrap;display:flex;gap:.35rem;justify-content:flex-end;align-items:center}.badge{display:inline-flex;border-radius:999px;padding:.2rem .55rem;background:var(--brand-soft);color:var(--brand);font-size:.82rem;font-weight:700}.badge[data-status=done],.badge[data-band=ok]{background:var(--ok-soft);color:var(--ok)}.badge[data-status=overdue],.badge[data-band=high]{background:var(--brand-soft);color:var(--high)}.badge[data-status=planned]{background:#eef3f8;color:#1d4f8f}html[data-theme=dark] .badge[data-status=planned]{background:#1c2838;color:#9ec0ef}.badge[data-status=canceled]{background:transparent;color:var(--muted);border:1px solid var(--line)}.badge[data-band=low]{background:var(--low-soft);color:var(--low)}.badge[data-band=warn]{background:var(--warn-soft);color:var(--warn)}.modal-back{position:fixed;inset:0;background:#11111175;display:grid;place-items:center;padding:1rem;z-index:30}.modal-card{width:min(640px,100%);max-height:min(92vh,860px);overflow:auto;background:var(--surface);border-radius:20px;box-shadow:var(--shadow)}.modal-head,.modal-body{padding:1rem 1.1rem}.modal-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.field{display:flex;flex-direction:column;gap:.35rem;font-weight:700;font-size:.92rem}.field input,.field select,.field textarea{font-weight:400}.reminder-check{min-height:2.85rem;margin:0;font-weight:400}.reminder-hint{font-size:.85rem;font-weight:400}.span-2{grid-column:span 2}.form-actions{justify-content:flex-end}.board{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:.7rem;align-items:start}.column{background:color-mix(in srgb,var(--surface) 80%,var(--bg));border-radius:16px;padding:.7rem;min-height:180px}.column header{display:flex;justify-content:space-between;font-weight:750;margin-bottom:.55rem}.k-card,.day-item,.panel,.stat,.login-card,.note-list button,.shop-list{background:var(--surface);border-radius:14px;box-shadow:var(--shadow)}.k-card,.day-item{display:flex;flex-direction:column;gap:.25rem;width:100%;text-align:left;padding:.75rem;margin-bottom:.5rem;border:0;color:inherit}.k-card-desc{margin:0;color:var(--muted);font-size:.86rem;font-weight:400;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.k-card{cursor:pointer}.chip-row{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.7rem}.cal-layout{display:grid;grid-template-columns:1fr 280px;gap:.8rem;align-items:start}.cal,.day-panel{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:.8rem}.cal-nav{justify-content:space-between}.cal-weekdays,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem}.cal-weekdays{color:var(--muted);font-size:.75rem;font-weight:700;text-align:center;margin:.4rem 0}.cal-cell{min-height:92px;border:1px solid var(--line);border-radius:12px;background:var(--bg);padding:.3rem;text-align:left;color:inherit}.cal-cell.today{outline:2px solid var(--brand)}.cal-cell.selected{background:var(--brand-soft)}.cal-cell b{display:block;font-size:.8rem}.cal-chip{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;background:var(--surface);border-radius:7px;margin-top:.2rem;padding:.1rem .25rem}.empty-cell{background:transparent;border-color:transparent}.day-panel header{justify-content:space-between;margin-bottom:.6rem}.month-title{text-transform:capitalize}.home-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.stat-row{margin-bottom:.9rem}.stat{text-decoration:none;color:inherit;padding:.9rem 1rem;min-width:160px}.stat span{display:block;color:var(--ink);font-size:1.05rem;font-weight:700}.stat strong{font-size:1.35rem}.panel{padding:.9rem 1rem 1rem}.panel header{justify-content:space-between;margin-bottom:.4rem}.plain-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.plain-list a,.plain-list span{color:inherit;text-decoration:none}.plain-list small{display:block}.entry-bar{align-items:end;margin-bottom:.9rem}.entry-bar .field,.grow{flex:1;min-width:160px}.glucose-table{min-width:860px}.g-cell{width:100%;border:0;background:transparent;border-radius:8px;font-weight:750;padding:.45rem .2rem}.g-cell[data-band=ok]{background:var(--ok-soft);color:var(--ok)}.g-cell[data-band=warn]{background:var(--warn-soft);color:var(--warn)}.g-cell[data-band=high]{background:var(--brand-soft);color:var(--high)}.g-cell[data-band=low]{background:var(--low-soft);color:var(--low)}.cell-input{padding:.35rem}.suggest{display:flex;gap:.4rem;flex-wrap:wrap;margin:-.3rem 0 .8rem}.shop-list{list-style:none;margin:0 0 1rem;padding:0;box-shadow:none;background:transparent;display:flex;flex-direction:column;gap:.45rem}.shop-list li{display:flex;justify-content:space-between;align-items:center;gap:.6rem;background:var(--surface);border-radius:14px;padding:.55rem .7rem;box-shadow:var(--shadow)}.shop-list label{display:flex;gap:.6rem;align-items:center;font-weight:650}.shop-list input{width:auto}.shop-list.done span{text-decoration:line-through;color:var(--muted)}.done-head{justify-content:space-between}.notes-layout{display:grid;grid-template-columns:280px 1fr;gap:.8rem;align-items:start}.note-list{display:flex;flex-direction:column;gap:.4rem}.note-list button{text-align:left;border:0;color:inherit;padding:.75rem .85rem}.note-list button.active{outline:2px solid var(--brand)}.note-list small{display:block}.note-editor,.settings-panel{display:flex;flex-direction:column;gap:.7rem}.settings-panel{margin-bottom:.8rem}.editor{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}.editor-bar{display:flex;gap:.3rem;flex-wrap:wrap;padding:.45rem;border-bottom:1px solid var(--line);background:var(--bg)}.editor-bar button{padding:.35rem .6rem}.editor-surface{min-height:240px;padding:.9rem;outline:none}.editor-surface:focus{box-shadow:inset 0 0 0 2px var(--brand-soft)}.login-screen{min-height:100%;display:grid;place-items:center;padding:1.2rem;background:radial-gradient(circle at top,#f8e7eb,var(--bg) 46%)}.login-card{width:min(420px,100%);padding:1.4rem;display:flex;flex-direction:column;gap:.8rem}.login-card img{width:min(280px,100%);margin:0 auto}.login-card p{text-align:center;color:var(--muted);margin:0}@media(max-width:1100px){.board{grid-template-columns:repeat(2,minmax(180px,1fr))}.home-grid,.cal-layout,.theme-choices{grid-template-columns:1fr}}@media(max-width:900px){.shell,.shell.collapsed{display:block;grid-template-columns:none}.collapse-btn{display:none}.shell.collapsed .link-text,.shell.collapsed .who{display:block}.shell.collapsed .brand-plate .logo-wide.logo-light{display:block!important}.shell.collapsed .brand-plate .logo-wide.logo-dark,html[data-theme=dark] .shell.collapsed .brand-plate .logo-wide.logo-light{display:none!important}html[data-theme=dark] .shell.collapsed .brand-plate .logo-wide.logo-dark{display:block!important}.shell.collapsed .brand-plate .logo-compact{display:none!important}.shell.collapsed .sidebar a,.shell.collapsed .logout-btn{justify-content:flex-start}.topbar{display:flex;align-items:center;gap:.6rem;position:sticky;top:0;z-index:20;background:var(--surface);padding:.55rem .7rem calc(.55rem + env(safe-area-inset-top));border-bottom:1px solid var(--line)}.topbar-logo{height:34px;width:auto}.sidebar{position:fixed;z-index:25;inset:0 auto 0 0;width:min(84vw,320px);transform:translate(-105%);transition:transform .2s ease;height:100%}.menu-open .sidebar{transform:none}.backdrop{position:fixed;inset:0;border:0;background:#0006;z-index:24}.content{padding:1rem .85rem 2rem}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table tr{padding:.4rem 0;border-bottom:1px solid var(--line)}.data-table td{border:0;display:flex;justify-content:space-between;gap:1rem;padding:.28rem .9rem}.data-table td:before{content:attr(data-label);color:var(--muted);font-weight:700}.glucose-table{display:table}.glucose-table thead{display:table-header-group}.glucose-table tbody{display:table-row-group}.glucose-table tr{display:table-row}.glucose-table td,.glucose-table th{display:table-cell}.glucose-table td:before{content:none}.notes-layout{grid-template-columns:1fr}.notes-layout.editing .note-list{display:none}.board{grid-template-columns:1fr}}
