
:root{--bg:#06111f;--panel:#0b1b2d;--line:#1b3650;--text:#eef7ff;--muted:#8fa8bd;--blue:#08b9ff;--blue2:#0077ff;--green:#28e07d;--violet:#a769ff;--orange:#ffae2e;--red:#ff6377}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:radial-gradient(circle at 95% 0,#074478 0,transparent 24%),linear-gradient(135deg,#04101d,#071a2d 52%,#06203d);color:var(--text)}a{text-decoration:none;color:inherit}button,input,select{font:inherit}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{position:sticky;top:0;height:100vh;background:rgba(4,15,28,.94);border-right:1px solid var(--line);padding:22px 16px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:800;padding:5px 8px 24px}.brand.big{justify-content:center;font-size:22px}.logo{width:36px;height:36px;display:grid;place-items:center;border:2px solid var(--blue);color:var(--blue);font-weight:900;clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%)}nav{display:grid;gap:6px}.nav{display:flex;align-items:center;gap:11px;color:#b8c8d6;padding:11px 12px;border-radius:9px;font-size:14px}.nav span{width:20px;text-align:center}.nav:hover,.nav.active{background:linear-gradient(90deg,rgba(0,171,255,.18),rgba(0,100,190,.08));border:1px solid rgba(0,185,255,.18);color:white}.side-bottom{margin-top:auto}main{padding:25px 30px 60px;min-width:0}header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}header h1{margin:0 0 4px;font-size:27px}header p,.muted{margin:0;color:var(--muted)}#menu{display:none;background:transparent;border:1px solid var(--line);color:white;border-radius:8px;padding:8px 10px}.pill{border:1px solid var(--line);background:#0b1c2f;border-radius:8px;padding:7px 10px;color:#b9ccda;font-size:12px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:15px}.kpi,.panel,.auth-card{background:linear-gradient(180deg,rgba(15,35,56,.96),rgba(9,26,44,.96));border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.25)}.kpi{padding:17px}.kpi small{color:#b8c9d5}.kpi strong{display:block;font-size:26px;margin:8px 0}.kpi em{font-style:normal;font-size:12px;color:#98adbd}.green{color:var(--green)!important}.violet{color:var(--violet)!important}.red{color:var(--red)!important}.dash{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.panel{padding:18px;margin-bottom:15px;min-width:0}.wide{grid-column:span 2}.panel h2{font-size:16px;margin:0 0 14px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.chart{height:260px}.big{font-size:29px;font-weight:800;color:var(--orange);margin:22px 0 4px}.rows{display:grid}.rows div{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid rgba(140,170,190,.12)}.btn{display:inline-block;border:0;border-radius:9px;padding:11px 14px;font-weight:800;cursor:pointer}.primary{background:linear-gradient(135deg,var(--blue2),var(--blue));color:white}.outline{background:transparent;border:1px solid #1b7db2;color:#75d6ff}.full{width:100%;text-align:center}.btn:disabled{opacity:.5}.split{display:grid;grid-template-columns:1.3fr .7fr;gap:15px}.table{overflow:auto;border:1px solid rgba(130,160,180,.12);border-radius:10px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:12px 13px;border-bottom:1px solid rgba(130,160,180,.11);white-space:nowrap}th{color:#8fa9bc;background:rgba(0,0,0,.15)}label{display:grid;gap:6px;color:#c6d7e3;font-size:13px;margin:13px 0}input,select{padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#071725;color:white;outline:none}input:focus,select:focus{border-color:#158bc5}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.empty{color:var(--muted);padding:34px 10px;text-align:center}.auth{min-height:100vh;display:grid;place-items:center;padding:28px}.auth-wrap{width:min(760px,100%)}.auth-card{padding:27px}.auth-card h1{margin:5px 0 8px}.auth-card h2{font-size:17px}.auth-card hr{border:0;border-top:1px solid var(--line);margin:20px 0}.eyebrow{color:var(--blue);text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800}.alert,.success{padding:11px 13px;border-radius:8px;margin:12px 0}.alert{background:rgba(255,99,119,.1);border:1px solid rgba(255,99,119,.22);color:#ff9dab}.success{background:rgba(40,224,125,.1);border:1px solid rgba(40,224,125,.22);color:#8af5b7}
@media(max-width:1050px){.kpis{grid-template-columns:repeat(2,1fr)}.dash{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.app{display:block}.side{position:fixed;left:-260px;width:240px;z-index:20;transition:.2s}.side.open{left:0}main{padding:16px 13px 40px}#menu{display:block}.kpis,.dash,.split{grid-template-columns:1fr}.wide{grid-column:span 1}.grid2{grid-template-columns:1fr}.chart{height:220px}.kpi strong{font-size:23px}}

.analysis-box{margin:14px 0;padding:14px;border:1px solid rgba(8,185,255,.25);border-radius:10px;background:rgba(8,185,255,.06)}.analysis-box.hidden{display:none}.analysis-title{font-weight:800;margin-bottom:10px}.analysis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.analysis-grid div{background:rgba(0,0,0,.13);border:1px solid rgba(130,160,180,.12);border-radius:8px;padding:10px}.analysis-grid small{display:block;color:var(--muted);margin-bottom:4px}.analysis-grid strong{font-size:15px}.bulk-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}.label-cell{white-space:normal;min-width:280px;max-width:520px}.table select{min-width:150px;padding:7px 8px}.table input[type=checkbox]{width:16px;height:16px}@media(max-width:760px){.analysis-grid{grid-template-columns:repeat(2,1fr)}.bulk-actions{justify-content:stretch}.bulk-actions .btn{flex:1}}


.validation-stats{display:grid;grid-template-columns:repeat(3,minmax(0,180px));gap:12px;margin:4px 0 18px}
.validation-stats>div{border:1px solid var(--line);background:rgba(3,18,31,.42);border-radius:12px;padding:14px 16px}
.validation-stats small{display:block;color:var(--muted);margin-bottom:5px}
.validation-stats strong{font-size:25px}
.validation-stats .recognized strong{color:var(--green)}
.validation-stats .needs-review strong{color:var(--orange)}
.smart-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:12px;border:1px solid var(--line);border-radius:11px;background:rgba(2,14,25,.35);margin-bottom:12px}
.selection-tools,.bulk-category{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.selection-count{color:var(--muted);font-size:13px;margin-left:4px}
.selection-count strong{color:white}
.mini-btn{border:1px solid #28506e;background:#0a1c2d;color:#bcd0df;border-radius:7px;padding:7px 9px;cursor:pointer;font-size:12px}
.mini-btn:hover{border-color:#198ac5;color:white}
.row-recognized{background:rgba(40,224,125,.025)}
.row-unclassified{background:rgba(255,174,46,.018)}
.validation-table select{min-width:165px}
.validation-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;flex-wrap:wrap}
.validation-hint{max-width:700px;color:var(--muted);font-size:13px}
.validation-hint strong{color:#d9e8f3}
.memory-modal{position:fixed;inset:0;background:rgba(0,8,16,.72);backdrop-filter:blur(6px);z-index:100;display:grid;place-items:center;padding:20px}
.memory-modal.hidden{display:none}
.memory-card{width:min(620px,100%);background:linear-gradient(180deg,#0d2237,#08192a);border:1px solid #215172;border-radius:16px;padding:22px;box-shadow:0 28px 80px rgba(0,0,0,.5)}
.memory-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.memory-head h2{margin:3px 0 0}
.modal-close{border:0;background:transparent;color:#9cb4c7;font-size:30px;cursor:pointer;line-height:1}
.memory-preview{padding:11px 12px;border:1px solid rgba(8,185,255,.2);background:rgba(8,185,255,.06);border-radius:9px;color:#a9c5d9;font-size:13px;margin:13px 0}
.hint{display:block;color:var(--muted);font-size:12px;margin-top:2px}
@media(max-width:760px){
  .validation-stats{grid-template-columns:repeat(3,1fr)}
  .validation-stats strong{font-size:20px}
  .smart-toolbar,.validation-footer{align-items:stretch}
  .bulk-category{width:100%}
  .bulk-category select{flex:1}
}


.validation-stats-simple{grid-template-columns:repeat(2,minmax(0,220px))}
.validation-explainer{margin:-6px 0 16px;color:var(--muted);font-size:13px}
.validation-explainer strong{color:#d9e8f3}
@media(max-width:760px){
  .validation-stats-simple{grid-template-columns:repeat(2,1fr)}
}


.category-table{margin-top:16px}
.category-row-form{display:grid;grid-template-columns:1.5fr 1fr .3fr auto;gap:10px;align-items:center}
.inline-check{margin:0!important;display:block!important;text-align:center}
@media(max-width:760px){
  .category-row-form{grid-template-columns:1fr}
}


.history-subtitle{margin:5px 0 0;font-size:13px}
.history-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.history-tab{display:flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;color:#a9bece;background:rgba(5,18,30,.28);font-size:13px}
.history-tab span{min-width:22px;text-align:center;border-radius:999px;padding:2px 6px;background:#102b42;color:#bfe8ff}
.history-tab.active{border-color:#168cc6;background:rgba(0,157,235,.1);color:white}
.history-filters{display:grid;grid-template-columns:1.6fr 1fr auto;gap:12px;align-items:end;margin:0 0 14px;padding:12px;border:1px solid rgba(130,160,180,.13);border-radius:11px;background:rgba(2,14,25,.2)}
.history-filters label{margin:0}
.history-filter-actions{display:flex;align-items:center;gap:8px;padding-bottom:1px}
.history-category-form{display:flex;align-items:center;gap:7px}
.history-category-form select{min-width:150px}
.status-badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800}
.status-valid{background:rgba(40,224,125,.1);color:#72f1ac;border:1px solid rgba(40,224,125,.2)}
.status-ignored{background:rgba(143,168,189,.08);color:#a9bdcc;border:1px solid rgba(143,168,189,.18)}
.stats-excluded{display:block;margin-top:5px;color:#78cfff;font-size:11px}
@media(max-width:900px){
  .history-filters{grid-template-columns:1fr}
  .history-filter-actions{padding:0}
}
