@font-face{font-family:RC;font-weight:400;src:url(/fonts/roboto-condensed-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:RC;font-weight:500;src:url(/fonts/roboto-condensed-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:RC;font-weight:700;src:url(/fonts/roboto-condensed-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:Rb;font-weight:400;src:url(/fonts/roboto-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:Rb;font-weight:500;src:url(/fonts/roboto-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:Rb;font-weight:700;src:url(/fonts/roboto-latin-700-normal.woff2) format('woff2')}
:root{--navy:#1d2c3b;--blue:#1d2c3b;--blue2:#2d4359;--gold:#f5b800;--bg:#e8ecef;--card:#fff;--ink:#1d2c3b;--mute:#667684;--line:#d8dfe4;--red:#a32a2a;--red-bg:#fae6e4;--red-line:#d9908a;--warn:#9a4a12;--warn-bg:#fdf1e3;--ok:#2f6b3f;--ok-bg:#e6f1e8;--green:#919f8a}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 Rb,system-ui,"Segoe UI",sans-serif}
h1,h2,h3,.rc,nav a,.btn,.brandtitle,.kpi,.who b,th{font-family:RC,"Arial Narrow",sans-serif}
h1{font-size:2.3rem;font-weight:700;margin:0 0 .3rem;line-height:1.1;color:var(--ink)}h2{font-size:1.45rem;font-weight:700;margin:0 0 .6rem}h3{font-size:1.1rem;margin:0 0 .4rem}
a{color:var(--blue2)}button,input,select,textarea{font:inherit;color:inherit}
header.top{background:var(--navy);color:#fff;display:flex;align-items:center;gap:1rem;padding:.55rem 1rem}
.logotile{background:#fff;border-radius:8px;padding:4px 8px;display:flex;align-items:center;height:56px}.logotile img{height:46px;display:block}
.brandtitle{font-size:1.7rem;font-weight:700;letter-spacing:.2px}.spacer{flex:1}
.who{display:flex;gap:.6rem}.box{border:2px solid #8fa0b0;border-radius:10px;padding:.3rem .8rem;color:#fff;background:none;text-align:left;cursor:pointer;line-height:1.15}
.box b{display:block;font-size:1.05rem}.box small{font-size:.78rem;color:#c3cfda;font-family:RC}
.tabs{background:#fff;border-bottom:1px solid var(--line);padding:.5rem 1rem;display:flex;flex-wrap:wrap;gap:.2rem;overflow-x:auto}
.tabs a{color:var(--blue2);text-decoration:none;padding:.5rem 1rem;border-radius:9px;font-size:1.2rem;font-weight:500;white-space:nowrap;display:flex;gap:.4rem;align-items:center}
.tabs a.on{background:var(--navy);color:#fff;font-weight:700}.tabs a:hover:not(.on){background:#eef1f4}
.badge{background:var(--red);color:#fff;border-radius:99px;font-size:.78rem;padding:0 .45rem;font-weight:700;line-height:1.35}
main{max-width:1240px;margin:0 auto;padding:1.4rem 1.2rem 3rem}
.sub{color:var(--mute);margin:0 0 1.1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.2rem;margin-bottom:1rem}
.row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.grow{flex:1}.mute{color:var(--mute)}.small{font-size:.85rem}
.btn{background:var(--gold);color:var(--navy);border:2px solid var(--gold);border-radius:12px;padding:.6rem 1.1rem;cursor:pointer;font-weight:700;font-size:1.15rem;text-decoration:none;display:inline-block;line-height:1.2}
.btn:hover{filter:brightness(.96)}.btn.sec{background:#fff;color:var(--navy);border-color:var(--navy)}.btn.sm{padding:.3rem .75rem;font-size:1rem;border-radius:10px}.btn:disabled{opacity:.45;cursor:not-allowed}
input,select,textarea{border:1.5px solid var(--line);background:#fff;border-radius:9px;padding:.55rem .7rem;max-width:100%}
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:1px}
textarea{width:100%;min-height:70px}label.f{display:block;font-size:.85rem;color:var(--mute);margin:.6rem 0 .2rem}
.banner{border-radius:12px;padding:.75rem 1rem;margin-bottom:1rem;border:1px solid}.banner.open{background:var(--ok-bg);color:var(--ok);border-color:#9cc7a5}.banner.locked{background:var(--warn-bg);color:var(--warn);border-color:#e0b98f}.banner.err{background:var(--red-bg);color:var(--red);border-color:var(--red-line)}
.pill{display:inline-block;border-radius:999px;padding:.05rem .65rem;font-size:.8rem;font-weight:700;background:#e3e9ee;color:var(--blue2);font-family:RC}.pill.late{background:var(--red-bg);color:var(--red)}.pill.A{background:#dbe5ee}.pill.B{background:#e7ecdf}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.9rem;margin-bottom:1.2rem}
.kcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:.9rem 1rem;color:var(--ink);text-decoration:none;display:block}
.kcard .t{color:var(--mute);font-size:.95rem}.kcard .kpi{font-size:2.5rem;font-weight:700;line-height:1.1;margin:.15rem 0}.kcard .d{color:var(--mute);font-size:.82rem}
.kcard.bad{background:var(--red-bg);border-color:var(--red-line)}.kcard.bad .t,.kcard.bad .kpi{color:var(--red)}
.dish{display:flex;align-items:center;gap:.8rem;padding:.7rem 0;border-bottom:1px solid var(--line)}.dish:last-child{border:0}.dish .nm{flex:1;font-size:1.1rem}.dish .hint{font-size:.78rem;color:var(--mute)}
.step{display:flex;align-items:center;gap:.3rem}.step button{width:48px;height:48px;border-radius:12px;border:2px solid var(--navy);background:#fff;color:var(--navy);font:700 1.7rem/1 RC;cursor:pointer}
.step button:disabled{opacity:.35}.step input{width:76px;text-align:center;font:700 1.4rem RC;height:48px;border:2px solid var(--line)}
.total{font:700 2rem RC;color:var(--navy)}
.sticky{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);padding:.8rem 1.2rem;margin:1rem -1.2rem -1.1rem;border-radius:0 0 14px 14px;display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}
table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--line);vertical-align:top}
thead th{font-size:1rem;font-weight:500;color:var(--mute);border-bottom:2px solid var(--navy);white-space:nowrap}td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
.tbl{padding:0;overflow:hidden}.tbl th,.tbl td{padding-left:1rem;padding-right:1rem}
.scroll{overflow-x:auto}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}
.chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.3rem}.chip{background:#e3e9ee;color:var(--blue2);border-radius:8px;padding:.1rem .5rem;font-size:.85rem}
.login{max-width:400px;margin:10vh auto;padding:0 1rem}.login .card{padding:1.6rem}.login .logotile{border:1px solid var(--line);justify-content:center;margin-bottom:1rem;height:auto;padding:8px}.login input{width:100%;margin-bottom:.7rem}.login .btn{width:100%}.err{color:var(--red)}
.modal{position:fixed;inset:0;background:rgba(15,25,35,.5);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:9}.modal .card{max-width:520px;width:100%;max-height:90vh;overflow:auto;margin:0}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--navy);color:#fff;padding:.7rem 1.2rem;border-radius:10px;z-index:10;font-family:RC;font-size:1.1rem}.toast.bad{background:var(--red)}
.bar{fill:#8c9d9e}.bar.cur{fill:var(--navy)}.bar.fc{fill:#c3cdd2}.axis{fill:var(--mute);font-size:10px}
.ev{font-size:.88rem;border-left:3px solid var(--green);padding:.15rem .6rem;margin:.4rem 0}.ev.late{border-color:var(--red)}
@media (max-width:700px){.brandtitle{display:none}.who .box small{display:none}main{padding:1rem .7rem}h1{font-size:1.8rem}.dish{flex-wrap:wrap}.card{padding:.9rem}.sticky{margin:1rem -.9rem -.9rem;padding:.8rem .9rem}.logotile img{height:36px}.logotile{height:44px}}
@media print{header.top,.tabs,.noprint,.sticky{display:none!important}body{background:#fff;color:#000}.card{border:0;padding:0;break-inside:avoid}main{max-width:none;padding:0}}

.sigpad{width:100%;max-width:700px;aspect-ratio:700/220;border:2px dashed #8fa0b0;border-radius:12px;background:#fff;touch-action:none;display:block;cursor:crosshair}.sigimg{max-width:320px;border:1px solid var(--line);border-radius:8px;background:#fff}

.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}.tiles.small{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.tile{background:#fff;border:2px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s,box-shadow .15s}
.tile.on{border-color:var(--navy);box-shadow:0 3px 12px rgba(29,44,59,.18)}
.tile .pic{position:relative;aspect-ratio:4/3;background:#e3e9ee}.tile .pic img{width:100%;height:100%;object-fit:cover;display:block}
.tile .ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e9eef2,#d5dee5)}
.tile.small .pic{aspect-ratio:16/9}
.tile .qbadge{position:absolute;top:8px;right:8px;background:var(--navy);color:#fff;font:700 1.15rem RC;min-width:34px;text-align:center;padding:.1rem .5rem;border-radius:99px;display:none}.tile.on .qbadge{display:block}
.tile .tname{padding:.6rem .8rem .2rem;font:700 1.2rem/1.2 RC;flex:1}.tile.small .tname{font-size:1.05rem}
.tile .step{justify-content:center;padding:.4rem .6rem .8rem}.tile .step input{width:64px}
.thumb{width:56px;height:42px;object-fit:cover;border-radius:8px;display:block;margin-bottom:.3rem}.ph0{background:#e3e9ee}.hid{display:none}
@media (max-width:700px){.tiles{grid-template-columns:repeat(2,1fr);gap:.7rem}.tiles.small{grid-template-columns:repeat(2,1fr)}.tile .tname{font-size:1.05rem;padding:.5rem .6rem .1rem}.tile .step button{width:42px;height:42px}.tile .step input{width:48px;height:42px;font-size:1.2rem}}
.tile .step input{padding:0}
@media (max-width:700px){.who .box:first-child{display:none}.who .box{padding:.25rem .6rem}.who .box b{font-size:.95rem}.tabs{flex-wrap:nowrap}.tabs a{font-size:1.1rem;padding:.45rem .8rem}}

.box select.brsel{background:transparent;color:#fff;border:0;font:700 1.05rem RC;padding:0;margin:0;max-width:170px;cursor:pointer}.box select option{color:#1d2c3b}label.box{display:block}
@media (max-width:700px){label.box:first-child{display:block}}
