:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#070b1a;color:#f7f8ff;letter-spacing:0}*{box-sizing:border-box}html{background:#070b1a}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(120deg,rgba(95,37,255,.18),transparent 28%),linear-gradient(270deg,rgba(16,215,216,.1),transparent 34%),linear-gradient(180deg,#070b1a,#0a1023 52%,#070b1a)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.54}h1,h2,p{margin:0}h1{font-size:38px;line-height:1.02}h2{font-size:15px;margin-bottom:16px;color:#fff}.center-screen,.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.login-screen{background:linear-gradient(130deg,rgba(118,73,255,.24),transparent 42%),linear-gradient(320deg,rgba(255,113,30,.17),transparent 40%),#070b1a}.login-card{width:min(430px,100%);background:#181d3aeb;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:30px;display:grid;gap:18px;box-shadow:0 28px 90px #00000057}.app-shell{min-height:100vh;width:100%;margin:0;display:grid;grid-template-columns:272px minmax(0,1fr);background:transparent}.sidebar{min-height:100vh;padding:30px 20px;color:#fff;display:flex;flex-direction:column;gap:28px;background:linear-gradient(180deg,#1f254cfa,#0f142bfa),#141932;border-right:1px solid rgba(255,255,255,.08)}.brand{display:flex;gap:12px;align-items:center}.brand-mark{width:46px;height:46px;display:grid;place-items:center;background:linear-gradient(135deg,#10d7d8,#7b48ff);color:#fff;border-radius:8px;box-shadow:0 16px 32px #10d7d829}.brand strong{display:block;font-size:19px;color:#fff}.brand span{display:block;color:#98a0c4;font-size:13px;margin-top:3px}.login-brand span{color:#98a0c4}nav{display:grid;gap:10px}.nav-button,.ghost-button,.secondary-button,.primary-button,.danger-button,.icon-button,.toggle-button{min-height:42px;border-radius:8px;border:0;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 14px;text-decoration:none;transition:background .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.nav-button{width:100%;justify-content:flex-start;color:#c7ccee;background:transparent;font-weight:700}.nav-button:hover{background:#ffffff12;color:#fff}.nav-button.active{background:#252b55;color:#fff;box-shadow:inset 3px 0 #10d7d8}.primary-nav{background:linear-gradient(135deg,#fb6a1a,#f03b62);color:#fff;box-shadow:0 16px 28px #fb6a1a29}.primary-nav.active{box-shadow:inset 3px 0 #fff,0 16px 28px #fb6a1a2e}.primary-button{background:linear-gradient(135deg,#10d7d8,#7b48ff);color:#fff;font-weight:800;box-shadow:0 14px 28px #7b48ff33}.primary-button:hover,.secondary-button:hover,.danger-button:hover,.icon-button:hover{transform:translateY(-1px)}.secondary-button{background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.12)}.danger-button{background:linear-gradient(135deg,#ff315d,#f26422);color:#fff;font-weight:800}.ghost-button{background:transparent;color:inherit}.icon-button{width:38px;height:38px;min-height:38px;padding:0;background:#ffffff14;color:#d6daf4}.icon-button.danger{background:#ff315d21;color:#ff7a94}.icon-button.close{position:absolute;top:12px;right:12px}.logout{margin-top:auto;justify-content:flex-start;color:#adb5db}.mobile-actionbar,.mobile-menu-backdrop{display:none}.large{min-height:50px;padding:0 18px}.workspace{padding:36px;min-width:0;overflow:hidden}.stack{display:grid;gap:22px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:4px}.topbar h1{color:#fff}.topbar p,.muted{color:#98a0c4;margin-top:8px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.metric,.panel,.upload-zone,.table-wrap,.review-form,.user-row,.document-meta{background:#1c2143e0;border:1px solid rgba(255,255,255,.08);border-radius:8px;box-shadow:0 20px 60px #0000003d}.metric{padding:22px;display:grid;gap:22px;min-height:138px;color:#fff;overflow:hidden;position:relative}.metric:after{content:"";position:absolute;right:18px;bottom:20px;width:106px;height:38px;opacity:.34;background:linear-gradient(160deg,transparent 20%,rgba(255,255,255,.95) 21% 25%,transparent 26% 36%,rgba(255,255,255,.95) 37% 41%,transparent 42%)}.metric:nth-child(1){background:linear-gradient(135deg,#fb6a1a,#f03b62)}.metric:nth-child(2){background:linear-gradient(135deg,#242a55,#1a1f42)}.metric:nth-child(3){background:linear-gradient(135deg,#7b48ff,#4320bb)}.metric:nth-child(4){background:linear-gradient(135deg,#11c8b7,#1f5bbd)}.metric span{color:#ffffffc2;font-size:14px;font-weight:750}.metric strong{color:#fff;font-size:27px;line-height:1.04}.dashboard-grid,.detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.9fr);gap:18px}.panel{padding:20px;min-width:0}.chart{height:292px}.review-list,.supplier-list,.category-list,.user-list{display:grid;gap:12px}.review-row,.supplier-list div,.category-list div,.line-item,.audit-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;min-height:48px;padding:11px 13px;background:#ffffff09;color:#fff;text-align:left}.line-item small,.audit-row small,.user-row-header span{display:block;color:#98a0c4;margin-top:4px}.review-row{width:100%}.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:10px}.category-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.user-create-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:12px;align-items:end;padding:18px;background:#1c2143e0;border:1px solid rgba(255,255,255,.08);border-radius:8px}input,select,textarea{width:100%;border:1px solid rgba(255,255,255,.11);border-radius:8px;padding:11px 12px;background:#090d1fb8;color:#fff;outline:none}select option{color:#12172d}input::placeholder,textarea::placeholder{color:#737caa}input:focus,select:focus,textarea:focus{border-color:#10d7d8;box-shadow:0 0 0 3px #10d7d821}textarea{min-height:88px;resize:vertical}label{display:grid;gap:7px;color:#c6cbea;font-size:14px;font-weight:700}label.warning input{border-color:#f6a531;background:#f6a5311c}label.danger input{border-color:#ff315d;background:#ff315d1a}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:1040px}th,td{padding:15px 16px;border-bottom:1px solid rgba(255,255,255,.07);text-align:left;white-space:nowrap}th{color:#8d96c0;font-size:12px;text-transform:uppercase;background:#ffffff06}tbody tr{cursor:pointer}tbody tr:hover{background:#ffffff0a}.status{display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border-radius:999px;font-size:13px;background:#7b48ff2e;color:#cfc3ff}.status.failed{background:#ff315d26;color:#ff91a7}.status.needs_review,.status.processing{background:#fb6a1a29;color:#ffbc87}.status.confirmed{background:#10d79821;color:#74f1c7}.upload-page{min-height:calc(100vh - 72px);display:grid;place-items:center}.upload-zone{width:min(680px,100%);padding:40px;display:grid;gap:18px;justify-items:center;text-align:center;position:relative;overflow:hidden;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.upload-zone svg{color:#10d7d8}.upload-zone:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,rgba(16,215,216,.13) 45%,transparent 70%);opacity:0;transform:translate(-70%);pointer-events:none}.upload-zone.drag-active{border-color:#10d7d8;background:#10d7d814;box-shadow:0 24px 70px #10d7d829;transform:translateY(-2px)}.upload-zone.drag-active:before,.upload-zone.uploading:before{opacity:1;animation:sweep 1.4s ease-in-out infinite}.file-picker{min-height:54px;border:1px dashed rgba(16,215,216,.5);border-radius:8px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;font-weight:800;color:#fff}.file-picker input{display:none}.drop-hint{color:#98a0c4;font-size:13px}.selected-file,.message{color:#74f1c7;font-weight:800}.error{color:#ff91a7;font-weight:700}.document-meta{display:grid;grid-template-columns:1fr 2fr 1fr;gap:14px;padding:16px}.document-meta span{display:block;color:#98a0c4;font-size:13px;margin-bottom:4px}.document-meta strong{color:#fff}.review-layout{display:grid;grid-template-columns:minmax(320px,44%) minmax(0,1fr);gap:18px;align-items:start}.document-preview{background:#050817;border:1px solid rgba(255,255,255,.08);border-radius:8px;min-height:620px;overflow:hidden;display:grid;place-items:center}.document-preview img,.document-preview iframe{width:100%;height:100%;min-height:620px;border:0;object-fit:contain}.review-form{padding:18px;display:grid;gap:14px}.two-cols,.three-cols,.four-cols{display:grid;gap:12px}.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.three-cols{grid-template-columns:repeat(3,minmax(0,1fr))}.four-cols{grid-template-columns:repeat(4,minmax(0,1fr))}.actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}.warning-box{display:grid;gap:8px;padding:14px 16px;border:1px solid rgba(251,106,26,.35);background:#fb6a1a1c;color:#ffd0a8;border-radius:8px}.processing-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;position:relative;overflow:hidden;padding:16px 18px 24px;border:1px solid rgba(16,215,216,.24);background:#10d7d814;color:#fff;border-radius:8px}.processing-card p{color:#aeb6db;margin-top:4px}.processing-icon,.danger-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:8px;background:#ffffff14}.processing-icon{color:#10d7d8;box-shadow:inset 0 0 0 1px #10d7d84d;animation:softPulse 1.6s ease-in-out infinite}.danger-icon{color:#ff91a7;box-shadow:inset 0 0 0 1px #ff315d47}.processing-meter{position:absolute;left:18px;right:18px;bottom:12px;height:5px;overflow:hidden;border-radius:999px;background:#ffffff14}.processing-meter span{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#10d7d8,#7b48ff,#fb6a1a);animation:indeterminate 1.25s ease-in-out infinite}.panel-tools{display:inline-flex;gap:6px;padding:4px;margin-bottom:14px;background:#ffffff0f;border-radius:8px}.toggle-button{min-height:34px;background:transparent;color:#b7bedf;font-weight:800}.toggle-button.active{background:#ffffff1a;color:#fff;box-shadow:inset 0 0 0 1px #ffffff14}.inline-button{border:0;background:transparent;color:#10d7d8;font-weight:800;margin-left:8px}.inactive{opacity:.56}.user-row{padding:18px;display:grid;gap:14px}.user-row-header{display:flex;justify-content:space-between;gap:12px;align-items:center}.user-row-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.inline-confirm{display:grid;grid-template-columns:minmax(180px,1fr) 170px auto auto;gap:10px;align-items:center;padding:12px;border:1px solid rgba(255,49,93,.3);background:#ff315d14;border-radius:8px}.modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:18px;background:#030611b8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.danger-modal{width:min(520px,100%);position:relative;display:grid;gap:15px;background:#151b38;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:24px;box-shadow:0 30px 90px #0000006b}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes sweep{0%{transform:translate(-75%)}to{transform:translate(90%)}}@keyframes softPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes indeterminate{0%{transform:translate(-115%)}to{transform:translate(250%)}}@media(max-width:1120px){.app-shell{grid-template-columns:1fr}.sidebar{min-height:auto;padding:16px;gap:14px}nav{grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}.nav-button{justify-content:center;min-width:0;white-space:normal;text-align:center}.logout{display:none}.workspace{padding:22px}.metric-grid,.dashboard-grid,.detail-grid,.review-layout,.document-meta,.user-create-form,.user-row-grid{grid-template-columns:1fr 1fr}.document-preview,.document-preview img,.document-preview iframe{min-height:440px}}@media(max-width:720px){body{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.app-shell{display:block;min-height:100vh}.sidebar{position:fixed;left:10px;right:10px;bottom:calc(86px + env(safe-area-inset-bottom));top:auto;z-index:45;max-height:min(74vh,520px);min-height:0;padding:16px;border-radius:8px;border:1px solid rgba(255,255,255,.11);box-shadow:0 24px 70px #0000006b;transform:translateY(calc(100% + 108px));opacity:0;pointer-events:none;transition:transform .2s ease,opacity .2s ease}.sidebar.mobile-open{transform:translateY(0);opacity:1;pointer-events:auto}.sidebar .brand{display:flex}.sidebar nav{grid-template-columns:1fr;gap:8px}.nav-button{min-height:48px;padding:0 14px;flex-direction:row;justify-content:flex-start;gap:10px;font-size:14px;line-height:1.2;overflow-wrap:anywhere}.nav-button.active{box-shadow:inset 3px 0 #10d7d8}.nav-button svg{width:19px;height:19px;flex:0 0 auto}.workspace{padding:18px 14px}.mobile-menu-backdrop{display:block;position:fixed;inset:0;z-index:38;border:0;padding:0;background:#0306118f;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.mobile-actionbar{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:55;display:grid;grid-template-columns:84px minmax(0,1fr) 84px;align-items:center;gap:8px;min-height:62px;padding:7px;background:#131832f0;border:1px solid rgba(255,255,255,.11);border-radius:8px;box-shadow:0 18px 50px #00000061;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mobile-actionbar strong{min-width:0;overflow:hidden;color:#fff;font-size:14px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.mobile-action{min-height:48px;border:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;background:#ffffff12;color:#dbe1ff;font-size:11px;font-weight:800}.mobile-action:first-child{background:linear-gradient(135deg,#fb6a1a,#f03b62);color:#fff}.mobile-action.active{box-shadow:inset 0 0 0 1px #10d7d87a;color:#fff}.topbar,.actions,.user-row-header{align-items:stretch;flex-direction:column}.filters,.category-form,.two-cols,.three-cols,.four-cols,.metric-grid,.dashboard-grid,.detail-grid,.review-layout,.document-meta,.user-create-form,.user-row-grid,.inline-confirm{grid-template-columns:1fr}h1{font-size:29px}.metric{min-height:112px;gap:18px}.metric strong{font-size:24px}.upload-page{min-height:calc(100vh - 140px)}.upload-zone{padding:24px 16px}.processing-card{grid-template-columns:1fr;text-align:center;justify-items:center;padding-bottom:28px}.document-preview,.document-preview img,.document-preview iframe{min-height:320px}}@media(max-width:420px){.sidebar nav{grid-template-columns:1fr}body{padding-bottom:calc(84px + env(safe-area-inset-bottom))}}
