:root{--lagoon:#0b3d4f;--reef:#13738a;--coral:#ff7a59;--sand:#f6f1e7;--ink:#13262d;--mute:#5d7178;--line:#dfe8e6;--ok:#1f8a5b;--warn:#b7791f;--bad:#c0392b;--card:#fff;--nav:64px}
*{box-sizing:border-box}html,body{margin:0}body{font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--sand);color:var(--ink);-webkit-tap-highlight-color:transparent}
a{color:var(--reef)}h1,h2,h3{margin:0 0 .5rem;line-height:1.2}h1{font-size:1.35rem}h2{font-size:1.1rem}
.top{position:sticky;top:0;z-index:5;background:var(--lagoon);color:#fff;display:flex;align-items:center;gap:.6rem;padding:calc(env(safe-area-inset-top) + .7rem) 1rem .7rem}
.top .brand{font-weight:700}.top .hotel{opacity:.8;font-size:.85rem}.top .sp{flex:1}.top .bell{position:relative;background:none;border:0;color:#fff;font-size:1.3rem;min-width:44px;min-height:44px}
.badge{display:inline-block;min-width:1.3em;padding:0 .35em;border-radius:99px;background:var(--coral);color:#fff;font-size:.72rem;font-weight:700;text-align:center}
.top .bell .badge{position:absolute;top:4px;right:2px}
main{padding:1rem 1rem calc(var(--nav) + 1.5rem + env(safe-area-inset-bottom));max-width:720px;margin:0 auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1rem;margin:0 0 1rem;box-shadow:0 1px 2px rgba(11,61,79,.05)}
.muted{color:var(--mute);font-size:.9rem}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.row>.grow{flex:1}
.btn{appearance:none;border:0;border-radius:999px;background:var(--reef);color:#fff;font-weight:600;font-size:1rem;min-height:48px;padding:0 1.25rem;cursor:pointer}
.btn.coral{background:var(--coral)}.btn.ghost{background:#fff;color:var(--reef);border:1.5px solid var(--reef)}.btn.bad{background:var(--bad)}.btn.sm{min-height:40px;font-size:.9rem;padding:0 1rem}.btn.block{width:100%}.btn:disabled{opacity:.5}
label{display:block;font-weight:600;font-size:.9rem;margin:.6rem 0 .25rem}
input,select,textarea{width:100%;font:inherit;min-height:48px;padding:.6rem .8rem;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}textarea{min-height:90px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--reef);border-color:transparent}
.seg{display:flex;background:#e9f0ef;border-radius:999px;padding:4px;gap:4px}.seg button{flex:1;min-height:44px;border:0;border-radius:999px;background:none;font:inherit;font-weight:600;color:var(--mute)}.seg button.on{background:#fff;color:var(--lagoon);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.pill{display:inline-block;padding:.15rem .6rem;border-radius:99px;font-size:.78rem;font-weight:700;background:#e9f0ef;color:var(--lagoon)}
.pill.ok{background:#dff3e8;color:var(--ok)}.pill.warn{background:#fdf0d9;color:var(--warn)}.pill.bad{background:#fbe3e0;color:var(--bad)}.pill.coral{background:#ffe8e1;color:#c4502f}
.list{list-style:none;margin:0;padding:0}.list li{display:flex;gap:.75rem;align-items:center;padding:.8rem 0;border-top:1px solid var(--line)}.list li:first-child{border-top:0}.list .grow{flex:1;min-width:0}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.tile{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem;min-height:96px;text-align:left;font:inherit;color:inherit;cursor:pointer}.tile b{display:block;font-size:1.05rem}.tile .big{font-size:1.6rem;font-weight:800;color:var(--lagoon)}
.qr{background:#fff;border-radius:16px;padding:1rem;text-align:center}.qr img{width:min(78vw,300px);height:auto;image-rendering:pixelated}.qr .ref{font:700 1.4rem ui-monospace,monospace;letter-spacing:.08em}
.bnav{position:fixed;left:0;right:0;bottom:0;z-index:6;height:calc(var(--nav) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid var(--line);display:flex}
.bnav a,.snav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;text-decoration:none;color:var(--mute);font-size:.72rem;font-weight:600;position:relative}
.bnav a .i{font-size:1.35rem;line-height:1}.bnav a.on{color:var(--lagoon)}.bnav a.on::before{content:"";position:absolute;top:0;left:25%;right:25%;height:3px;border-radius:0 0 3px 3px;background:var(--coral)}.bnav .badge{position:absolute;top:6px;left:56%}
.snav{display:none}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--mute);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}
.tablewrap{overflow-x:auto}.toast{position:fixed;left:50%;bottom:calc(var(--nav) + 1rem);transform:translateX(-50%);background:var(--ink);color:#fff;padding:.75rem 1.1rem;border-radius:12px;z-index:9;max-width:90vw}.toast.err{background:var(--bad)}
.login{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(160deg,var(--lagoon),var(--reef))}.login .card{width:100%;max-width:400px}
.phase{font-weight:700}.phase.open{color:var(--ok)}.phase.late{color:var(--warn)}.phase.closed{color:var(--bad)}
.qcols{display:grid;gap:1rem}.desk-only{display:none}
@media (min-width:1024px){
 :root{--nav:0px}body{display:grid;grid-template-columns:240px 1fr;grid-template-rows:auto 1fr;min-height:100vh}
 .top{grid-column:1/3}.bnav{display:none}
 .snav{display:flex;flex-direction:column;gap:2px;padding:1rem .75rem;background:#fff;border-right:1px solid var(--line);position:sticky;top:60px;height:calc(100vh - 60px);overflow:auto}
 .snav a{flex:none;flex-direction:row;justify-content:flex-start;gap:.7rem;padding:.7rem .9rem;border-radius:12px;font-size:.95rem;color:var(--ink)}.snav a .i{width:1.4rem;text-align:center}.snav a.on{background:#e6f1f2;color:var(--lagoon)}.snav a .badge{position:static;margin-left:auto}
 main{max-width:1180px;width:100%;padding:1.5rem 2rem}.tiles{grid-template-columns:repeat(4,1fr)}.qcols{grid-template-columns:1fr 1fr}.desk-only{display:block}.mob-only{display:none}.toast{bottom:1.5rem}
 .grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
}
#app{display:contents}
@media (min-width:1024px){body:has(.login){display:block}}
