:root{
  --navy:#0f2c4c;
  --navy-light:#173d67;
  --orange:#e8720c;
  --orange-light:#fff1e2;
  --green:#1a9d5c;
  --red:#d9432f;
  --gray-bg:#f4f6f9;
  --border:#e1e6ee;
  --text:#26333f;
  --text-mute:#6b7787;
}
*{box-sizing:border-box;}
body{margin:0;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",-apple-system,sans-serif;background:var(--gray-bg);color:var(--text);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

.app{display:flex;min-height:100vh;}

/* Sidebar */
.sidebar{width:230px;flex-shrink:0;background:var(--navy);color:#fff;display:flex;flex-direction:column;}
.sidebar .brand{padding:22px 18px;border-bottom:1px solid rgba(255,255,255,.12);}
.sidebar .brand-mark{display:flex;align-items:center;gap:10px;}
.sidebar .brand-logo{width:36px;height:36px;border-radius:8px;background:var(--orange);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:#fff;}
.sidebar .brand-name{font-size:14px;font-weight:700;line-height:1.3;}
.sidebar .brand-sub{font-size:10px;color:#9fb2c9;margin-top:2px;letter-spacing:.05em;}
.sidebar nav{flex:1;padding:12px 0;overflow-y:auto;}
.sidebar .nav-group-title{font-size:11px;color:#7d93ad;padding:14px 18px 6px;letter-spacing:.05em;}
.sidebar nav a{display:flex;align-items:center;gap:10px;padding:9px 18px;font-size:13px;color:#cfdbea;border-left:3px solid transparent;}
.sidebar nav a:hover{background:rgba(255,255,255,.06);}
.sidebar nav a.active{background:rgba(232,114,12,.15);border-left-color:var(--orange);color:#fff;font-weight:600;}
.sidebar nav a .ic{width:16px;height:16px;flex-shrink:0;}
.sidebar .foot{padding:14px 18px;border-top:1px solid rgba(255,255,255,.12);font-size:11px;color:#8199b3;}

/* Main */
.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{height:58px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;}
.topbar h1{font-size:16px;margin:0;font-weight:700;}
.topbar .user{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-mute);}
.topbar .avatar{width:28px;height:28px;border-radius:50%;background:var(--orange-light);color:var(--orange);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;}
.content{padding:24px;max-width:1180px;}

.hero{position:relative;border-radius:12px;overflow:hidden;margin-bottom:20px;min-height:150px;display:flex;align-items:flex-end;}
.hero img{width:100%;height:170px;object-fit:cover;filter:brightness(.55);}
.hero-text{position:absolute;left:24px;bottom:18px;color:#fff;}
.hero-text .tag{display:inline-block;background:var(--orange);font-size:11px;padding:3px 10px;border-radius:20px;margin-bottom:8px;letter-spacing:.03em;}
.hero-text h2{margin:0;font-size:22px;}
.hero-text p{margin:6px 0 0;font-size:13px;color:#e7edf5;max-width:560px;}

.grid{display:grid;gap:16px;}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:900px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr 1fr;}}

.card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px;}
.card h3{margin:0 0 12px;font-size:14px;}
.kpi .label{font-size:12px;color:var(--text-mute);margin-bottom:6px;}
.kpi .value{font-size:24px;font-weight:700;}
.kpi .value small{font-size:13px;font-weight:400;color:var(--text-mute);}
.kpi .delta{font-size:12px;margin-top:6px;}
.kpi .delta.up{color:var(--green);}
.kpi .delta.down{color:var(--red);}

table{width:100%;border-collapse:collapse;font-size:12.5px;}
th,td{padding:9px 10px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;}
th{background:#f8f9fc;color:var(--text-mute);font-weight:600;font-size:11.5px;position:sticky;top:0;}
tr:hover td{background:#fbfcfe;}
.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;}
.table-wrap table{border:none;}
.table-wrap .table-wrap{border:none;}

.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600;}
.badge.ok{background:#e6f7ee;color:var(--green);}
.badge.warn{background:#fff4e2;color:var(--orange);}
.badge.bad{background:#fdeceb;color:var(--red);}
.badge.info{background:#e8f0fb;color:var(--navy-light);}

.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;border:none;font-size:13px;font-weight:600;cursor:pointer;}
.btn-primary{background:var(--orange);color:#fff;}
.btn-primary:hover{background:#cf6409;}
.btn-outline{background:#fff;border:1px solid var(--border);color:var(--text);}
.btn-outline:hover{border-color:var(--orange);color:var(--orange);}
.btn-sm{padding:5px 11px;font-size:12px;}

input[type=text],input[type=number],select,textarea{
  border:1px solid var(--border);border-radius:6px;padding:7px 10px;font-size:13px;width:100%;font-family:inherit;
}
input[readonly]{background:#f6f7fa;color:var(--text-mute);}
label{font-size:12px;color:var(--text-mute);display:block;margin-bottom:4px;}
.field{margin-bottom:12px;}
.inline-fields{display:flex;gap:12px;}
.inline-fields > div{flex:1;}

.formula-note{background:var(--orange-light);border:1px dashed var(--orange);border-radius:8px;padding:10px 14px;font-size:12.5px;color:#8a4c0d;margin-bottom:16px;}
.formula-note code{background:#fff;padding:1px 6px;border-radius:4px;font-size:12px;}

.section-title{display:flex;align-items:center;justify-content:space-between;margin:28px 0 12px;}
.section-title h3{margin:0;font-size:15px;}
.section-title:first-child{margin-top:0;}

.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;}
.tabs button{background:none;border:none;padding:9px 16px;font-size:13px;cursor:pointer;color:var(--text-mute);border-bottom:2px solid transparent;font-weight:600;font-family:inherit;}
.tabs button.active{color:var(--orange);border-bottom-color:var(--orange);}

.folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;}
.folder{border:1px solid var(--border);border-radius:8px;padding:14px 10px;text-align:center;cursor:pointer;background:#fbfcfe;}
.folder:hover{border-color:var(--orange);}
.folder .ic{font-size:26px;}
.folder .name{font-size:11.5px;margin-top:6px;color:var(--text-mute);}
.folder.active{border-color:var(--orange);background:var(--orange-light);}

.file-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;margin-bottom:8px;font-size:12.5px;background:#fff;}
.file-row .ic{width:26px;height:26px;border-radius:6px;background:#eef2f8;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--navy-light);flex-shrink:0;}
.file-row .name{flex:1;}
.file-row .status{font-size:11px;}

.bar-chart{display:flex;align-items:flex-end;gap:10px;height:160px;padding:10px 4px 0;}
.bar-chart .bar-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;}
.bar-chart .bar{width:100%;max-width:34px;background:linear-gradient(180deg,var(--orange),#c65f08);border-radius:5px 5px 0 0;position:relative;}
.bar-chart .bar span{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:10.5px;color:var(--text-mute);white-space:nowrap;}
.bar-chart .cat{font-size:10.5px;color:var(--text-mute);margin-top:6px;text-align:center;}

.diff-match{background:#e6f7ee !important;}
.diff-mismatch{background:#fdeceb !important;}

.doc-preview{background:#fff;border:1px solid var(--border);padding:28px;max-width:640px;margin:0 auto;font-size:12.5px;box-shadow:0 2px 10px rgba(0,0,0,.04);}
.doc-preview h2{text-align:center;font-size:16px;margin-bottom:4px;}
.doc-preview .doc-sub{text-align:center;color:var(--text-mute);font-size:11px;margin-bottom:18px;}
.doc-preview table{font-size:11.5px;}
.doc-preview table th,.doc-preview table td{border:1px solid #ccc;padding:5px 8px;}

.toggle-row{display:flex;align-items:center;gap:10px;}
.switch{width:38px;height:20px;background:#ccd3dd;border-radius:20px;position:relative;cursor:pointer;flex-shrink:0;}
.switch.on{background:var(--green);}
.switch::after{content:"";position:absolute;width:16px;height:16px;background:#fff;border-radius:50%;top:2px;left:2px;transition:.15s;}
.switch.on::after{left:20px;}

.muted{color:var(--text-mute);}
.small{font-size:11.5px;}
.mt0{margin-top:0;}
.mb0{margin-bottom:0;}
.flex-between{display:flex;align-items:center;justify-content:space-between;}
.gap8{gap:8px;}
.img-thumb{width:44px;height:44px;object-fit:cover;border-radius:6px;flex-shrink:0;}
.drop-zone{border:2px dashed var(--border);border-radius:10px;padding:30px;text-align:center;color:var(--text-mute);font-size:13px;cursor:pointer;}
.drop-zone:hover{border-color:var(--orange);color:var(--orange);}
.alert{padding:10px 14px;border-radius:8px;font-size:12.5px;margin-bottom:14px;}
.alert.bad{background:#fdeceb;color:#a3291b;border:1px solid #f4c3bd;}
.alert.ok{background:#e6f7ee;color:#146c3e;border:1px solid #b9e8cd;}
