:root{--ink:#17343b;--muted:#698087;--sea:#0d6973;--sea2:#094d57;--mint:#dff2ea;--sand:#f7f1e7;--amber:#e29a3a;--red:#b84d4d;--line:#dbe5e3;--white:#fff;--shadow:0 18px 45px rgba(26,54,58,.12);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:#eef4f2}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 0 0,#d7ece7 0,transparent 30%),linear-gradient(135deg,#f5f8f5,#edf2f1)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--sea)}
.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(360px,.9fr)}.login-art{padding:clamp(36px,7vw,110px);display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#0a505a,#123f4a);color:white;position:relative;overflow:hidden}.login-art:after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,.15);border-radius:50%;right:-180px;bottom:-220px;box-shadow:0 0 0 70px rgba(255,255,255,.04),0 0 0 140px rgba(255,255,255,.03);pointer-events:none}.login-art h1{font-family:Georgia,serif;font-size:clamp(3rem,6vw,6.5rem);line-height:.88;letter-spacing:-.06em;margin:22px 0}.login-art p{max-width:590px;color:#d3e7e4;font-size:1.1rem;line-height:1.65}.login-access{position:relative;z-index:1;display:grid;gap:18px;max-width:700px;margin-top:22px;padding:20px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(255,255,255,.08);backdrop-filter:blur(8px)}.login-access strong{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;color:#b9d7d4;margin-bottom:9px}.login-chips{display:flex;flex-wrap:wrap;gap:8px}.login-chips span{display:inline-flex;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.16);font-size:.78rem;font-weight:800}.login-chips.destinations span{background:rgba(216,162,84,.18);border-color:rgba(238,199,140,.28)}.login-access small{color:#b9d7d4}.eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.18em;font-weight:800}.login-panel{display:grid;place-items:center;padding:32px}.login-card{width:min(420px,100%);background:rgba(255,255,255,.92);padding:42px;border:1px solid rgba(255,255,255,.8);border-radius:26px;box-shadow:var(--shadow)}.login-card h2{font:700 2rem Georgia,serif;margin:0 0 8px}.login-card p{color:var(--muted);margin:0 0 28px}.field{display:grid;gap:7px;margin-bottom:15px}.field label{font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#4f686e}.field input,.field select,.field textarea,.toolbar input,.toolbar select{width:100%;border:1px solid #cad9d7;background:#fff;border-radius:10px;padding:11px 12px;color:var(--ink);outline:none}.field input:focus,.field select:focus,.field textarea:focus,.toolbar input:focus,.toolbar select:focus{border-color:var(--sea);box-shadow:0 0 0 3px rgba(13,105,115,.12)}.field textarea{min-height:82px;resize:vertical}.btn{border:0;border-radius:10px;padding:11px 16px;font-weight:800;background:#e4ecea;color:var(--ink)}.btn.primary{background:var(--sea);color:#fff}.btn.danger{background:#fae4e4;color:#8d3030}.btn.ghost{background:transparent;border:1px solid var(--line)}.btn.small{padding:7px 10px;font-size:.78rem}.btn:disabled{opacity:.5;cursor:not-allowed}.full{width:100%}.error{background:#fae4e4;color:#873535;padding:10px 12px;border-radius:9px;margin-bottom:14px}.login-note{font-size:.82rem;margin-top:18px;color:var(--muted)}
.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.side{background:#103f49;color:#fff;padding:26px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 26px}.brand-mark{width:40px;height:40px;border-radius:12px;background:#d8a254;display:grid;place-items:center;font-weight:900;font-family:Georgia,serif}.brand strong{display:block}.brand small{color:#a9cbca}.nav{display:grid;gap:6px}.nav button{border:0;background:transparent;color:#bdd4d4;padding:11px 12px;border-radius:9px;text-align:left;font-weight:700}.nav button.active,.nav button:hover{background:rgba(255,255,255,.11);color:#fff}.side-foot{margin-top:auto;padding:16px 9px;border-top:1px solid rgba(255,255,255,.12)}.side-foot strong,.side-foot small{display:block;overflow:hidden;text-overflow:ellipsis}.side-foot small{color:#a9cbca;margin:4px 0 12px}.main{min-width:0}.topbar{height:74px;background:rgba(255,255,255,.78);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:4}.topbar h1{font:700 1.55rem Georgia,serif;margin:0}.content{padding:30px;max-width:1660px;margin:auto}.hero{background:linear-gradient(130deg,#0e5963,#17444d);color:#fff;border-radius:22px;padding:30px;display:flex;justify-content:space-between;gap:25px;align-items:end;box-shadow:var(--shadow);margin-bottom:22px}.hero h2{font:700 2rem Georgia,serif;margin:6px 0}.hero p{color:#cae0df;margin:0}.rule{padding:12px 14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);border-radius:12px;max-width:530px;font-size:.86rem;line-height:1.55}.cards{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;margin-bottom:20px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 8px 24px rgba(28,59,63,.05)}.card span{color:var(--muted);font-size:.77rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.card strong{display:block;font:700 2rem Georgia,serif;margin-top:8px}.panel{background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 8px 24px rgba(28,59,63,.05);overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--line)}.panel-head h2{font:700 1.2rem Georgia,serif;margin:0}.toolbar{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(7,minmax(115px,.7fr)) auto;gap:10px;padding:15px 20px;background:#fbfcfb;border-bottom:1px solid var(--line);align-items:end}.filter-field{display:grid;gap:6px}.filter-field label{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#61767a}.clear-filters{align-self:end}.table-wrap{overflow:auto;max-height:65vh}.data-table{border-collapse:collapse;width:100%;font-size:.84rem}.data-table th{position:sticky;top:0;z-index:2;background:#f0f5f3;color:#526c70;padding:10px 12px;text-align:left;white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.data-table td{padding:11px 12px;border-top:1px solid #edf2f0;white-space:nowrap}.data-table tr:hover td{background:#f8fbfa}.data-table .year-divider td{position:sticky;top:35px;z-index:1;background:#e6efed;color:#164f58;font:700 .9rem Georgia,serif;padding:8px 12px;border-top:1px solid #cbded9}.data-table .year-divider:hover td{background:#e6efed}.data-table button.link{border:0;background:transparent;color:var(--sea);font-weight:800;padding:0}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-weight:800;font-size:.7rem;background:#e6eeec}.badge.sea{background:#e1f0f2;color:#075a66}.badge.port{background:#fff0d7;color:#8a5a0b}.badge.truck{background:#ece8fa;color:#594595}.badge.warehouse{background:#ddf3e6;color:#246a41}.badge.high{background:#f8dddd;color:#942f2f}.badge.medium{background:#fff0d7;color:#8a5a0b}.badge.low{background:#e3efe9;color:#376b52}.muted{color:var(--muted)}.empty{padding:52px;text-align:center;color:var(--muted)}.split{display:grid;grid-template-columns:1.4fr .8fr;gap:18px}.stack{display:grid;gap:18px}.list{padding:0;margin:0;list-style:none}.list li{padding:13px 18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px}.progress-row{display:grid;grid-template-columns:100px 1fr 60px;gap:12px;align-items:center;padding:9px 20px}.bar{height:10px;background:#edf2f0;border-radius:20px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--sea),#4c9c8a);border-radius:20px}
dialog{border:0;border-radius:20px;padding:0;width:min(900px,calc(100vw - 28px));max-height:92vh;box-shadow:0 24px 80px rgba(12,37,42,.28)}dialog::backdrop{background:rgba(10,35,40,.48);backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.dialog-head h2{font:700 1.4rem Georgia,serif;margin:0}.close{border:0;background:#edf2f0;border-radius:50%;width:34px;height:34px;font-size:1.2rem}.form-body{padding:22px 24px;overflow:auto}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.span2{grid-column:span 2}.span3{grid-column:span 3}.hint{font-size:.75rem;color:var(--muted);margin-top:-2px}.dialog-actions{display:flex;justify-content:space-between;gap:10px;padding:16px 24px;border-top:1px solid var(--line);position:sticky;bottom:0;background:#fff}.attachments{background:#f5f8f7;border:1px dashed #b8ceca;border-radius:12px;padding:13px}.attachments ul{margin:9px 0 0;padding-left:18px}.attachments li{margin:7px 0}.toast{position:fixed;right:24px;bottom:24px;background:#123f4a;color:#fff;padding:13px 17px;border-radius:10px;box-shadow:var(--shadow);transform:translateY(90px);opacity:0;transition:.25s;z-index:20}.toast.show{transform:none;opacity:1}.toast.bad{background:#923d3d}.user-form{display:grid;grid-template-columns:1.15fr 1.5fr .85fr .8fr 1.15fr auto;gap:10px;padding:16px 20px;border-bottom:1px solid var(--line);background:#fbfcfb}.user-form input,.user-form select,.inline-select{width:100%;border:1px solid #cad9d7;background:#fff;border-radius:9px;padding:9px 10px;color:var(--ink);outline:none}.user-form input:focus,.user-form select:focus,.inline-select:focus{border-color:var(--sea);box-shadow:0 0 0 3px rgba(13,105,115,.12)}.user-table td{vertical-align:middle}.inline-select{min-width:120px;padding:7px 9px}.row-actions{display:flex;gap:7px;align-items:center}.lookup-form{display:grid;grid-template-columns:180px 1fr auto;gap:10px;padding:16px 20px}.footnote{font-size:.78rem;color:var(--muted);padding:12px 20px}.mobile-menu{display:none}.allocation{grid-column:span 3;background:#f5f8f7;border:1px solid var(--line);border-radius:13px;padding:14px}.allocation-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.allocation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:13px}.penalty-box{grid-column:span 3;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;background:#fff7e9;border:1px solid #efd5a9;border-radius:13px;padding:14px}.penalty-box span{font-size:.72rem;color:#7a6a50;text-transform:uppercase;letter-spacing:.06em}.penalty-box strong{display:block;margin-top:4px}.provisional,.live-cost{color:#9a6416;font-size:.75rem}.live-cost{display:block;margin-top:3px;font-weight:800}[hidden]{display:none!important}
.tracking-box{background:#eef7f6;border:1px solid #bfdad6;border-radius:14px;padding:15px}.tracking-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.badge.tracking-on{background:#d5efe1;color:#1c6b40}.badge.tracking-off{background:#e8edec;color:#617477}.tracking-grid,.tracking-settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.tracking-grid>div,.tracking-settings-grid>div{background:rgba(255,255,255,.75);border:1px solid #d8e7e4;border-radius:10px;padding:10px}.tracking-grid span,.tracking-settings-grid span{display:block;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#617477}.tracking-grid strong,.tracking-settings-grid strong{display:block;margin-top:5px;font-size:.82rem;overflow-wrap:anywhere}.tracking-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:13px}.tracking-warning{margin-top:12px;background:#fff2d9;color:#83580e;padding:9px 11px;border-radius:9px;font-size:.8rem}.tracking-error{margin:12px 0 0}.tracking-settings-grid{padding:0 20px 14px}.tracking-settings .footnote{padding-top:0}.tracking-dot{color:#248357;font-size:.7rem;margin-left:5px}
.access-panel{margin-bottom:18px}.role-guide{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:20px}.role-guide article{border:1px solid var(--line);border-radius:14px;padding:16px;background:#f8fbfa}.role-guide p{color:var(--muted);line-height:1.55;margin:12px 0 0;font-size:.88rem}.destination-guide{display:flex;flex-wrap:wrap;gap:10px;padding:22px 20px 8px}.destination-chip{display:inline-flex;align-items:center;padding:10px 14px;border-radius:12px;background:#e2f0ed;color:#0c5d67;font-weight:800;border:1px solid #c2dbd6}
@media(max-width:1050px){.cards{grid-template-columns:repeat(2,1fr)}.toolbar{grid-template-columns:1fr 1fr 1fr}.toolbar .search-field{grid-column:span 3}.grid{grid-template-columns:repeat(2,1fr)}.span3,.allocation,.penalty-box,.tracking-box{grid-column:span 2}.penalty-box{grid-template-columns:repeat(2,1fr)}.tracking-grid,.tracking-settings-grid{grid-template-columns:repeat(2,1fr)}.user-form{grid-template-columns:1fr 1fr}.user-form button{grid-column:span 2}.split{grid-template-columns:1fr}.role-guide{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.login-page{grid-template-columns:1fr}.login-art{min-height:300px;padding:50px 28px}.login-art h1{font-size:3.4rem}.login-panel{padding:20px}.shell{display:block}.side{height:auto;position:relative;padding:14px}.brand{padding-bottom:12px}.nav{display:flex;overflow:auto}.nav button{white-space:nowrap}.side-foot{display:none}.topbar{padding:0 18px}.content{padding:18px}.hero{display:block;padding:22px}.hero .rule{margin-top:18px}.cards{grid-template-columns:1fr 1fr}.toolbar{grid-template-columns:1fr 1fr;padding:12px}.toolbar .search-field{grid-column:span 2}.grid{grid-template-columns:1fr}.span2,.span3,.allocation,.penalty-box,.tracking-box{grid-column:span 1}.allocation-grid,.penalty-box,.tracking-grid,.tracking-settings-grid{grid-template-columns:1fr}.tracking-settings-grid{padding:0 14px 14px}.user-form,.lookup-form{grid-template-columns:1fr}.user-form button{grid-column:span 1}.role-guide{grid-template-columns:1fr}}
.data-table th{padding:0}.table-sort{display:flex;align-items:center;justify-content:space-between;gap:9px;width:100%;border:0;background:transparent;color:inherit;padding:10px 12px;text-align:left;text-transform:inherit;letter-spacing:inherit;font-weight:800}.table-sort:hover,.table-sort:focus-visible{background:#dfeae7;color:#164f58;outline:none}.table-sort.active{background:#e3eeeb;color:#0c5d67}.table-sort b{font-size:.9rem;line-height:1;color:#82999a}.table-sort.active b{color:#0c6973}
