[hidden]{display:none !important}
:root{--navy:#02357D;--red:#d0021b;--blue:#2462BA;--bg:#f4f6f9;--card:#fff;--ink:#1a1a1a;--mute:#6b7280;--ok:#1f7a4d;--okbg:#e2efda;--warn:#a06a12;--warnbg:#fff2cc;--bad:#b13a2e;--badbg:#fce4d6;--line:#e5e7eb}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.4 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-text-size-adjust:100%}
.hdr{position:sticky;top:0;z-index:5;background:var(--navy);border-bottom:4px solid var(--red);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:calc(10px + env(safe-area-inset-top)) 14px 10px}
.brand{font-weight:800;letter-spacing:.2px;display:flex;align-items:center;gap:8px}.brand small{display:block;font-weight:500;font-size:11px;opacity:.85}.dot{width:22px;height:22px;border-radius:6px;background:url(/static/icon-192.png) center/cover;display:inline-block}
.hdr-right{display:flex;gap:8px;align-items:center}
.pill{font-size:11px;padding:3px 8px;border-radius:999px;background:#334;color:#fff}.pill.on{background:var(--ok)}.pill.off{background:#7a3a2e}.pill.q{background:var(--red)}
button{font:inherit;border:0;border-radius:10px;padding:12px 16px;cursor:pointer;background:#e9edf3;color:var(--ink)}
button.primary{background:var(--red);color:#fff;font-weight:700}button.ghost{background:transparent;color:var(--navy)}button.icon{background:transparent;color:#fff;font-size:20px;padding:4px 8px}button.wide{width:100%}
button:disabled{opacity:.5}
.container{padding:12px 12px calc(24px + env(safe-area-inset-bottom));max-width:760px;margin:0 auto}
.card{background:var(--card);border-radius:14px;padding:16px;margin-bottom:12px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.card.notice{border-left:4px solid var(--red)}
h2{margin:0 0 6px;font-size:20px}h3{margin:14px 0 8px;font-size:15px;color:var(--navy)}
input,select,textarea{width:100%;font:inherit;padding:12px;border:1px solid #cfd6e0;border-radius:10px;margin:6px 0 10px;background:#fff}
textarea{min-height:80px;resize:vertical}
label{font-size:13px;color:var(--mute)}.chk{display:flex;gap:8px;align-items:center;margin:4px 0 10px}.chk input{width:auto;margin:0}
.row{display:flex;gap:10px}.row>button,.row>select{flex:1}
.muted{color:var(--mute)}.small{font-size:13px}.center{text-align:center}.err{color:var(--bad);font-size:14px;min-height:1em;margin:4px 0 0}
.daybar{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:14px;padding:6px 8px;margin-bottom:12px}
.wk{text-align:center}#day-label{font-weight:700;color:var(--navy)}
.item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border-radius:14px;padding:12px 14px;margin-bottom:8px;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.item .lbl{font-weight:600}.item .sub{font-size:12px;color:var(--mute)}
.item.missing{border-left:4px solid var(--bad)}.item.due{border-left:4px solid #cbd5e1}.item.done{border-left:4px solid var(--ok)}.item.late{border-left:4px solid var(--warn)}.item.pending{border-left:4px solid var(--blue)}.item.error{border-left:4px solid var(--red);background:#fff5f3}
.badge{font-size:12px;font-weight:600;padding:5px 10px;border-radius:999px;white-space:nowrap}
.badge.ok{background:var(--okbg);color:var(--ok)}.badge.warn{background:var(--warnbg);color:var(--warn)}.badge.bad{background:var(--red);color:#fff}.badge.grey{background:#e9edf3;color:var(--mute)}.badge.blue{background:#dbe7fb;color:var(--navy)}
.flag{background:var(--badbg);color:var(--bad);border-radius:10px;padding:10px 12px;margin-bottom:10px;font-size:14px}
.storehdr{display:flex;align-items:center;gap:6px;margin-bottom:10px}.title{font-weight:700;font-size:18px;color:var(--navy)}
.menu{position:fixed;right:10px;top:54px;background:#fff;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.18);display:flex;flex-direction:column;z-index:20;min-width:180px;overflow:hidden}
.menu button{background:#fff;border-radius:0;text-align:left;border-bottom:1px solid var(--line)}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#222;color:#fff;padding:10px 16px;border-radius:999px;font-size:14px;z-index:30;max-width:90vw;pointer-events:none}
/* form fields */
.fld{background:#fff;border-radius:14px;padding:14px 16px;margin-bottom:10px}
.fld>label{display:block;font-size:14px;color:var(--ink);font-weight:600;margin-bottom:4px}.fld .hint{font-size:12px;color:var(--mute);margin-bottom:6px}
.fld.bad{outline:2px solid var(--red)}
.crow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.crow:last-child{border-bottom:0}
.crow .ctext{font-size:14px;flex:1}
.seg{display:flex;gap:4px;flex-shrink:0}.seg button{padding:8px 10px;font-size:13px;border-radius:8px;background:#eef1f5;min-width:44px}
.seg button.on-yes{background:var(--ok);color:#fff}.seg button.on-no{background:var(--red);color:#fff}.seg button.on-na{background:#6b7280;color:#fff}.seg button.on-great{background:var(--ok);color:#fff}.seg button.on-remake{background:var(--red);color:#fff}
.stars{display:flex;gap:6px}.stars button{font-size:26px;padding:4px 8px;background:transparent;color:#cbd5e1}.stars button.on{color:#f2b01e}
.photos{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}.photos img{width:84px;height:84px;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:pointer}
.photos .add{width:84px;height:84px;border-radius:10px;border:2px dashed #b8c2d0;display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--mute);background:#fff;cursor:pointer}
.photos .add input{display:none}
.ph{position:relative}.ph .x{position:absolute;top:-6px;right:-6px;background:var(--red);color:#fff;border-radius:999px;width:22px;height:22px;padding:0;font-size:13px;line-height:22px}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:40;display:flex;align-items:center;justify-content:center}.lightbox img{max-width:96vw;max-height:92vh;border-radius:8px}
/* board */
.bstore{background:#fff;border-radius:14px;padding:12px 14px;margin-bottom:10px}
.bhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.bhead .num{font-weight:700;font-size:17px}
.cells{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.cell{font-size:12px;padding:6px 9px;border-radius:8px;background:#eef1f5;cursor:pointer;display:flex;flex-direction:column;min-width:96px}.cell b{font-weight:600}.cell small{font-size:11px;opacity:.85}
.cell.done{background:var(--okbg);color:var(--ok)}.cell.late{background:var(--warnbg);color:var(--warn)}.cell.missing{background:var(--red);color:#fff}.cell.due{background:#eef1f5;color:var(--mute);cursor:default}
table.ov{width:100%;border-collapse:collapse;font-size:13px}table.ov td,table.ov th{padding:6px 4px;border-bottom:1px solid var(--line);text-align:left}
.urow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.urow button{padding:6px 10px;font-size:13px}
.kv{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}.kv b{color:var(--mute);font-weight:500;max-width:55%}
.srow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.srow select{width:auto;margin:0;padding:6px 8px}.srow .chk{margin:0}
.inl{width:auto;display:inline-block;padding:4px 6px;margin:2px 0;font-size:13px;max-width:130px}
.tlist{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 8px}.tlist label{background:#eef1f5;border-radius:999px;padding:6px 10px;font-size:13px;display:flex;gap:6px;align-items:center;color:var(--ink)}.tlist input{width:auto;margin:0}
.fdrow{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.fdrow .sub{font-size:12px;color:var(--mute)}

.stats{display:flex;gap:8px;justify-content:space-between}.stat{flex:1;text-align:center;background:#f4f6f9;border-radius:10px;padding:8px 4px}.stat b{display:block;font-size:18px;color:var(--navy)}.stat span{font-size:11px;color:var(--mute)}.stat.bad b{color:var(--red)}.stat.warn b{color:var(--warn)}
.ring{text-align:right}.ring b{display:block;font-size:22px;line-height:1}.ring small{font-size:11px;color:var(--mute)}.ring.ok b{color:var(--ok)}.ring.warn b{color:var(--warn)}.ring.bad b{color:var(--red)}
.bar{height:6px;background:#eef1f5;border-radius:999px;overflow:hidden;margin-top:6px}.bar i{display:block;height:100%;background:var(--ok)}
.bhead .sub{font-size:12px;color:var(--mute)}
.flags{margin-top:10px}.fgroup{margin-bottom:8px}.ftitle{font-size:13px;font-weight:600;color:var(--bad);display:flex;align-items:center;gap:6px;margin-bottom:4px}.fline{background:var(--badbg);color:var(--ink);border-radius:8px;padding:7px 10px;margin-bottom:4px;font-size:13px;cursor:pointer}.fline small{color:var(--mute)}
.strip{display:flex;align-items:center;gap:4px;margin-top:10px;flex-wrap:wrap}.dcell{width:30px;height:34px;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;font-weight:600}.dcell i{font-style:normal;font-size:9px;opacity:.7}.dcell.none{background:#eef1f5;color:var(--mute)}.dcell.some{background:var(--badbg);color:var(--bad)}.dcell.most{background:var(--warnbg);color:var(--warn)}.dcell.full{background:var(--okbg);color:var(--ok)}
.ok{color:var(--ok)}.warn{color:var(--warn)}
