:root{--sea:#0b4f6c;--sea-dark:#073a50;--ink:#13232c;--muted:#5b6b74;--line:#d6dee2;--bg:#f4f7f8;--card:#fff;--danger:#b42318;--danger-bg:#fdecea;--radius:10px;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}*{box-sizing:border-box}body{margin:0}a{color:var(--sea)}h1{margin:0 0 .5rem;font-size:1.5rem}h2{margin:0 0 .5rem;font-size:1.1rem}main{max-width:960px;margin:0 auto;padding:1rem}.narrow{max-width:520px}.muted{color:var(--muted)}.loading{color:var(--muted);padding:2rem 1rem}.top{background:var(--sea);color:#fff;min-height:56px;padding:0 1rem;padding-top:env(safe-area-inset-top);align-items:center;gap:.75rem;display:flex}.top a{color:#fff;align-items:center;gap:.4rem;min-height:48px;text-decoration:none;display:inline-flex}.brand{margin-right:auto;font-size:1.1rem;font-weight:700}.top nav{gap:1rem;display:flex}.signout{padding:0 .25rem}.btn{border:1px solid var(--sea);border-radius:var(--radius);min-height:48px;color:var(--sea);font:inherit;cursor:pointer;background:#fff;justify-content:center;align-items:center;gap:.4rem;padding:0 1.1rem;font-weight:600;text-decoration:none;display:inline-flex}.btn.primary{background:var(--sea);color:#fff;width:100%}.btn.primary:hover{background:var(--sea-dark)}.btn:disabled{opacity:.6;cursor:wait}.heading-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.heading-row h1{margin:0}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin:1rem 0;padding:1rem}.card.dev{border-style:dashed}.tiles{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin:1rem 0;display:grid}.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);flex-direction:column;gap:.25rem;padding:1rem;font-weight:600;text-decoration:none;display:flex}.tile svg{color:var(--sea)}.tile small{color:var(--muted);font-weight:400}.alert{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius);padding:.75rem 1rem}form{flex-direction:column;gap:1rem;display:flex}.field{flex-direction:column;gap:.3rem;font-weight:600;display:flex}.field small{font-weight:400}.field .error{color:var(--danger)}input,select{border:1px solid var(--line);border-radius:var(--radius);min-height:48px;font:inherit;color:var(--ink);background:#fff;width:100%;padding:0 .75rem;font-weight:400}input:focus,select:focus{outline:2px solid var(--sea);outline-offset:1px}.field.invalid input,.field.invalid select{border-color:var(--danger)}.check{align-items:center;gap:.6rem;min-height:48px;display:flex}.check input{width:22px;height:22px;min-height:22px}table.list{border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);width:100%;font-size:.95rem;overflow:hidden}table.list th,table.list td{text-align:left;border-bottom:1px solid var(--line);padding:.7rem .75rem}table.list th{background:#eaf0f2;font-weight:600}table.list td a{min-height:28px;font-weight:600;display:inline-block}table.list .num{text-align:right;font-variant-numeric:tabular-nums}table.list tr.inactive td{color:var(--muted)}@media (width<=640px){table.list thead{display:none}table.list,table.list tbody,table.list tr,table.list td{width:100%;display:block}table.list tr{border-bottom:1px solid var(--line);padding:.5rem 0}table.list td{border:0;padding:.15rem .75rem;text-align:left!important}table.list td:not(:first-child):before{content:attr(data-label) ": ";color:var(--muted)}.top nav a span{display:none}}fieldset{border:0;flex-direction:column;gap:1rem;min-width:0;margin:0;padding:0;display:flex}h2.sub{margin:.5rem 0 -.25rem}.row2{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.link{min-height:44px;color:var(--sea);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 .25rem;font-weight:600;text-decoration:underline}.btn.big{min-height:64px;font-size:1.15rem}.btn.danger{border-color:var(--danger);color:var(--danger);width:100%}.actions{grid-template-columns:1fr 1fr;gap:.75rem;margin:.75rem 0 1.25rem;display:grid}.actions .big{grid-column:1/-1}.day h2{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;margin-top:1.25rem;padding-bottom:.3rem;display:flex}.day h2 small{color:var(--muted);font-size:.9rem;font-weight:400}ul.entries{margin:0;padding:0;list-style:none}ul.entries a{border-bottom:1px solid var(--line);min-height:56px;color:var(--ink);flex-direction:column;gap:.15rem;padding:.7rem .25rem;text-decoration:none;display:flex}.pill{border-radius:999px;align-self:flex-start;margin-top:.2rem;padding:.1rem .6rem;font-size:.8rem;font-weight:600}.pill.wait{color:#7a5300;background:#fff4d6}.pill.bad{background:var(--danger-bg);color:var(--danger)}.syncbar{border-radius:var(--radius);align-items:center;gap:.5rem;padding:.25rem .75rem;font-size:.95rem;display:flex}.syncbar span{flex:1}.syncbar.ok{color:#15603a;background:#e5f4ec}.syncbar.wait{color:#7a5300;background:#fff4d6}.syncbar.bad{background:var(--danger-bg);color:var(--danger)}.syncbar .link{color:inherit}.syncbar-wrap .alert,.syncbar-wrap .notice{margin:.5rem 0 0}.notice{border-radius:var(--radius);background:#eaf0f2;align-items:flex-start;padding:.5rem .5rem .5rem 0;display:flex}.notice ul{flex:1;margin:.25rem 0}.notice-inline{border-radius:var(--radius);background:#eaf0f2;padding:.75rem 1rem}.warn{color:#5c3f00;border-radius:var(--radius);background:#fff4d6;padding:.75rem 1rem}.warn p{align-items:center;gap:.4rem;margin:0;font-weight:600;display:flex}.warn ul{margin:.5rem 0 .75rem;padding-left:1.2rem}.dutybar{border-bottom:1px solid var(--line);background:#eaf0f2;justify-content:space-between;align-items:center;gap:.5rem;padding:0 1rem;display:flex}ul.pick{flex-direction:column;gap:.6rem;padding:0;list-style:none;display:flex}ul.pick .btn{justify-content:flex-start;width:100%;min-height:56px;font-size:1.1rem}.pin-dots{justify-content:center;gap:1rem;margin:1rem 0;display:flex}.pin-dots span{border:2px solid var(--sea);border-radius:50%;width:18px;height:18px}.pin-dots span.on{background:var(--sea)}.keypad{grid-template-columns:repeat(3,1fr);gap:.6rem;max-width:320px;margin:0 auto;display:grid}.keypad .btn{min-height:64px;font-size:1.4rem}.segmented{border:1px solid var(--sea);border-radius:var(--radius);grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.segmented label{min-height:48px;color:var(--sea);cursor:pointer;justify-content:center;align-items:center;font-weight:600;display:flex}.segmented label.on{background:var(--sea);color:#fff}.segmented input{opacity:0;width:1px;min-height:0;position:absolute}.install .link{margin-left:.5rem}.syncbar-wrap{margin-bottom:1rem}.stamp-value{align-items:center;gap:.75rem;min-height:48px;display:flex}.stamp-value strong{font-variant-numeric:tabular-nums;font-size:1.25rem}.btn.now{flex:1}.card.underway{border-color:var(--sea);border-width:2px;flex-direction:column;gap:.75rem;display:flex}.card.underway>div{flex-direction:column;gap:.2rem;display:flex}.card.underway strong{font-size:1.15rem}.actions .past{grid-column:1/-1;justify-content:center;align-items:center;gap:.3rem;min-height:44px;display:inline-flex}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.small{font-size:.85rem}.toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.toolbar input[type=month]{width:auto}.hero{flex-direction:column;margin:1rem 0 .75rem;display:flex}.hero span{color:var(--muted)}.hero strong{font-size:3rem;font-weight:600;line-height:1.1}.stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:1.25rem;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;padding:.75rem 1rem;display:flex}.stat span{color:var(--muted);font-size:.9rem}.stat strong{font-size:1.4rem;font-weight:600}figure.chart{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin:1.25rem 0;padding:1rem;position:relative}figure.chart figcaption{flex-direction:column;margin-bottom:.5rem;display:flex}figure.chart figcaption span{color:var(--muted);font-size:.9rem}figure.chart svg{font-variant-numeric:tabular-nums;width:100%;height:auto;font-family:inherit;display:block}.chart-tip{pointer-events:none;color:var(--ink);white-space:nowrap;z-index:2;background:#fff;border:1px solid #0b0b0b1a;border-radius:8px;flex-direction:column;padding:.4rem .6rem;font-size:.85rem;display:flex;position:absolute;transform:translate(12px,-110%);box-shadow:0 4px 16px #0000001f}.table-wrap{overflow-x:auto}table.kpis caption{text-align:left;padding:.5rem .75rem;font-weight:600}table.kpis small{color:var(--muted);display:block}.filters{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-bottom:.75rem;display:grid}details.audit{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:.75rem}details.audit summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}details.audit li{margin-bottom:.4rem}@media (width<=640px){.hero strong{font-size:2.4rem}}figure.chart svg{width:auto;max-width:100%}@media (width<=640px){table.kpis caption{width:100%;display:block}figure.chart{padding:.75rem}}
