:root{--pv-navy-950:#071426;--pv-navy-900:#0b1d33;--pv-navy-800:#132a47;--pv-primary:#079669;--pv-primary-hover:#067a57;--pv-background:#f5f7fa;--pv-surface:#fff;--pv-text:#122033;--pv-muted:#66758a;--pv-border:#e1e7ee;--pv-success:#087a59;--pv-warning:#a15c07;--pv-danger:#c03445;--pv-info:#2563a9;--pv-radius-sm:7px;--pv-radius-md:11px;--pv-radius-lg:16px;--pv-shadow-sm:0 1px 2px #0714260a;--pv-shadow-md:0 10px 30px #07142614;--sidebar-width:256px;--transition:.15s ease}*{box-sizing:border-box}html{font-size:16px}body{color:var(--pv-text);background:var(--pv-background);margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}button,input,select,textarea{font:inherit}a{color:var(--pv-info)}:focus-visible{outline-offset:2px;outline:3px solid #07966940}.sidebar{width:var(--sidebar-width);z-index:40;background:linear-gradient(180deg,var(--pv-navy-950),#0a1a2d);color:#fff;flex-direction:column;padding:22px 14px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.brand-row{align-items:center;gap:11px;padding:0 10px 20px;display:flex}.brand-row strong{letter-spacing:-.02em;font-size:16px;display:block}.brand-row small{color:#8394aa;font-size:11px;display:block}.brand-mark{background:#07966921;border:1px solid #65e7bc4d;border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.brand-mark:before,.brand-mark:after,.brand-mark span{content:"";border:2px solid #3dd6a3;border-radius:50%;position:absolute}.brand-mark:before{width:17px;height:17px}.brand-mark:after{background:#3dd6a3;width:7px;height:7px}.company-context{border-radius:var(--pv-radius-md);background:#ffffff09;border:1px solid #ffffff12;margin:0 6px 14px;padding:11px 12px}.company-context span,.company-context strong{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.company-context span{text-transform:uppercase;letter-spacing:.08em;color:#71849d;font-size:10px}.company-context strong{color:#dbe4ee;margin-top:3px;font-size:12px}.environment-badge{color:#d9bd6b;letter-spacing:.12em;background:#f7c74814;border:1px solid #f7c7483d;border-radius:99px;align-self:flex-start;margin:0 8px 8px;padding:3px 7px;font-size:9px;font-weight:800}.sidebar-nav{display:block}.nav-group{margin-top:17px}.nav-label{color:#63768e;letter-spacing:.14em;text-transform:uppercase;padding:0 12px 7px;font-size:9px;font-weight:800;display:block}.nav-item{color:#9eacbd;min-height:41px;transition:background var(--transition),color var(--transition);border-radius:9px;align-items:center;gap:11px;margin:2px 0;padding:8px 11px;font-size:13px;font-weight:550;text-decoration:none;display:flex;position:relative}.nav-item svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.nav-item:hover{color:#e8edf3;background:#ffffff0e}.nav-item.active{color:#fff;background:#ffffff17}.nav-item.active:before{content:"";background:#35d39f;border-radius:9px;width:3px;height:19px;position:absolute;left:0}.nav-item.active svg{color:#50dcad}.nav-count{color:#fff;text-align:center;background:#cf7a18;border-radius:99px;min-width:20px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:800}.app-main{min-height:100vh;margin-left:var(--sidebar-width)}.topbar{z-index:30;border-bottom:1px solid var(--pv-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;justify-content:space-between;align-items:center;height:70px;padding:0 clamp(20px,3vw,42px);display:flex;position:sticky;top:0}.topbar-context span,.topbar-context strong{display:block}.topbar-context span{color:var(--pv-muted);font-size:11px}.topbar-context strong{font-size:14px}.user-menu{position:relative}.user-menu summary{cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:4px;list-style:none;display:flex}.user-menu summary::-webkit-details-marker{display:none}.user-menu summary>svg{fill:none;width:16px;stroke:var(--pv-muted);stroke-width:2px}.avatar{width:34px;height:34px;color:var(--pv-success);background:#e5faf2;border-radius:50%;place-items:center;font-size:11px;font-weight:800;display:grid}.user-copy strong,.user-copy small{white-space:nowrap;text-overflow:ellipsis;max-width:170px;display:block;overflow:hidden}.user-copy strong{font-size:12px}.user-copy small{color:var(--pv-muted);font-size:10px}.user-dropdown{border:1px solid var(--pv-border);border-radius:var(--pv-radius-md);width:220px;box-shadow:var(--pv-shadow-md);background:#fff;padding:7px;position:absolute;top:49px;right:0}.dropdown-head{border-bottom:1px solid var(--pv-border);margin-bottom:5px;padding:8px 9px 11px}.dropdown-head strong,.dropdown-head span{font-size:12px;display:block}.dropdown-head span{color:var(--pv-muted);font-size:10px}.user-dropdown a,.user-dropdown button{width:100%;color:var(--pv-text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:9px;font-size:12px;text-decoration:none;display:block}.user-dropdown a:hover,.user-dropdown button:hover{background:#f3f6f8}.content{width:100%;max-width:1680px;margin:0 auto;padding:clamp(24px,3vw,44px)}.page-header,.page-head{justify-content:space-between;align-items:flex-end;gap:22px;margin-bottom:26px;display:flex}.page-header h1,.page-head h1{color:#0d1c2e;letter-spacing:-.035em;margin:0;font-size:clamp(25px,2.2vw,34px);line-height:1.18}.page-header p,.page-head p{color:var(--pv-muted);margin:7px 0 0;font-size:14px}.breadcrumbs{color:#8692a3;margin-bottom:8px;font-size:11px}.breadcrumbs span{color:#b9c1cb;padding:0 4px}.page-actions{gap:10px;display:flex}.button,button:not(.icon-button):not(.text-button):not(.link),.btn{background:var(--pv-primary);color:#fff;cursor:pointer;min-height:42px;transition:all var(--transition);border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:9px 15px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.button:hover,button:not(.icon-button):not(.text-button):hover{background:var(--pv-primary-hover);transform:translateY(-1px)}.button.secondary,.btn-secondary{border-color:var(--pv-border);color:#26374c;background:#fff}.button.secondary:hover{background:#f5f7fa}.button.outline{color:#33465d;background:0 0;border-color:#b8c3d0}.button.ghost,.text-button{color:#52657a;background:0 0;border:0}.button.danger{background:var(--pv-danger)}button:disabled,.button.disabled{opacity:.5;cursor:not-allowed;transform:none}.button.sm{min-height:34px;padding:6px 10px;font-size:11px}.card,.panel,.cards article,.stat-card{border:1px solid var(--pv-border);border-radius:var(--pv-radius-lg);background:var(--pv-surface);box-shadow:var(--pv-shadow-sm)}.card,.panel{margin:0 0 20px;padding:22px}.cards,.stats-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:0 0 22px;display:grid}.stat-card,.cards article{padding:18px}.stat-top{justify-content:space-between;align-items:center;display:flex}.stat-top>span:first-child,.cards article>span{color:#718095;letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:750}.stat-icon{width:31px;height:31px;color:var(--pv-success);background:#effaf6;border-radius:9px;place-items:center;font-weight:800;display:grid}.stat-card>strong,.cards article>strong{color:#0c1c2e;font-variant-numeric:tabular-nums;letter-spacing:-.035em;margin:12px 0 5px;font-size:27px;line-height:1;display:block}.stat-card small,.cards article small{color:var(--pv-muted);font-size:11px}.dashboard-grid{grid-template-columns:minmax(0,1.6fr) minmax(270px,.8fr);gap:20px;display:grid}.card-header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px;display:flex}.card-header h2{letter-spacing:-.02em;margin:0;font-size:16px}.card-header p{color:var(--pv-muted);margin:3px 0 0;font-size:11px}.occupancy-number{align-items:baseline;gap:7px;display:flex}.occupancy-number strong{letter-spacing:-.04em;font-size:31px}.occupancy-number span{color:var(--pv-muted);font-size:13px}.progress{background:#eaf0f3;border-radius:99px;height:8px;overflow:hidden}.progress>span{border-radius:inherit;background:linear-gradient(90deg,#079669,#36c99a);height:100%;display:block}.occupancy-meta{color:var(--pv-muted);justify-content:space-between;margin:10px 0 20px;font-size:11px;display:flex}.movement-row{border-bottom:1px solid var(--pv-border);grid-template-columns:1fr auto;gap:12px;padding:13px 0;display:grid}.movement-row:last-child{border:0}.movement-row span{color:var(--pv-muted);font-size:12px}.movement-row strong{font-variant-numeric:tabular-nums}.alert{border-radius:var(--pv-radius-md);border:1px solid;gap:10px;margin-bottom:20px;padding:13px 16px;font-size:13px;display:flex}.alert strong{white-space:nowrap}.alert ul{margin:0;padding-left:18px}.alert-success,.success{color:#086849;background:#effcf7;border-color:#b9ead9}.alert-danger,.error{color:#9d2434;background:#fff3f4;border-color:#f2c7cd}.badge{white-space:nowrap;border-radius:99px;align-items:center;padding:4px 8px;font-size:10px;font-weight:750;display:inline-flex}.badge-success,.badge.on{color:#087252;background:#e5f8f1}.badge-warning{color:#8a560d;background:#fff5dc}.badge-danger{color:#ad2b3b;background:#ffeaed}.badge-info{color:#245d9d;background:#eaf3ff}.badge-neutral,.badge.off{color:#5d6b7d;background:#eef1f5}.table-wrap{width:100%;overflow-x:auto}.card.table-wrap,.panel.table-wrap{padding:0}table{border-collapse:collapse;width:100%;font-size:12px}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #e9edf2;padding:14px 16px}th{color:#718095;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;background:#f8fafb;font-size:9px;font-weight:800}tbody tr{transition:background var(--transition)}tbody tr:hover{background:#fafcfd}tbody tr:last-child td{border-bottom:0}.plate{color:#112238;letter-spacing:.12em;background:#fff;border:1px solid #c9d1dc;border-radius:5px;padding:5px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:850;text-decoration:none;display:inline-flex;box-shadow:inset 0 2px #eef1f4}.plate.hero{padding:9px 15px;font-size:28px}.muted{color:var(--pv-muted);font-size:11px}.filters{flex-wrap:wrap;align-items:end;gap:11px;display:flex}.filters label{flex:1;min-width:140px}.filters .search{flex:2;min-width:230px}label{color:#35465b;font-size:12px;font-weight:650;display:block}input,select,textarea{width:100%;min-height:42px;color:var(--pv-text);transition:border var(--transition),box-shadow var(--transition);background:#fff;border:1px solid #cbd4df;border-radius:9px;margin-top:6px;padding:9px 11px}input::placeholder,textarea::placeholder{color:#9ba6b4}input:focus,select:focus,textarea:focus{border-color:var(--pv-primary);outline:0;box-shadow:0 0 0 3px #0796691f}input[type=checkbox],input[type=radio]{width:17px;min-height:17px;accent-color:var(--pv-primary);margin:0}.check{gap:8px;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.form-grid .full{grid-column:1/-1}.actions,.form-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.actions form{margin:0}.detail-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.detail-list div{background:#fafbfc;border:1px solid #edf0f3;border-radius:10px;padding:15px}.detail-list span,.detail-list strong{display:block}.detail-list span{color:var(--pv-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;font-size:10px}.money{color:var(--pv-success);font-size:23px}.empty,.empty-state{text-align:center;color:var(--pv-muted)}.empty-state{padding:38px 20px}.empty-state h3{color:var(--pv-text);margin:12px 0 3px;font-size:16px}.empty-state p{margin:0 0 16px;font-size:12px}.empty-icon{width:42px;height:42px;color:var(--pv-success);background:#ebfaf4;border-radius:12px;place-items:center;margin:auto;font-weight:900;display:grid}.confidence{min-width:80px}.confidence-value{font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.confidence .progress{height:4px;margin-top:5px}.api-key-callout{background:#effbf7;border:1px solid #9fdac8;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;padding:18px;display:flex}.api-key-callout code{color:#075b43;max-width:65vw;margin-top:7px;display:block;overflow:auto}.modal{border:0;border-radius:16px;width:min(470px,100vw - 32px);padding:0;box-shadow:0 24px 70px #07142644}.modal::backdrop{background:#07142694}.modal-body{padding:24px}.modal-actions{justify-content:flex-end;gap:9px;margin-top:20px;display:flex}.icon-button{cursor:pointer;background:0 0;border:0;border-radius:9px;width:42px;height:42px}.menu-toggle{flex-direction:column;justify-content:center;gap:4px;display:none}.menu-toggle span{background:var(--pv-text);width:19px;height:2px;margin:0 auto}.sidebar-overlay{display:none}.guest{background:radial-gradient(circle at 25% 20%,#16385b 0,var(--pv-navy-950) 48%,#050e1b 100%);place-items:center;min-height:100vh;padding:20px;display:grid}.auth{background:#fff;border:1px solid #ffffff80;border-radius:20px;width:min(430px,100%);padding:38px;box-shadow:0 26px 80px #00000057}.auth-brand{align-items:center;gap:11px;margin-bottom:32px;display:flex}.auth h1{letter-spacing:-.035em;margin:0;font-size:28px}.auth>p{color:var(--pv-muted);margin:7px 0;font-size:13px}.auth form{gap:16px;margin:25px 0 18px;display:grid}.auth .button,.auth form>button{width:100%}.auth-options{justify-content:space-between}.auth-footer{text-align:center;color:#91a0b1;font-size:11px}.test-environment{background:#fff4d8;border-radius:99px;padding:4px 8px;font-weight:800;color:#86600d!important;font-size:10px!important;display:inline-flex!important}.rules-head,.rule-row{grid-template-columns:1fr 1fr 1fr 42px;align-items:center;gap:12px;display:grid}.remove-rule{height:42px;margin-top:6px}.summary article strong{font-size:18px}.detail-grid{grid-template-columns:2fr 1fr;gap:20px;display:grid}pre{background:var(--pv-navy-950);color:#d9f8ed;border-radius:10px;padding:17px;overflow:auto}@media (width<=1180px){.stats-grid,.cards{grid-template-columns:repeat(3,1fr)}}@media (width<=900px){:root{--sidebar-width:0px}.sidebar{transition:transform .22s;transform:translate(-100%)}.sidebar-open .sidebar{transform:translate(0)}.sidebar-overlay{z-index:35;background:#0714267a;position:fixed;inset:0}.sidebar-open .sidebar-overlay{display:block}.menu-toggle{display:flex}.topbar{justify-content:flex-start;gap:13px}.user-menu{margin-left:auto}.dashboard-grid,.detail-grid{grid-template-columns:1fr}.stats-grid,.cards{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.rules-head,.rule-row{grid-template-columns:1fr 1fr}}@media (width<=600px){.content{padding:22px 16px}.topbar{padding:0 13px}.topbar-context,.user-copy{display:none}.page-header,.page-head{flex-direction:column;align-items:flex-start}.page-actions,.page-actions .button{width:100%}.stats-grid,.cards,.cards.three,.detail-list{grid-template-columns:1fr}.card,.panel{padding:17px}.filters,.filters label,.filters .search{width:100%;min-width:100%}.api-key-callout{flex-direction:column;align-items:flex-start}.api-key-callout code{max-width:80vw}.auth{padding:28px 24px}.plate.hero{font-size:23px}th,td{padding:12px}.hide-mobile{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.table-card-header{padding:20px 20px 0}.stats-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));max-width:900px}.filter-card{padding:18px}.plate-search{text-transform:uppercase;letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.session-amount{color:var(--pv-success);margin-top:6px;font-size:12px;font-weight:750}.sessions-table td{min-width:92px}.sessions-table td:first-child{min-width:140px}.sessions-table td:last-child{min-width:185px}.back{color:var(--pv-muted);text-decoration:none}.section-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title small{color:var(--pv-muted);margin-top:4px;display:block}.result{border-radius:var(--pv-radius-md);background:#effbf7;margin-top:16px;padding:16px}.result span,.result strong{display:block}.result strong{color:var(--pv-success);margin-top:4px;font-size:26px}@media (width<=700px){.stats-grid-3{grid-template-columns:1fr}.sessions-table{overflow:visible}.sessions-table table,.sessions-table tbody,.sessions-table tr,.sessions-table td{width:100%;display:block}.sessions-table thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.sessions-table tr{border:1px solid var(--pv-border);border-radius:var(--pv-radius-md);background:#fff;margin:12px}.sessions-table tbody tr:hover{background:#fff}.sessions-table td,.sessions-table td:first-child,.sessions-table td:last-child{text-align:right;border:0;justify-content:space-between;align-items:center;gap:14px;min-width:0;padding:9px 14px;display:flex}.sessions-table td:first-child{border-bottom:1px solid var(--pv-border);padding-top:14px}.sessions-table td:last-child{padding-bottom:14px}.sessions-table td:before{content:attr(data-label);color:var(--pv-muted);letter-spacing:.08em;text-transform:uppercase;text-align:left;font-size:9px;font-weight:800}.sessions-table td:first-child:before{display:none}.sessions-table td:first-child{text-align:left;justify-content:flex-start}.sessions-table .actions{justify-content:flex-end}.sessions-table .empty-state{margin:auto}.rules-head{display:none}.rule-row{grid-template-columns:1fr}.rule-row input{margin-top:0}.remove-rule{width:100%;margin:0}.section-title{flex-direction:column;align-items:flex-start}}.operational-list,.search-results{gap:12px;display:grid}.search-results{margin-top:18px}.search-results h3{margin:0;font-size:13px}.operational-session{border:1px solid var(--pv-border);border-radius:var(--pv-radius-md);background:#fff;grid-template-columns:minmax(150px,.7fr) minmax(360px,2fr) auto;align-items:center;gap:16px;padding:15px;display:grid}.operational-session>div:first-child{justify-items:start;gap:5px;display:grid}.session-facts{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.session-facts span{color:var(--pv-muted);font-size:10px}.session-facts strong{color:var(--pv-text);margin-top:2px;font-size:12px;display:block}.operation-alert{border-bottom:1px solid var(--pv-border);color:var(--pv-text);justify-content:space-between;align-items:center;padding:12px 0;font-size:12px;text-decoration:none;display:flex}.operation-alert:last-child{border:0}.stay-warning{box-shadow:inset 4px 0 #d7961b}.stay-danger{box-shadow:inset 4px 0 var(--pv-danger)}.money-inline{color:var(--pv-success)}.session-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.session-detail-grid .card{margin:0}.evidence-feature{margin-top:16px}.evidence-feature>span{color:var(--pv-muted);text-transform:uppercase;margin-bottom:7px;font-size:10px;display:block}.evidence-feature img,.modal-evidence{object-fit:contain;background:#0f172a;border-radius:10px;width:100%;max-height:280px;display:block}.review-reading{grid-template-columns:1fr 1fr;gap:10px;margin:14px 0;display:grid}.review-reading span{color:var(--pv-muted);background:#f5f7fa;border-radius:8px;padding:10px;font-size:10px}.review-reading strong,.review-reading code{color:var(--pv-text);margin-top:4px;font-size:14px;display:block}fieldset{border:1px solid var(--pv-border);border-radius:var(--pv-radius-md);min-width:0;padding:18px}fieldset legend{padding:0 7px;font-weight:800}fieldset label+label{margin-top:12px}@media (width<=1100px){.operational-session{grid-template-columns:1fr}.session-facts{grid-template-columns:repeat(2,1fr)}.session-detail-grid{grid-template-columns:1fr}}@media (width<=700px){.operational-session{padding:13px}.session-facts{grid-template-columns:1fr 1fr}.operational-session .actions,.operational-session .actions form,.operational-session .actions .button{width:100%}.responsive-table{overflow:visible}.responsive-table table,.responsive-table tbody,.responsive-table tr,.responsive-table td{width:100%;display:block}.responsive-table thead{display:none}.responsive-table tr{border:1px solid var(--pv-border);border-radius:10px;margin:10px}.responsive-table td{border:0;justify-content:space-between;display:flex}.responsive-table td:before{content:attr(data-label);color:var(--pv-muted);font-size:10px}.review-reading{grid-template-columns:1fr}}
