:root{--bg:#071827;--nav:#082039;--card:#123148;--card2:#153b52;--line:#2b526c;--ink:#eaf6ff;--mute:#a7bfd1;--teal:#43d4d0;--green:#59dfa7;--gold:#ffd25b;--red:#ff9494;--shadow:0 17px 45px #0003;font:14px/1.45 Inter,system-ui,-apple-system,'Segoe UI',sans-serif;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 5%,#123f5c 0%,var(--bg) 47%,#061421 100%);color:var(--ink);min-height:100vh}a{color:#6fe7ee;text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(25px,3vw,36px);line-height:1.14;letter-spacing:-.8px}h2{font-size:22px}h3{font-size:17px}em{color:var(--teal);font-style:normal}small,.small{font-size:12px}.muted{color:var(--mute)}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.4px;color:var(--teal);text-transform:uppercase}code{font:13px monospace;background:#0c2339;padding:2px 5px;border-radius:5px}.app-shell{min-height:100vh;display:grid;grid-template-columns:254px 1fr}.sidebar{background:linear-gradient(#092b43,#081a2c);border-right:1px solid var(--line);padding:23px 17px;display:flex;flex-direction:column;gap:22px}.side-brand{display:flex;align-items:center;gap:9px}.side-brand img{width:49px;height:49px;object-fit:contain}.side-brand strong{font-size:16px;white-space:nowrap}.side-brand small{display:block;color:#b7d0de;letter-spacing:1px;font-size:10px}.vessel{border:1px solid #3e7089;border-radius:12px;padding:14px;background:#11334a}.vessel b{font-size:13px;letter-spacing:1.3px}.vessel small{display:block;margin-top:5px;color:var(--mute)}.nav{display:flex;flex-direction:column;gap:8px}.nav button{background:none;color:#c1d6e4;border:1px solid transparent;border-radius:11px;text-align:left;padding:13px;transition:.1s}.nav button:hover,.nav button.active{background:#19445f;color:white;border-color:#2e637f}.side-footer{margin-top:auto;color:#90acbf;font-size:11px;line-height:1.7}.side-footer img{width:37px;height:37px;float:left;object-fit:contain;margin-right:7px}.side-footer b{color:#d9f2ff}.side-footer span{display:block;clear:both;padding-top:9px}.main{padding:27px clamp(14px,3vw,48px);width:100%;max-width:1600px;margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:23px}.topbar h1{margin:5px 0 0}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.online,.role-pill,.badge{border:1px solid #37718a;border-radius:100px;padding:8px 11px;color:#cff3f8;background:#15374e;font-size:11px;white-space:nowrap;font-weight:750}.online{color:#8eefd2;background:#154b48;border-color:#24786c}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 14px;border:1px solid #426b83;border-radius:10px;color:var(--ink);background:#19394f;transition:.15s;text-align:center;font-weight:680}.btn:hover{filter:brightness(1.17);text-decoration:none}.btn.primary{background:linear-gradient(115deg,#1595a6,#117483);color:white;border-color:#269eac}.btn.success{background:#087f58;color:white;border-color:#1ba775}.btn.warn{background:#865b09;border-color:#cb9230}.btn.danger{background:#822f3a;border-color:#bd5360}.btn.ghost{background:#09253b}.btn.soft{background:#21475d}.btn.block{display:flex;width:100%}.btn.tiny{font-size:11px;padding:7px 11px}.section{border:1px solid var(--line);border-radius:15px;background:linear-gradient(155deg,#15374b,#10273b);padding:20px;margin:0 0 19px}.section.alt{background:linear-gradient(155deg,#0d3041,#0d2537)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.section-head h2{margin:0}.section-head p{margin:4px 0 0;color:var(--mute)}.notice{border:1px solid #557791;background:#17394c;border-radius:12px;padding:13px 15px;color:#c9ddeb;font-size:12px;line-height:1.55;margin:15px 0}.warning{border-color:#ac812c;background:#4a3b1d;color:#ffe8ac}.danger-note{border-color:#b05f61;background:#552a36;color:#ffcdcf}.error{color:#ffb2b2;margin:12px 0}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin-bottom:19px}.stat{border:1px solid #376079;border-radius:15px;padding:15px 17px;background:linear-gradient(140deg,#173e56,#123147)}.stat small{display:block;color:#b5c9d7;font-size:11px}.stat b{display:block;font-size:35px;line-height:1.3;letter-spacing:-1px}.stat.green b{color:var(--green)}.stat.gold b{color:var(--gold)}.stat.teal b{color:var(--teal)}.stat.red b{color:var(--red)}.stat .foot{color:#9bbacd;font-size:10px}.number-board{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.num-button{border:1px solid #3a5e74;background:#173b52;color:var(--ink);border-radius:11px;padding:7px 12px;display:flex;align-items:center;gap:9px}.num-button b{display:inline-grid;place-items:center;background:linear-gradient(130deg,#ffe395,#efbf46);border-radius:8px;color:#122334;font-size:26px;width:42px;height:42px}.num-button small{display:block;text-align:left;font-size:10px;color:#b8ccda;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.num-button.closed b{background:#7c9aaf}.next-number{margin-left:auto;border:1px solid #568199;padding:10px 13px;border-radius:11px;font-size:11px;color:#cbe3ed}.next-number strong{font-size:29px;color:var(--gold);padding-left:10px}.tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.tools input,.tools select{min-width:190px}input,textarea,select{display:block;width:100%;background:#0b253a;border:1px solid #42647b;border-radius:9px;color:var(--ink);padding:11px 12px;outline-offset:2px;outline-color:var(--teal)}label{display:block;font-weight:650;font-size:12px;color:#c4dce9}label input,label textarea,label select{margin-top:7px}textarea{resize:vertical;min-height:110px}.guest-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.guest-card{border:1px solid #3a6681;border-radius:16px;padding:16px;background:linear-gradient(130deg,#173a52,#0e2a41);box-shadow:var(--shadow);min-width:0}.guest-card.review{border-color:#d4a045}.guest-card-head{display:flex;gap:12px;align-items:flex-start}.guest-id-tile,.photo-box{height:144px;width:144px;flex:0 0 144px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;text-align:center}.guest-id-tile{background:linear-gradient(150deg,#ffe798,#edbc3f);color:#152637;border:2px solid #ffecb3}.guest-id-tile small{color:#1e2b35;font-size:12px;font-weight:900;letter-spacing:.6px}.guest-id-tile strong{font-size:76px;font-weight:900;line-height:1.05;letter-spacing:-4px}.guest-id-tile span{font-size:11px;font-weight:850}.photo-box{border:2px solid #80b9ce;background:linear-gradient(140deg,#24617a,#12354e);color:#d6eff8}.photo-box img{width:100%;height:100%;object-fit:cover}.photo-box strong{font-size:48px}.photo-box small{font-size:11px;font-weight:850;color:#83dae8}.guest-data{padding:2px 1px;min-width:0;flex:1}.guest-data h3{margin:8px 0 1px;font-size:16px;overflow-wrap:anywhere}.guest-data .company{font-size:12px;color:#bfd1dd}.guest-data .sub{font-size:11px;color:#91afc3;margin-top:8px}.status{display:inline-block;border-radius:20px;padding:6px 10px;font-weight:800;font-size:10px;text-transform:uppercase;letter-spacing:.25px}.status.onboard{color:#98f2cb;background:#16584b}.status.registered{color:#ffe2a0;background:#574015}.status.exited{color:#d4e2ee;background:#385365}.status.cancelled{color:#ffbcbc;background:#593342}.purpose{border:1px solid #2e5974;background:#0e2d43;border-radius:10px;padding:9px 11px;margin-top:11px;font-size:13px;font-weight:700}.purpose small{display:block;font-size:10px;font-weight:600;color:#9ab5c7}.meta-row{display:flex;flex-wrap:wrap;gap:8px;margin:11px 0}.chip{border:1px solid #355e78;border-radius:8px;padding:6px 9px;background:#1b3a51;color:#cfe1ed;font-size:11px}.chip.ack{color:#6ee9bd}.chip.alert{color:#ffda84;border-color:#b88f46}.card-actions{display:flex;gap:7px;flex-wrap:wrap;border-top:1px solid #2d536b;padding-top:12px}.empty{text-align:center;border:1px dashed #52728b;border-radius:13px;padding:34px;color:#9eb8c9}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid .wide{grid-column:1/-1}.action-list{display:grid;gap:10px}.log-row,.message-row{border:1px solid #34596e;background:#112c41;border-radius:12px;padding:13px}.log-row{display:flex;justify-content:space-between;gap:20px}.log-row small{color:#94b2c6}.message-row{margin-bottom:10px}.message-row .msg-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.message-row b{display:block}.message-row p{margin:8px 0}.result{text-align:center;background:#0f2b42;border:1px solid #3b6179;border-radius:14px;padding:21px;margin:12px 0}.qr-wrap{display:flex;gap:25px;flex-wrap:wrap;align-items:stretch}.qr-item{flex:1 1 250px;border:1px solid #386983;border-radius:14px;padding:20px;text-align:center;background:#12364c}.qr-frame{margin:16px auto;width:228px;min-height:228px;background:white;border-radius:12px;padding:14px;display:grid;place-items:center}.qr-frame img,.qr-frame canvas{margin:auto}.qr-item h3{margin:0}.url-text{font-size:11px;color:#9cc6d4;overflow-wrap:anywhere}.center-screen{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{background:linear-gradient(#12384f,#0a253c);border:1px solid #426b83;border-radius:20px;padding:30px;width:min(100%,440px);box-shadow:var(--shadow)}.auth-logo{width:74px;height:74px;object-fit:contain;margin-bottom:12px}.auth-card h1{margin:7px 0 12px}.auth-card p{color:#b2c8d6}.auth-card label{margin:14px 0}.auth-card button{margin-top:15px}.splash{min-height:100vh;display:grid;place-content:center;text-align:center}.splash img{width:88px;height:88px;margin:auto}.splash h1{margin:10px 0}.guest-shell{min-height:100vh;max-width:840px;margin:auto;padding-bottom:35px}.guest-header{display:flex;align-items:center;gap:14px;padding:20px;background:#0c2a41;border-bottom:1px solid #3f7189}.guest-header img{height:64px;width:64px;object-fit:contain}.guest-header strong{font-size:23px}.guest-header small{display:block;color:#a6c8d8}.guest-container{padding:19px}.guest-container .section{padding:24px}.guest-footer{color:#9cb9c9;text-align:center;font-size:11px;padding:14px}.guest-hero{text-align:center;padding:19px}.guest-big-number{height:145px;width:145px;margin:8px auto 15px;background:linear-gradient(145deg,#ffedaa,#f2c342);border-radius:16px;display:grid;place-items:center;color:#172b37;font-size:76px;font-weight:950}.briefing-scroll{max-height:340px;overflow-y:auto;border:1px solid #416e86;background:#09243a;border-radius:12px;padding:19px;color:#d8eaf1;line-height:1.8;white-space:pre-wrap;margin:15px 0}.check-line{display:flex;align-items:flex-start;gap:12px;padding:12px;background:#164258;border-radius:12px}.check-line input{width:20px;height:20px;flex:0 0 20px;margin:0}.check-line span{font-weight:500}.guest-msg{padding:15px;border:1px solid #3a6480;border-radius:13px;background:#13364d;margin-top:11px}.guest-msg.urgent{border-color:#bf7b38;background:#533720}.guest-msg p{white-space:pre-wrap}.guest-msg .meta{font-size:11px;color:#a9c9d6}.app-footer{border:1px solid #2d5b76;border-radius:12px;padding:12px 15px;margin-top:28px;background:#11354b;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.app-footer img{width:42px;height:42px;object-fit:contain}.app-footer span{display:block;color:#a3c0cf;font-size:11px}.footer-credit{margin-left:auto;font-size:11px;color:#c1d9e6}.modal{border:1px solid #59819a;background:#102b40;color:var(--ink);border-radius:17px;width:min(93vw,680px);max-height:90vh;box-shadow:0 25px 90px #000b;padding:22px}.modal::backdrop{background:#000a}.dialog-title{display:flex;justify-content:space-between;align-items:center}.dialog-title h2{margin:3px 0 14px}.edit-photo-row{display:flex;gap:18px;align-items:center;margin:8px 0 19px}.upload-btn{position:relative}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.toast{position:fixed;bottom:28px;right:24px;z-index:50;min-width:230px;max-width:450px;padding:13px 17px;border:1px solid #50a2ac;border-radius:11px;background:#15556c;color:white;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(10px);transition:.22s}.toast.show{opacity:1;transform:translateY(0)}[hidden]{display:none!important}
@media(max-width:1260px){.guest-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:860px){.app-shell{display:block}.sidebar{padding:11px 14px;gap:10px}.side-brand img{width:38px;height:38px}.vessel,.side-footer{display:none}.nav{flex-direction:row;overflow:auto;gap:5px}.nav button{flex:0 0 auto;padding:9px 10px;font-size:12px}.main{padding:18px 14px}.topbar{align-items:flex-start;flex-direction:column;gap:8px}.top-actions{width:100%}.stats{grid-template-columns:repeat(2,1fr)}.app-footer{gap:7px}.footer-credit{margin-left:0;width:100%}}
@media(max-width:570px){.guest-card{padding:10px}.guest-card-head{gap:7px}.guest-id-tile,.photo-box{height:112px;width:112px;flex-basis:112px}.guest-id-tile strong{font-size:60px}.guest-id-tile small{font-size:10px}.photo-box strong{font-size:36px}.guest-data h3{font-size:14px}.guest-data .company{font-size:11px}.stats{gap:8px}.stat{padding:12px}.stat b{font-size:26px}.number-board{gap:5px}.next-number{margin-left:0}.form-grid{grid-template-columns:1fr}.edit-photo-row{flex-direction:column;align-items:flex-start}.log-row{flex-direction:column;gap:2px}.section{padding:15px}.qr-frame{width:210px;min-height:210px}.top-actions .online{display:none}}

/* V2 BRIEFING ADMIN */
.brief-list{display:grid;gap:10px;margin:14px 0}.brief-item{display:flex;gap:20px;justify-content:space-between;align-items:center;flex-wrap:wrap;background:#0c2d43;border:1px solid #41677d;border-radius:12px;padding:15px}.brief-item.brief-active{border-color:#4dc79d;background:linear-gradient(120deg,#103e45,#0d2a42)}.brief-item-info{min-width:230px;flex:1}.brief-item-info b{display:block;margin:7px 0 3px;font-size:15px}.brief-item-info small{font-size:11px;color:#afc9d8}.brief-badge{padding:4px 8px;border-radius:6px;font-weight:900;font-size:10px;letter-spacing:.4px}.brief-badge.live{background:#205b45;color:#9df3c9}.brief-badge.draft{background:#59451e;color:#ffdb96}.brief-badge.archive{background:#344958;color:#b2c1cf}.brief-actions{display:flex;gap:7px;flex-wrap:wrap}.brief-editor-tools{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:17px 0}.brief-file{background:#173d54;border:1px solid #54778c;border-radius:9px;padding:11px 13px;cursor:pointer}.brief-file input{max-width:200px;margin-top:10px;font-size:11px}.brief-editor-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}.briefing-scroll[hidden]{display:none}


/* V3 · Selected OLV VENTURE 1 photo (actual photograph, not a generated ship) */
.auth-vessel-photo,.visitor-vessel-photo,.side-vessel-photo{position:relative;overflow:hidden;border:1px solid #426b86;border-radius:14px;background:#123247}
.auth-vessel-photo{height:172px;margin:-7px -7px 20px}
.auth-vessel-photo img,.visitor-vessel-photo img,.side-vessel-photo img{width:100%;height:100%;object-fit:cover;object-position:center 47%;display:block}
.auth-vessel-photo span,.visitor-vessel-photo span{position:absolute;inset:auto 0 0;padding:22px 12px 11px;background:linear-gradient(transparent,#041827ed);font-size:11px;letter-spacing:1.2px;font-weight:900}
.visitor-vessel-photo{height:205px;margin:18px 19px 0}
.visitor-vessel-photo span{font-size:12px}
.side-vessel-photo{height:148px;flex-shrink:0}
.side-vessel-photo small{position:absolute;bottom:0;left:0;right:0;background:#061727d9;color:#eaf9ff;padding:7px 9px;font-size:9px;letter-spacing:1px;font-weight:800}
.dashboard-vessel-hero{display:flex;align-items:stretch;min-height:148px;margin-bottom:20px;border-radius:18px;overflow:hidden;border:1px solid #35677e;background:linear-gradient(118deg,#0c2d46,#16445d);box-shadow:var(--shadow)}
.vessel-hero-message{flex:1;display:flex;flex-direction:column;justify-content:center;gap:7px;padding:25px;min-width:0}
.vessel-hero-kicker{font-weight:850;letter-spacing:1.5px;font-size:10px;color:#6de2dd}
.vessel-hero-message strong{font-size:clamp(25px,3vw,39px);line-height:1;font-weight:950;letter-spacing:-.9px}
.vessel-hero-message small{color:#c0d8e5;font-size:12px;max-width:350px}
.vessel-hero-image{position:relative;flex:0 0 46%;overflow:hidden;background:#0b2338}
.vessel-hero-image:before{content:"";position:absolute;left:0;top:0;bottom:0;width:34px;background:linear-gradient(90deg,#10344c,transparent);z-index:1;pointer-events:none}
.vessel-hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 49%;display:block}
[data-vessel-photo]{font-size:11px;color:#b6d7e9}
@media(max-width:860px){.side-vessel-photo{display:none}.dashboard-vessel-hero{min-height:130px}.vessel-hero-message{padding:18px}.vessel-hero-image{flex-basis:48%}}
@media(max-width:520px){.dashboard-vessel-hero{display:block}.vessel-hero-message{padding:14px 17px}.vessel-hero-message strong{font-size:29px}.vessel-hero-image{height:142px}.visitor-vessel-photo{height:160px;margin:12px 14px 0}}
