:root{--bg:#06101d;--panel:#0a1726;--panel2:#0d1d2e;--line:#1b3047;--line2:#27435e;--text:#edf5fb;--muted:#8095aa;--blue:#4b9de0;--blue2:#78b8ef;--danger:#e5798f;--success:#86d4aa;--warn:#e9bd78}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.55}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:230px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:#07121f;padding:28px 18px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;margin:0 8px 36px}.brand img{height:33px;width:auto;max-width:145px;object-fit:contain}.brand span{padding-left:13px;border-left:1px solid var(--line2);font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:#a3b4c5}.nav-label{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#5e758b;margin:22px 10px 7px}.nav-item{display:block;text-decoration:none;padding:9px 10px;border-radius:8px;color:#a8bacb;font-weight:650;font-size:12px}.nav-item:hover{background:#0d1c2b;color:#fff}.sidebar-user{margin-top:auto;border-top:1px solid var(--line);padding:16px 10px 0;display:grid;gap:4px}.sidebar-user strong{font-size:12px}.sidebar-user span{font-size:10px;color:var(--muted);margin-bottom:5px}.sidebar-user a{font-size:10px;color:#8cbce5;text-decoration:none}.main{min-width:0;padding:36px clamp(22px,4vw,58px) 70px}.page-head,.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.page-head{margin-bottom:25px}.section-head{margin:28px 0 12px}.section-head h2,.page-head h1{margin:3px 0 0}.page-head h1{font-size:29px;line-height:1.15;letter-spacing:-.025em}.section-head h2{font-size:18px}.page-head p,.section-head p{color:var(--muted);margin:6px 0 0;max-width:750px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:#6d9fc8;font-size:9px;font-weight:800}.page-actions,.danger-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{border:1px solid var(--line2);background:#0b1b2b;color:#dce9f4;border-radius:8px;padding:8px 12px;text-decoration:none;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;min-height:34px}.btn:hover{border-color:#47759c;background:#10263a}.btn.primary{background:#eaf4fc;color:#0a1b2b;border-color:#eaf4fc}.btn.primary:hover{background:#fff}.btn.danger{color:#ffdce3;border-color:#703749;background:#27141b}.btn.full{width:100%;margin-top:8px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stat,.info-card{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:15px}.stat span,.info-card span{display:block;text-transform:uppercase;letter-spacing:.09em;font-size:8px;color:#748ca2;font-weight:800}.stat strong{display:block;font-size:26px;line-height:1.1;margin:7px 0;color:#f5f9fc}.stat small,.info-card small{color:#6f8599}.info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:26px}.info-card strong{display:block;margin-top:6px;font-size:13px}.info-card.sensitive{border-color:#40536a;background:#0b1825}.table-card{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}.table-card.scroll{overflow:auto}.data-table{width:100%;border-collapse:collapse}.data-table.wide{min-width:1100px}.data-table th{text-align:left;font-size:8px;text-transform:uppercase;letter-spacing:.09em;color:#668096;padding:10px 12px;border-bottom:1px solid var(--line);background:#081522}.data-table td{padding:11px 12px;border-bottom:1px solid #14263a;color:#b6c6d4;vertical-align:top;font-size:11px}.data-table tr:last-child td{border-bottom:0}.data-table td strong{color:#edf5fb}.data-table td small{display:block;color:#6e8499;margin-top:2px}.data-table .actions{text-align:right;white-space:nowrap}.data-table .actions a,.link-button{color:#78b8ef;font-weight:800;text-decoration:none;font-size:10px}.link-button{border:0;background:transparent;padding:0 0 0 9px}.link-button.warn{color:var(--warn)}.danger-text{color:var(--danger)!important}.empty-cell{text-align:center!important;color:#62798d!important;padding:30px!important}.status{display:inline-flex;align-items:center;border:1px solid #35506a;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:800;color:#a8bfd4;white-space:nowrap}.status.active,.status.assigned{border-color:#315d47;color:#96d8b3}.status.suspended,.status.on_hold{border-color:#70582f;color:#e7c184}.status.disabled,.status.cancelled,.status.removed{border-color:#6b3445;color:#e9a4b3}.status.not_purchased{color:#758a9e}.status.pending_activation,.status.ordered{color:#e3c08a;border-color:#665232}.status.completed{color:#9cc9b1;border-color:#3c604c}.form-card{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:20px;max-width:980px}.form-card.narrow{max-width:640px}.form-card label,.auth-card label,.setup-shell label{display:block;color:#aebfce;font-size:10px;font-weight:750;margin-bottom:12px}.form-card input,.form-card select,.form-card textarea,.auth-card input,.setup-shell input{width:100%;margin-top:5px;border:1px solid #253e56;background:#061321;color:#eef6fc;border-radius:8px;padding:9px 10px;outline:none}.form-card input:focus,.form-card select:focus,.form-card textarea:focus,.auth-card input:focus{border-color:#5798cf}.form-grid{display:grid;gap:0 12px}.form-grid.two{grid-template-columns:1fr 1fr}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.checkbox-row{display:flex!important;gap:8px;align-items:center}.checkbox-row input,.permission-grid input{width:auto!important;margin:0!important}.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0 17px}.permission-grid label{display:flex;align-items:center;gap:8px;margin:0}.secondary-form{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.project-tabs{display:flex;gap:5px;margin:0 0 18px}.project-tabs a{border:1px solid var(--line);padding:6px 10px;border-radius:7px;text-decoration:none;color:#8aa4bb;font-size:10px;font-weight:800}.sensitive-banner{border-left:3px solid #55758f;background:#0b1926;padding:9px 11px;margin-bottom:10px;color:#91a6b8;font-size:10px}.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.service-card{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:15px}.service-head{display:flex;justify-content:space-between;gap:12px}.service-head span,.service-premium span{display:block;font-size:8px;letter-spacing:.12em;color:#6d9fc8;font-weight:800}.service-head h3{font-size:14px;margin:3px 0}.service-card p,.service-premium p{color:#8094a7;font-size:10px}.service-card small{color:#7f93a6}.service-manage{display:block;margin-top:12px;color:#79b7eb;font-size:10px;font-weight:800;text-decoration:none}.service-premium{border-left:3px solid #508dbd;padding:5px 0 5px 12px;margin-bottom:17px}.service-premium strong{font-size:15px}.danger-zone{margin-top:28px;border:1px solid #4a2e37;background:#160d12;border-radius:12px;padding:14px;display:flex;justify-content:space-between;align-items:center;gap:16px}.danger-zone p{margin:3px 0 0;color:#9c7c86;font-size:10px}.flash{border:1px solid var(--line2);background:#0d1d2c;border-radius:9px;padding:10px 12px;margin:0 0 14px;font-size:11px}.flash.success{border-color:#315d47;color:#9bdab8}.flash.error{border-color:#6b3445;color:#efadbc}.auth-main,.setup-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 10%,#102b45 0,#071321 38%,#050d17 75%)}.auth-card,.setup-shell{width:min(430px,100%);border:1px solid #213b54;background:rgba(7,18,31,.96);border-radius:16px;padding:28px;box-shadow:0 30px 80px rgba(0,0,0,.35)}.auth-brand{display:flex;align-items:center;gap:15px;margin-bottom:30px}.auth-brand img,.setup-logo{height:44px;width:auto;max-width:190px;object-fit:contain}.auth-brand span{padding-left:14px;border-left:1px solid #31506c;text-transform:uppercase;letter-spacing:.16em;font-size:10px;color:#9db1c3}.auth-card h1,.setup-shell h1{font-size:26px;margin:5px 0}.auth-card>p,.setup-shell>p{color:#8296a9;font-size:11px;margin-bottom:22px}.auth-foot{border-top:1px solid var(--line);margin-top:22px;padding-top:13px;color:#60788e;font-size:9px;text-align:center}.setup-logo{margin-bottom:28px}.security-state{border-left:3px solid #4a87b5;padding-left:12px;margin-bottom:18px}.security-state.good{border-color:#3f7958}.security-state p{color:#7e94a7;margin:4px 0}.secret-box{font-family:ui-monospace,Menlo,monospace;font-size:15px;letter-spacing:.08em;background:#061321;border:1px solid #294158;padding:12px;border-radius:8px;word-break:break-all;margin-bottom:9px}.uri-box{font-family:ui-monospace,Menlo,monospace;color:#71879b;background:#07121f;padding:9px;border-radius:7px;word-break:break-all;font-size:8px;margin-bottom:16px}
@media(max-width:1050px){.stats-grid,.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell{grid-template-columns:200px minmax(0,1fr)}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:16px}.brand{margin-bottom:14px}.sidebar nav{display:flex;gap:3px;overflow:auto}.nav-label{display:none}.nav-item{white-space:nowrap}.sidebar-user{display:flex;align-items:center;gap:10px;margin-top:12px}.sidebar-user span{margin:0}.main{padding:24px 15px 50px}.page-head,.section-head{align-items:flex-start;flex-direction:column}.stats-grid,.info-grid,.form-grid.two{grid-template-columns:1fr}.table-card{overflow:auto}.data-table{min-width:720px}.service-grid{grid-template-columns:1fr}.danger-zone{align-items:flex-start;flex-direction:column}.permission-grid{grid-template-columns:1fr}}

