:root{font-family:system-ui,-apple-system,'Yu Gothic','Hiragino Kaku Gothic ProN',sans-serif;font-size:16px;color:#182b44;background:#f2f6fb;line-height:1.55}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer;min-height:48px;padding:11px 18px;font-weight:750;border-radius:12px;background:#1c5ca8;color:white;transition:.12s ease}button:hover:not(:disabled){background:#114982}button:disabled{cursor:not-allowed;opacity:.48}button.secondary{background:#eaf2fc;color:#163d72;border:1px solid #9fbddd}button.secondary:hover:not(:disabled){background:#d5e6fb}button.danger{background:#9f3547}button.danger:hover{background:#872537}button.small{min-height:38px;padding:7px 12px;font-size:.9rem}button.full{width:100%}a{color:#155ba8}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #fbbf24;outline-offset:3px}
.site-header{background:white;border-bottom:1px solid #d7e3f2}.header-inner{max-width:1360px;margin:auto;padding:15px 22px;display:flex;align-items:center;gap:18px;justify-content:space-between;flex-wrap:wrap}.brand{text-decoration:none;font-weight:900;color:#174e92;font-size:1.18rem}.header-inner span{font-weight:600;color:#60748d}.visitor-link{background:#f0f6ff;border-radius:10px;padding:9px 13px;font-weight:700;text-decoration:none}
main{max-width:1360px;margin:25px auto;padding:0 20px}.panel{background:white;border:1px solid #d7e4f4;border-radius:18px;padding:22px;margin:0 0 18px;box-shadow:0 6px 24px rgba(18,58,112,.035)}.panel h2{margin:0 0 8px;font-size:1.28rem}.panel h3{margin:4px 0}.panel-title{display:flex;justify-content:space-between;align-items:start;gap:10px}h1{font-size:1.85rem;line-height:1.35;margin:6px 0}h2,h3{line-height:1.4}.eyebrow{font-size:.75rem;color:#52789d;letter-spacing:.11em;text-transform:uppercase;font-weight:800;margin:0}.muted{color:#556a83}.tiny{font-size:.86rem}.required{color:#aa3043;font-size:.82rem}
label{font-weight:700;display:block;margin:12px 0 4px}input,select,textarea{display:block;width:100%;border:1px solid #9ab4d3;border-radius:11px;padding:11px 12px;background:#fff;color:#142d4b;margin-top:5px}textarea{resize:vertical}input[type=checkbox]{display:inline;width:auto;transform:scale(1.28);margin-right:7px}.checkline{display:flex;align-items:center;gap:9px}.checkline input{margin:0}.columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.login-card{max-width:560px;margin:7vh auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sessionbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:10px 0 17px}.tab-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}.tab-nav button{background:white;color:#254b77;border:1px solid #c8d8eb}.tab-nav button.active{background:#164f91;color:white;border-color:#164f91}.nav-count{background:#e7ecf8;border-radius:999px;color:#18395e;font-size:.76rem;padding:2px 6px}.overview{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:15px}.overview-chip{background:#fff;border:1px solid #dae6f4;border-radius:12px;padding:9px 15px;color:#65788e}.overview-chip b{color:#154a82;margin-left:6px}.workspace-grid{display:grid;grid-template-columns:minmax(330px,43%) minmax(0,57%);gap:17px;align-items:start}.list-column,.detail-column{min-width:0}.searchline{display:flex;gap:8px;align-items:end;margin:14px 0}.searchline input{margin:0;min-width:0;flex:1}.booking-list{display:grid;gap:9px;margin:13px 0}.booking-item{border:1px solid #d7e4f4;border-radius:13px;padding:12px;background:#fafcff;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.booking-item.is-selected{border:2px solid #2a6fbe;background:#eff7ff}.booking-item h3{font-size:1.04rem;margin:0 0 4px;overflow-wrap:anywhere}.booking-item p{font-size:.87rem;margin:4px 0;color:#5b6e82}.booking-item button{white-space:nowrap}.pill{display:inline-flex;padding:3px 9px;border-radius:99px;font-weight:750;font-size:.82rem;background:#eaf0f9;color:#355b85}.pill.vip{background:#f4e6fb;color:#754b94}.pill.good{background:#def4e7;color:#1c6740}.pill.warn{background:#fff1d5;color:#755315}.pager{display:flex;align-items:center;justify-content:space-between;gap:7px}.pager span{font-size:.9rem;color:#5d7185}.empty-state{text-align:center;padding:60px 20px;color:#5d7185}.empty-icon{font-size:2.5rem}.metric-row{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0}.metric{background:#f2f7ff;border-radius:12px;padding:10px 14px;min-width:110px}.metric b{display:block;font-size:1.4rem;color:#184f90}.metric span{font-size:.85rem;color:#516b86}.record{border:1px solid #d7e3f3;border-radius:14px;padding:15px;margin:15px 0;background:#fcfdff}.record .record-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.step-label{display:inline-flex;background:#e4effc;color:#164b82;border-radius:9px;padding:4px 10px;font-weight:800;font-size:.8rem}.step-help{background:#eef6ff;border-left:4px solid #4488cd;padding:11px;margin:12px 0;border-radius:6px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.actions>*{flex:0 0 auto}.result{background:#e9f8ee;border:1px solid #9edab2;padding:12px;border-radius:11px;color:#205c3f;margin:12px 0}.success-message:not(:empty){background:#e8f9ef;padding:11px;border-radius:9px;color:#165c39;margin-top:12px}.detail-title{display:flex;justify-content:space-between;align-items:start;gap:10px}.detail-title h2{font-size:1.45rem}.booking-ref{font-size:.9rem;font-weight:700;color:#55708d}.tag{display:inline-block;border-radius:30px;padding:4px 10px;font-size:.85rem;background:#e8f2ff;color:#225084}.tag.good{background:#d9f4e7;color:#1c6846}.tag.warn{background:#fff0d7;color:#815918}details{margin:14px 0;border:1px solid #d9e6f3;border-radius:12px;padding:12px}summary{font-weight:800;color:#19538d;cursor:pointer}.callout{border-left:4px solid #2b76b4;padding:10px 12px;background:#f0f6fd;border-radius:4px}#alerts:not(:empty){border:1px solid #dfa4ab;background:#fff0f1;color:#752c38;padding:15px;border-radius:12px;margin-bottom:15px}.download-link{display:inline-block;padding:12px 17px;border-radius:10px;background:#e4f1ff;font-weight:800}.view[hidden],section[hidden],[hidden]{display:none!important}footer{text-align:center;color:#596e85;padding:30px 15px;font-size:.85rem}
.visitor-main{max-width:760px}.visitor-panel{max-width:710px;margin:5vh auto;background:white;border:1px solid #d7e5f2;border-radius:22px;padding:clamp(20px,5vw,45px);box-shadow:0 10px 24px #234b740a;text-align:center}.visitor-panel h1{font-size:clamp(1.9rem,6vw,2.5rem);margin:18px 0}.visitor-panel p{font-size:1.11rem;line-height:1.7}.visitor-panel button{min-height:60px;font-size:1.1rem}.visitor-panel label{text-align:left}.visitor-status{background:#eaf3ff;border-radius:15px;padding:17px;font-size:1.35rem;font-weight:800;margin:22px 0}.visitor-steps{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;font-size:.85rem}.visitor-steps span{background:#eaf2fc;padding:6px 11px;border-radius:30px;font-weight:750;color:#345a82}.visitor-steps .on{background:#215faa;color:white}#visitorMessage:not(:empty){background:#fff1db;border:1px solid #f4d098;padding:14px;border-radius:12px;color:#6b4f1a;font-weight:700}
@media(max-width:1020px){.workspace-grid{grid-template-columns:1fr}.detail-column{scroll-margin-top:15px}}@media(max-width:620px){:root{font-size:17px}.header-inner{padding:12px;gap:6px}.header-inner span{display:none}main{padding:0 10px;margin:12px auto}.panel{padding:15px;border-radius:14px}.columns{grid-template-columns:1fr 1fr}.sessionbar{align-items:start}.sessionbar h1{font-size:1.35rem}.tab-nav button{flex:1;min-width:40%;padding:10px 5px}.searchline{display:grid;grid-template-columns:1fr auto}.searchline button{padding:8px 12px}.booking-item{grid-template-columns:1fr auto}.booking-item button{padding:8px 12px}.visitor-panel{margin:14px auto}.actions button{flex:1}.overview-chip{flex:1}}

.reference-generator{display:flex;align-items:stretch;gap:8px}.reference-generator input{flex:1;min-width:0;margin:0}.reference-generator button{white-space:nowrap;flex:0 0 auto}@media(max-width:620px){.reference-generator{flex-wrap:wrap}.reference-generator button{width:100%}}

/* Excel / CSV reservation import */
.import-help{border-radius:12px;background:#f0f6ff;padding:14px 16px;margin:12px 0 20px;line-height:1.8;color:#173a61}
.import-summary{border-radius:12px;border:1px solid #bdd5ef;padding:18px;margin:22px 0;background:#f7fbff}
.import-scroll{max-width:100%;overflow-x:auto;margin:16px 0}
.import-table{border-collapse:collapse;min-width:700px;width:100%;font-size:14px}
.import-table th,.import-table td{border:1px solid #d8e4f0;padding:10px;text-align:left;white-space:nowrap}
.import-table th{background:#e7f1fc}
.import-table tbody tr:nth-child(even){background:#f7fafc}

.network-notice{font-size:.9rem;background:#e7f3ff;color:#173c5c;padding:.6rem 1rem;border-radius:.6rem;margin:0 0 1rem}.network-notice.offline{background:#fff1d8;color:#713d00;font-weight:700}
