:root{--navy:#0c2c43;--navy-2:#143f5b;--teal:#1aa78c;--teal-dark:#11816d;--mint:#dff4ee;--sky:#eaf3f7;--paper:#fffdfa;--sand:#f3eee6;--ink:#172a35;--muted:#657782;--line:#d9e1e4;--danger:#b24b41;--shadow:0 20px 60px #08233321}*{box-sizing:border-box}html{background:#f4f7f7;min-width:320px}body{color:var(--ink);background:#f4f7f7;margin:0;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic UI,Yu Gothic,Noto Sans JP,sans-serif;font-size:15px}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #1aa78c52}button:disabled{opacity:.5;cursor:not-allowed}.app-shell{min-height:100vh;padding-top:72px}.topbar{z-index:50;color:#fff;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#092638f7;border-bottom:1px solid #ffffff1f;align-items:center;gap:28px;height:72px;padding:0 34px;display:flex;position:fixed;inset:0 0 auto;box-shadow:0 8px 24px #0a23321f}.brand{color:#fff;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:0;display:flex}.brand-mark{background:var(--teal);border-radius:11px 11px 11px 4px;place-items:center;width:38px;height:38px;font:800 21px/1 Georgia,serif;display:grid}.brand>span:last-child{letter-spacing:.08em;flex-direction:column;align-items:flex-start;display:flex}.brand strong{letter-spacing:.12em;font:800 18px/1 Georgia,serif}.brand small{opacity:.68;letter-spacing:.12em;margin-top:5px;font-size:8px}.mode-switch{align-self:stretch;margin:0 auto;display:flex}.mode-switch button{color:#ffffffab;cursor:pointer;background:0 0;border:0;min-width:118px;font-weight:700;position:relative}.mode-switch button:after{content:"";background:0 0;border-radius:4px 4px 0 0;height:3px;position:absolute;inset:auto 18px 0}.mode-switch button.active{color:#fff}.mode-switch button.active:after{background:#38d0ad}.system-state{color:#c6e9df;align-items:center;gap:8px;font-size:12px;display:flex}.system-state span{background:#44d3a8;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #44d3a81f}.toast{z-index:100;color:#78372f;background:#fff4f1;border:1px solid #f0c5be;border-radius:12px;max-width:min(90vw,680px);padding:13px 20px;font-weight:700;position:fixed;top:88px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #47221b26}.toast.success{color:#0d6554;background:#ecfaf6;border-color:#bce1d8}.guest-page{grid-template-columns:minmax(360px,.82fr) minmax(620px,1.18fr);min-height:calc(100vh - 72px);display:grid}.guest-hero{color:#fff;background:radial-gradient(circle at 78% 20%,#2bc5a647,#0000 27%),linear-gradient(145deg,#0c324c 0%,#0b283d 58%,#081f30 100%);flex-direction:column;justify-content:center;height:calc(100vh - 72px);padding:8vh 9%;display:flex;position:sticky;top:72px;overflow:hidden}.guest-hero:after{content:"P";color:#ffffff06;font:700 70vh/1 Georgia,serif;position:absolute;bottom:-15vh;right:-4vw}.hero-orbit{pointer-events:none;border:1px solid #42d5b42e;border-radius:50%;position:absolute}.orbit-one{width:480px;height:480px;top:-120px;right:-220px}.orbit-two{width:720px;height:720px;top:-240px;right:-340px}.eyebrow{color:var(--teal);letter-spacing:.18em;margin:0 0 16px;font-size:11px;font-weight:800}.guest-hero .eyebrow{color:#5cd6ba}.guest-hero h1{z-index:1;letter-spacing:-.045em;max-width:520px;margin:0;font-family:Georgia,Yu Mincho,serif;font-size:clamp(42px,4.6vw,78px);line-height:1.12;position:relative}.hero-lead{color:#d5e3e9;max-width:510px;margin:28px 0 46px;font-size:17px;line-height:1.85}.hero-route{z-index:1;align-items:center;gap:12px;max-width:620px;display:flex;position:relative}.hero-route div{grid-template-rows:auto auto;grid-template-columns:auto 1fr;column-gap:10px;display:grid}.hero-route span{color:#72dfc5;border:1px solid #72dfc580;border-radius:50%;grid-row:1/3;place-items:center;width:34px;height:34px;font-size:10px;display:grid}.hero-route b{letter-spacing:.12em;font-size:10px}.hero-route small{color:#91aab5;margin-top:3px;font-size:10px}.hero-route i{background:#fff3;flex:1;min-width:18px;height:1px}.hero-note{z-index:1;background:#ffffff0e;border:1px solid #ffffff1a;border-radius:14px;align-items:center;gap:16px;max-width:450px;margin-top:44px;padding:16px 18px;display:flex;position:relative}.hero-note span{color:#f4cc85;font:700 24px/1 Georgia,serif}.hero-note p{color:#b8cbd3;margin:0;font-size:11px;line-height:1.6}.kiosk-panel{background:var(--paper);padding:34px clamp(32px,5vw,82px) 80px}.language-row{justify-content:flex-end;gap:4px;margin-bottom:32px;display:flex}.language-row button{min-height:40px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:20px;padding:0 14px;font-size:12px}.language-row button.active{color:#0c6f5d;background:var(--mint);border-color:#b8ddd5;font-weight:800}.form-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;padding-bottom:22px;display:flex}.form-heading span{color:var(--teal-dark);letter-spacing:.14em;font-size:10px;font-weight:800}.form-heading h2{letter-spacing:-.03em;margin:5px 0 0;font-family:Georgia,Yu Mincho,serif;font-size:32px}.form-heading>p{color:var(--muted);margin:0;font-size:12px}.kiosk-panel form{gap:26px;margin-top:28px;display:grid}fieldset{border:0;min-width:0;margin:0;padding:0}legend,.field-label{color:#29414f;margin-bottom:12px;font-weight:800;display:block}legend span{color:#fff;background:var(--navy);border-radius:50%;place-items:center;width:24px;height:24px;margin-right:9px;font-size:11px;display:inline-grid}.flow-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.flow-grid button,.special-grid button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:11px;min-height:50px;padding:10px;font-weight:700}.flow-grid button.active,.special-grid button.active{border-color:var(--teal);color:#0c725f;box-shadow:inset 0 0 0 1px var(--teal);background:#edfaf6}.hotel-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.hotel-card{border:1px solid var(--line);cursor:pointer;text-align:left;background:#fff;border-radius:13px;align-items:center;gap:12px;min-height:76px;padding:12px;display:flex;position:relative;overflow:hidden}.hotel-card:before{content:"";background:#aaa;width:4px;position:absolute;inset:0 auto 0 0}.hotel-card.coral:before{background:#c96b62}.hotel-card.blue:before{background:#4d83ad}.hotel-card.gold:before{background:#c39a4d}.hotel-card.green:before{background:#609278}.hotel-card i{background:var(--sand);border-radius:11px;place-items:center;width:42px;height:42px;font:700 17px/1 Georgia,serif;display:grid}.hotel-card span{flex-direction:column;min-width:0;display:flex}.hotel-card b{font-size:13px}.hotel-card small{color:var(--muted);letter-spacing:.08em;margin-top:5px;font-size:9px}.hotel-card.active{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal);background:#f4fcfa}.hotel-card.active:after{content:"✓";color:#fff;background:var(--teal);border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;display:grid;position:absolute;top:8px;right:10px}.form-grid{grid-template-columns:1.5fr .72fr;gap:18px;display:grid}.field-label{margin:0}.field-label input,.field-label select,.crew-settings input,.crew-settings select{width:100%;min-height:52px;color:var(--ink);background:#fff;border:1px solid #cad5da;border-radius:10px;margin-top:10px;padding:0 14px}.field-label input::placeholder{color:#9caaae}.field-label>small,.bag-count-field>small{color:var(--muted);margin-top:7px;font-size:10px;font-weight:500;display:block}.bag-count-field legend{margin-bottom:10px}.stepper{background:#fff;border:1px solid #cad5da;border-radius:10px;grid-template-columns:50px 1fr 50px;min-height:52px;display:grid;overflow:hidden}.stepper button{color:var(--navy);background:var(--sky);cursor:pointer;border:0;font-size:24px}.stepper strong{justify-content:center;align-items:baseline;gap:5px;padding-top:10px;font-size:24px;display:flex}.stepper small{font-size:11px}.special-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.consent-row{background:var(--sand);cursor:pointer;border-radius:12px;grid-template-columns:24px 1fr;align-items:flex-start;gap:12px;padding:15px;display:grid}.consent-row input{width:21px;height:21px;accent-color:var(--teal-dark);margin:0}.consent-row span{font-size:12px;font-weight:700;line-height:1.5}.consent-row small{color:var(--muted);margin-top:4px;font-size:10px;font-weight:500;display:block}.primary-action,.secondary-action,.text-action{cursor:pointer;border-radius:11px;min-height:52px;font-weight:800}.primary-action{color:#fff;background:var(--teal-dark);border:0;justify-content:center;align-items:center;gap:16px;padding:0 24px;display:flex;box-shadow:0 9px 24px #11816d3b}.primary-action:hover{background:#0d6e5e}.primary-action span{font-size:22px}.secondary-action{color:var(--navy);background:#fff;border:1px solid #b8c8ce;padding:0 20px}.text-action{color:var(--teal-dark);background:0 0;border:0}.result-page{background:linear-gradient(135deg,#edf7f4,#f6f3ed);grid-template-columns:.82fr 1.18fr;min-height:calc(100vh - 72px);display:grid}.result-message{background:#fff;flex-direction:column;justify-content:center;padding:8vh 10%;display:flex}.success-mark{color:#fff;background:var(--teal);width:64px;height:64px;box-shadow:0 0 0 12px var(--mint);border-radius:50%;place-items:center;margin-bottom:26px;font-size:28px;display:grid}.result-message h1{margin:0;font-family:Georgia,Yu Mincho,serif;font-size:clamp(34px,4vw,58px)}.result-message>p:not(.eyebrow){max-width:520px;color:var(--muted);line-height:1.9}.result-number{border:1px solid var(--line);background:#f8faf9;border-radius:12px;flex-direction:column;gap:6px;margin:24px 0;padding:18px 22px;display:flex}.result-number small{color:var(--muted)}.result-number strong{color:var(--navy);font:700 22px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.result-actions{gap:9px;display:grid}.print-sheet{align-content:center;gap:18px;padding:5vh 8%;display:grid;overflow:auto}.bag-label,.claim-ticket{color:#102631;background:#fff;border:1px dashed #9aabad;border-radius:8px;overflow:hidden;box-shadow:0 14px 36px #0f2c3b1a}.label-band{color:#fff;background:var(--navy);justify-content:space-between;align-items:center;padding:10px 15px;display:flex}.label-band b,.claim-ticket header b{letter-spacing:.1em;font:800 17px/1 Georgia,serif}.label-band span{font-weight:800}.label-body{grid-template-columns:96px 1fr auto;align-items:center;gap:15px;padding:15px;display:grid}.label-body small,.claim-ticket small{color:var(--muted);letter-spacing:.08em;font-size:8px}.label-body strong,.claim-ticket strong{margin:4px 0 7px;font:700 16px/1.25 ui-monospace,SFMono-Regular,Menlo,monospace;display:block}.label-body p,.claim-ticket p{margin:3px 0;font-weight:800}.bag-fraction{color:var(--navy);background:var(--sky);border-radius:9px;align-items:baseline;gap:4px;padding:12px;display:flex}.bag-fraction b{font:700 32px/1 Georgia,serif}.label-route{text-align:center;background:#edf5f7;grid-template-columns:1fr auto 1fr;gap:15px;padding:10px 15px;font-size:12px;font-weight:800;display:grid}.label-route b{color:var(--teal-dark)}.label-flags{gap:8px;padding:8px 15px;display:flex}.label-flags b{color:#8a4d21;background:#fff1dc;border-radius:4px;padding:4px 8px;font-size:9px}.claim-ticket{grid-template-columns:112px 1fr;align-items:center;gap:18px;padding:54px 18px 18px;display:grid;position:relative}.claim-ticket header{color:#fff;background:var(--teal-dark);justify-content:space-between;padding:10px 14px;display:flex;position:absolute;inset:0 0 auto}.claim-ticket header span{font-size:10px;font-weight:800}.workspace-page{background:#f2f6f6;min-height:calc(100vh - 72px);padding:48px clamp(24px,6vw,92px) 90px}.workspace-heading{justify-content:space-between;align-items:flex-end;gap:32px;max-width:1400px;margin:0 auto 28px;display:flex}.workspace-heading h1{color:var(--navy);margin:0;font-family:Georgia,Yu Mincho,serif;font-size:clamp(30px,3vw,44px)}.workspace-heading>div>p:last-child{color:var(--muted);margin:8px 0 0}.crew-settings{gap:10px;display:flex}.crew-settings label{color:var(--muted);font-size:10px;font-weight:800}.crew-settings select,.crew-settings input{min-width:190px;min-height:42px;margin-top:6px}.crew-settings input{width:140px;min-width:120px}.scan-bar{color:#fff;background:var(--navy);max-width:1400px;box-shadow:var(--shadow);border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;margin:0 auto 28px;padding:8px;display:grid}.scan-icon{color:#76ddc5;padding:0 16px;font-size:28px}.scan-bar input{color:#fff;background:0 0;border:0;min-height:58px;font:700 20px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.scan-bar input::placeholder{color:#ffffff59}.scan-bar button{min-height:50px;color:var(--navy);cursor:pointer;background:#62d6bd;border:0;border-radius:9px;padding:0 28px;font-weight:900}.scan-empty{text-align:center;border:1px solid var(--line);background:#fff;border-radius:16px;place-items:center;max-width:1400px;min-height:430px;margin:auto;padding:40px;display:grid}.scan-empty>*{margin:0}.scan-empty p{color:var(--muted)}.scanner-shape{width:100px;height:100px;margin-bottom:22px;position:relative}.scanner-shape i{border-color:var(--teal);border-style:solid;width:30px;height:30px;position:absolute}.scanner-shape i:first-child{border-width:4px 0 0 4px;inset:0 auto auto 0}.scanner-shape i:nth-child(2){border-width:4px 4px 0 0;inset:0 0 auto auto}.scanner-shape i:nth-child(3){border-width:0 0 4px 4px;inset:auto auto 0 0}.scanner-shape i:nth-child(4){border-width:0 4px 4px 0;inset:auto 0 0 auto}.shipment-card{border:1px solid var(--line);background:#fff;border-radius:16px;max-width:1400px;margin:auto;overflow:hidden;box-shadow:0 12px 36px #11314012}.shipment-summary{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.4fr auto;align-items:center;gap:32px;padding:24px 28px;display:grid}.shipment-summary small{color:var(--muted);font-size:10px;font-weight:800}.shipment-summary h2{color:var(--navy);margin:5px 0 8px;font:700 19px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.shipment-summary p{color:var(--muted);margin:5px 0 0}.shipment-summary strong{margin-top:6px;display:block}.status-pill{white-space:nowrap;border-radius:20px;justify-content:center;min-width:72px;padding:7px 10px;font-size:11px;font-weight:900;display:inline-flex}.status-issued{color:#586b74;background:#e9eef0}.status-accepted{color:#17688c;background:#e2f2f9}.status-in_transit{color:#8a5b0d;background:#fff1cf}.status-received{color:#5b4b8c;background:#ece8f8}.status-delivered{color:#0e705c;background:#dcf5ee}.status-progress{border-bottom:1px solid var(--line);background:#f8faf9;grid-template-columns:repeat(5,1fr);padding:24px 30px;display:grid}.status-progress div{color:#89979d;justify-items:center;gap:7px;font-size:10px;display:grid;position:relative}.status-progress div:before{content:"";background:#d8e0e2;height:2px;position:absolute;top:14px;left:-50%;right:50%}.status-progress div:first-child:before{display:none}.status-progress span{z-index:1;background:#fff;border:2px solid #cad4d7;border-radius:50%;place-items:center;width:29px;height:29px;font-weight:900;display:grid;position:relative}.status-progress .done{color:var(--teal-dark)}.status-progress .done:before{background:var(--teal)}.status-progress .done span{color:#fff;border-color:var(--teal);background:var(--teal)}.bag-list{gap:8px;padding:18px 28px;display:grid}.bag-list>div{border:1px solid var(--line);border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:13px 15px;display:grid}.bag-number{color:#fff;background:var(--navy);border-radius:9px;place-items:center;width:36px;height:36px;font:700 17px/1 Georgia,serif;display:grid}.bag-list b,.bag-list small{display:block}.bag-list small{color:var(--muted);margin-top:4px;font-size:10px}.status-actions{background:var(--navy);color:#fff;grid-template-columns:1fr 1.4fr;align-items:center;gap:24px;padding:20px 28px;display:grid}.status-actions small{color:#74d8c2;font-weight:900}.status-actions p{color:#a9bec8;margin:5px 0 0;font-size:10px;line-height:1.6}.status-actions>div:last-child{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.status-actions button{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff2b;border-radius:8px;min-height:44px;font-size:11px;font-weight:800}.status-actions button:hover:not(:disabled){color:var(--navy);background:#63d8be}.admin-page{background:#eef3f4}.stats-grid{grid-template-columns:repeat(4,1fr);gap:14px;max-width:1400px;margin:0 auto 20px;display:grid}.stats-grid article{border:1px solid var(--line);background:#fff;border-radius:13px;padding:20px}.stats-grid article.alert{background:#fff8f6;border-color:#e7b8b0}.stats-grid span{color:var(--muted);font-size:11px;font-weight:800}.stats-grid strong{color:var(--navy);margin:10px 0 6px;font:700 38px/1 Georgia,serif;display:block}.stats-grid small{color:var(--muted);margin-left:4px;font:700 12px/1 sans-serif}.stats-grid p{color:var(--muted);margin:0;font-size:10px}.operations-table{border:1px solid var(--line);background:#fff;border-radius:15px;max-width:1400px;margin:auto;overflow:hidden}.table-tools{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;display:flex}.table-tools>div{align-items:center;gap:10px;display:flex}.table-tools h2{margin:0;font-size:18px}.table-tools>div>span{color:var(--teal-dark);background:var(--mint);border-radius:12px;padding:3px 8px;font-size:10px;font-weight:800}.table-tools label{border:1px solid var(--line);border-radius:9px;align-items:center;gap:8px;min-width:320px;padding:0 12px;display:flex}.table-tools input{background:0 0;border:0;flex:1;min-height:40px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}th{color:var(--muted);text-align:left;letter-spacing:.04em;background:#f7f9f9;padding:11px 16px;font-size:10px}td{vertical-align:middle;border-top:1px solid #edf1f2;padding:14px 16px;font-size:12px}td strong,td small,td b{display:block}td small{color:var(--muted);margin-top:4px;font-size:9px}td b{margin-top:3px}tr.is-alert td:first-child{box-shadow:inset 3px 0 #d56b5e}td button{min-height:34px;color:var(--navy);cursor:pointer;background:#fff;border:1px solid #bed0d6;border-radius:7px;padding:0 12px;font-weight:800}.empty-cell{color:var(--muted);text-align:center;padding:52px}.app-footer{color:#809097;background:#e7edef;justify-content:space-between;padding:14px 32px;font-size:9px;display:flex}.app-footer p{margin:0}@media (width<=1100px){.guest-page{grid-template-columns:1fr}.guest-hero{height:auto;min-height:560px;padding:80px 8%;position:relative;top:0}.result-page{grid-template-columns:1fr}.print-sheet{padding:40px 8%}.workspace-heading{flex-direction:column;align-items:flex-start}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=720px){.app-shell{padding-top:116px}.topbar{flex-wrap:wrap;gap:10px;height:116px;padding:12px 16px}.brand{flex:1}.brand small,.system-state{display:none}.mode-switch{order:3;width:100%;height:48px}.mode-switch button{flex:1;min-width:0}.guest-hero{min-height:500px;padding:64px 26px}.hero-route{display:none}.guest-hero h1{font-size:45px}.kiosk-panel{padding:24px 18px 60px}.language-row{justify-content:flex-start;overflow-x:auto}.form-heading h2{font-size:27px}.form-heading>p{display:none}.flow-grid,.hotel-grid,.form-grid,.special-grid{grid-template-columns:1fr}.guest-page{min-height:calc(100vh - 116px)}.result-message{padding:60px 22px}.print-sheet{padding:24px 14px}.label-body{grid-template-columns:72px 1fr}.label-body svg{width:72px;height:72px}.bag-fraction{grid-column:1/-1;justify-content:center}.workspace-page{padding:30px 14px 70px}.crew-settings{flex-direction:column;width:100%}.crew-settings label,.crew-settings select,.crew-settings input{width:100%}.scan-bar{grid-template-columns:auto 1fr}.scan-bar button{grid-column:1/-1}.scan-bar input{min-width:0;font-size:13px}.shipment-summary{grid-template-columns:1fr;gap:15px}.status-progress{padding:20px 8px}.status-progress b{font-size:8px}.status-actions{grid-template-columns:1fr}.status-actions>div:last-child{grid-template-columns:repeat(2,1fr)}.stats-grid{grid-template-columns:1fr 1fr;gap:8px}.stats-grid strong{font-size:30px}.table-tools{flex-direction:column;align-items:stretch}.table-tools label{min-width:0}.app-footer{flex-direction:column;gap:5px}}@media print{@page{size:A4;margin:12mm}body,.app-shell,.result-page{background:#fff!important}.no-print,.result-message,.app-footer{display:none!important}.app-shell{padding:0}.result-page{min-height:0;display:block}.print-sheet{padding:0;display:block;overflow:visible}.bag-label,.claim-ticket{break-inside:avoid;box-shadow:none;margin:0 0 8mm}.bag-label{min-height:61mm}.claim-ticket{min-height:48mm}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
