:root{--navy:#14233c;--muted:#5b6676;--brand:#316075;--soft:#d1dfe9;--line:#d5dbe3;--bg:#fff}*{box-sizing:border-box;margin:0}html,body{background:var(--bg);min-height:100%}body{color:var(--navy);-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.shell{max-width:28rem;min-height:100vh;padding:calc(32px + env(safe-area-inset-top,0px)) 24px calc(32px + env(safe-area-inset-bottom,0px));flex-direction:column;justify-content:center;gap:1rem;margin:0 auto;display:flex}.company{color:var(--brand);font-size:1rem;font-weight:600}h1{letter-spacing:-.02em;font-size:3rem;font-weight:800;line-height:1.05}.bar{background:var(--brand);border-radius:2px;width:3rem;height:4px;margin:.25rem 0 .75rem}h2{font-size:1.75rem;font-weight:700;line-height:1.2}h2.signed{font-size:2rem}p{color:var(--muted);font-size:1.125rem;line-height:1.5}p.small{font-size:1rem}p.error{color:#b3261e;font-weight:600}form{flex-direction:column;gap:1rem;display:flex}.field{width:100%;min-height:3.5rem;color:var(--navy);border:2px solid var(--line);background:#fff;border-radius:12px;padding:0 1rem;font-size:1.25rem}.field:focus{border-color:var(--brand);outline:none}.field.code{text-align:center;letter-spacing:.4em;font-size:2rem;font-weight:700}.btn{color:#fff;background:var(--brand);border:2px solid var(--brand);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;width:100%;min-height:3.5rem;padding:0 1.25rem;font-family:inherit;font-size:1.25rem;font-weight:700;text-decoration:none;display:flex}.btn.secondary{color:var(--navy);border-color:var(--line);background:#fff}.btn:disabled{opacity:.5;cursor:default}.logo{align-self:flex-start;width:auto;height:4.5rem}.shell.top{justify-content:flex-start}.signedline{font-size:1rem}.weeknav{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.weeknav>div{text-align:center;flex:1}.weeklabel{font-size:1.25rem;font-weight:800}.navbtn{width:3.5rem;min-height:3.5rem;color:var(--navy);border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;font-family:inherit;font-size:2rem;line-height:1}.navbtn:disabled{opacity:.3;cursor:default}.seg{gap:.5rem;display:flex}.seg button{min-height:3rem;color:var(--navy);border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;flex:1;font-family:inherit;font-size:1.125rem;font-weight:700}.seg button.on{color:#fff;background:var(--brand);border-color:var(--brand)}.rate{background:var(--soft);color:var(--navy);border-radius:12px;flex-wrap:wrap;align-items:baseline;gap:.25rem .6rem;padding:.9rem 1rem;font-size:1.125rem;display:flex}.rate .big{white-space:nowrap;font-size:2rem;font-weight:800}.card{border:2px solid #d3dfe8;border-left:8px solid var(--brand);background:#eef3f7;border-radius:14px;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.card.is-done{background:#e6f2ea;border-color:#bcd9c6 #bcd9c6 #bcd9c6 #2f7d4f}.card.is-late{background:#fff6dc;border-color:#f0dfaa #f0dfaa #f0dfaa #d19a1a}.card.is-missed{background:#fde9e7;border-color:#f2c4c0 #f2c4c0 #f2c4c0 #b3261e}.card-top{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.card h3{font-size:1.25rem;font-weight:700;line-height:1.25}.hint{color:var(--muted);font-size:1rem;line-height:1.4}.result{color:var(--navy);font-size:1.0625rem}.result .when{color:var(--muted);font-size:.9375rem}.chip{border-radius:999px;flex:none;padding:.25rem .7rem;font-size:.9375rem;font-weight:700}.chip.ok{background:var(--brand);color:#fff}.chip.late{color:#7a4b00;background:#fff1d6}.chip.bad{color:#b3261e;background:#fde2e0}.row{gap:.75rem;display:flex}.row .btn{flex:1}select.field{appearance:none;background:#fff}.names{margin:0;padding-left:1.25rem;font-size:1.0625rem;line-height:1.5}.warn{color:#7a4b00;background:#fff1d6;border-radius:10px;padding:.5rem .75rem;font-size:1rem;font-weight:600}.warnbox{color:#7a4b00;background:#fff1d6;border-radius:12px;flex-direction:column;gap:.75rem;padding:.75rem;display:flex}.warnbox p{color:#7a4b00}.okmsg{color:var(--brand);font-size:1.0625rem;font-weight:700}.slot{flex-direction:column;gap:.5rem;padding-top:.25rem;display:flex}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chipbtn{min-height:3rem;color:var(--navy);border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;padding:0 1rem;font-family:inherit;font-size:1.0625rem;font-weight:600}.chipbtn.on{color:#fff;background:var(--brand);border-color:var(--brand)}.chipbtn .small{opacity:.8;font-weight:500}h3{font-size:1.25rem;font-weight:700}.seg button{padding:0 .25rem;font-size:1rem}.seg.wrap{flex-wrap:wrap}.seg.wrap button{flex:30%}.row.three{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.row.three .btn{padding:0 .25rem;font-size:1.125rem}a.btn.disabled{opacity:.35;pointer-events:none}.chip.plain{background:var(--soft);color:var(--navy)}.warnbox.plain{border:2px solid var(--line);color:var(--navy);background:#fff}textarea.field.big{resize:vertical;min-height:7rem;padding:.75rem 1rem;font-family:inherit;line-height:1.4}textarea.field.over{border-color:#b3261e}.updatebar{z-index:10;padding:calc(.5rem + env(safe-area-inset-top,0px)) 1rem .5rem;background:var(--brand);color:#fff;justify-content:center;align-items:center;gap:.75rem;font-weight:700;display:flex;position:fixed;top:0;left:0;right:0}.updatebar button{min-height:2.5rem;color:var(--navy);cursor:pointer;background:#fff;border:0;border-radius:10px;padding:0 1rem;font-family:inherit;font-size:1rem;font-weight:700}.filebtn{cursor:pointer}.report{flex-direction:column;gap:.75rem;display:flex}.rsec{border-top:2px solid var(--line);flex-direction:column;gap:.35rem;padding-top:.5rem;display:flex}.rsec p{color:var(--navy);font-size:1rem;line-height:1.4}.rsec p.hint{color:var(--muted)}.agedrow{flex-direction:column;gap:.5rem;padding:.5rem 0;font-size:1rem;display:flex}.agedrow .row .btn{min-height:3rem;font-size:1rem}.warntext{color:#b3261e}.printonly{display:none}@media print{@page{size:letter;margin:.5in}body{color:#000;font-size:10.5pt}.noprint,.updatebar,.company,.bar,h1,.logo,.signedline,p.small,.btn{display:none!important}.printonly{display:block}.shell,.shell.top{gap:.4rem;max-width:none;min-height:0;padding:0;display:block}.report{gap:.3rem}.rsec{break-inside:avoid;border-top:1px solid #999;padding-top:.2rem}.rsec h3{font-size:11.5pt}.rsec p,.names{margin:0;font-size:10pt;line-height:1.25}.rsec{gap:.15rem}.agedrow{padding:.05rem 0;font-size:9.5pt;line-height:1.2}.names{padding-left:1rem}}details.sec{border:2px solid var(--line);border-radius:14px;padding:0 1rem}details.sec[open]{flex-direction:column;gap:.75rem;padding-bottom:1rem;display:flex}details.sec>summary{cursor:pointer;align-items:center;min-height:3.5rem;font-size:1.25rem;font-weight:700;display:flex}.card.paused{opacity:.6}label.check{align-items:center;gap:.6rem;font-size:1.0625rem;display:flex}label.check input{width:1.5rem;height:1.5rem}label.hint{color:var(--muted);font-size:1rem}.row select.field{flex:1}.app{max-width:28rem;min-height:100vh;margin:0 auto}.apphead{padding:calc(.75rem + env(safe-area-inset-top,0px)) 1rem .75rem;border-bottom:2px solid var(--line);z-index:5;background:#fff;align-items:center;gap:.75rem;display:flex;position:sticky;top:0}.headlogo{width:auto;height:2.5rem}.headtitle{font-size:1.25rem;font-weight:800;line-height:1.1}.appmain{padding:1rem 1rem calc(6.5rem + env(safe-area-inset-bottom,0px));flex-direction:column;gap:1rem;display:flex}.bottomnav{z-index:6;border-top:2px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);background:#fff;max-width:28rem;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.bottomnav button{min-height:4rem;color:var(--muted);cursor:pointer;background:#fff;border:0;border-top:4px solid #0000;flex:1;padding:0 .1rem;font-family:inherit;font-size:.9375rem;font-weight:700}.bottomnav button.on{color:var(--brand);border-top-color:var(--brand)}.menubtn{justify-content:flex-start}.linkbtn{color:var(--brand);text-align:left;cursor:pointer;background:0 0;border:0;padding:.25rem 0;font-family:inherit;font-size:1.0625rem;font-weight:600}.routecard{text-align:left;color:var(--navy);cursor:pointer;width:100%;font-family:inherit}.stop{gap:.5rem}.stoprow{align-items:flex-start;gap:.75rem;display:flex}.stopnum{background:var(--brand);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-weight:800;display:flex}.stopmain{flex-direction:column;align-items:flex-start;gap:.25rem;display:flex}.stopmain a.hint{text-decoration:underline}.row.two{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@media print{.app,.appmain{max-width:none;padding:0}.apphead{display:none!important}}.bar2{background:var(--soft);border-radius:999px;height:.9rem;overflow:hidden}.bar2>div{background:var(--brand);height:100%}.photogrid{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.thumb{aspect-ratio:1;background:var(--soft);border-radius:10px;display:block;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.thumbx{color:#fff;cursor:pointer;background:#14233cd9;border:0;border-radius:50%;width:2.25rem;height:2.25rem;font-size:1.5rem;line-height:1;position:absolute;top:.25rem;right:.25rem}.stopnum.ok{background:var(--navy)}.greet h2{font-size:1.6rem}.tiles{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}.tile{text-align:left;cursor:pointer;color:var(--navy);background:#fff;border:2px solid #0000;border-radius:16px;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.9rem;font-family:inherit;display:flex;box-shadow:0 1px 2px #14233c14,0 4px 12px #14233c0d}.tile:active{transform:scale(.99)}.tiletop{justify-content:space-between;align-items:center;width:100%;display:flex}.ticon{width:1.6rem;height:1.6rem}.ring{width:2.5rem;height:2.5rem}.tilevalue{white-space:nowrap;margin-top:.35rem;font-size:1.9rem;font-weight:800;line-height:1.1}.tilelabel{font-size:1rem;font-weight:700}.tilesub{color:var(--muted);font-size:.9rem;line-height:1.25}.tone-blue{color:var(--brand);background:#eef3f7;border-color:#d3dfe8}.tone-green{color:#2f7d4f;background:#e6f2ea;border-color:#bcd9c6}.tone-warn{color:#9a6a00;background:#fff6dc;border-color:#f0dfaa}.tone-bad{color:#b3261e;background:#fde9e7;border-color:#f2c4c0}.tile .tilevalue,.tile .tilelabel{color:var(--navy)}.dashcols{grid-template-columns:1fr;gap:1rem;display:grid}.panel{background:#fff;border:2px solid #e1e8ee;border-radius:16px;flex-direction:column;gap:.15rem;padding:.9rem 1rem;display:flex;box-shadow:0 1px 2px #14233c0d}.panel h3{margin-bottom:.35rem}.arow{min-height:3.25rem;color:var(--navy);text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #edf1f4;align-items:center;gap:.7rem;width:100%;padding:.4rem .2rem;font-family:inherit;font-size:1.0625rem;display:flex}.arow:first-of-type{border-top:0}.arow .chev{color:var(--muted);margin-left:auto;font-weight:700}.dot{background:var(--brand);border-radius:50%;flex:none;width:.8rem;height:.8rem}.dot.tone-green{background:#2f7d4f}.dot.tone-warn{background:#d19a1a}.dot.tone-bad{background:#b3261e}.dot.tone-plain{background:#9bb0c0}.sidenav{display:none}.appcol{min-width:0}@media (width>=900px){.app{grid-template-columns:16rem 1fr;max-width:none;display:grid}.sidenav{border-right:2px solid var(--line);background:#f6f9fb;flex-direction:column;gap:.25rem;height:100vh;padding:1.25rem .9rem;display:flex;position:sticky;top:0;overflow-y:auto}.sidebrand{align-items:center;gap:.6rem;margin-bottom:.75rem;font-size:1.2rem;display:flex}.sidegroup{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:.9rem .5rem .25rem;font-size:.8rem;font-weight:800}.sideitem{text-align:left;width:100%;min-height:2.75rem;color:var(--navy);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0 .75rem;font-family:inherit;font-size:1.0625rem;font-weight:600;display:block}.sideitem:hover{background:#e6eef3}.sideitem.on{background:var(--brand);color:#fff}.sidefoot{margin-top:auto;padding-top:1rem}.bottomnav{display:none}.appmain{width:100%;max-width:72rem;padding:1.5rem 2rem 3rem}.apphead{padding:1rem 2rem}.apphead .headlogo{display:none}.tiles{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr))}.dashcols{grid-template-columns:1fr 1fr;align-items:start}}@media print{.sidenav{display:none!important}.app{display:block!important}}body{background:#f4f7f9}.card{box-shadow:0 1px 2px #14233c0f}.card h3{letter-spacing:-.005em}.chip{letter-spacing:.01em}.btn{transition:filter .12s,transform 50ms}.btn:hover{filter:brightness(1.06)}.btn:active{transform:scale(.99)}.btn.secondary:hover{filter:none;background:#f2f6f9}.field{background:#fff}.apphead{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffffff5}.panel .arow:hover{background:#f4f8fa}.tile{transition:box-shadow .15s,transform .1s}.tile:hover{transform:translateY(-1px);box-shadow:0 2px 4px #14233c1a,0 8px 20px #14233c14}h2{letter-spacing:-.01em}.hint{font-size:.97rem}@media (width>=900px){body{background:#eef2f5}.appmain{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:1rem 1.25rem;display:grid}.appmain>*{grid-column:1/-1}.appmain>.card,.appmain>section.card{grid-column:auto}.appmain>form.card{grid-column:1/-1;max-width:40rem}.appmain>.tiles,.appmain>.dashcols,.appmain>.rate,.appmain>.weeknav,.appmain>.seg,.appmain>.chips,.appmain>.report,.appmain>details.sec{grid-column:1/-1}.card .btn{align-self:flex-start;width:auto;min-width:9rem}.card .row .btn,.card .row.three .btn,.card .row.two .btn{align-self:stretch;width:100%;min-width:0}.apphead{position:sticky}.tilevalue{font-size:2.1rem}.field,textarea.field.big{max-width:40rem}.menubtn{max-width:24rem}h2{font-size:1.9rem}}.seclabel{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-top:.25rem;font-size:.85rem;font-weight:800}.progresspanel{gap:.5rem}.progresshead{flex-wrap:wrap;align-items:baseline;gap:.6rem;font-size:1.05rem;display:flex}.progresshead .big{white-space:nowrap;font-size:1.9rem;font-weight:800}.crow{border:2px solid #e1e8ee;border-left:8px solid var(--brand);background:#fff;border-radius:14px;box-shadow:0 1px 2px #14233c0f}.crow.ok{background:#f3f9f5;border-left-color:#2f7d4f}.crow.late{background:#fffaea;border-left-color:#d19a1a}.crow.bad{background:#fdf1ef;border-left-color:#b3261e}.crowhead{align-items:center;gap:.5rem;min-height:4rem;padding:.35rem .5rem .35rem .75rem;display:flex}.ctitle{text-align:left;color:var(--navy);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:.15rem;padding:.4rem 0;font-family:inherit;font-size:1.125rem;display:flex}.csub{color:var(--muted);font-size:.95rem;font-weight:500}.cchev{color:var(--muted);cursor:pointer;background:0 0;border:0;width:2.5rem;min-height:3rem;font-size:1.4rem}.cbox{color:#fff;background:#fff;border:3px solid #9bb0c0;border-radius:50%;flex:none;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;padding:0;font-size:1.1rem;font-weight:800;display:flex}.cbox.quick{cursor:pointer;border-color:var(--brand)}.cbox.quick:hover{background:#e6eef3}.cbox.ok{background:#2f7d4f;border-color:#2f7d4f}.cbox.late{background:#d19a1a;border-color:#d19a1a}.cbox.bad{background:#b3261e;border-color:#b3261e}.crow .card{box-shadow:none;background:0 0;border:0;border-top:1px solid #e3eaef;border-radius:0 0 12px 12px;padding:.75rem}@media (width>=900px){.appmain>.crow{grid-column:auto;align-self:start}}
