:root{
  --bg:#f5f7fb;--panel:#fff;--ink:#172033;--muted:#738096;--line:#e7ebf2;
  --brand:#3978f6;--brand-dark:#2862cf;--brand-soft:#eef4ff;--green:#19a66a;
  --red:#db4b5f;--orange:#e98936;--violet:#7957e8;--cyan:#24a7c7;
  --sidebar:240px;--shadow:0 8px 28px rgba(25,42,76,.06);--radius:14px;
}
*{box-sizing:border-box}html{min-height:100%}body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font:14px/1.55 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,p{margin-top:0}.muted{color:var(--muted)}.block{display:block;margin-top:3px;color:var(--muted)}code{font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:#596579;overflow-wrap:anywhere}

.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);z-index:30;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:22px 14px}.brand{height:52px;display:flex;align-items:center;gap:12px;padding:0 10px;color:var(--ink)}.brand-mark,.login-logo{display:grid;place-items:center;background:linear-gradient(135deg,#5797ff,#326ce1);color:white;font-weight:800;box-shadow:0 7px 15px rgba(57,120,246,.25)}.brand-mark{width:36px;height:36px;border-radius:11px;font-size:18px}.brand b{display:block;font-size:17px}.brand small{display:block;color:#99a3b5;font-size:11px;font-weight:500}.side-nav{margin-top:20px;display:grid;gap:4px}.side-nav p{margin:18px 11px 5px;color:#a0a9b9;font-size:10px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.side-nav a{display:flex;align-items:center;gap:11px;min-height:42px;padding:9px 12px;border-radius:9px;color:#5f6b7e;font-weight:600}.side-nav a span{width:20px;text-align:center;font-size:18px;color:#8a96a8}.side-nav a:hover{background:#f6f8fc;color:var(--ink)}.side-nav a.active{background:var(--brand-soft);color:var(--brand)}.side-nav a.active span{color:var(--brand)}.sidebar-foot{margin-top:auto;padding:14px 10px 4px;color:#8590a3;font-size:12px}.status-dot{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#28bb7b;box-shadow:0 0 0 4px #e9f8f1}.sidebar-overlay{display:none}
.workspace{min-height:100vh;margin-left:var(--sidebar)}.workspace-topbar{height:66px;padding:0 30px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:rgba(255,255,255,.9);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20}.breadcrumb{color:#8490a3;font-size:13px}.breadcrumb span{padding:0 7px;color:#c1c7d2}.admin-profile{margin-left:auto;display:flex;align-items:center;gap:9px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:#fff;font-weight:750}.avatar.soft{background:#eaf1ff;color:var(--brand)}.profile-name{font-weight:650}.admin-profile form{margin:0}.icon-button{border:0;background:transparent;color:#8b96a8;padding:7px}.menu-toggle{display:none;border:0;background:transparent;font-size:22px;color:#596579;margin-right:10px}.content{max-width:1480px;margin:0 auto;padding:30px 34px 60px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-head h1{font-size:27px;line-height:1.2;margin:0 0 7px;letter-spacing:-.02em}.page-head p{color:var(--muted);margin-bottom:0}.eyebrow{font-size:10px!important;font-weight:800;letter-spacing:.14em;color:var(--brand)!important;margin-bottom:7px!important}.head-actions{display:flex;gap:9px}
.button{min-height:39px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:9px;padding:8px 15px;font-weight:650;white-space:nowrap}.button.primary{background:var(--brand);color:#fff;box-shadow:0 5px 14px rgba(57,120,246,.2)}.button.primary:hover{background:var(--brand-dark)}.button.secondary{background:#fff;border-color:#dfe4ec;color:#4d596c}.button.ghost{background:transparent;color:#7d899c}.button.small{min-height:34px;padding:5px 12px}.link-button{border:0;background:none;color:var(--brand);padding:0}.link-button.danger{color:var(--red)}
.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric{min-height:116px;padding:18px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;align-items:flex-start;gap:13px}.metric-icon{width:38px;height:38px;flex:0 0 38px;border-radius:11px;display:grid;place-items:center;font-size:18px;font-weight:800}.metric-icon.blue{background:#ebf2ff;color:var(--brand)}.metric-icon.violet{background:#f1edff;color:var(--violet)}.metric-icon.cyan{background:#e9f8fb;color:var(--cyan)}.metric-icon.green{background:#e9f8f1;color:var(--green)}.metric-icon.orange{background:#fff2e8;color:var(--orange)}.metric span{display:block;color:#788499;font-size:12px}.metric strong{display:block;font-size:25px;line-height:1.25;margin:3px 0 1px;letter-spacing:-.02em}.metric small{color:#9ba4b3;font-size:11px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-head{min-height:70px;padding:17px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.panel-head h2{font-size:16px;margin:0 0 2px}.panel-head p{font-size:12px;color:var(--muted);margin:0}.date-chip,.source-chip{display:inline-flex;padding:4px 9px;border-radius:999px;background:#f2f5f9;color:#697589;font-size:11px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,.72fr);gap:18px;margin-bottom:18px}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.chart-panel{min-height:365px}.chart-legend{display:flex;gap:18px;padding:14px 20px 0;color:#687489;font-size:11px}.chart-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.legend-blue{background:var(--brand)}.legend-violet{background:var(--violet)}.legend-green{background:var(--green)}.chart-wrap{height:255px;padding:8px 14px 13px}.trend-chart{width:100%;height:100%;display:block}.channel-list{padding:8px 18px 18px}.channel-row{display:block;padding:12px 2px;color:inherit}.channel-row+ .channel-row{border-top:1px solid #f0f2f6}.channel-row>div:first-child{display:flex;justify-content:space-between;gap:8px;align-items:center}.channel-row b{font-size:12px;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-row span{font-size:10px;color:#8792a3;white-space:nowrap}.bar{height:5px!important;margin-top:8px;background:#edf1f6;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,#5e9bff,#3978f6);border-radius:99px}.recent-panel{margin-top:0}
.mini-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:18px}.mini-metrics article{padding:17px 19px;background:white;border:1px solid var(--line);border-radius:12px}.mini-metrics span{display:block;color:var(--muted);font-size:12px}.mini-metrics strong{font-size:23px}.analytics-grid{margin-top:0}
.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}th{background:#fafbfd;color:#7a8699;font-size:10px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}tbody tr:hover{background:#fbfcff}tbody tr:last-child td{border-bottom:0}.empty{text-align:center!important;color:#95a0b1!important;padding:36px!important}.empty.compact{padding:28px 5px!important}.user-chip{display:inline-grid;place-items:center;width:25px;height:25px;margin-right:7px;border-radius:50%;background:#eef3fb;color:#637188;font-size:10px;font-weight:700}.identity,.resource-name{display:flex;align-items:center;gap:10px}.identity strong,.identity small,.resource-name strong,.resource-name small{display:block}.identity small,.resource-name small{color:#8d98a9;font-size:11px}.resource-icon{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:9px;background:#f0f4fb;color:#54709b;font-size:16px}.select-col{width:38px;text-align:center!important}.select-col input{width:15px;height:15px;accent-color:var(--brand)}.actions{display:flex;align-items:center;gap:11px;white-space:nowrap}.actions form{margin:0}.badge,.tag{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:700;white-space:nowrap}.badge.active{background:#e9f8f1;color:#12885a}.badge.inactive{background:#f0f2f5;color:#788396}.badge.pending{background:#fff4da;color:#a26b00}.badge.rejected{background:#ffedf0;color:#c83e52}.tag{background:#edf3ff;color:var(--brand);margin-right:3px}.tag.hot{background:#fff0e6;color:#d66c2d}
.filter-bar{display:flex;gap:9px;align-items:center;padding:13px;margin-bottom:14px;background:#fff;border:1px solid var(--line);border-radius:12px}.filter-bar select,.filter-bar>input,.bulk-toolbar select{height:39px;border:1px solid #dfe4ec;border-radius:8px;padding:0 11px;background:#fff;color:#536074;outline:none}.search-field{height:39px;min-width:260px;flex:1;display:flex;align-items:center;border:1px solid #dfe4ec;border-radius:8px;background:#fff;padding:0 11px}.search-field span{color:#94a0b1;font-size:18px}.search-field input{width:100%;border:0;outline:0;padding:0 8px;color:var(--ink)}.view-tabs,.filter-tabs{display:flex;gap:4px;margin-bottom:13px}.view-tabs a,.filter-tabs a{padding:8px 12px;border-radius:8px;color:#788397;font-weight:600;font-size:12px}.view-tabs a.active,.filter-tabs a.selected{background:#eaf1ff;color:var(--brand)}.bulk-toolbar{min-height:52px;display:flex;align-items:center;gap:10px;padding:8px 13px;margin-bottom:10px;border:1px dashed #d7deea;border-radius:10px;background:#fbfcfe;color:#7b8799}.bulk-toolbar span{margin-right:auto}.bulk-toolbar b{color:var(--brand)}.pagination{display:flex;align-items:center;justify-content:center;gap:18px;padding:20px;color:#7e899b}.pagination a{padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}
.form-panel{padding:24px}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;max-width:960px}.grid-form label,.stack-form label{display:flex;flex-direction:column;gap:7px;font-weight:650;color:#4c586b}.grid-form input,.grid-form select,.grid-form textarea,.stack-form input{width:100%;border:1px solid #d9e0ea;border-radius:9px;padding:10px 12px;background:#fff;color:var(--ink);outline:none}.grid-form input:focus,.grid-form select:focus,.grid-form textarea:focus,.stack-form input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(57,120,246,.1)}.grid-form small{font-weight:400;color:var(--muted)}.grid-form .span-2{grid-column:span 2}.check{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important;font-weight:500!important}.check input{width:auto}.checks{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.form-actions{display:flex;gap:10px;padding-top:8px}
.notice{padding:11px 14px;margin-bottom:16px;border-radius:9px}.notice.success{background:#e9f8f1;color:#15835a}.notice.error{background:#ffedf0;color:var(--red)}.auth-shell{background:radial-gradient(circle at 18% 20%,#eaf2ff 0,transparent 32%),radial-gradient(circle at 82% 82%,#eef1ff 0,transparent 30%),#f7f9fc}.auth-container{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:35px;box-shadow:0 24px 65px rgba(35,52,85,.12);text-align:center}.login-logo{width:52px;height:52px;border-radius:14px;margin:0 auto 16px;font-size:20px}.login-card h1{font-size:24px;margin-bottom:5px}.login-card .muted{margin-bottom:0}.stack-form{display:grid;gap:16px;text-align:left;margin-top:25px}

@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr 1fr}.dashboard-grid .span-2{grid-column:span 2}.dashboard-grid .channel-panel{grid-column:span 2}.analytics-grid .span-3{grid-column:span 2}}
@media(max-width:860px){:root{--sidebar:250px}.sidebar{transform:translateX(-100%);transition:transform .22s ease;box-shadow:15px 0 40px rgba(25,42,76,.16)}.sidebar-overlay{position:fixed;inset:0;z-index:25;background:rgba(18,28,48,.35);backdrop-filter:blur(2px)}body.sidebar-open .sidebar{transform:none}body.sidebar-open .sidebar-overlay{display:block}.workspace{margin-left:0}.menu-toggle{display:block}.workspace-topbar{padding:0 16px}.content{padding:24px 18px 48px}.metric-grid{grid-template-columns:repeat(2,1fr)}.page-head{align-items:flex-start}.filter-bar{flex-wrap:wrap}.search-field{min-width:100%;flex-basis:100%}.filter-bar select{flex:1}.grid-form{grid-template-columns:1fr}.grid-form .span-2{grid-column:span 1}}
@media(max-width:680px){.profile-name{display:none}.content{padding:20px 12px 42px}.page-head{display:block}.page-head h1{font-size:24px}.head-actions{margin-top:16px}.page-head>.button{margin-top:16px;width:100%}.metric-grid{gap:10px}.metric{min-height:105px;padding:14px;display:block}.metric-icon{width:31px;height:31px;margin-bottom:7px}.metric strong{font-size:22px}.dashboard-grid{display:block}.dashboard-grid>.panel{margin-bottom:12px}.chart-panel{min-height:330px}.chart-wrap{height:230px;padding:4px 7px 10px}.mini-metrics{grid-template-columns:1fr 1fr;gap:9px}.filter-bar select,.filter-bar .button{flex:1;min-width:calc(50% - 6px)}.bulk-toolbar{flex-wrap:wrap}.bulk-toolbar span{width:100%}.bulk-toolbar select{flex:1}.mobile-table,.mobile-table tbody,.mobile-table tr,.mobile-table td{display:block;width:100%}.mobile-table thead{display:none}.mobile-table tr{padding:10px 14px;border-bottom:1px solid var(--line)}.mobile-table tr:last-child{border-bottom:0}.mobile-table td{border:0;padding:7px 0;display:grid;grid-template-columns:105px minmax(0,1fr);align-items:center;gap:8px;text-align:right}.mobile-table td::before{content:attr(data-label);color:#8c97a8;font-size:11px;text-align:left}.mobile-table td.select-col{display:block;text-align:left!important}.mobile-table td.select-col::before{display:none}.mobile-table .identity,.mobile-table .resource-name,.mobile-table .actions{justify-content:flex-end}.mobile-table .empty{display:block!important}.mobile-table .empty::before{display:none}.listings-table .select-col{position:absolute}.listings-table tr{position:relative;padding-left:42px}.view-tabs{overflow-x:auto}.form-panel{padding:17px}.login-card{padding:28px 21px}.recent-panel .table-wrap{overflow:auto}.recent-panel table{min-width:650px}}
@media(max-width:400px){.metric-grid{grid-template-columns:1fr}.mini-metrics{grid-template-columns:1fr 1fr}.head-actions{display:grid}.filter-bar select,.filter-bar .button{min-width:100%}}

