:root{--bg:#f4f7f9;--surface:#fff;--ink:#14212b;--ink-soft:#4a5c6a;--line:#d5dee5;--brand:#0b5394;--brand-ink:#fff;--green:#0e7a3c;--green-bg:#e3f4e9;--yellow:#9a6700;--yellow-bg:#fff3cd;--red:#c11f1f;--red-bg:#fdeaea;--radius:12px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:17px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}main{max-width:760px;margin:0 auto;padding:16px 14px 90px}.app-header{background:var(--brand);color:var(--brand-ink);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.app-header .logo{font-size:20px;font-weight:800;color:#fff;letter-spacing:.2px}.app-header nav{display:flex;gap:6px}.app-header nav a{color:#dce9f7;font-weight:600;padding:10px 12px;border-radius:8px;min-height:44px;display:inline-flex;align-items:center}.app-header nav a:active,.app-header nav a:hover{background:hsla(0,0%,100%,.15);color:#fff}.app-footer{max-width:760px;margin:0 auto;padding:18px 14px 32px;color:var(--ink-soft);font-size:13px;border-top:1px solid var(--line)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:12px}.card h2,.card h3{margin-top:0}.tap-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 14px;margin-bottom:10px;min-height:64px;color:var(--ink);font-weight:600}.tap-row:active{background:#eaf1f7}.tap-row .sub{display:block;color:var(--ink-soft);font-weight:400;font-size:14px;margin-top:2px}.tap-row .chevron{color:var(--ink-soft);font-size:22px;flex-shrink:0}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;font-size:13px;font-weight:700;padding:4px 12px;white-space:nowrap}.pill-green{background:var(--green-bg);color:var(--green)}.pill-yellow{background:var(--yellow-bg);color:var(--yellow)}.pill-red{background:var(--red-bg);color:var(--red)}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.dot-green{background:var(--green)}.dot-yellow{background:#e0a800}.dot-red{background:var(--red)}.banner{border-radius:var(--radius);padding:14px;margin-bottom:12px;font-weight:600}.banner-red{background:var(--red-bg);color:var(--red);border:2px solid var(--red)}.banner-yellow{background:var(--yellow-bg);color:var(--yellow);border:2px solid #e0a800}.banner-green{background:var(--green-bg);color:var(--green);border:2px solid var(--green)}.banner .banner-sub{font-weight:400;font-size:14px;margin-top:6px}label.field-label{display:block;font-weight:700;margin:18px 0 4px}.field-hint{font-size:13px;color:var(--ink-soft);margin-bottom:6px}.numrow{display:flex;gap:8px;align-items:stretch}.numrow input{flex:1 1;min-width:0;font-size:26px;font-weight:700;padding:12px 14px;border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);text-align:center}.numrow input:focus{outline:3px solid var(--brand);outline-offset:1px}.numrow input.f-green{border-color:var(--green);background:var(--green-bg)}.numrow input.f-yellow{border-color:#e0a800;background:var(--yellow-bg)}.numrow input.f-red{border-color:var(--red);background:var(--red-bg)}.stepper{width:60px;font-size:26px;font-weight:800;border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--brand);cursor:pointer}.stepper:active{background:#eaf1f7}.field-error{margin-top:6px;font-size:14px;font-weight:600;border-radius:8px;padding:8px 10px}.field-error.e-red{background:var(--red-bg);color:var(--red)}.field-error.e-yellow{background:var(--yellow-bg);color:var(--yellow)}input[type=number],input[type=text],select,textarea{font:inherit}select,textarea{padding:12px;border:2px solid var(--line);background:var(--surface);color:var(--ink)}.btn,select,textarea{width:100%;border-radius:var(--radius)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:12px 20px;border:none;font-size:18px;font-weight:800;cursor:pointer;margin-top:10px}.btn-primary{background:var(--brand);color:#fff}.btn-primary:active{background:#094276}.btn-secondary{background:var(--surface);color:var(--brand);border:2px solid var(--brand)}.btn-danger{background:var(--red);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.toggle-row{display:flex;align-items:center;justify-content:space-between;min-height:54px;gap:10px}.toggle-row input[type=checkbox]{width:28px;height:28px;accent-color:var(--brand)}.check-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}.check-item:last-child{border-bottom:none}.check-item .check-state{font-weight:800;flex-shrink:0;width:72px}.state-done{color:var(--green)}.state-due{color:var(--yellow)}.state-overdue{color:var(--red)}.table-wrap{overflow-x:auto}table.log{border-collapse:collapse;width:100%;font-size:14px;background:var(--surface)}table.log td,table.log th{border:1px solid var(--line);padding:7px 9px;text-align:center;white-space:nowrap}table.log th{background:#e9eff4;font-weight:700}tr.row-red td{background:var(--red-bg)}tr.row-yellow td{background:var(--yellow-bg)}.muted{color:var(--ink-soft);font-size:14px}h1{font-size:24px;margin:8px 0 14px}h2{font-size:19px;margin:18px 0 10px}.grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}@media print{.app-footer,.app-header,.no-print{display:none!important}body{background:#fff;font-size:12px}main{max-width:none;padding:0}.card{border:none;padding:0}table.log td,table.log th{padding:4px 6px;font-size:11px}}