:root{
  --bg:#EEF0F4;
  --surface:#FFFFFF;
  --surface-muted:#F5F6F9;
  --border:#DEE1E7;
  --ink:#171A21;
  --ink-soft:#4B5160;
  --ink-faint:#8891A0;
  --sidebar-bg:#14171D;
  --sidebar-ink:#B7BDC9;
  --sidebar-border:#252932;
  --accent:#FF7A1A;
  --accent-ink:#221200;
  --accent-soft:#FFE7D2;
  --teal:#0FB6A6;
  --teal-soft:#D9F5F1;
  --danger:#E5484D;
  --danger-soft:#FBE1E2;
  --radius-lg:18px;
  --radius-md:12px;
  --radius-sm:8px;
  --shadow-card:0 1px 2px rgba(20,23,29,.05),0 10px 28px -10px rgba(20,23,29,.14);
  --font-display:'Oswald',Impact,'Arial Narrow',sans-serif;
  --font-body:'Inter',system-ui,-apple-system,sans-serif;
  --font-mono:'JetBrains Mono','SF Mono',Consolas,monospace;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{font-family:var(--font-body);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;}
button{font-family:inherit;}
input,select,textarea{font-family:inherit;}
::selection{background:var(--accent-soft);}

#app{display:flex;min-height:100vh;}
.sidebar{width:236px;flex-shrink:0;background:var(--sidebar-bg);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;border-right:1px solid var(--sidebar-border);}
.brand{display:flex;align-items:center;gap:10px;padding:22px 20px 18px 20px;border-bottom:1px solid var(--sidebar-border);}
.brand-mark{width:34px;height:34px;border-radius:9px;background:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px -2px rgba(255,122,26,.55);}
.brand-mark svg{width:19px;height:19px;}
.brand-text{line-height:1.15;}
.brand-text .t1{font-family:var(--font-display);font-weight:600;font-size:17.5px;letter-spacing:.03em;color:#fff;text-transform:uppercase;}
.brand-text .t2{font-size:10.5px;color:var(--sidebar-ink);letter-spacing:.08em;text-transform:uppercase;}
.nav{padding:14px 12px;display:flex;flex-direction:column;gap:2px;flex:1;}
.nav-item{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:10px;color:var(--sidebar-ink);cursor:pointer;font-size:13.5px;font-weight:500;letter-spacing:.01em;transition:background .15s ease,color .15s ease;user-select:none;}
.nav-item svg{width:17px;height:17px;flex-shrink:0;opacity:.85;}
.nav-item:hover{background:#1D212A;color:#fff;}
.nav-item.active{background:linear-gradient(135deg,#2A1706,#1D212A 65%);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,122,26,.35);}
.nav-item.active svg{opacity:1;color:var(--accent);}
.nav-item .dot{margin-left:auto;width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:0;}
.nav-item.active .dot{opacity:1;}
.sidebar-foot{padding:16px 20px 20px;border-top:1px solid var(--sidebar-border);}
.sidebar-foot .row{display:flex;justify-content:space-between;font-size:11px;color:var(--sidebar-ink);}
.sidebar-foot .row b{color:#fff;font-family:var(--font-mono);}
.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 32px;position:sticky;top:0;background:rgba(238,240,244,.85);backdrop-filter:blur(8px);z-index:5;border-bottom:1px solid var(--border);}
.topbar h1{font-family:var(--font-display);font-weight:600;font-size:22px;letter-spacing:.01em;margin:0;text-transform:uppercase;}
.topbar p{margin:2px 0 0;font-size:12.5px;color:var(--ink-faint);}
.content{padding:26px 32px 60px;flex:1;}
.view{display:none;animation:fadein .25s ease;}
.view.active{display:block;}
@keyframes fadein{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}}

.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:22px;}
.grid{display:grid;gap:18px;}
.grid-stats{grid-template-columns:repeat(6,1fr);}
.grid-2{grid-template-columns:1.15fr .85fr;align-items:start;}
@media (max-width:1180px){.grid-stats{grid-template-columns:repeat(3,1fr);}.grid-2{grid-template-columns:1fr;}}
@media (max-width:640px){.grid-stats{grid-template-columns:repeat(2,1fr);}}

.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px 16px 14px;box-shadow:var(--shadow-card);}
.stat-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);font-weight:600;}
.stat-value{font-family:var(--font-mono);font-size:21px;font-weight:700;margin-top:6px;color:var(--ink);letter-spacing:-.01em;overflow-wrap:anywhere;}
.stat-sub{font-size:11px;color:var(--ink-faint);margin-top:3px;}
.stat-card.accent{border-color:rgba(255,122,26,.35);background:linear-gradient(180deg,#FFF7EF,#fff 45%);}
.stat-card.accent .stat-value{color:#B8500E;}

.section-title{font-family:var(--font-display);font-size:14px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 14px;display:flex;align-items:center;gap:8px;}
.section-title svg{width:15px;height:15px;color:var(--accent);}

.field{margin-bottom:16px;}
.field label{display:block;font-size:11.5px;font-weight:600;color:var(--ink-soft);margin-bottom:6px;letter-spacing:.02em;text-transform:uppercase;}
.field .hint{font-size:11px;color:var(--ink-faint);margin-top:5px;}
.input,.select,.textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13.5px;background:var(--surface-muted);color:var(--ink);transition:border-color .15s,box-shadow .15s;}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(255,122,26,.15);background:#fff;}
.input.mono{font-family:var(--font-mono);letter-spacing:.02em;}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
@media (max-width:760px){.row-2,.row-3{grid-template-columns:1fr;}}

.chip-group{display:flex;flex-wrap:wrap;gap:8px;}
.chip{padding:8px 13px;border:1px solid var(--border);border-radius:999px;font-size:12.5px;font-weight:600;cursor:pointer;background:var(--surface-muted);color:var(--ink-soft);transition:.15s;user-select:none;}
.chip:hover{border-color:var(--accent);color:var(--ink);}
.chip.active{background:var(--ink);color:#fff;border-color:var(--ink);}
.chip.active.accent{background:var(--accent);border-color:var(--accent);color:#221200;}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 18px;border-radius:10px;border:1px solid transparent;font-size:13px;font-weight:600;cursor:pointer;transition:transform .1s ease,filter .15s ease,box-shadow .15s;letter-spacing:.01em;}
.btn svg{width:15px;height:15px;}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 8px 18px -8px rgba(255,122,26,.65);}
.btn-primary:hover{filter:brightness(1.05);}
.btn-dark{background:var(--ink);color:#fff;}
.btn-dark:hover{filter:brightness(1.2);}
.btn-ghost{background:var(--surface-muted);color:var(--ink-soft);border-color:var(--border);}
.btn-ghost:hover{border-color:var(--ink-faint);color:var(--ink);}
.btn-danger{background:var(--danger-soft);color:#9E2327;}
.btn-sm{padding:7px 12px;font-size:12px;border-radius:8px;}
.btn:disabled{opacity:.45;cursor:not-allowed;}
.btn-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px;}

.toggle{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;}
.toggle input{display:none;}
.toggle .track{width:38px;height:22px;border-radius:999px;background:var(--border);position:relative;transition:.15s;flex-shrink:0;}
.toggle .track::after{content:'';position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;top:3px;left:3px;transition:.15s;box-shadow:0 1px 3px rgba(0,0,0,.3);}
.toggle input:checked + .track{background:var(--accent);}
.toggle input:checked + .track::after{left:19px;}
.toggle .lbl{font-size:12.5px;color:var(--ink-soft);font-weight:600;}

.banner{border-radius:var(--radius-md);padding:14px 16px;font-size:13px;display:flex;gap:10px;align-items:flex-start;margin-bottom:16px;}
.banner svg{width:17px;height:17px;flex-shrink:0;margin-top:1px;}
.banner-danger{background:var(--danger-soft);color:#8E2226;border:1px solid #F3B7B9;}
.banner-ok{background:var(--teal-soft);color:#0A6E64;border:1px solid #9FE1D8;}
.banner b{font-family:var(--font-mono);}
.banner .banner-actions{margin-top:8px;display:flex;gap:8px;}

.preview-wrap{background:repeating-linear-gradient(135deg,#E9EBF0 0 2px,#F2F3F6 2px 30px);border-radius:var(--radius-lg);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;padding:38px 20px;min-height:340px;position:relative;overflow:hidden;}
.peel{position:relative;background:#fff;box-shadow:0 22px 40px -18px rgba(20,23,29,.35),0 2px 6px rgba(20,23,29,.08);border-radius:3px;transform:rotate(-1.6deg);transition:transform .25s ease,box-shadow .25s ease;}
.peel:hover{transform:rotate(0deg) scale(1.015);}
.peel canvas{display:block;border-radius:3px;max-width:100%;height:auto;}
.peel-tag{position:absolute;left:50%;bottom:-13px;transform:translateX(-50%);background:var(--ink);color:#fff;font-family:var(--font-mono);font-size:10px;padding:4px 10px;border-radius:999px;letter-spacing:.03em;white-space:nowrap;box-shadow:0 6px 14px -6px rgba(0,0,0,.5);}
.corner-note{position:absolute;top:14px;left:16px;font-size:10.5px;color:var(--ink-faint);font-family:var(--font-mono);letter-spacing:.02em;}

.table-wrap{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border);}
table{width:100%;border-collapse:collapse;font-size:12.8px;}
thead th{background:var(--surface-muted);text-align:left;padding:10px 12px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;font-size:10.5px;letter-spacing:.05em;border-bottom:1px solid var(--border);white-space:nowrap;}
tbody td{padding:10px 12px;border-bottom:1px solid var(--border);color:var(--ink);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:#FAFAFC;}
.mono-cell{font-family:var(--font-mono);font-size:12px;}
.pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:700;background:var(--surface-muted);color:var(--ink-soft);}
.empty-state{padding:60px 20px;text-align:center;color:var(--ink-faint);}
.empty-state svg{width:34px;height:34px;margin-bottom:10px;opacity:.5;}
.empty-state .big{font-family:var(--font-display);font-size:15px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft);margin-bottom:4px;}

.modal-overlay{position:fixed;inset:0;background:rgba(15,17,21,.55);display:none;align-items:center;justify-content:center;z-index:100;backdrop-filter:blur(2px);padding:20px;}
.modal-overlay.show{display:flex;}
.modal{background:#fff;border-radius:var(--radius-lg);max-width:480px;width:100%;padding:26px;box-shadow:0 30px 60px -20px rgba(0,0,0,.4);}
.modal h3{margin:0 0 10px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;font-size:17px;}
.modal p{font-size:13px;color:var(--ink-soft);line-height:1.5;}
.modal .btn-row{justify-content:flex-end;}

.toast-host{position:fixed;bottom:20px;right:20px;z-index:200;display:flex;flex-direction:column;gap:8px;}
.toast{background:var(--ink);color:#fff;padding:12px 16px;border-radius:10px;font-size:12.5px;box-shadow:0 12px 30px -10px rgba(0,0,0,.5);display:flex;align-items:center;gap:8px;animation:slidein .2s ease;max-width:340px;}
.toast.ok{background:#0A6E64;}
.toast.danger{background:#9E2327;}
@keyframes slidein{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

.thumb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin-top:14px;}
.thumb{border:1px solid var(--border);border-radius:8px;padding:6px;background:var(--surface-muted);text-align:center;}
.thumb canvas,.thumb img{width:100%;height:auto;border-radius:4px;background:#fff;}
.thumb .lab{font-family:var(--font-mono);font-size:9px;color:var(--ink-faint);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.thumb-more{display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--ink-faint);border:1px dashed var(--border);border-radius:8px;font-weight:600;}

.progress-bar{height:6px;background:var(--surface-muted);border-radius:99px;overflow:hidden;margin-top:10px;}
.progress-bar > div{height:100%;background:var(--accent);width:0%;transition:width .15s ease;}
.divider{height:1px;background:var(--border);margin:20px 0;}
.logo-preview{width:56px;height:56px;border-radius:10px;border:1px solid var(--border);object-fit:contain;background:var(--surface-muted);}

.chart-wrap{display:flex;align-items:flex-end;gap:5px;height:96px;padding-top:6px;}
.bar{flex:1;background:linear-gradient(180deg,var(--accent),#FFB877);border-radius:4px 4px 0 0;min-height:3px;position:relative;}
.bar span{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-size:9px;color:var(--ink-faint);margin-bottom:3px;white-space:nowrap;}
.chart-x{display:flex;gap:5px;margin-top:6px;}
.chart-x div{flex:1;text-align:center;font-size:9px;color:var(--ink-faint);font-family:var(--font-mono);}

.pdf-hero{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:var(--radius-md);background:linear-gradient(135deg,#1C1204,#14171D 70%);color:#fff;margin-bottom:18px;}
.pdf-hero .ic{width:46px;height:46px;border-radius:12px;background:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.pdf-hero .ic svg{width:24px;height:24px;color:#221200;}
.pdf-hero .txt b{display:block;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;font-size:15px;}
.pdf-hero .txt span{font-size:12px;color:#C7CBD4;}

@media (max-width:900px){
  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:50;transform:translateX(-100%);transition:transform .2s;}
  .sidebar.open{transform:none;}
  .topbar{padding:16px 18px;}
  .content{padding:18px;}
  .menu-btn{display:flex !important;}
}
.menu-btn{display:none;width:36px;height:36px;border-radius:9px;border:1px solid var(--border);background:#fff;align-items:center;justify-content:center;cursor:pointer;}
