:root{--g:#1b7f5c;--g2:#e3f3ec;--bg:#f4f6f5;--card:#fff;--tx:#18211d;--mu:#68756f;--bd:#dde4e0;--red:#c0392b;--amb:#b7791f;--blu:#2b6cb0}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.wrap{max-width:720px;margin:0 auto;padding:12px 14px 40px}
header.top{display:flex;align-items:center;gap:10px;margin-bottom:12px}
header.top h1{font-size:20px;margin:0;flex:1}
.mu{color:var(--mu);font-size:14px}
button,input,select{font:inherit}
button{border:0;border-radius:10px;padding:11px 16px;background:var(--g);color:#fff;font-weight:600;cursor:pointer;min-height:44px}
button.sec{background:#fff;color:var(--tx);border:1px solid var(--bd)}
button.danger{background:#fff;color:var(--red);border:1px solid var(--bd)}
button.ico{padding:8px 12px;min-height:40px}
input{width:100%;padding:11px 12px;border:1px solid var(--bd);border-radius:10px;background:#fff;min-height:44px}
.card{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:14px;margin-bottom:12px}
.login{margin-top:12vh}
.seg{display:flex;gap:6px;margin-bottom:12px}.seg button{flex:1;background:#fff;color:var(--tx);border:1px solid var(--bd)}.seg button.on{background:var(--g);color:#fff;border-color:var(--g)}
.login input{margin-bottom:10px}
.bar{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.bar input[type=date]{width:auto;flex:1;min-width:150px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.cls{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:12px;text-align:left;color:var(--tx);display:block;width:100%}
.cls b{font-size:22px;display:block}.cls small{display:block;color:var(--mu);margin-top:2px}
.cls.done{background:var(--g2);border-color:#b9dccc}.cls.todo small.st{color:var(--amb);font-weight:600}
.cls.done small.st{color:var(--g);font-weight:600}
.sec-h{display:flex;justify-content:space-between;align-items:center;margin:0 0 10px}.sec-h h2{margin:0;font-size:17px}
.sick h2{color:var(--blu)}.exc h2{color:var(--amb)}
.add{display:flex;gap:8px;margin-bottom:10px}.add button{white-space:nowrap}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:flex;align-items:center;gap:6px;background:#f0f3f1;border-radius:999px;padding:6px 6px 6px 14px}
.chip button{background:#dfe5e2;color:var(--tx);padding:0;width:30px;height:30px;min-height:0;border-radius:50%}
.empty{color:var(--mu);font-size:14px}
.num{display:flex;align-items:center;gap:8px}.num input{width:90px}
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#222;color:#fff;padding:10px 16px;border-radius:10px;opacity:0;transition:.25s;pointer-events:none;max-width:90%;z-index:9}
#toast.on{opacity:1}
dialog{border:0;border-radius:14px;padding:18px;width:min(92vw,360px)}dialog::backdrop{background:#0006}
dialog input{margin-bottom:10px}.row{display:flex;gap:8px}.row>*{flex:1}
