:root{--bg:#f3f0eb;--bg-soft:#eae6df;--card:#fffcf8;--card-border:#ddd5c8;--ink:#2a2623;--ink-muted:#6a6460;--ink-faint:#968f87;--accent:#b4532a;--accent-soft:#f0e2d8;--accent-hover:#933f1c;--ok:#2d6b45;--ok-bg:#e8f1eb;--warn:#9a7009;--warn-bg:#f5ecd6;--danger:#a8382a;--danger-bg:#f5e6e3;--info:#3a5578;--info-bg:#e6ecf3;--sidebar-w:200px;--topbar-h:64px;--radius:8px;--shadow:0 1px 2px #2a26230d;--font:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.45}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}.hidden{display:none!important}.auth-shell{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.auth-card{background:var(--card);border:1px solid var(--card-border);width:100%;max-width:400px;box-shadow:var(--shadow);border-radius:10px;padding:32px 28px 24px}.auth-card.wide{max-width:460px}.brand{align-items:center;gap:10px;margin-bottom:6px;display:flex}.brand-mark{background:var(--accent);color:#fff;border-radius:6px;place-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:grid}.brand h1{font-size:16px;font-weight:650}.auth-sub{color:var(--ink-muted);margin-bottom:22px;font-size:13px}.field{margin-bottom:12px}.field label{color:var(--ink-muted);margin-bottom:5px;font-size:12px;font-weight:550;display:block}.field input,.field select,.field textarea{border:1px solid var(--card-border);background:#fff;border-radius:6px;outline:none;width:100%;padding:8px 10px}.field input:focus,.field select:focus{border-color:var(--accent)}.field .hint{color:var(--ink-faint);margin-top:4px;font-size:11px}.btn{border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:550;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{border:1px solid var(--card-border);color:var(--ink);background:0 0}.btn-ghost:hover{background:var(--bg-soft)}.btn-block{width:100%;padding:10px}.btn-sm{padding:5px 9px;font-size:12px}.auth-footer{text-align:center;color:var(--ink-faint);margin-top:16px;font-size:12px}.demo-note{background:var(--bg-soft);color:var(--ink-muted);border-radius:6px;margin-top:14px;padding:8px 10px;font-size:12px}#app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{height:var(--topbar-h);background:var(--card);border-bottom:1px solid var(--card-border);z-index:40;align-items:center;gap:16px;padding:0 24px;display:flex;position:sticky;top:0}.topbar .brand{flex-shrink:0;margin:0}.topbar .brand h1{font-size:14px}.topbar-spacer{flex:1}.role-switch{background:var(--bg-soft);border-radius:6px;align-items:center;gap:6px;padding:3px 6px 3px 10px;display:flex}.role-switch label{color:var(--ink-muted);white-space:nowrap;font-size:11px}.role-switch select{cursor:pointer;background:0 0;border:none;outline:none;padding:5px 6px;font-size:13px;font-weight:600}.user-chip{background:var(--bg-soft);border-radius:6px;align-items:center;gap:8px;padding:3px 10px 3px 3px;font-size:12px;display:flex}.avatar{background:var(--accent-soft);width:26px;height:26px;color:var(--accent);border-radius:4px;place-items:center;font-size:11px;font-weight:700;display:grid}.layout{flex-direction:column;flex:1;min-height:0;display:flex}.sidebar{display:none!important}.app-nav{align-self:stretch;align-items:stretch;gap:4px;min-width:0;margin-left:8px;display:flex;overflow-x:auto}.build-mark{color:var(--ink-faint);letter-spacing:.02em;white-space:nowrap;margin-right:8px;font-size:10px;font-weight:500}.app-nav .tab-nav{color:var(--ink-muted);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;padding:0 14px;font-size:13px;font-weight:550;text-decoration:none;display:flex}.app-nav .tab-nav:hover{color:var(--ink);background:var(--bg-soft)}.app-nav .tab-nav.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:650}.app-nav h2{font:inherit;margin:0}.current-page{border-left:1px solid var(--card-border);white-space:nowrap;margin:0 0 0 8px;padding-left:20px;font-size:14px;font-weight:650}.nav-item{color:var(--ink-muted);text-align:left;border-radius:6px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:13px;font-weight:500;display:flex}.nav-item:hover{background:var(--bg-soft);color:var(--ink)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-item .ico{opacity:.75;flex-shrink:0;place-items:center;width:16px;height:16px;display:grid}.nav-item .ico svg{stroke:currentColor;fill:none;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.nav-section{letter-spacing:.06em;color:var(--ink-faint);padding:12px 10px 4px;font-size:10px;font-weight:650}.main{flex:1;min-width:0;padding:18px 24px 36px;overflow:auto}.perm-pending{background:var(--warn-bg);color:var(--warn);vertical-align:middle;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:650;display:inline-block}.card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:14px 16px}.card-title{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:650;display:flex}.grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}@media (width<=960px){.grid-2,.grid-3{grid-template-columns:1fr}.sidebar{width:168px}}.stat{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:12px 14px}.stat .label{color:var(--ink-muted);font-size:12px}.stat .value{letter-spacing:-.02em;margin-top:2px;font-size:22px;font-weight:700}.stat .sub{color:var(--ink-faint);margin-top:3px;font-size:11px}.chip{background:var(--bg-soft);color:var(--ink-muted);border-radius:4px;align-items:center;gap:3px;padding:1px 7px;font-size:11px;font-weight:550;display:inline-flex}.chip-ok{background:var(--ok-bg);color:var(--ok)}.chip-warn{background:var(--warn-bg);color:var(--warn)}.chip-danger{background:var(--danger-bg);color:var(--danger)}.chip-info{background:var(--info-bg);color:var(--info)}.chip-muted{background:var(--bg-soft);color:var(--ink-muted)}table.data{border-collapse:collapse;width:100%;font-size:12px}table.data th{text-align:left;color:var(--ink-muted);border-bottom:1px solid var(--card-border);white-space:nowrap;background:#faf7f2;padding:6px 8px;font-size:11px;font-weight:600}table.data td{vertical-align:middle;border-bottom:1px solid #efeae3;padding:7px 8px}table.data tr:last-child td{border-bottom:none}table.data tr:hover td{background:#faf7f3}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.muted{color:var(--ink-muted)}.faint{color:var(--ink-faint)}.right{text-align:right}.nowrap{white-space:nowrap}.tree{list-style:none}.tree ul{border-left:1px solid var(--card-border);margin-left:14px;padding-left:12px;list-style:none}.tree-node{background:#faf7f3;border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px;margin:2px 0;padding:6px 8px;display:flex}.tree-node .name{font-size:13px;font-weight:600}.tree-node .meta{color:var(--ink-muted);font-size:11px}.filters{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:12px;display:flex}.filters .field{min-width:120px;margin:0}.filters .field input,.filters .field select{padding:6px 8px}.date-range{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.date-range input[type=date]{border:1px solid var(--card-border);background:#fff;border-radius:6px;padding:6px 8px;font-size:13px}.date-range .sep{color:var(--ink-faint);font-size:12px}.range-quicks{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.range-quicks button{border:1px solid var(--accent);color:var(--accent);background:#fff;border-radius:8px;min-width:64px;padding:7px 14px;font-size:13px;font-weight:600}.range-quicks button:hover{background:#f3ebe4}.range-quicks button.active{background:var(--accent);border-color:var(--accent);color:#fff}.card-title.with-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.card-title .title-left{white-space:nowrap;flex-direction:row;align-items:center;gap:2px;display:inline-flex}.card-title .title-left .sub-line{color:var(--ink-faint);font-size:11px;font-weight:500}.tabs{border-bottom:1px solid var(--card-border);gap:2px;margin-bottom:10px;display:flex}.tab{color:var(--ink-muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:7px 12px;font-size:13px;font-weight:550}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab:hover{color:var(--ink)}.modal-backdrop{z-index:100;background:#2a262352;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:10px;width:100%;max-width:560px;max-height:min(92vh,720px);padding:20px;overflow:auto;box-shadow:0 8px 28px #2a262329}.modal h3{margin-bottom:4px;font-size:15px}.modal .sub{color:var(--ink-muted);margin-bottom:14px;font-size:12px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.link-box{background:var(--bg-soft);word-break:break-all;border-radius:6px;margin:8px 0;padding:8px 10px;font-family:ui-monospace,Menlo,monospace;font-size:12px}.check-row{align-items:center;gap:8px;margin:6px 0;font-size:13px;display:flex}.check-row input{width:15px;height:15px}.perm-hint{color:var(--ink-muted);margin:4px 0 10px;font-size:12px;line-height:1.45}.perm-table{border-collapse:collapse;border:1px solid var(--card-border);border-radius:6px;width:100%;font-size:13px;overflow:hidden}.perm-table th,.perm-table td{text-align:left;border-bottom:1px solid #efeae3;padding:9px 12px}.perm-table th{color:var(--ink-muted);background:#f3f0eb;font-size:12px;font-weight:600}.perm-table tr:last-child td{border-bottom:none}.perm-table td.center,.perm-table th.center{text-align:center;width:96px}.perm-table input[type=checkbox]{width:15px;height:15px}#toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;z-index:200;border-radius:8px;max-width:90vw;padding:9px 16px;font-size:13px;transition:all .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(16px)}#toast.show{opacity:1;transform:translate(-50%)translateY(0)}.empty{text-align:center;color:var(--ink-muted);padding:32px 16px;font-size:13px}.row-type-sum{border-left:2px solid var(--info)}.row-type-detail{border-left:2px solid var(--ok)}.alert{border-radius:6px;margin-bottom:10px;padding:8px 10px;font-size:12px}.alert-danger{background:var(--danger-bg);color:var(--danger)}.alert-ok{background:var(--ok-bg);color:var(--ok)}.alert-warn{background:var(--warn-bg);color:var(--warn)}.split-hint{color:var(--ink-muted);flex-wrap:wrap;gap:12px;margin-bottom:8px;font-size:11px;display:flex}.pager{color:var(--ink-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:12px;display:flex}.pager .btns{align-items:center;gap:6px;display:flex}.search-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.search-bar input{border:1px solid var(--card-border);background:#fff;border-radius:6px;flex:1;min-width:200px;padding:7px 10px}.dash-kpis{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px;display:grid}@media (width<=1100px){.dash-kpis{grid-template-columns:repeat(2,1fr)}}.dash-kpi{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:14px 16px}.dash-kpi .label{color:var(--ink-muted);font-size:12px}.dash-kpi .value{letter-spacing:-.02em;margin-top:4px;font-size:24px;font-weight:700}.dash-kpi .delta{color:var(--ink-faint);margin-top:4px;font-size:11px}.dash-kpi .delta.up{color:var(--ok)}.dash-kpi .delta.down{color:var(--danger)}.dash-grid{grid-template-columns:1.6fr 1fr;gap:12px;display:grid}@media (width<=960px){.dash-grid{grid-template-columns:1fr}}.trend-wrap{padding:4px 0 0}.trend-svg{width:100%;height:180px;display:block}.trend-legend{color:var(--ink-muted);flex-wrap:wrap;gap:14px;margin-top:8px;font-size:11px;display:flex}.trend-legend i{vertical-align:middle;background:var(--accent);width:12px;height:2px;margin-right:4px;display:inline-block}.trend-legend i.play{background:#1d4ed8;width:16px;height:3px}.dash-list{list-style:none}.dash-list li{border-bottom:1px solid #efeae3;justify-content:space-between;gap:12px;padding:8px 0;font-size:12px;display:flex}.dash-list li:last-child{border-bottom:none}.dash-cta{border:1px solid var(--card-border);border-radius:var(--radius);background:#faf7f2;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;display:flex}.dash-cta .txt{font-size:13px}.dash-cta .txt .sub{color:var(--ink-muted);margin-top:2px;font-size:12px}.table-scroll{overflow-x:auto}table.data th.right{text-align:right}.inline-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.modal-heading{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.sub{color:var(--ink-muted);margin-bottom:14px;font-size:12px}.main{width:100%;max-width:1680px;margin:0 auto}.toolbar-search{max-width:360px;margin:0}.field input[readonly]{background:var(--bg-soft)}.inline-actions select{border:1px solid var(--card-border);background:#fff;border-radius:5px;padding:5px 8px;font-size:12px}.stat-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px;display:grid}.tree-details>summary{cursor:pointer;list-style:none}.tree-details>summary:before{content:"▸";color:var(--ink-faint)}.tree-details[open]>summary:before{content:"▾"}.tree-node .inline-actions{margin-left:auto}.tree .chip{white-space:nowrap}.hint{color:var(--ink-muted);font-size:12px;line-height:1.7}.input-error{color:var(--danger);margin:6px 0;font-size:12px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.auth-sub{margin-top:8px}.metric-foot{color:var(--ink-faint);margin-top:5px;font-size:11px}.row-name{min-width:130px}.numeric{font-variant-numeric:tabular-nums}.danger-text{color:var(--danger)}.tree-node .mono{word-break:break-all}.search-bar{margin:12px 0}.trend-svg text{font-family:var(--font);fill:var(--ink-faint);font-size:10px}@media (width<=700px){.main{padding:16px 12px}.topbar{flex-wrap:wrap;gap:6px;height:auto;min-height:56px;padding:8px 12px}.topbar .brand h1{display:none}.topbar .user-chip{max-width:140px}.topbar .user-chip .muted{display:none}.app-nav{flex-basis:100%;order:5;height:38px;margin:0}.current-page{margin-left:0;padding-left:10px}.environment-badge{display:none}.stat-grid{grid-template-columns:1fr}.dash-kpi .value{font-size:21px}.tree ul{margin-left:6px;padding-left:6px}.modal-backdrop{padding:12px}.range-quicks button{min-width:50px;padding:6px 10px}}.date-range input[type=date]{width:148px;min-width:0}.date-range{flex-wrap:nowrap}table.data .right{white-space:nowrap}@media (width<=700px){.table-scroll table{min-width:680px}.trend-svg{height:auto;min-height:140px}}.metric-value{white-space:nowrap}.single-chart{grid-template-columns:1fr}.permission-fields{gap:10px;margin:16px 0;display:grid}@media (width<=700px){.dash-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}}.profile-trigger{cursor:pointer;font:inherit;border:0}.profile-trigger .account-name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.profile-trigger .avatar,.profile-trigger .muted{flex-shrink:0}.profile-trigger .muted{white-space:nowrap}.profile-heading{align-items:center;gap:14px;margin:12px 0 24px;display:flex}.avatar.avatar-large{border-radius:50%;width:52px;height:52px;font-size:22px}.profile-details{margin:12px 0 24px}.profile-details dt{color:var(--ink-muted);font-size:12px}.profile-details dd{overflow-wrap:anywhere;margin:8px 0 0}.auth-card .brand{margin-bottom:20px}.filters{gap:12px;margin-bottom:0}.filters>.field>label,.filters>.field>.field-label{align-items:center;height:20px;min-height:20px;margin-bottom:6px;font-size:12px;line-height:20px;display:flex}.filters .field input:not([type=checkbox]),.filters .field select,.filters .select-trigger{border:1px solid var(--card-border);height:38px;color:var(--ink);box-sizing:border-box;background-color:#fff;border-radius:6px;padding:0 11px;font-family:inherit;font-size:13px;line-height:normal}.filters .field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%233d3832' stroke-width='1.5'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:16px;padding-right:32px}.filters .field select:hover,.filters .select-trigger:hover,.filters .field input:not([type=checkbox]):hover{border-color:#b7a99c}.filters .field select:focus,.filters .select-trigger:focus-visible,.filters .select-trigger[aria-expanded=true],.filters .field input:not([type=checkbox]):focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #b6532a12}.filters>.btn,.filters .range-quicks button{border-radius:6px;height:38px;padding:0 12px;font-size:13px;font-weight:500}.filters .range-quicks{gap:6px}.video-drill-nav{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.video-drill-nav>span{overflow-wrap:anywhere}.video-detail-filters{margin-bottom:1rem}.video-title{overflow-wrap:anywhere;min-width:16rem;max-width:24rem}.video-id{overflow-wrap:anywhere;min-width:14rem;max-width:15rem;font-family:monospace}.video-drama{min-width:10rem}.drama-identity{white-space:nowrap}.video-link{text-underline-offset:.2em;text-decoration:underline}
