@import "https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600;700&family=Barlow+Condensed:wght@500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";
:root{--navy-950:#07171f;--navy-900:#0b2733;--navy-800:#103b50;--navy-700:#175b78;--ink:#0b2733;--canvas:#eef5f4;--canvas-2:#e2edeb;--surface:#fff;--line:#d2e2df;--line-soft:#e4eeec;--accent:#0e96a3;--accent-600:#0c7d88;--accent-700:#09636c;--accent-100:#d6f0f1;--accent-rgb:14,150,163;--sea:#0f3d54;--sea-100:#dde9ef;--sea-700:#0a2e40;--good:#1c7a55;--good-100:#dcefe5;--warn:#9a6a09;--warn-100:#f6e8cc;--done:#5c6b72;--done-100:#e9e9e4;--text:#0c2630;--muted:#52666e;--faint:#85999d;--slate-300:#b7c7c4;--radius:9px;--shadow:0 1px 2px #0e1c260d;--shadow-lg:0 16px 40px #0e1c2624}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{color:var(--text);background:var(--canvas);-webkit-font-smoothing:antialiased;font-family:Barlow,system-ui,sans-serif;font-size:15px}h1,h2,h3,h4,.display{letter-spacing:.01em;font-family:Barlow Condensed,Barlow,sans-serif;font-weight:700;line-height:1.04}a{color:inherit;text-decoration:none}button{font-family:inherit}.num,.mono{font-feature-settings:"tnum" 1;font-family:IBM Plex Mono,monospace}.muted{color:var(--muted)}.kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--accent-600);font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600}.flag{letter-spacing:.06em;border:1px solid var(--line);color:var(--muted);background:var(--canvas);text-transform:uppercase;border-radius:4px;padding:1px 5px;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:600}.brand{align-items:center;gap:11px;font-weight:700;display:flex}.brand .logo{background:var(--ink);width:40px;height:40px;color:var(--canvas);border:2px solid var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.brand .logo svg{width:20px;height:20px}.brand .name{text-transform:uppercase;letter-spacing:.02em;font-family:Barlow Condensed,sans-serif;font-size:21px;line-height:.95}.brand .name small{letter-spacing:.22em;color:var(--accent);text-transform:uppercase;margin-top:2px;font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:500;display:block}.btn{cursor:pointer;letter-spacing:.04em;text-transform:uppercase;text-align:center;border:1.5px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:9px;padding:11px 20px;font-family:Barlow Condensed,sans-serif;font-size:16px;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.btn svg{width:17px;height:17px}.btn-primary{background:var(--accent-600);color:#fff}.btn-primary:hover{background:var(--accent-700)}.btn-ghost{background:var(--surface);border-color:var(--line);color:var(--text)}.btn-ghost:hover{border-color:var(--ink)}.btn-navy{background:var(--ink);color:var(--canvas)}.btn-lg{padding:14px 26px;font-size:17px}.btn-block{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed}.field{margin-bottom:16px}.field label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:7px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500;display:block}.field .hint{letter-spacing:0;text-transform:none;color:var(--faint);font-size:11px}.input,.select,.textarea{border:1.5px solid var(--line);background:var(--surface);width:100%;color:var(--text);border-radius:7px;padding:11px 13px;font-family:inherit;font-size:15px;transition:all .15s}.input::placeholder,.textarea::placeholder{color:#9fb0ad}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-100);outline:none}.textarea{resize:vertical;min-height:104px}.input-group{position:relative}.input-group .suffix{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500;position:absolute;top:50%;right:13px;transform:translateY(-50%)}.badge{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border:1px solid #0000;border-radius:5px;align-items:center;gap:6px;padding:4px 9px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge-new{background:var(--sea-100);color:#0f3c52;border-color:#cfe0e9}.badge-review{background:var(--warn-100);color:#79530a;border-color:#ead9b0}.badge-approved{background:var(--good-100);color:#14603f;border-color:#bfe1d0}.badge-service{background:var(--accent-100);color:#09636c;border-color:#bfe3e6}.badge-done{background:var(--done-100);color:#4b585e;border-color:#dcdcd4}.badge-rejected{color:#9a3b2c;background:#f7e3e0;border-color:#e9c6bf}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.modal-ov{z-index:60;background:#08141c80;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:12px;width:100%;max-width:440px;max-height:90vh;padding:20px 22px;overflow-y:auto}.modal-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-head h3{text-transform:uppercase;font-family:Barlow Condensed,sans-serif;font-size:21px;font-weight:700}.modal-x{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:18px;line-height:1}.modal-x:hover{color:var(--text)}.modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.blueprint{position:relative}.blueprint:before{content:"";pointer-events:none;opacity:.5;background-image:linear-gradient(#ffffff0f 1px,#0000 1px),linear-gradient(90deg,#ffffff0f 1px,#0000 1px);background-size:34px 34px;position:absolute;inset:0}.row{display:flex}.between{justify-content:space-between;align-items:center}.grid2{grid-template-columns:1fr 1fr;gap:0 18px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;gap:0 16px;display:grid}.formerror{color:#9a3b2c;background:#f7e3e0;border:1px solid #e9c6bf;border-radius:7px;margin-bottom:14px;padding:10px 13px;font-size:13px}.formok{background:var(--good-100);color:#14603f;border:1px solid #bfe1d0;border-radius:7px;margin-bottom:14px;padding:10px 13px;font-size:13px}.split{grid-template-columns:1.05fr .95fr;min-height:100vh;display:grid}.hero{background:var(--ink);color:#eaf1f4;flex-direction:column;justify-content:flex-start;padding:46px 52px;display:flex;position:relative;overflow:hidden}.hero .brand .name{color:#fff}.hero>*{z-index:2;position:relative}.herocontent{max-width:46ch;margin:auto 0}.wave{opacity:.9;z-index:1;position:absolute;inset:auto -40px -10px}.hero h1{text-transform:uppercase;max-width:15ch;margin:0 0 18px;font-size:46px;line-height:1.02}.hero h1 span{color:var(--accent)}.hero p{color:#9fb1bb;max-width:42ch;font-size:16px;line-height:1.55}.feats{flex-direction:column;gap:13px;margin-top:30px;display:flex}.feat{color:#cdd9df;align-items:center;gap:13px;font-size:14.5px;display:flex}.feat .dot{background:rgba(var(--accent-rgb),.16);border:1px solid rgba(var(--accent-rgb),.35);border-radius:6px;flex:none;place-items:center;width:32px;height:32px;display:grid}.feat .dot svg{width:17px;height:17px;color:var(--accent)}.auth{background:var(--canvas);justify-content:center;align-items:center;padding:40px;display:flex}.auth-card{width:100%;max-width:410px}.auth .kicker{margin-bottom:10px;display:block}.tabs{background:var(--canvas-2);border:1px solid var(--line);border-radius:8px;margin-bottom:26px;padding:4px;display:flex}.tabs a,.tabs button{letter-spacing:.04em;text-transform:uppercase;cursor:pointer;color:var(--muted);text-align:center;background:0 0;border:none;border-radius:6px;flex:1;padding:9px;font-family:Barlow Condensed,sans-serif;font-size:15px;font-weight:600}.tabs a.active,.tabs button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.auth h2{text-transform:uppercase;margin-bottom:4px;font-size:30px}.auth .sub{color:var(--muted);margin-bottom:24px;font-size:14px}.legal{color:var(--muted);text-align:center;margin-top:18px;font-size:12px;line-height:1.5}.legal a{color:var(--sea);font-weight:600}.staff-link{align-items:center;gap:14px;margin-top:26px;display:flex}.staff-link span{background:var(--line);flex:1;height:1px}.staff-link a{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:11px}.staff-link a:hover{color:var(--accent)}.adminbg{background:var(--ink);color:#e7eef2;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.adminbg .bp{z-index:1;pointer-events:none;opacity:.5;background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0d 1px,#0000 1px);background-size:34px 34px;position:fixed;inset:0}.stage{z-index:2;width:100%;max-width:412px;position:relative}.topline{justify-content:space-between;align-items:center;margin-bottom:30px;display:flex}.topline .brand .name{color:#fff}.topline .back{letter-spacing:.04em;text-transform:uppercase;color:#8295a0;font-family:IBM Plex Mono,monospace;font-size:11px}.topline .back:hover{color:var(--accent)}.apanel{background:#11242f;border:1px solid #203a48;border-radius:12px;padding:30px 28px;box-shadow:0 24px 60px #0006}.lockrow{align-items:center;gap:11px;margin-bottom:20px;display:flex}.lockrow .lk{background:rgba(var(--accent-rgb),.16);border:1px solid rgba(var(--accent-rgb),.4);border-radius:8px;flex:none;place-items:center;width:40px;height:40px;display:grid}.lockrow .lk svg{width:19px;height:19px;color:var(--accent)}.lockrow h1{text-transform:uppercase;color:#fff;font-size:24px;line-height:1}.apanel .field label{color:#90a2ad}.apanel .input{color:#eaf1f4;background:#0d1d26;border-color:#23404f}.apanel .input::placeholder{color:#5e7682}.restricted{letter-spacing:.06em;text-transform:uppercase;color:#6f8590;justify-content:center;align-items:center;gap:8px;margin-top:22px;font-family:IBM Plex Mono,monospace;font-size:10.5px;display:flex}.restricted svg{width:13px;height:13px}.shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.side{background:var(--navy-900);color:#cfd9df;flex-direction:column;padding:22px 16px;display:flex}.side .brand{margin:6px 8px 8px}.side .brand .name{color:#fff;font-size:19px}.side .tag{letter-spacing:.14em;color:var(--accent);text-transform:uppercase;margin:0 8px 22px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600}.nav{flex-direction:column;gap:2px;display:flex}.nav a{color:#93a3ab;border-radius:7px;align-items:center;gap:12px;padding:10px 13px;font-size:14.5px;font-weight:500;display:flex}.nav a svg{width:19px;height:19px}.nav a.active{background:rgba(var(--accent-rgb),.16);color:#fff;box-shadow:inset 2px 0 0 var(--accent)}.nav a.active svg{color:var(--accent)}.nav a .pill{background:var(--sea);color:#fff;border-radius:999px;margin-left:auto;padding:1px 8px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600}.side .user{border-top:1px solid #ffffff17;align-items:center;gap:11px;margin-top:auto;padding:11px 10px;display:flex}.side .av{background:var(--accent-600);color:#fff;border-radius:50%;place-items:center;width:36px;height:36px;font-family:Barlow Condensed,sans-serif;font-size:15px;font-weight:700;display:grid}.side .user .info{font-size:13px;line-height:1.3}.side .user .info small{color:#7e8d95;font-size:11px;display:block}.side .logout{color:#7e8d95;margin-left:auto}.side .logout:hover{color:#fff}.side .logout svg{width:18px;height:18px}.topbar-m,.mnav-scrim,.drawer-close,.logout-m{display:none}.side-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.main{padding:30px 38px}.pagehead{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.pagehead h1{text-transform:uppercase;font-size:30px}.pagehead p{color:var(--muted);margin-top:4px;font-size:14px}.stats{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:15px 17px}.stat .n{letter-spacing:-.02em;font-family:IBM Plex Mono,monospace;font-size:25px;font-weight:600}.stat .l{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:4px;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:500}.stat.s1 .n{color:var(--sea)}.stat.s2 .n{color:var(--warn)}.stat.s3 .n{color:var(--good)}.stat.s4 .n{color:var(--accent)}.stat.s5 .n{color:var(--done)}table{border-collapse:collapse;width:100%}.tbl-card{overflow:hidden}thead th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--canvas);border-bottom:1px solid var(--line);padding:12px 18px;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:500}tbody td{border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:14px 18px;font-size:14.5px}tbody tr:last-child td{border-bottom:none}.boat{align-items:center;gap:11px;display:flex}.boat .ic{background:var(--sea-100);width:38px;height:38px;color:var(--sea);border-radius:7px;flex:none;place-items:center;display:grid}.boat .ic svg{width:20px;height:20px}.boat b{font-weight:600}.boat small{color:var(--muted);font-size:12px;display:block}.slot{color:var(--ink);font-family:IBM Plex Mono,monospace;font-weight:600}.empty{text-align:center;color:var(--muted);padding:50px}.topbar{background:var(--surface);border-bottom:1px solid var(--line);z-index:5;align-items:center;gap:16px;padding:14px 30px;display:flex;position:sticky;top:0}.topbar .back{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500;display:flex}.topbar .back svg{width:18px;height:18px}.wrap{max-width:860px;margin:0 auto;padding:30px 24px 60px}.formhead h1{text-transform:uppercase;font-size:32px}.formhead p{color:var(--muted);margin-top:6px;font-size:14.5px}.section-t{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-600);align-items:center;gap:10px;margin:26px 0 14px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;display:flex}.section-t .num{background:var(--accent-100);width:24px;height:24px;color:var(--accent-600);border-radius:50%;place-items:center;font-size:12px;font-weight:600;display:grid}.panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:22px}.upload{border:1.6px dashed var(--slate-300);text-align:center;color:var(--muted);cursor:pointer;border-radius:8px;padding:18px;font-size:13.5px}.upload svg{width:24px;height:24px;color:var(--slate-300);margin-bottom:6px}.upload b{color:var(--sea)}.upload input{display:none}.pick2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.opt{border:1.6px solid var(--line);cursor:pointer;background:var(--surface);border-radius:8px;align-items:flex-start;gap:11px;padding:14px;transition:all .15s;display:flex}.opt.sel{border-color:var(--accent);background:var(--accent-100)}.opt .rb{border:2px solid var(--slate-300);border-radius:50%;flex:none;width:19px;height:19px;margin-top:1px;position:relative}.opt.sel .rb{border-color:var(--accent)}.opt.sel .rb:after{content:"";background:var(--accent);border-radius:50%;position:absolute;inset:3px}.opt .ot{font-size:14px;font-weight:600}.opt .od{color:var(--muted);margin-top:2px;font-size:12px}.quote{background:var(--ink);color:#eaf1f4;border-radius:10px;margin-top:16px;padding:18px 20px}.quote .line{color:#a9bcc6;justify-content:space-between;align-items:center;padding:6px 0;font-size:13.5px;display:flex}.quote .line b{color:#fff;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600}.quote .total{color:#fff;border-top:1px solid #ffffff29;margin-top:8px;padding-top:12px;font-size:15px}.quote .total span:first-child{text-transform:uppercase;letter-spacing:.04em;font-family:Barlow Condensed,sans-serif}.quote .total .amt{color:var(--accent);font-family:IBM Plex Mono,monospace;font-size:24px;font-weight:600}.quote .inc{color:#8d9ea8;align-items:center;gap:7px;margin-top:8px;font-size:11.5px;line-height:1.45;display:flex}.quote .inc svg{width:14px;height:14px;color:var(--accent);flex:none}.pay-info{background:var(--warn-100);color:var(--warn);border:1px solid #ead9b0;border-radius:8px;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:12.5px;line-height:1.5;display:flex}.pay-info svg{flex:none;width:17px;height:17px;margin-top:1px}.space-note{border-radius:8px;align-items:flex-start;gap:9px;margin-top:14px;padding:11px 13px;font-size:13px;line-height:1.45;display:flex}.space-note svg{flex:none;width:17px;height:17px;margin-top:1px}.space-note.ok{color:#1f6b41;background:#e3f1e8;border:1px solid #bfe0cc}.space-note.error{color:#9a3b2c;background:#f7e3e0;border:1px solid #e9c6bf}.space-note.checking{background:var(--canvas);border:1px solid var(--line);color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:12px}.actions{justify-content:space-between;gap:12px;margin-top:26px;display:flex}.splitmain{grid-template-columns:minmax(0,1fr) 480px;min-height:100vh;display:grid}.list-col{border-right:1px solid var(--line);padding:28px 30px}.filters{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.chip{letter-spacing:.03em;border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:5px;padding:6px 12px;font-family:IBM Plex Mono,monospace;font-size:11.5px;font-weight:500}.chip.on{background:var(--ink);color:var(--canvas);border-color:var(--ink)}.reqs{flex-direction:column;gap:11px;display:flex}.req{background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:9px;padding:15px 17px;transition:all .15s;display:block}.req:hover{border-color:var(--slate-300)}.req.sel{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.req .top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px;display:flex}.req .boat-n{text-transform:uppercase;font-family:Barlow Condensed,sans-serif;font-size:18px;font-weight:700}.req .meta{color:var(--muted);flex-wrap:wrap;gap:14px;font-family:IBM Plex Mono,monospace;font-size:12.5px;display:flex}.req .meta b{color:var(--text);font-weight:600}.drawer{background:var(--surface);border-left:1px solid var(--line);flex-direction:column;padding:26px 24px;display:flex}.drawer h2{text-transform:uppercase;font-size:24px}.drawer .sub{color:var(--muted);margin:3px 0 18px;font-family:IBM Plex Mono,monospace;font-size:12.5px}.kv{grid-template-columns:1fr 1fr;gap:14px 16px;margin-bottom:18px;display:grid}.kv .k{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500}.kv .v{margin-top:3px;font-size:14.5px;font-weight:600}.charges{border:1px solid var(--line);background:var(--canvas);border-radius:8px;margin-bottom:16px;padding:6px 14px}.charges .cl{border-bottom:1px solid var(--line-soft);color:#3a4d56;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:13px;display:flex}.charges .cl:last-child{border-bottom:none}.charges .cl i{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:11.5px;font-style:normal}.charges .cl b{font-family:IBM Plex Mono,monospace;font-weight:600}.charges .cl.paint{background:rgba(var(--accent-rgb),.06);margin:0 -14px;padding:8px 14px}.rinput{border:1px solid var(--accent);width:46px;color:var(--accent-600);text-align:center;background:#fff;border-radius:4px;padding:2px 4px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600}.rinput:focus{box-shadow:0 0 0 2px var(--accent-100);outline:none}.charges .cl.tot{text-transform:uppercase;letter-spacing:.03em;color:var(--text);font-family:Barlow Condensed,sans-serif;font-size:15px}.charges .cl.tot b{color:var(--accent-600);font-size:16px}.doc{background:var(--canvas);border:1px solid var(--line);border-radius:7px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.doc .ic{background:var(--accent-100);width:30px;height:30px;color:var(--accent-600);border-radius:6px;flex:none;place-items:center;display:grid}.doc .ic svg{width:16px;height:16px}.doc a{color:var(--sea);margin-left:auto;font-size:12.5px;font-weight:600}.works{background:var(--canvas);border:1px solid var(--line);color:#33454f;border-radius:7px;margin:8px 0 20px;padding:12px 14px;font-size:13.5px;line-height:1.55}.assign{border-top:1px solid var(--line);margin-top:auto;padding-top:18px}.assign h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:12px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500}.okmsg{background:var(--good-100);color:#14603f;border-radius:7px;align-items:center;gap:8px;margin-bottom:14px;padding:9px 12px;font-size:12.5px;font-weight:600;display:flex}.okmsg.bad{color:#9a3b2c;background:#f7e3e0}.okmsg svg{flex:none;width:16px;height:16px}.capgrid{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:14px;margin-bottom:22px;display:grid}.capcard{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:9px;padding:16px 18px}.capcard .l{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:500}.capcard .n{margin-top:5px;font-family:IBM Plex Mono,monospace;font-size:26px;font-weight:600}.capcard .n small{color:var(--muted);font-size:13px;font-weight:500}.capcard.free .n{color:var(--good)}.capcard.used .n{color:var(--sea)}.capcard.pct .n{color:var(--warn)}.meter{background:var(--canvas-2);border-radius:5px;height:8px;margin-top:11px;overflow:hidden}.meter i{background:var(--sea);border-radius:5px;height:100%;display:block}.chartcard{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:11px;padding:22px 24px}.chartcard h3{text-transform:uppercase;margin-bottom:2px;font-size:19px}.chartcard .csub{color:var(--muted);margin-bottom:20px;font-size:12.5px}.chart{gap:24px;display:flex}.yaxis{height:230px;color:var(--faint);text-align:right;flex-direction:column;justify-content:space-between;padding-bottom:26px;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:500;display:flex}.plot{flex:1;position:relative}.grid-lines{flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0 0 26px}.grid-lines i{border-top:1px dashed var(--line)}.grid-lines i.cap{border-top:2px dashed var(--accent-600)}.bars{align-items:flex-end;gap:6px;height:230px;display:flex;position:relative}.col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex}.col .bar{border-radius:3px 3px 0 0;width:78%;max-width:34px;min-height:2px;transition:all .2s;position:relative}.col .bar.low{background:#2f8f63}.col .bar.mid{background:#cf8a26}.col .bar.high{background:var(--accent)}.col .val{color:var(--ink);white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:600;position:absolute;top:-17px;left:50%;transform:translate(-50%)}.col .day{color:var(--muted);text-align:center;height:26px;margin-top:7px;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:500;line-height:1.25}.col .day b{color:var(--text);font-size:12.5px;display:block}.boatlist{border-top:1px solid var(--line-soft);flex-wrap:wrap;gap:10px;margin-top:22px;padding-top:18px;display:flex}.bchip{background:var(--canvas);border:1px solid var(--line);border-radius:7px;align-items:center;gap:9px;padding:8px 13px;font-size:12.5px;display:flex}.bchip .sq{color:var(--ink);font-family:IBM Plex Mono,monospace;font-weight:600}.bchip small{color:var(--muted)}.alert{background:var(--accent-100);color:var(--accent-700);border:1px solid #bfe3e6;border-radius:7px;align-items:center;gap:8px;margin-top:16px;padding:9px 13px;font-size:12.5px;font-weight:600;display:flex}.alert svg{flex:none;width:16px;height:16px}.vtabs{background:var(--canvas-2);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;gap:4px;padding:4px;display:flex}.vtabs a{letter-spacing:.03em;text-transform:uppercase;color:var(--muted);border-radius:6px;padding:7px 14px;font-family:Barlow Condensed,sans-serif;font-size:14px;font-weight:600}.vtabs a.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.periodnav{align-items:center;gap:10px;display:flex}.periodnav a.arrow{border:1px solid var(--line);background:var(--surface);width:34px;height:34px;color:var(--text);border-radius:7px;place-items:center;display:grid}.periodnav a.arrow svg{width:16px;height:16px}.periodnav .m{text-align:center;min-width:210px;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:13.5px}.gantt{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:11px;overflow:hidden}.gantt-head{border-bottom:1px solid var(--line);background:var(--canvas);grid-template-columns:170px repeat(14,1fr);display:grid}.gantt-head .corner{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:12px 14px;font-family:IBM Plex Mono,monospace;font-size:10px}.gantt-head .d{text-align:center;border-left:1px solid var(--line-soft);color:var(--muted);padding:9px 0;font-family:IBM Plex Mono,monospace;font-size:10.5px}.gantt-head .d b{color:var(--text);font-size:12.5px;display:block}.gantt-head .d.today{background:var(--accent-100)}.grow{border-bottom:1px solid var(--line-soft);grid-template-columns:170px repeat(14,1fr);min-height:48px;display:grid;position:relative}.grow:last-child{border-bottom:none}.slotcell{border-right:1px solid var(--line);background:var(--surface);z-index:1;flex-direction:column;justify-content:center;padding:0 14px;display:flex}.slotcell b{text-transform:uppercase;font-family:Barlow Condensed,sans-serif;font-size:15px;font-weight:700;line-height:1.05}.slotcell small{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:10px}.gcell{border-left:1px solid var(--line-soft)}.track{pointer-events:none;position:absolute;inset:0 0 0 170px}.gbar{color:#fff;white-space:nowrap;border-radius:6px;align-items:center;height:30px;padding:0 11px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;display:flex;position:absolute;top:9px;overflow:hidden;box-shadow:0 2px 6px #0e1c2626}.gbar.service{background:var(--accent)}.gbar.approved{background:#2f8f63}.ganttempty{text-align:center;color:var(--muted);padding:44px}.mgrid{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.mhead{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:center;padding-bottom:2px;font-family:IBM Plex Mono,monospace;font-size:10px}.mcell{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;min-height:92px;padding:8px 9px;display:flex}.mcell.out{background:var(--canvas-2);opacity:.55}.mcell.today{border-color:var(--accent)}.mcell .dn{font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600}.mcell .mb{color:var(--muted);margin-top:auto;font-family:IBM Plex Mono,monospace;font-size:10px}.mcell .mfill{background:var(--canvas-2);border-radius:3px;height:5px;margin-top:6px;overflow:hidden}.mcell .mfill i{height:100%;display:block}.mlegend{color:var(--muted);gap:16px;margin-top:16px;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex}.mlegend span{align-items:center;gap:6px;display:flex}.mlegend i{border-radius:3px;width:12px;height:12px;display:inline-block}.srow{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:10px;padding:11px 0;display:flex}.srow:last-child{border-bottom:none}.srow-head{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:10px}.srow .ef{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.srow .ef .name{flex:1;min-width:130px}.srow .input,.srow .select{padding:8px 10px;font-size:14px}.iconbtn{border:1px solid var(--line);cursor:pointer;width:34px;height:34px;color:var(--muted);background:0 0;border-radius:7px;place-items:center;display:grid}.iconbtn:hover{border-color:var(--accent);color:var(--accent)}.iconbtn svg{width:15px;height:15px}.srow .chip svg{flex:none;width:12px;height:12px}.srow-hint{display:none}.svc-pick{flex-direction:column;gap:8px;display:flex}.svc-opt{border:1.5px solid var(--line);cursor:pointer;background:var(--surface);border-radius:9px;align-items:center;gap:11px;padding:11px 14px;transition:all .15s;display:flex}.svc-opt:hover{border-color:var(--slate-300)}.svc-opt.sel{border-color:var(--accent);background:var(--accent-100)}.svc-opt .cb{border:2px solid var(--slate-300);color:#fff;border-radius:5px;flex:none;place-items:center;width:19px;height:19px;display:grid}.svc-opt.sel .cb{background:var(--accent);border-color:var(--accent)}.svc-opt .cb svg{opacity:0;width:12px;height:12px}.svc-opt.sel .cb svg{opacity:1}.svc-opt .sn{flex:1;font-size:14px;font-weight:600}.svc-opt .sp{color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600}.svc-opt .st{color:var(--muted);margin-left:8px;font-family:IBM Plex Mono,monospace;font-size:10.5px}.charges .cl.svc span{align-items:center;gap:2px;display:flex}.rmbtn{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-left:4px;padding:0 4px;font-size:15px;font-weight:700;line-height:1}.rmbtn:hover{color:var(--accent-700)}.addsvc{gap:8px;margin:8px 0 4px;display:flex}.addsvc .select{flex:1;padding:8px 10px;font-size:13px}.addsvc .btn{padding:8px 14px;font-size:14px}.plano{border:1px solid var(--line);width:100%;max-width:760px;box-shadow:var(--shadow);background:var(--ink);border-radius:11px;line-height:0;position:relative;overflow:hidden}.plano img{width:100%;display:block}.lot{text-align:center;box-sizing:border-box;cursor:default;border:2px solid;border-radius:4px;justify-content:center;align-items:center;padding:1px;font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:600;line-height:1.05;display:flex;position:absolute;overflow:hidden}.lot.free{color:#eafff4;background:#2f8f6380;border-color:#2f8f63}.lot.busy{color:#fff;background:#d05d34a8;border-color:#c2522e}.lot.off{color:#eee;background:#82828259;border-color:#999}.lot.sel{box-shadow:0 0 0 3px rgba(var(--accent-rgb),.55);z-index:3}.daterange{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:18px;display:flex}.daterange .field{margin-bottom:0}.plano-legend{color:var(--muted);flex-wrap:wrap;gap:18px;margin-top:14px;font-family:IBM Plex Mono,monospace;font-size:11.5px;display:flex}.plano-legend i{vertical-align:-2px;border-radius:3px;width:13px;height:13px;margin-right:6px;display:inline-block}.lot.pick{color:#fff;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--sea);z-index:3;background:#15506b9e;border-color:#0f3c52}.maplist{grid-template-columns:340px 1fr;align-items:start;gap:20px;display:grid}.boatlist{flex-direction:column;gap:9px;display:flex}.blhead{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;font-family:IBM Plex Mono,monospace;font-size:10.5px}.bcard{background:var(--surface);border:1px solid var(--line);border-left:4px solid #0000;border-radius:9px;padding:12px 14px;transition:all .15s;display:block}.bcard:hover{border-color:var(--slate-300)}.bcard.sel{box-shadow:0 0 0 1px var(--sea);background:#f7fafb}.bcard .bctop{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.bcard .bn{text-transform:uppercase;font-family:Barlow Condensed,sans-serif;font-size:17px;font-weight:700}.bcard .bcmeta{color:var(--muted);flex-wrap:wrap;gap:12px;font-family:IBM Plex Mono,monospace;font-size:11.5px;display:flex}.bcard .bcmeta b{color:var(--text);font-weight:600}.detcard{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--sea);border-radius:10px;margin-top:14px;padding:16px 18px}.detcard h3{text-transform:uppercase;justify-content:space-between;align-items:center;gap:8px;font-size:19px;display:flex}.detcard .kv{grid-template-columns:1fr 1fr;gap:11px 14px;margin-top:12px;margin-bottom:0;display:grid}.detcard .k{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:9.5px}.detcard .v{margin-top:2px;font-size:14px;font-weight:600}.detlabel{letter-spacing:.06em;text-transform:uppercase;color:var(--accent-600);align-items:center;gap:10px;margin:20px 0 8px;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:600;display:flex}.detlabel:after{content:"";background:var(--line);flex:1;height:1px}.pz{flex-wrap:wrap;gap:5px;display:inline-flex}.pz span{background:var(--sea-100);color:#0f3c52;border:1px solid #cfe0e9;border-radius:4px;padding:1px 7px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600}.weeks{flex-direction:column;gap:6px;display:flex}.wkrow{border:1px solid var(--line);background:var(--surface);border-radius:9px;position:relative;overflow:hidden}.wkgrid{grid-template-columns:repeat(7,1fr);display:grid;position:absolute;inset:0}.dcell{border-right:1px solid var(--line-soft);padding:5px 7px}.dcell:last-child{border-right:none}.dcell.out{background:var(--canvas-2);opacity:.5}.dcell .dn{color:#3a4d56;font-family:IBM Plex Mono,monospace;font-size:12.5px;font-weight:600}.dcell.today .dn{background:var(--ink);color:#fff;border-radius:5px;padding:0 6px}.bar{color:#fff;white-space:nowrap;text-overflow:ellipsis;z-index:2;align-items:center;height:19px;padding:0 8px;font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:600;display:flex;position:absolute;overflow:hidden;box-shadow:0 1px 2px #0e1c262e}.bar small{opacity:.92;font-weight:500}.callegend{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.lgi{background:var(--canvas);border:1px solid var(--line);border-radius:8px;align-items:center;gap:9px;padding:8px 12px;font-size:12.5px;display:flex}.lgi .sw{border-radius:4px;flex:none;width:14px;height:14px}.lgi .det{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:11px}.lot.edit{cursor:grab}.lot.edit:active{cursor:grabbing}.lotpanel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:16px}.lotpanel .grid2{gap:0 12px}.lotlist{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.lotpill{border:1px solid var(--line);cursor:pointer;background:var(--surface);border-radius:6px;padding:5px 10px;font-family:IBM Plex Mono,monospace;font-size:11px}.lotpill.on{background:var(--ink);color:var(--canvas);border-color:var(--ink)}.emar{grid-template-columns:360px minmax(0,1fr);min-height:100vh;display:grid}.emar-list{border-right:1px solid var(--line);padding:26px 24px}.emar-exp{background:var(--canvas);padding:26px 30px}.bsearch{margin:16px 0 14px;position:relative}.bsearch svg{width:15px;height:15px;color:var(--muted);position:absolute;top:50%;left:11px;transform:translateY(-50%)}.bsearch input{border:1.5px solid var(--line);background:var(--surface);width:100%;color:var(--text);border-radius:8px;padding:10px 12px 10px 34px;font-family:inherit;font-size:14px}.bsearch input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-100);outline:none}.boats-list{flex-direction:column;gap:8px;display:flex}.boatcard{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:12px 14px;transition:all .15s;display:block}.boatcard:hover{border-color:var(--slate-300)}.boatcard.sel{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.boatcard .n{text-transform:uppercase;justify-content:space-between;align-items:center;gap:8px;font-family:Barlow Condensed,sans-serif;font-size:17px;font-weight:700;display:flex}.boatcard .mat{color:var(--muted);margin-top:1px;font-family:IBM Plex Mono,monospace;font-size:11px}.boatcard .mt{color:var(--muted);gap:12px;margin-top:7px;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex}.boatcard .mt b{color:var(--text);font-weight:600}.dot{border-radius:50%;flex:none;width:7px;height:7px;display:inline-block}.exphead{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:4px;display:flex}.exphead h2{text-transform:uppercase;font-size:30px;line-height:1}.expmat{color:var(--muted);align-items:center;gap:8px;margin-top:5px;font-family:IBM Plex Mono,monospace;font-size:12.5px;display:flex}.statline{align-items:center;gap:7px;margin-top:9px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;display:flex}.spec{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:11px;margin:18px 0;padding:18px 20px}.speckv{grid-template-columns:repeat(4,1fr);gap:15px 18px;display:grid}.speckv .k{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:9.5px}.speckv .v{margin-top:3px;font-size:15px;font-weight:600}.ownerrow{border-top:1px solid var(--line-soft);margin-top:16px;padding-top:14px}.ownerrow .who{font-size:14px}.ownerrow .who b{font-weight:700}.emar-sect{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-600);align-items:center;gap:10px;margin:6px 0 14px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;display:flex}.emar-sect .cnt{color:var(--muted)}.emar-sect:after{content:"";background:var(--line);flex:1;height:1px}.timeline{padding-left:26px;position:relative}.timeline:before{content:"";background:var(--line);width:2px;position:absolute;top:8px;bottom:10px;left:6px}.visit{margin-bottom:13px;position:relative}.visit:before{content:"";background:var(--surface);border:3px solid var(--accent);border-radius:50%;width:14px;height:14px;position:absolute;top:16px;left:-26px}.visit.done:before{border-color:var(--done)}.vcard{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:14px 16px}.vtop{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px;display:flex}.vdates{font-family:IBM Plex Mono,monospace;font-size:13.5px;font-weight:600}.vdates .arrow{color:var(--muted);margin:0 6px}.vdates .real{color:var(--muted);margin-left:6px;font-size:11px;font-weight:500}.vmoney{color:var(--accent-600);font-family:IBM Plex Mono,monospace;font-size:14px;font-weight:600}.vmeta{color:#3a4d56;flex-wrap:wrap;align-items:center;gap:18px;font-size:13px;display:flex}.vmeta .lab{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-right:6px;font-family:IBM Plex Mono,monospace;font-size:9.5px}.docs{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:16px 18px}.docrow{border-bottom:1px solid var(--line-soft);align-items:center;gap:10px;padding:8px 0;font-size:13.5px;display:flex}.docrow .ic{background:var(--accent-100);width:28px;height:28px;color:var(--accent-600);border-radius:6px;flex:none;place-items:center;display:grid}.docrow .ic svg{width:15px;height:15px}.docrow a{color:var(--sea);margin-left:auto;font-size:12.5px;font-weight:600}.noteform{border-top:1px solid var(--line-soft);margin-top:12px;padding-top:14px}.noteform label{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:7px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500;display:block}.noteform .hint{letter-spacing:0;text-transform:none;color:var(--faint);font-size:11px}.precarga{background:var(--good-100);color:#14603f;border:1px solid #bfe1d0;border-radius:8px;align-items:center;gap:10px;margin:0 0 16px;padding:10px 13px;font-size:13px;font-weight:600;display:flex}.precarga svg{flex:none;width:17px;height:17px}.precarga a{color:#14603f;white-space:nowrap;margin-left:auto;font-size:12.5px;text-decoration:underline}.puestobox{background:var(--sea-100);border:1px solid #cfe0e9;border-radius:8px;padding:13px 15px}.puestobox label{color:#0f3c52}@media (max-width:760px){.split,.splitmain{min-height:auto;grid-template-columns:1fr!important}.hero{min-height:auto;padding:26px 22px 30px}.hero h1{margin:18px 0 12px;font-size:34px}.hero .feats,.hero .wave{display:none}.auth{padding:26px 20px}.shell{grid-template-columns:1fr}.topbar-m{z-index:30;background:var(--navy-900);align-items:center;gap:10px;padding:9px 12px;display:flex;position:sticky;top:0}.topbar-m .brand .name{color:#fff;font-size:17px}.topbar-m .brand .logo{width:34px;height:34px}.burger{color:#fff;cursor:pointer;border-radius:9px;flex:none;place-items:center;width:42px;height:42px;display:grid}.burger svg{width:24px;height:24px}.side{z-index:50;border-top:none;flex-direction:column;width:280px;max-width:84vw;height:100%;padding:18px 14px;transition:transform .25s;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-100%)}.side-head{margin-bottom:6px}.side .brand .name{color:#fff}.drawer-close{color:#9db0bd;cursor:pointer;border-radius:8px;place-items:center;width:38px;height:38px;display:grid}.drawer-close svg{width:22px;height:22px}.mnav-toggle:checked~.side{transform:translate(0)}.mnav-scrim{display:none}.mnav-toggle:checked~.mnav-scrim{z-index:45;background:#08141c8c;display:block;position:fixed;inset:0}.side .user form{display:none}.logout-m{border-top:1px solid #ffffff17;margin-top:12px;padding-top:10px;display:block}.logout-m button{color:#cfd9df;width:100%;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:10px;padding:11px 13px;font-size:14.5px;font-weight:500;display:flex}.logout-m button svg{width:19px;height:19px}.logout-m button:active{color:#fff;background:#ffffff14}.main{padding:20px 18px 40px}.list-col{border-right:none;padding:22px 18px 40px}.drawer{border-left:none;border-top:1px solid var(--line)}.wrap{padding:24px 18px 40px}.topbar{padding:13px 18px}.grid2,.grid3,.pick2{grid-template-columns:1fr}.stats,.capgrid{grid-template-columns:1fr 1fr}.tbl-card{overflow-x:auto}.tbl-card table{min-width:560px}.kv{grid-template-columns:1fr 1fr}.chart{gap:12px}.yaxis{display:none}.pagehead .btn{width:100%}.gantt{overflow-x:auto}.gantt-head,.grow{min-width:780px}.mgrid{gap:5px}.mcell{min-height:70px;padding:6px}.mcell .ev{padding:1px 3px;font-size:8.5px}.periodnav .m{min-width:0}.maplist{grid-template-columns:1fr}.detcard .kv{grid-template-columns:1fr 1fr}.emar{grid-template-columns:1fr;min-height:auto}.emar-list{border-right:none;padding:22px 18px 16px}.emar-exp{padding:22px 18px 40px}.speckv{grid-template-columns:1fr 1fr}}