.filter-bar{display:flex;align-items:flex-end;gap:12px;border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:12px;margin-bottom:16px}.filter-bar label{font-size:9px;color:#8499ab;font-weight:800}.filter-bar input{display:block;margin-top:4px;border:1px solid #253e56;background:#061321;color:#eef6fc;border-radius:7px;padding:7px 9px}.filter-total{min-width:120px;border-left:1px solid var(--line);padding-left:12px}.filter-total span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.09em;color:#6d8396}.filter-total strong{font-size:13px}.inline-form{display:inline}.mini-input{width:135px;border:1px solid #253e56;background:#061321;color:#eef6fc;border-radius:6px;padding:5px 7px;font-size:9px;margin-left:8px}.rejection-note{color:#eaa4b3!important}.submission-box{margin-top:16px;border:1px solid var(--line2);background:#0a1826;border-radius:12px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:20px}.submission-box p{margin:3px 0 0;color:#7f94a7;font-size:10px}.submission-box form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.submission-box select{border:1px solid #253e56;background:#061321;color:#eef6fc;border-radius:7px;padding:7px 9px}.preview-card{border:1px solid var(--line);background:#071523;border-radius:10px;padding:14px;margin:8px 0 12px}.preview-card span,.preview-card small{display:block;color:#71889b}.preview-card strong{font-size:25px;display:block}.form-hint{color:#71889b;font-size:10px}.hash-text{font-size:8px!important;word-break:break-all;color:#85a0b7!important}.invoice-editor{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:16px}.invoice-row{display:grid;grid-template-columns:minmax(240px,1fr) 90px 80px 120px;gap:8px;padding:8px;border-bottom:1px solid var(--line)}.invoice-row:last-child{border-bottom:0}.invoice-row input{margin:0}.invoice-head-row{background:#081522;color:#688196;font-size:8px;text-transform:uppercase;letter-spacing:.09em;font-weight:800}.payment-form{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:12px;margin-top:12px}.payment-form form{display:grid;grid-template-columns:140px 160px 1fr auto;gap:10px;align-items:end}.payment-form label{font-size:9px;color:#8297aa;font-weight:800}.payment-form input{display:block;width:100%;margin-top:4px;border:1px solid #253e56;background:#061321;color:#eef6fc;border-radius:7px;padding:7px 9px}.project-operations{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}@media(max-width:760px){.filter-bar,.submission-box{align-items:stretch;flex-direction:column}.filter-total{border-left:0;border-top:1px solid var(--line);padding:8px 0 0}.invoice-row{grid-template-columns:1fr 70px 60px 95px}.payment-form form{grid-template-columns:1fr}.project-operations{margin-bottom:14px}}.status.booked{border-color:#315d47;color:#96d8b3}.status.available{border-color:#31506a;color:#a9cce9}.status.paused{border-color:#70582f;color:#e7c184}.status.inactive{border-color:#5e4951;color:#bda8af}.booking-card{margin-top:12px}.muted-copy{color:#7f94a8;font-size:10px;margin:-3px 0 14px}.btn:disabled{opacity:.45;cursor:not-allowed}.service-card small{display:block;margin-top:7px}.calendar-toolbar{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:10px 12px;margin-bottom:10px}.calendar-toolbar>div>span,.calendar-summary span{display:block;text-transform:uppercase;letter-spacing:.09em;font-size:8px;color:#71889b}.calendar-toolbar>div>strong,.calendar-summary strong{display:block;font-size:12px}.calendar-summary{margin-left:auto;border-left:1px solid var(--line);padding-left:12px}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;margin-bottom:4px}.calendar-weekdays span{text-align:center;color:#637c91;font-size:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;padding:6px}.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-day{min-height:150px;border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:8px;text-decoration:none;overflow:hidden}.calendar-day:hover{border-color:#345b7d;background:#0c1c2c}.calendar-day.outside{opacity:.34}.calendar-day.today{border-color:#5e93bd}.calendar-day-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.calendar-day-head>span{font-weight:900;font-size:11px}.calendar-day-head>strong{font-size:9px;color:#9ac9ea}.calendar-day-items{display:grid;gap:5px}.calendar-entry{border-left:2px solid #416c8e;background:#081725;border-radius:5px;padding:5px 6px;min-width:0}.calendar-entry b{font-size:9px;color:#cce5f7}.calendar-entry span,.calendar-entry small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-entry span{font-size:9px;color:#bacad7}.calendar-entry small{font-size:8px;color:#6e879b}.calendar-more{font-size:8px;color:#7891a5;padding:3px}.time-day-card{max-width:820px}.activity-entry-head,.activity-entry-row{display:grid;grid-template-columns:110px minmax(0,1fr) 34px;gap:8px;align-items:center}.activity-entry-head{font-size:8px;text-transform:uppercase;letter-spacing:.09em;color:#6e8599;font-weight:800;padding:0 0 5px}.activity-entry-row{margin-bottom:7px}.activity-entry-row input{margin:0}.icon-button{width:34px;height:34px;border:1px solid var(--line2);border-radius:7px;background:#0a1725;color:#97adbf;font-size:17px}.time-entry-actions{display:flex;align-items:center;gap:10px;margin-top:12px}.day-total{margin-left:auto;text-align:right}.day-total span{display:block;text-transform:uppercase;letter-spacing:.09em;color:#71889b;font-size:8px}.day-total strong{font-size:16px}.calendar-filters{display:flex;gap:7px;margin-left:auto}.calendar-filters select{border:1px solid #253e56;background:#061321;color:#eef6fc;border-radius:7px;padding:7px 9px;font-size:10px}.admin-toolbar{flex-wrap:wrap}.calendar-legend{display:flex;gap:16px;align-items:center;margin:7px 0 10px;color:#7890a4;font-size:9px}.calendar-legend span{display:flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#527c9d}.legend-dot.actual{background:#b18352}.legend-dot.matched{background:#4f8969}.admin-day{min-height:185px}.calendar-add{color:#7cb8e5;text-decoration:none;font-size:16px;font-weight:800}.admin-bookings{display:grid;gap:5px}.booking-pill{position:relative;border:1px solid #29455d;background:#091928;border-radius:6px;padding:5px 24px 5px 6px}.booking-pill.has-actual{border-color:#386247}.booking-pill.actual-only{border-color:#665235;background:#1a160f}.booking-main{text-decoration:none;display:block;min-width:0}.booking-main strong,.booking-main span,.booking-main small,.booking-main b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking-main strong{font-size:9px;color:#e8f2f9}.booking-main span{font-size:8px;color:#91a7b8}.booking-main small{font-size:8px;color:#657f93}.booking-main b{font-size:8px;color:#8fd0aa}.booking-cancel{position:absolute;top:4px;right:4px;border:0;background:transparent;color:#8fa4b5;font-size:14px;padding:0 3px}.compact-toolbar{width:max-content}.project-overview-table{overflow:auto}.project-overview-table .data-table{min-width:1250px}.booking-period-form{display:flex;align-items:center;gap:5px;white-space:nowrap}.booking-period-form input{width:118px;border:1px solid #253e56;background:#061321;color:#eef6fc;border-radius:6px;padding:5px 6px;font-size:9px}.booking-period-form .link-button{padding-left:4px}@media(max-width:1100px){.month-calendar{grid-template-columns:repeat(7,minmax(120px,1fr));min-width:900px}.admin-calendar-grid{min-width:1050px}.calendar-weekdays{min-width:900px}.main{overflow-x:auto}}@media(max-width:760px){.calendar-toolbar,.calendar-filters,.time-entry-actions{align-items:stretch;flex-direction:column}.calendar-summary,.day-total{margin-left:0;border-left:0;border-top:1px solid var(--line);padding-top:7px;text-align:left}.calendar-filters{margin-left:0;width:100%}.calendar-filters select{width:100%}.activity-entry-head,.activity-entry-row{grid-template-columns:85px minmax(180px,1fr) 34px}.calendar-legend{flex-wrap:wrap}.booking-period-form{align-items:flex-start;flex-direction:column}.booking-period-form span{display:none}}.legend-dot.paused{background:#8b6d3e}.booking-pill.paused-booking{border-color:#70582f;background:#1a160f;opacity:.78}.completion-banner{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border:1px solid #70582f;background:#17140e;border-radius:12px;padding:14px 16px;margin-bottom:12px}.completion-banner.completed{border-color:#315d47;background:#0c1712}.completion-banner span{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:8px;color:#8296a7}.completion-banner strong{display:block;margin-top:3px}.completion-banner p{margin:6px 0 0;color:#9eb0bd;font-size:10px}.completion-banner>b{font-size:9px;text-transform:uppercase;letter-spacing:.08em}.completion-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}.completion-score{border:1px solid var(--line);background:var(--panel);border-radius:11px;padding:13px}.completion-score span,.completion-score small{display:block}.completion-score span{font-size:8px;text-transform:uppercase;letter-spacing:.09em;color:#71889b}.completion-score strong{display:block;font-size:23px;margin:4px 0}.completion-score small{font-size:9px;color:#7d92a3}.completion-score.blocked{border-color:#70434a}.completion-score.clear{border-color:#315d47}.completion-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:20px}.completion-check{display:flex;justify-content:space-between;gap:12px;border:1px solid var(--line);background:var(--panel);border-radius:9px;padding:11px 12px}.completion-check span{font-weight:800;font-size:10px}.completion-check p{font-size:9px;color:#758c9e;margin:3px 0 0;line-height:1.45}.completion-check>strong{font-size:18px}.completion-check.problem{border-color:#70434a}.completion-check.problem>strong{color:#e5a2aa}.completion-check.warning{border-color:#70582f}.completion-check.warning>strong{color:#e7c184}.completion-check.ok>strong{color:#8dc9a5}.completion-action-card{margin-top:16px}.completion-ready{border:1px solid #315d47;background:#0c1712;border-radius:8px;padding:10px 12px;margin:9px 0 14px;color:#a7d9ba;font-size:10px}.completion-return{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}@media(max-width:760px){.completion-summary,.completion-check-grid{grid-template-columns:1fr}.completion-banner{flex-direction:column}}