:root{--bg:#f6f5f2;--surface:#fff;--text:#1c1b19;--muted:#6b675f;--line:#e4e1da;--accent:#2f6f5e;--accent-text:#fff;--danger:#b3261e;--overdue:#b3261e;--chip:#e9efe9;--shadow:0 6px 24px #0000002e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#131412;--surface:#1e201d;--text:#ece9e2;--muted:#a09c92;--line:#2f322d;--accent:#62b59d;--accent-text:#0c1a15;--danger:#f2877f;--overdue:#f2877f;--chip:#28312c;--shadow:0 6px 24px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#131412;--surface:#1e201d;--text:#ece9e2;--muted:#a09c92;--line:#2f322d;--accent:#62b59d;--accent-text:#0c1a15;--danger:#f2877f;--overdue:#f2877f;--chip:#28312c;--shadow:0 6px 24px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.top,.list{width:100%;max-width:720px;margin:0 auto;padding-inline:16px}.top{z-index:5;background:var(--bg);align-items:center;gap:10px;padding-block:14px;display:flex;position:sticky;top:0}.top h1{flex:1;font-size:1.4rem}.top .who{color:var(--muted);font-size:.9rem}.live{background:var(--muted);opacity:.5;border-radius:50%;width:10px;height:10px}.live.ok{background:var(--accent);opacity:1}.link{color:var(--muted);background:0 0;border:0;padding:8px 4px;text-decoration:underline}.list{padding-bottom:120px}section{margin-top:20px}section h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:.8rem}section h2.overdue{color:var(--overdue)}section h2 small{margin-left:4px;font-weight:400}ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.placeholder{color:var(--muted);text-align:center;margin:0;font-size:1.1rem}.list:has(.placeholder){place-items:center;min-height:calc(100dvh - 140px);padding-bottom:0;display:grid}.wall-lists.is-empty{columns:auto;place-items:center;display:grid}.wall .placeholder{font-size:1.6rem}.confirm-text{color:var(--muted);overflow-wrap:anywhere;margin:0}.danger-solid{border:1px solid var(--danger);background:var(--danger);color:#fff;border-radius:12px;min-height:48px;padding:0 22px;font-weight:600}.wall .actions button{min-height:68px;font-size:1.2rem}.row{background:var(--surface);border:1px solid var(--line);border-radius:14px;align-items:center;gap:12px;min-height:64px;padding:10px 8px 10px 12px;display:flex}.row.overdue{border-color:color-mix(in srgb, var(--overdue) 50%, var(--line))}.check{border:2.5px solid var(--accent);background:0 0;border-radius:50%;flex:none;width:44px;height:44px}.check:active{background:var(--accent)}.text{flex:1;min-width:0;display:grid}.title{overflow-wrap:anywhere;font-weight:600}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:.85rem;display:flex}.overdue .due{color:var(--overdue);font-weight:600}.chip{background:var(--chip);color:var(--text);border-radius:999px;padding:1px 9px;font-size:.78rem}.more{width:44px;height:44px;color:var(--muted);background:0 0;border:0;flex:none;font-size:1.4rem}.fab{right:20px;bottom:calc(20px + env(safe-area-inset-bottom));background:var(--accent);width:60px;height:60px;color:var(--accent-text);box-shadow:var(--shadow);z-index:6;border:0;border-radius:50%;font-size:2rem;line-height:1;position:fixed}.toasts{left:50%;bottom:calc(96px + env(safe-area-inset-bottom));z-index:20;pointer-events:none;gap:8px;display:grid;position:fixed;transform:translate(-50%)}.toast{pointer-events:auto;color:#f2f0ea;min-width:min(300px,100vw - 32px);max-width:calc(100vw - 32px);box-shadow:var(--shadow);background:#262826;border-radius:12px;justify-content:space-between;align-items:center;gap:18px;padding:12px 16px;display:flex}.toast button{color:#8fd9c0;white-space:nowrap;background:0 0;border:0;padding:6px 8px;font-weight:700}dialog{background:var(--surface);color:var(--text);width:100%;max-width:520px;max-height:92dvh;box-shadow:var(--shadow);border:0;border-radius:20px 20px 0 0;margin:auto auto 0;padding:0;overflow:auto}dialog::backdrop{background:#00000073}@media (width>=700px){dialog{border-radius:20px;margin:auto}}.sheet-body{padding:20px 18px calc(20px + env(safe-area-inset-bottom));gap:14px;display:grid}.sheet-body h2{overflow-wrap:anywhere;font-size:1.15rem}label{color:var(--muted);gap:4px;font-size:.85rem;display:grid}input,select,textarea{background:var(--bg);border:1px solid var(--line);width:100%;min-height:46px;color:var(--text);border-radius:10px;padding:10px 12px}textarea{resize:vertical}.two{grid-template-columns:1fr 1fr;gap:12px;display:grid}.days{flex-wrap:wrap;gap:6px;display:flex}.day{background:var(--bg);border:1px solid var(--line);border-radius:10px;flex:1;min-width:44px;min-height:44px}.day.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.error{color:var(--danger);margin:0}.linkish{color:var(--accent);text-align:left;background:0 0;border:0;justify-self:start;padding:4px 0}.actions{justify-content:flex-end;gap:10px;display:flex}.primary,.secondary,.danger,.menu button{border:1px solid var(--line);background:var(--bg);border-radius:12px;min-height:48px;padding:0 20px}.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}.danger{color:var(--danger)}.menu{gap:10px;display:grid}.menu button{text-align:left}.who-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}.big{min-height:72px;font-size:1.2rem}main.login{gap:16px;max-width:360px;margin:18vh auto 0;padding:0 16px;display:grid}main.login form{gap:14px;display:grid}.wallroot{-webkit-user-select:none;user-select:none;overscroll-behavior:none;grid-template-rows:auto minmax(0,1fr);height:100dvh;display:grid;overflow:hidden}.wall-top{flex-wrap:wrap;align-items:center;gap:8px 14px;padding:12px 24px 8px;display:flex}.wall-top .clock{font-variant-numeric:tabular-nums;font-size:clamp(2rem,6vh,3.2rem);font-weight:300;line-height:1}.wall-top .date{color:var(--muted);font-size:clamp(1rem,2.6vh,1.25rem)}.wall-top .spacer{flex:1}.wall-top .tool{background:var(--surface);border:1px solid var(--line);min-width:56px;min-height:56px;color:var(--muted);border-radius:14px;padding:0 16px;font-size:1rem}.wall-top .warn{color:var(--muted);font-size:.85rem}.board.wall{flex-direction:column;min-height:0;display:flex}.wall-lists{--d:1;columns:max(15rem, calc(19rem * var(--d)));column-fill:auto;flex:1;column-gap:28px;min-height:0;padding:4px 24px 108px;overflow:auto hidden}.wall .fab{width:80px;height:80px;font-size:2.8rem;bottom:28px;right:28px}.wall section{margin:0 0 calc(14px * var(--d))}.wall section h2{margin:0 0 calc(8px * var(--d));break-after:avoid;font-size:.95rem}.wall ul{display:block}.wall li.row{margin-bottom:calc(10px * var(--d));break-inside:avoid}.wall .row{min-height:calc(clamp(60px, 8.5vh, 92px) * var(--d));padding:calc(8px * var(--d)) 8px calc(8px * var(--d)) 14px;border-radius:18px;gap:14px}.wall .check{border-width:3.5px;width:clamp(56px,7.5vh,62px);height:clamp(56px,7.5vh,62px)}.wall .title{font-size:max(1rem, calc(clamp(1.05rem, 2.6vh, 1.45rem) * var(--d)))}.wall .meta{font-size:max(.82rem, calc(clamp(.85rem, 2vh, 1.05rem) * var(--d)))}.wall .more{width:56px;height:56px}.wall .who-grid button{min-height:104px;font-size:1.8rem}.wall .menu button{min-height:68px;font-size:1.25rem}.wall .sheet-body h2{font-size:1.5rem}.allclear{column-span:all;text-align:center;color:var(--muted);margin:0 0 18px;font-size:1.5rem}.more-later{break-inside:avoid;margin:4px 0 0}.muted{color:var(--muted)}.offline-banner{left:50%;top:calc(env(safe-area-inset-top,0px) + 56px);z-index:20;background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow);text-align:center;border-radius:999px;max-width:calc(100vw - 32px);margin:0;padding:6px 14px;font-size:.85rem;position:fixed;transform:translate(-50%)}.errorpage{text-align:center;max-width:420px;margin:20vh auto 0;padding:0 16px}.errorpage p{color:var(--muted)}
