:root{--navy:#1b3272;--blue:#2743c8;--red:#e8452c;--ink:#111318;--text:#2b2f36;--muted:#7a8089;--line:#e4e6ea;--bg:#f4f5f7;--white:#fff;--error:#c9271b;--radius:4px}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--text);margin:0;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif}#root{min-height:100vh}h1,h2,h3,.brand{font-family:inherit}.auth-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1.25rem;display:flex}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.95rem;width:100%;max-width:24rem;padding:2.2rem 2rem;display:flex}.card h1{color:var(--ink);letter-spacing:-.02em;margin:0;font-size:1.6rem;font-weight:900}.auth-logo{align-self:flex-start;width:200px;max-width:70%;margin-bottom:.4rem}.muted{color:var(--muted);margin:0}.small{font-size:.82rem}.error{color:var(--error);margin:0;font-size:.9rem;font-weight:600}label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;flex-direction:column;gap:.35rem;font-size:.72rem;font-weight:700;display:flex}input,select{border-radius:var(--radius);color:var(--ink);background:var(--white);border:1px solid #c9ced6;padding:.7rem .8rem;font-size:1rem}input:focus,select:focus{outline:2px solid var(--blue);border-color:var(--blue)}input:disabled{color:var(--muted);cursor:not-allowed;background:#f0f1f3}button{border-radius:var(--radius);background:var(--blue);color:var(--white);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;border:none;padding:.75rem 1.2rem;font-size:.85rem;font-weight:800}button:hover{filter:brightness(1.1)}button:disabled{opacity:.55;cursor:default}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--white);border-top:4px solid var(--ink);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:1.4rem;padding:.65rem 1.4rem;display:flex}.brand{align-items:center;display:flex}.brand img{height:34px;display:block}.topbar nav{flex-wrap:wrap;gap:.2rem;display:flex}.topbar nav a{color:var(--ink);text-transform:uppercase;letter-spacing:.05em;border-bottom:3px solid #0000;padding:.5rem .8rem;font-size:.82rem;font-weight:800;text-decoration:none;position:relative}.topbar nav a:hover{color:var(--blue)}.topbar nav a.active{color:var(--blue);border-bottom-color:var(--blue)}.topbar nav a.nav-cta{background:var(--red);color:var(--white);border-radius:var(--radius);border-bottom:none;margin-left:.4rem}.topbar nav a.nav-cta:hover{color:var(--white);filter:brightness(1.08)}.topbar-right{align-items:center;gap:.7rem;margin-left:auto;display:flex}.imp-banner{background:var(--red);color:var(--white);flex-wrap:wrap;align-items:center;gap:1rem;padding:.6rem 1rem;font-size:.88rem;font-weight:600;display:flex}.imp-banner strong{font-weight:900}.imp-exit{background:var(--white);color:var(--red);white-space:nowrap;margin-left:auto;padding:.4rem .8rem;font-size:.75rem}.news-btn{color:var(--muted);text-transform:none;letter-spacing:0;cursor:pointer;background:0 0;border:none;padding:.5rem .6rem;font-size:.8rem;font-weight:700;position:relative}.news-btn:hover{color:var(--blue);filter:none}.news-dot{background:var(--red);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:0}.nav-dot{background:var(--red);border-radius:50%;width:8px;height:8px;position:absolute;top:4px;right:2px}.news-entry{border-top:1px solid var(--line);margin-top:.85rem;padding:.85rem 0 .3rem}.news-entry strong{color:var(--ink)}.topbar-right .muted{color:var(--muted);font-weight:600}.content{flex:1;justify-content:center;padding:1.6rem 1.25rem;display:flex}.page{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:50rem;padding:1.8rem 1.7rem}.page.narrow{max-width:32rem}.page h1{color:var(--ink);letter-spacing:-.02em;margin:0 0 1rem;font-size:2rem;font-weight:900}.page h2{color:var(--ink);margin:1.6rem 0 .6rem;font-size:1.05rem;font-weight:800}.page h3{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:1rem 0 .45rem;font-size:.72rem;font-weight:700}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.btn{text-align:center;background:var(--blue);color:var(--white);border-radius:var(--radius);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;border:none;padding:.65rem 1.2rem;font-size:.82rem;font-weight:800;text-decoration:none;display:inline-block}.btn.big{background:var(--red);width:100%;margin-top:1rem;padding:.9rem;font-size:.95rem}.btn.sm{padding:.45rem .8rem;font-size:.72rem}.ghost{color:var(--text);background:0 0;border:1px solid #c9ced6;font-weight:700}.ghost.danger{color:var(--error);border-color:#eec3bf}.row-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin:.5rem 0;padding:.8rem 1rem;display:flex}.row-card.col{flex-direction:column;align-items:stretch}.row-card.faded{opacity:.6}.row-card strong{color:var(--ink)}.row-line{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.row-actions{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.chip{white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;border-radius:2px;padding:.22rem .6rem;font-size:.72rem;font-weight:800;display:inline-block}.chip-cash{color:#9a5b00;background:#fff1e0}.chip-voucher{color:#1b3272;background:#e3ecff}.chip-mixed{color:#8a7500;background:#fff8d6}.chip-awaiting{color:#b02318;background:#ffe3e0}.chip-confirmed{color:#17692f;background:#e0f4e6}.chip-completed{color:#4c5a66;background:#eef0f3}.chip-cancelled{color:#777;background:#f0f0f0}.chip-hold{color:#7239b3;background:#f3e8ff}.slot-grid,.method-row{flex-wrap:wrap;gap:.5rem;margin:.4rem 0;display:flex}.slot-btn{background:var(--white);color:var(--ink);border-radius:var(--radius);text-transform:none;letter-spacing:0;border:1.5px solid #c9ced6;flex-direction:column;align-items:center;gap:.15rem;padding:.55rem .85rem;font-size:.9rem;font-weight:800;display:flex}.slot-btn .small{color:var(--muted);font-size:.75rem;font-weight:500}.slot-btn:hover{border-color:var(--blue);color:var(--blue);filter:none}.slot-btn.sel{background:var(--blue);color:var(--white);border-color:var(--blue)}.slot-btn.sel .small{color:#d7e0ff}.inline-form{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0;display:flex}.inline-form input,.inline-form select{padding:.55rem .7rem}.inline-field{flex-direction:row;align-items:center;gap:.6rem;margin:.7rem 0;display:flex}.stack{flex-direction:column;gap:.9rem;display:flex}.check{text-transform:none;letter-spacing:0;color:var(--text);flex-direction:row;align-items:center;gap:.55rem;font-size:.92rem;font-weight:600}fieldset{border:1px solid var(--line);border-radius:var(--radius)}legend{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;padding:0 .35rem;font-size:.72rem;font-weight:700}.notice{border-radius:var(--radius);color:var(--navy);background:#eef2ff;border:1px solid #ccd6f6;padding:.6rem .85rem;font-size:.9rem;font-weight:600}.notes-box{border:1px solid var(--line);border-radius:var(--radius);background:#f7f8fa;padding:.65rem .85rem}.notes-box p{margin:.25rem 0}.codes{flex-direction:column;gap:.45rem;margin:.5rem 0;display:flex}.tile-row{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.6rem;display:grid}.tile{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);border-bottom:3px solid var(--blue);flex-direction:column;gap:.25rem;padding:.9rem;text-decoration:none;display:flex}.tile:hover{border-color:var(--blue)}.tile-n{font-size:1.45rem;font-weight:900}.tile .small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.68rem;font-weight:700}.day-group{margin-bottom:.7rem}.wrap{flex-wrap:wrap}.modal-overlay{z-index:50;background:#1113188c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--white);border-radius:var(--radius);border-top:4px solid var(--red);width:100%;max-width:26rem;max-height:85vh;padding:1.3rem 1.4rem;animation:.15s ease-out modal-in;overflow-y:auto}.modal h2{margin:1rem 0 .4rem}.modal-head{justify-content:space-between;align-items:flex-start;gap:.6rem;display:flex}.modal-head strong{color:var(--ink);font-size:1.1rem;font-weight:900}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (width<=560px){.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:8px 8px 0 0;max-width:none}.content{padding:.7rem}.page{padding:1.1rem}.page h1{font-size:1.5rem}.brand img{height:28px}.topbar{gap:.8rem;padding:.55rem .8rem}}
