/* O Travels portal. Property of LankaBridge 2026 - Yasara Kothalawala */
:root{--bg:#0d0d0f;--p:#141417;--p2:#1a1a1e;--ln:rgba(255,255,255,.08);--gl:rgba(230,194,122,.28);--g:#d9b25f;--g2:#f3d893;--t:#ece6d8;--m:#a8a296;--d:#77726a;--ok:#7fc49a;--wa:#e8b55a;--bd:#e57d6f;--out:#7cb8e0}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--t);font:300 15px/1.55 Jost,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--g2);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}
h1,h2{font-family:Cinzel,Georgia,serif;font-weight:500;color:#fff;letter-spacing:.02em}h1{font-size:1.55rem}h2{font-size:1.02rem;margin-bottom:12px}h3{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--g);font-weight:500;margin:16px 0 8px}
.loading{padding:40px;color:var(--m)}
#app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.side{position:sticky;top:0;height:100vh;background:#0a0a0b;border-right:1px solid var(--ln);display:flex;flex-direction:column;padding:20px 14px;overflow:auto}
.logo{display:flex;gap:10px;align-items:center;padding:4px 8px 22px}.logo img{width:46px}.logo b{display:block;font-family:Cinzel;color:var(--g2);letter-spacing:.14em}.logo small{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--d)}
.side nav{display:flex;flex-direction:column;gap:2px}.side nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:#cfc9bb;font-size:.92rem}
.side nav a svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.side nav a:hover{background:var(--p)}.side nav a.on{background:linear-gradient(90deg,rgba(217,178,95,.18),transparent);color:var(--g2)}
.side nav a i{margin-left:auto;font-style:normal;background:var(--wa);color:#111;border-radius:999px;font-size:.7rem;padding:1px 7px;font-weight:600}
.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding:14px 8px 0;border-top:1px solid var(--ln)}
.mode{font-size:.72rem;color:var(--wa)}.mode.live{color:var(--ok)}
.lnk{background:none;border:0;color:var(--m);cursor:pointer;text-align:left;font-size:.85rem;padding:0;text-decoration:underline;text-underline-offset:3px}.lnk:hover{color:var(--g2)}
.menu-t{display:none}
.main{padding:28px 34px 80px;min-width:0}
.ph{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px}.ph p{color:var(--m);font-size:.88rem;margin-top:4px}.pa{display:flex;gap:10px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border-radius:999px;border:1px solid var(--gl);background:none;cursor:pointer;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--t);white-space:nowrap}
.btn.gold{background:linear-gradient(100deg,#a87b2c,#e6c27a 45%,#d9b25f);color:#17130b;border:0}.btn.sm{padding:7px 14px;font-size:.7rem}.btn:hover{filter:brightness(1.08)}
.card{background:var(--p);border:1px solid var(--ln);border-radius:16px;padding:20px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid2.top{align-items:start}.grid2.wide{grid-template-columns:1.3fr 1fr}
.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}
.kpi{background:var(--p);border:1px solid var(--ln);border-radius:14px;padding:16px;color:var(--t)}.kpi b{display:block;font-family:Cinzel;font-size:1.6rem;color:#fff;font-weight:500}.kpi span{font-size:.78rem;color:var(--m)}
.kpi.warn{border-color:rgba(232,181,90,.5)}.kpi.warn b{color:var(--wa)}.kpi.bad{border-color:rgba(229,125,111,.55)}.kpi.bad b{color:var(--bd)}
.li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--ln);color:var(--t)}.li:first-of-type{border-top:0}.li small{display:block;color:var(--m);font-size:.78rem}.li .r{text-align:right;font-size:.82rem;color:#cfc9bb;white-space:nowrap}
.empty{color:var(--d);font-size:.88rem;padding:8px 0}
.st{display:inline-block;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid var(--ln);color:var(--m);font-weight:500;vertical-align:middle}
.st-confirmed{color:var(--g2);border-color:var(--gl)}.st-out{color:var(--out);border-color:rgba(124,184,224,.4)}.st-returned,.st-ok{color:var(--ok);border-color:rgba(127,196,154,.4)}.st-closed{color:var(--d)}.st-cancelled,.st-bad{color:var(--bd);border-color:rgba(229,125,111,.45)}.st-requested,.st-warn{color:var(--wa);border-color:rgba(232,181,90,.45)}
.bar3{display:flex;height:12px;border-radius:999px;overflow:hidden;background:var(--p2);margin:6px 0 10px}.bar3 i{display:block}.bar3 .a,.leg .a::before{background:var(--ok)}.bar3 .o,.leg .o::before{background:var(--out)}.bar3 .m,.leg .m::before{background:var(--wa)}
.leg{display:flex;gap:16px;font-size:.8rem;color:var(--m);flex-wrap:wrap}.leg span::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;align-items:center}.filters a{padding:7px 14px;border:1px solid var(--ln);border-radius:999px;font-size:.8rem;color:#cfc9bb}.filters a.on{border-color:var(--g);color:var(--g2)}
.srch{margin-left:auto;min-width:260px;background:var(--p);border:1px solid var(--ln);border-radius:999px;padding:8px 16px}
.tbl{padding:0;overflow:auto}table{width:100%;border-collapse:collapse;font-size:.88rem}th{text-align:left;font-weight:500;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--d);padding:12px 16px;border-bottom:1px solid var(--ln)}td{padding:12px 16px;border-bottom:1px solid var(--ln)}td small{display:block;color:var(--d);font-size:.74rem}tbody tr{cursor:pointer}tbody tr:hover{background:var(--p2)}
.frm label{display:block;font-size:.76rem;color:var(--m);margin-bottom:12px}
.frm input:not([type=checkbox]),.frm select,.frm textarea,.row3 input,.row3 select{display:block;width:100%;margin-top:5px;background:#0f0f12;border:1px solid var(--ln);border-radius:10px;padding:10px 12px;color:var(--t);color-scheme:dark}
.frm input:focus,.frm select:focus,.frm textarea:focus{outline:none;border-color:var(--g)}
.frm .ck,label.ck{display:flex;align-items:center;gap:9px;color:#d8d2c4;font-size:.86rem;margin:6px 0 12px}.ck input{width:18px;height:18px;accent-color:#d9b25f}.ck.danger{color:var(--bd)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.f3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 14px;align-items:end}
fieldset{border:1px solid var(--ln);border-radius:12px;padding:12px 14px 2px;margin:6px 0 14px}legend{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--g);padding:0 6px}
.calc{background:rgba(217,178,95,.07);border:1px solid var(--gl);border-radius:10px;padding:10px 14px;font-size:.86rem;color:#ddd5c4;margin:6px 0 12px}
.err{color:var(--bd);font-size:.86rem}.warnline{color:var(--wa);font-size:.86rem;margin:8px 0}.okline{color:var(--ok);font-size:.86rem;margin:8px 0}.small{font-size:.8rem;color:var(--m)}
.acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;align-items:center}
.kv{display:grid;grid-template-columns:130px 1fr;gap:8px 14px;font-size:.88rem}.kv dt{color:var(--d)}.kv dd small{display:block;color:var(--m);font-size:.78rem}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--ln);margin-bottom:18px;overflow:auto}.tabs a{padding:10px 16px;color:var(--m);border-bottom:2px solid transparent;white-space:nowrap;display:flex;gap:8px;align-items:center}.tabs a.on{color:var(--g2);border-color:var(--g)}
.tabs i{width:16px;height:16px;border-radius:50%;border:1px solid var(--ln);font-style:normal;font-size:.62rem;display:grid;place-items:center}.tabs i.dn{background:var(--ok);border-color:var(--ok);color:#0d0d0f}
.chk-g h3{margin-top:14px}.chk{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center;padding:7px 0;border-top:1px solid var(--ln);font-size:.88rem}.chk .cn{grid-column:1/-1;background:#0f0f12;border:1px solid rgba(229,125,111,.4);border-radius:8px;padding:7px 10px}
.seg{display:flex;border:1px solid var(--ln);border-radius:999px;overflow:hidden}.seg button{background:none;border:0;padding:5px 12px;font-size:.72rem;cursor:pointer;color:var(--m)}.seg button.on{background:var(--p2);color:#fff}.seg button.ok{background:rgba(127,196,154,.2);color:var(--ok)}.seg button.bad{background:rgba(229,125,111,.2);color:var(--bd)}
.cnt{float:right;font-family:Jost;font-size:.8rem;color:var(--g2)}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px}
.slot{position:relative;display:flex;flex-direction:column;border:1px dashed var(--gl);border-radius:12px;overflow:hidden;cursor:pointer;background:#0f0f12;color:var(--t)}
.slot img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.slot .ph{aspect-ratio:4/3;display:grid;place-items:center;font-size:1.6rem;color:var(--g)}.slot small{font-size:.7rem;padding:6px 8px;color:var(--m);line-height:1.3}
.slot.has{border-style:solid;border-color:var(--ln)}.slot input{position:absolute;inset:0;opacity:0;cursor:pointer}.slot.busy{opacity:.5}.slot .x{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.7);color:#fff;cursor:pointer}
.milebox{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:4px 0 10px}.milebox div{background:#0f0f12;border:1px solid var(--ln);border-radius:12px;padding:10px 12px}.milebox small{display:block;font-size:.68rem;color:var(--d);text-transform:uppercase;letter-spacing:.12em}.milebox b{font-family:Cinzel;font-weight:500;font-size:1.05rem}.milebox .bad b{color:var(--bd)}.milebox .ok b{color:var(--ok)}
.cmp{display:grid;gap:10px}.cmpr small{color:var(--m);font-size:.74rem}.cmpr div{display:grid;grid-template-columns:1fr 1fr;gap:6px}.cmpr img,.cmpr span{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:#0f0f12;display:grid;place-items:center;color:var(--d)}
.docs{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}.doc{width:110px;border:1px solid var(--ln);border-radius:10px;overflow:hidden;color:var(--t)}.doc img,.doc .pdf{width:100%;aspect-ratio:4/3;object-fit:cover;display:grid;place-items:center;background:#0f0f12;color:var(--bd);font-weight:600}.doc small{display:block;padding:5px 7px;font-size:.68rem;color:var(--m)}
.up{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.up label{cursor:pointer}
.sig{margin:12px 0}.sig>span{display:block;font-size:.76rem;color:var(--m);margin-bottom:5px}.sig canvas,.sig img{width:100%;max-width:560px;aspect-ratio:560/180;background:#f7f4ec;border-radius:10px;touch-action:none;display:block}.sig-a{display:flex;justify-content:space-between;align-items:center;max-width:560px;margin-top:6px}
.linkbox{display:flex;gap:8px;align-items:center}.linkbox input{flex:1;background:#0f0f12;border:1px solid var(--ln);border-radius:999px;padding:8px 12px;font-size:.78rem;min-width:0}
.agreement{background:#fbf9f4;color:#1c1b18;border-radius:12px;padding:26px;font-size:.82rem;line-height:1.5}.agreement h2{color:#1c1b18;font-size:1.1rem;margin:14px 0}.agreement h2 small{font-family:Jost;font-size:.75rem;color:#7a705c;margin-left:8px}.agreement h3{color:#8a6a2c}
.ag-h{display:flex;gap:16px;align-items:center;border-bottom:2px solid #c9a14a;padding-bottom:12px}.ag-h img{width:130px;filter:brightness(0)}.ag-h div{display:flex;flex-direction:column;font-size:.76rem;color:#555}.ag-h b{color:#1c1b18;font-size:.9rem}
.ag-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.ag-cols dl{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;border:1px solid #e3dccb;border-radius:8px;padding:10px}.ag-cols dt{color:#7a705c}.ag-cols dd{font-weight:500}
.ag-terms{padding-left:18px}.ag-terms li{margin:5px 0}.ag-decl{margin-top:12px;font-weight:500}
.reqs{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px}.req-h{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.req-h small{display:block;color:var(--m);font-size:.76rem}.req.handled,.req.converted{opacity:.6}
.strip{display:grid;grid-template-columns:repeat(30,1fr);gap:2px;margin:10px 0 8px}.strip i{position:relative;height:30px;background:rgba(127,196,154,.25);border-radius:3px}.strip i.bk{background:var(--out)}.strip em{position:absolute;top:-17px;left:0;font-style:normal;font-size:.6rem;color:var(--d);white-space:nowrap}
.row3{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.row3 input,.row3 select{flex:1;min-width:110px;margin:0}
.inv{background:#fff;color:#1c1b18;border-radius:12px;padding:32px;max-width:860px;font-size:.88rem}.inv-h{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #c9a14a;padding-bottom:16px}.inv-h img{width:160px;filter:brightness(0)}.inv-h h2{color:#1c1b18;font-size:1.6rem;text-align:right}.inv-h dl{display:grid;grid-template-columns:auto auto;gap:2px 12px;font-size:.82rem;margin-top:8px}.inv-h dt{color:#7a705c}
.inv-p{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:18px 0}.inv-p div{display:flex;flex-direction:column;font-size:.82rem}.inv-p small{text-transform:uppercase;letter-spacing:.14em;font-size:.64rem;color:#8a6a2c;margin-bottom:3px}.inv-p b{font-size:.92rem}
.inv-t{width:100%;border-collapse:collapse}.inv-t th{color:#7a705c;border-bottom:1px solid #e3dccb;padding:8px 6px}.inv-t td{border-bottom:1px solid #efe9dc;padding:9px 6px}.inv-t td:last-child,.inv-t th:last-child{text-align:right;white-space:nowrap}.inv-t tbody tr{cursor:default}.inv-t tbody tr:hover{background:none}
.inv-t tfoot td{font-weight:500;border:0;padding-top:10px}.inv-t tfoot tr:first-child td{border-top:2px solid #1c1b18;font-size:1rem}.inv-t .pm td{font-weight:300;color:#555;padding-top:4px}.inv-t .bal td{font-size:1.05rem;color:#8a6a2c;border-top:1px solid #e3dccb}
.inv-dep{margin-top:16px;padding:10px 12px;background:#f7f3ea;border-radius:8px;font-size:.82rem}.inv-f{margin-top:18px;font-size:.78rem;color:#7a705c}
.noprint{margin-top:18px}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#1f1d18;border:1px solid var(--gl);color:var(--g2);padding:10px 20px;border-radius:999px;opacity:0;transition:.3s;z-index:99}.toast.on{opacity:1;transform:translate(-50%,0)}
.login{min-height:100vh;display:grid;place-items:center;grid-column:1/-1;padding:20px;background:radial-gradient(800px 500px at 50% 30%,#221c12,transparent 60%)}
.login form{width:100%;max-width:400px;background:var(--p);border:1px solid var(--gl);border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:14px}.login img{width:170px;align-self:center}.login h1{text-align:center;font-size:1.2rem}
.login label{font-size:.78rem;color:var(--m)}.login input{display:block;width:100%;margin-top:5px;background:#0f0f12;border:1px solid var(--ln);border-radius:10px;padding:11px 12px}
.demo-note{font-size:.82rem;color:#d8d2c4;background:rgba(217,178,95,.08);border:1px solid var(--gl);border-radius:10px;padding:10px 12px}.demo-note code{color:var(--g2)}.back{text-align:center;font-size:.82rem;color:var(--m)}
/* v2: gates, confirmations, reports, AI check */
.gate{background:rgba(232,181,90,.08);border:1px solid rgba(232,181,90,.45);border-radius:14px;padding:14px 18px;margin-bottom:18px;font-size:.9rem}.gate b{color:var(--wa)}.gate.ok{background:rgba(127,196,154,.08);border-color:rgba(127,196,154,.4)}.gate.ok b{color:var(--ok)}
.gate ul{margin:8px 0 0 18px;display:grid;gap:4px}.gate a{color:#e9e2d2;text-decoration:underline;text-underline-offset:3px}.gate a:hover{color:var(--g2)}
.btn.dim{opacity:.55}
.grid2.top>div>.card+.card{margin-top:18px}
.confirm.hl{border-color:var(--g);box-shadow:0 0 0 3px rgba(217,178,95,.2)}
.msg{white-space:pre-wrap;font:inherit;font-size:.84rem;line-height:1.5;background:#0f0f12;border:1px solid var(--ln);border-radius:12px;padding:14px 16px;color:#d8d2c4;max-height:260px;overflow:auto}
.rep{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--ln);flex-wrap:wrap}.rep:first-of-type{border-top:0}.rep small{display:block;color:var(--m);font-size:.76rem}.rep .acts{margin:0}
.li a{color:var(--t)}.li .r .btn{margin-left:8px;vertical-align:middle}.rem.done{opacity:.6;border-color:rgba(127,196,154,.4);color:var(--ok)}.li small.warn{color:var(--wa)}.li small.okt{color:var(--ok)}
.aibox{margin-top:18px;border:1px solid var(--gl);background:linear-gradient(135deg,rgba(217,178,95,.08),transparent 60%);border-radius:14px;padding:14px 18px}.aibox h3{margin-top:0}.aibox .btn[disabled]{opacity:.4;cursor:not-allowed}
.ailist{list-style:none;display:grid;gap:8px;margin:8px 0;font-size:.88rem}.ailist small{color:var(--d)}
.cmpr.flag small{color:var(--wa)}.cmpr.flag img{outline:2px solid rgba(232,181,90,.7);outline-offset:-2px}
@media(max-width:1200px){.kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){#app{grid-template-columns:1fr}.side{position:fixed;left:0;top:0;bottom:0;width:260px;z-index:50;transform:translateX(-100%);transition:transform .3s}.nav-on .side{transform:none}.menu-t{display:block;position:fixed;top:12px;right:12px;z-index:60;width:44px;height:44px;border-radius:50%;border:1px solid var(--gl);background:#141417;color:var(--g2);font-size:1.2rem}.main{padding:20px 16px 80px}.grid2,.grid2.wide{grid-template-columns:1fr}.ph{padding-right:52px}}
@media(max-width:640px){.kpis{grid-template-columns:1fr 1fr}.f2,.f3,.ag-cols,.inv-p{grid-template-columns:1fr}.milebox{grid-template-columns:1fr 1fr}.srch{min-width:0;width:100%}.kv{grid-template-columns:1fr}.inv{padding:18px}.reqs{grid-template-columns:1fr}}
@media print{body{background:#fff;color:#111}.side,.menu-t,.ph,.tabs,.noprint,.toast,.btn,.lnk,canvas,.linkbox,.sig-a,.small,label.ck,.warnline,.wide>section:last-child>h3{display:none!important}.sig img{max-width:260px;border:1px solid #ddd}.wide>section:last-child h2{color:#111}#app{display:block}.main{padding:0}.card{border:0;padding:0;background:#fff}.grid2{display:block}.inv,.agreement{max-width:none;border-radius:0;padding:0}}
