.cc-head-user{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:12px;color:var(--text-2)}.cc-head-app{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding-left:18px;border-left:1px solid var(--border)}.cc-body{padding:22px}.cc-h1{font-size:20px;font-weight:700;margin:0;letter-spacing:-.01em}.cc-h2{font-size:13.5px;font-weight:800;margin:0 0 14px}.cc-section{border:1px solid var(--border);border-radius:10px;padding:18px;background:#fff}.cc-kpi{background:var(--surface-muted);border:1px solid var(--border-soft);border-radius:8px;padding:14px 16px;min-width:0}.cc-kpi .k-label{font-size:12px;font-weight:600;color:var(--text-2);display:flex;align-items:center;gap:6px}.cc-kpi .k-value{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-top:4px}.cc-kpi .k-value small{font-size:14px;font-weight:500;color:var(--muted);margin-left:4px}.cc-kpi .k-sub{font-size:10.5px;color:var(--faint);margin-top:2px}.cc-split{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:560px}.cc-rail{background:var(--surface-muted);border-right:1px solid var(--border)}.cc-rail-action{display:flex;align-items:center;gap:10px;width:100%;padding:16px 20px;background:#8fa79b;color:#fff;border:none;font-weight:700;font-size:12.5px;text-align:left}.cc-rail-action:hover{background:#7d988b}.cc-rail-section{padding:18px 20px}.cc-rail-title{font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:0 0 10px}.cc-rail-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;background:transparent;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--text-2);text-align:left}.cc-rail-item:hover{background:var(--surface-soft)}.cc-rail-item.on{background:#fff;color:var(--ink);box-shadow:var(--shadow-card)}.cc-rail-item .cnt{margin-left:auto;font-size:11px;color:var(--muted);font-weight:700}.cc-year{display:block;width:100%;text-align:left;padding:16px 22px;border:none;border-bottom:1px solid var(--border-soft);background:transparent;font-weight:600;font-size:13px}.cc-year:hover{background:var(--surface-soft)}.cc-year.on{background:#8fa79b;color:#fff}.cc-main-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-bottom:1px solid var(--border)}.cc-main-head h2{font-size:17px;font-weight:600;margin:0;color:var(--text-2)}.cc-main-body{padding:18px 24px 24px}.cc-matrix-wrap{background:var(--surface-muted);border:1px solid var(--border-soft);border-radius:10px;padding:10px;overflow-x:auto}.cc-matrix{border-collapse:separate;border-spacing:8px 0;width:100%;min-width:980px;font-size:12px}.cc-matrix th,.cc-matrix td{background:#fff;padding:7px 12px}.cc-matrix th.rowlabel,.cc-matrix td.rowlabel{background:transparent;text-align:right;font-weight:600;white-space:nowrap;color:var(--text-2)}.cc-matrix .scheme{font-weight:700;font-size:12.5px;text-align:left;border-bottom:1px solid var(--border-soft);border-radius:8px 8px 0 0}.cc-matrix .sub{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;border-bottom:1px solid var(--border-soft)}.cc-matrix td.cell{text-align:right;font-variant-numeric:tabular-nums}.cc-matrix td.cell button{border:none;background:transparent;padding:2px 8px;border-radius:6px;font-weight:700;min-width:36px;text-align:right}.cc-matrix td.cell button:hover{background:var(--surface-soft)}.cc-matrix td.cell button.zero{font-weight:500;color:var(--faint)}.cc-matrix td.cell button.on{background:var(--ink);color:#fff}.cc-matrix tr:last-child td:not(.rowlabel){border-radius:0 0 8px 8px}.cc-marker{display:inline-block;width:4px;height:12px;border-radius:2px;margin-left:6px;vertical-align:-1px}.cc-yearpill{display:inline-flex;align-items:center;gap:6px;border-radius:20px;padding:6px 14px;border:1px solid var(--ink);background:#fff;font-weight:700;font-size:11.5px}.cc-yearpill.on{background:var(--ink);color:#fff}.cc-vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.cc-vcard{border:1px solid var(--border);border-radius:8px;padding:14px;background:#fff;text-align:left;width:100%;display:block}button.cc-vcard:hover,.cc-vcard.clickable:hover{border-color:var(--border-strong);box-shadow:var(--shadow-card);cursor:pointer}.cc-vcard.sel{border-color:var(--success);box-shadow:0 0 0 2px var(--success-bg)}.cc-vcard .vname{font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.01em}.cc-vcard .vimo{font-size:11px;color:var(--muted)}.cc-vcard .vco{font-size:10px;color:var(--muted);text-align:right;max-width:120px;line-height:1.25}.cc-vcard .kv{font-size:10.5px;color:var(--muted)}.cc-vcard .kv b{display:block;color:var(--ink);font-size:12px}.cc-company{font-weight:700;font-size:13.5px;margin:6px 0 10px;display:flex;align-items:center;gap:10px}.cc-vblock{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:14px}.cc-vblock-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.cc-vblock-head .vt{font-weight:800;font-size:12.5px;text-transform:uppercase}.cc-plan{background:#fff;border:1px solid var(--border-soft);border-left:4px solid var(--border-strong);border-radius:6px;padding:12px 14px;margin-top:8px}.cc-plan .ptitle{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.cc-plan .pstatus{font-size:11.5px;color:var(--muted);margin-top:2px}.cc-type{font-size:11.5px;color:var(--muted);font-weight:500}.cc-counts{display:inline-flex;gap:12px;font-size:12px;font-variant-numeric:tabular-nums}.cc-counts span{border-left:3px solid;padding-left:5px;font-weight:600}.cc-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.cc-legend span{border-left:3px solid;padding-left:5px}.cc-price-tile{border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:var(--surface-inset)}.cc-price-tile .pv{font-size:20px;font-weight:800;color:var(--success)}.cc-err{color:var(--danger);font-size:10.5px;margin-top:3px}.cc-admin{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:560px}.cc-tree{padding:16px 12px;border-right:1px solid var(--border)}.cc-tree .grp{font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:12px 10px 4px}.cc-tree .leaf{display:block;width:100%;text-align:left;border:none;background:transparent;padding:6px 10px 6px 18px;border-radius:6px;font-size:12px;color:var(--text-2)}.cc-tree .leaf:hover{background:var(--surface-soft)}.cc-tree .leaf.on{font-weight:800;color:var(--ink);background:var(--surface-soft)}.cc-chip{display:inline-block;background:var(--ink);color:#fff;border-radius:4px;padding:2px 7px;font-size:10.5px;font-weight:600;margin:1px 4px 1px 0;white-space:nowrap}.cc-check{display:inline-flex;width:18px;height:18px;border-radius:50%;background:var(--success);color:#fff;align-items:center;justify-content:center;font-size:11px;font-weight:800}.cc-icon-btn{border:none;background:transparent;color:var(--muted);padding:4px;border-radius:6px;display:inline-flex}.cc-icon-btn:hover{background:var(--surface-soft);color:var(--ink)}.cc-icon-btn.danger:hover{color:var(--danger);background:var(--danger-bg)}.cc-drop{border:2px dashed var(--border-strong);border-radius:12px;padding:34px 16px;text-align:center;color:var(--muted);background:var(--surface-inset);cursor:pointer}.cc-drop:hover,.cc-drop.over{border-color:var(--ink);background:var(--surface-soft)}.cc-dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;font-size:12.5px;margin:0}.cc-dl dt{color:var(--muted)}.cc-dl dd{margin:0;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}@media (max-width: 1100px){.cc-split,.cc-admin{grid-template-columns:1fr}.cc-rail,.cc-tree{border-right:none;border-bottom:1px solid var(--border)}}.cc-back{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-strong);background:#fff;border-radius:6px;padding:6px 10px;font-size:12px;font-weight:600;color:var(--text-2)}.cc-back:hover{border-color:var(--ink);color:var(--ink)}.cc-vtitle{font-size:15px;font-weight:800;margin:0}.cc-vtitle+.cc-vco{font-size:12px;color:var(--muted);margin-top:2px}.cc-act{display:grid;grid-template-columns:20px 92px 26px minmax(0,1fr) auto auto;align-items:center;gap:12px;border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:6px;padding:8px 12px;background:#fff;margin-top:8px}.cc-act.no-check{grid-template-columns:92px 26px minmax(0,1fr) auto auto}.cc-act-where{display:grid;grid-template-columns:80px 80px 150px minmax(110px,1fr);gap:12px;border-left:1px solid var(--border-soft);padding-left:14px;min-width:0}.cc-field{display:flex;flex-direction:column;font-size:10.5px;color:var(--muted);min-width:0}.cc-field b{font-size:12px;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.cc-regs{display:inline-flex;gap:3px}.cc-reg{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:20px;padding:0 4px;border-radius:10px;font-size:9px;font-weight:800;letter-spacing:.04em;background:var(--surface-soft);color:var(--text-2);border:1px solid var(--border)}.cc-reg.eu{background:var(--ink);color:#fff;border-color:var(--ink)}.cc-kind{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--ink)}.cc-kind.port{background:var(--ink);color:#fff;border-radius:4px;font-size:11px;font-weight:800;width:18px;height:18px}.cc-req{text-align:right;font-size:10.5px;color:var(--muted);min-width:80px}.cc-req b{display:block;color:var(--ink);font-size:12px;font-variant-numeric:tabular-nums}.cc-assign{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0 12px;border-bottom:1px solid var(--border-soft)}.cc-vsel-cards .cc-vcard{position:relative}.cc-cardcheck{position:absolute;top:12px;right:12px;width:16px;height:16px;accent-color:var(--ink);cursor:pointer}.cc-simchips{display:flex;gap:14px;flex-wrap:wrap}.cc-simchips button{border:none;border-left:3px solid;background:transparent;padding:2px 8px;font-size:12px;color:var(--text-2)}.cc-simchips button.on{font-weight:800;color:var(--ink);background:var(--surface-soft)}.cc-ghg{display:grid;grid-template-columns:1fr auto;gap:4px 12px;font-size:12.5px;margin-top:6px}.cc-ghg b{font-variant-numeric:tabular-nums}.cc-ghg span{color:var(--muted);text-align:right}.cc-railyear{display:flex;align-items:center;gap:12px;width:100%;padding:14px 20px;border:none;border-bottom:1px solid var(--border-soft);background:transparent;font-weight:600;font-size:13px;text-align:left}.cc-railyear .ring{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-strong)}.cc-railyear.on{background:#fff}.cc-railyear.on .ring{border-color:var(--ink);background:radial-gradient(var(--ink) 40%,transparent 45%)}.cc-railsub{display:block;width:100%;text-align:left;padding:11px 20px 11px 50px;border:none;border-bottom:1px solid var(--border-soft);background:var(--surface-inset);font-size:12px;color:var(--text-2)}.cc-railsub:hover{background:var(--surface-soft)}.cc-railsub.on{font-weight:800;color:var(--ink);background:#fff}.cc-sel-matrix th,.cc-sel-matrix td{padding:7px 8px}.cc-sel-matrix td.st{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}.cc-sel-matrix th.hl,.cc-sel-matrix td.hl{background:var(--surface-soft)}.cc-chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.cc-chips button{border:1px solid var(--ink);background:#fff;border-radius:14px;padding:4px 11px;font-size:11.5px;font-weight:600;color:var(--ink)}.cc-chips button.on{background:var(--ink);color:#fff}.cii-box{background:var(--surface-muted);border:1px solid var(--border-soft);border-radius:10px;padding:10px 12px;font-size:12px}.cii-box p{margin:3px 0}.cii-help{font-size:10.5px;color:var(--faint);line-height:1.5;margin:6px 0 0}.cii-cap-btn{background:var(--warning);border-color:var(--warning);color:#fff}.cii-cap-btn:hover{background:#956530;border-color:#956530}.cii-filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px}@media (max-width: 900px){.cii-filters{grid-template-columns:1fr}}.cii-mix{display:flex;flex-direction:column;gap:8px}.cii-mix .lbl{display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted);font-weight:600;margin-bottom:4px}.adm-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--border-soft)}.adm-toolbar .search{flex:1;min-width:220px;max-width:420px}.adm-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 18px;border-top:1px solid var(--border-soft)}.adm-foot .pp{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}.adm-foot .pp select{border:1px solid var(--border-strong);border-radius:6px;padding:3px 6px;background:#fff;font-size:11px}.adm-foot .spread{flex:1;max-width:420px}.adm-expand td{background:var(--surface-inset)!important;padding:0!important}.adm-expand-inner{padding:16px 20px 20px;border-top:1px dashed var(--border)}.mod-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}@media (max-width: 1100px){.mod-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.mod-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.mod-card.off{background:var(--surface-muted)}.mod-card .mod-name{font-weight:700;font-size:12.5px}.inv-badge{border:none;cursor:pointer;transition:transform .08s}.inv-badge:hover{transform:translateY(-1px);box-shadow:0 1px 4px #1e2d281f}.inv-badge:disabled{cursor:default;transform:none;box-shadow:none}.chips{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.chip{display:inline-flex;align-items:center;gap:4px;background:var(--surface-soft);color:var(--text-2);border-radius:6px;padding:2px 7px;font-size:10.5px;font-weight:600;white-space:nowrap}.chip.more{background:transparent;border:1px solid var(--border-strong);color:var(--muted)}.chip.sel{background:var(--ink);color:#fff}.chip button{background:none;border:none;color:inherit;padding:0;font-weight:800;line-height:1}.chip-toggle{cursor:pointer;border:1px solid var(--border-strong);background:#fff;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:600;color:var(--text-2)}.chip-toggle.on{background:var(--ink);color:#fff;border-color:var(--ink)}.kebab{position:relative;display:inline-block}.kebab>button{border:none;background:transparent;width:28px;height:28px;border-radius:6px;font-size:16px;line-height:1;color:var(--muted)}.kebab>button:hover{background:var(--surface-soft);color:var(--ink)}.kebab .dd-menu{left:auto;right:0;min-width:180px}.ac{position:relative}.ac-menu{position:absolute;z-index:40;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #1e2d2829;max-height:260px;overflow:auto;padding:6px}.ac-menu .opt{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;border-radius:6px;cursor:pointer;font-size:12px}.ac-menu .opt:hover{background:var(--surface-soft)}.ac-menu .opt.disabled{opacity:.5;cursor:default}.upload-result{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:#fff}.upload-result table.t td{padding:6px 10px}.rte-bar{display:flex;gap:4px;padding:4px;border:1px solid var(--border-strong);border-bottom:none;border-radius:8px 8px 0 0;background:var(--surface-muted)}.rte-bar button{border:none;background:transparent;min-width:28px;height:26px;border-radius:5px;font-size:12px;color:var(--text-2)}.rte-bar button:hover{background:#fff;color:var(--ink)}.rte{min-height:150px;max-height:280px;overflow:auto;border:1px solid var(--border-strong);border-radius:0 0 8px 8px;padding:10px 12px;outline:none;font-size:12.5px;line-height:1.6;background:#fff}.rte:focus{border-color:var(--ink);box-shadow:0 0 0 3px #1e2d2814}.rte:empty:before{content:attr(data-placeholder);color:var(--faint)}.rte p{margin:0 0 6px}.rte ul{margin:0 0 6px;padding-left:20px}.notif-card{border:1px solid var(--border);border-radius:12px;padding:12px 14px;background:#fff}.notif-card+.notif-card{margin-top:10px}.notif-card .ttl{font-weight:700;font-size:13px;margin:0}.notif-card .prev{color:var(--muted);font-size:12px;margin:6px 0 8px;line-height:1.5}.inbox-row{display:flex;gap:14px;padding:14px 18px;border-bottom:1px solid var(--border-soft);align-items:flex-start}.inbox-row:last-child{border-bottom:none}.inbox-row:hover{background:var(--row-hover)}.inbox-row .udot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0;background:transparent}.inbox-row.unread .udot{background:var(--danger)}.inbox-row .ttl{margin:0;font-size:13.5px;font-weight:600}.inbox-row.unread .ttl{font-weight:800}.inbox-row .prev{margin:4px 0 6px;color:var(--muted);font-size:12px;line-height:1.5}.msg-body{line-height:1.7;font-size:13px;border:1px solid var(--border-soft);background:var(--surface-inset);border-radius:10px;padding:14px 16px}.msg-body p{margin:0 0 8px}.msg-body p:last-child{margin-bottom:0}.ro-panel{border:1px dashed var(--border-strong);background:var(--surface-muted);border-radius:10px;padding:10px 12px}.profile-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.action-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--border-soft)}.action-row:last-child{border-bottom:none;padding-bottom:0}.action-row:first-child{padding-top:0}:root{--ink: #1e2d28;--ink-hover: #2e4a3e;--text-2: #4a6358;--muted: #6b857c;--faint: #9aafa5;--ghost: #bbc9c3;--canvas: #f4f6f5;--surface: #fff;--surface-muted: #f9faf9;--surface-inset: #fafcfb;--surface-soft: #f0f5f2;--sidebar: #bbc9c3;--border: #e4ebe7;--border-soft: #e8efec;--border-strong: #c4d0cb;--success: #3a8c65;--success-bg: #eaf6f0;--danger: #c0534a;--danger-bg: #fdf0ef;--warning: #b07a3a;--warning-bg: #fef9ec;--chart: #2f4c3d;--row-hover: #f6faf8;--shadow-card: 0 1px 4px rgba(30, 45, 40, .06);--shadow-modal: 0 24px 64px rgba(30, 45, 40, .22);--font: "Montserrat", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:var(--canvas);font-size:13px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}a{color:inherit}.app{display:flex;height:100%}.app-main{flex:1;overflow:auto;position:relative}.page{padding:28px 36px 48px;max-width:1440px}.page.narrow{max-width:1200px}.demo-tag{display:inline-block;margin-top:4px;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#1e2d2899;border:1px solid rgba(30,45,40,.25);border-radius:4px;padding:1px 5px}.sidebar{width:222px;flex-shrink:0;background:var(--sidebar);height:100%;display:flex;flex-direction:column;padding:18px 10px 12px;overflow-y:auto;border-right:1px solid #aab8b2}.sidebar-logo{padding:0 8px 18px;display:flex;align-items:center;gap:10px}.sidebar-logo .wordmark{font-weight:800;font-size:13px;letter-spacing:.16em;color:var(--ink)}.sidebar-logo .tag{font-size:8px;letter-spacing:.18em;color:#1e2d288c;font-weight:600}.nav-section{font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#f4f6f5bf;padding:10px 10px 6px}.nav-sep{height:1px;background:#f4f6f54d;margin:8px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 10px;border-radius:8px;border:none;background:transparent;color:#f4f6f5;font-weight:600;font-size:12.5px;margin-bottom:2px}.nav-item:hover{background:#1e2d281a}.nav-item.active{background:#1e2d2838;color:#fff}.nav-item .badge-dot{margin-left:auto;background:var(--danger);color:#fff;font-size:9px;border-radius:10px;padding:1px 6px;font-weight:700}.nav-spacer{flex:1}.nav-tag{margin-left:auto;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#7a4f00;background:#f6d28d;border-radius:4px;padding:1px 5px}.side-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;margin-top:6px;border:1px solid rgba(244,246,245,.3);background:#1e2d280f;color:#f4f6f5;border-radius:8px;font-weight:600;font-size:12px}.side-btn:hover{background:#1e2d2821}.profile-trigger{display:flex;align-items:center;gap:10px;margin-top:10px;padding:10px;border-radius:10px;background:#1e2d2821;border:none;color:#f4f6f5;width:100%;text-align:left}.profile-trigger:hover{background:#1e2d2833}.avatar{width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;flex-shrink:0}.avatar.lg{width:64px;height:64px;font-size:26px}.profile-trigger .who{min-width:0;flex:1}.profile-trigger .who p{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-trigger .who p:first-child{font-weight:700;font-size:12px}.profile-trigger .who p:last-child{font-size:9.5px;opacity:.7;letter-spacing:.06em;text-transform:uppercase}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin:0}h1.page-title{font-size:22px;font-weight:800;margin:2px 0 0;letter-spacing:-.01em}h1.hero-title{font-size:32px;font-weight:800;margin:4px 0;letter-spacing:-.02em}.subtitle{color:var(--muted);margin:0;font-size:13px}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:11px}.tiny{font-size:10px}.bold{font-weight:700}.num{font-variant-numeric:tabular-nums}.pos{color:var(--success)}.neg{color:var(--danger)}.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap}.spread{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:flex;flex-direction:column;gap:16px}.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g6{grid-template-columns:repeat(6,minmax(0,1fr))}.mt8{margin-top:8px}.mt16{margin-top:16px}.mt24{margin-top:24px}.mb16{margin-bottom:16px}@media (max-width: 1100px){.g4,.g6{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:1fr}}.module-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px;gap:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-card)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border-soft);min-height:48px}.card-head.plain{border-bottom:none;padding-bottom:4px}.card-title{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0}.card-title.lg{font-size:13px;letter-spacing:0;text-transform:none;color:var(--ink)}.card-body{padding:16px 18px}.card-foot{padding:10px 18px;border-top:1px solid var(--border-soft);color:var(--faint);font-size:11px}.card.dark{background:#1f2d28;color:#f4f6f5;border-color:#1f2d28}.tile{background:var(--surface-muted);border:1px solid var(--border-soft);border-radius:10px;padding:12px 14px}.tile .label{font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:0}.tile .value{font-size:20px;font-weight:800;margin:2px 0 0;letter-spacing:-.01em}.tile .sub{font-size:10.5px;color:var(--faint);margin:0}.tile.clickable{cursor:pointer;text-align:left;width:100%}.tile.clickable:hover{border-color:var(--border-strong);background:#fff}.kpi-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}.kpi-strip>div{padding:18px 10px;text-align:center;border-right:1px solid var(--border-soft)}.kpi-strip>div:last-child{border-right:none}.kpi-strip .v{font-size:26px;font-weight:800;letter-spacing:-.02em}.kpi-strip .l{font-size:10.5px;color:var(--muted);margin-top:2px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow-card)}.stat-card .label{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.stat-card .value{font-size:28px;font-weight:800;margin-top:10px}.stat-card .value small{font-size:12px;font-weight:500;color:var(--muted);margin-left:3px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:8px;padding:8px 14px;font-weight:700;font-size:12px;border:1px solid var(--border-strong);background:#fff;color:var(--ink);white-space:nowrap}.btn:hover{border-color:var(--ink)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.primary:hover{background:var(--ink-hover)}.btn.danger{color:var(--danger);border-color:#efc9c5}.btn.danger:hover{background:var(--danger-bg)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--surface-soft)}.btn.sm{padding:5px 10px;font-size:11px;border-radius:6px}.btn.pill{border-radius:20px}.link-btn{background:none;border:none;padding:0;font-weight:700;color:var(--muted);font-size:11.5px;display:inline-flex;align-items:center;gap:3px}.th-sort{display:inline-flex;align-items:center;gap:4px}.link-btn:hover{color:var(--ink)}.link-btn.danger{color:var(--danger)}.pill{display:inline-flex;align-items:center;gap:4px;border-radius:20px;padding:3px 9px;font-size:10.5px;font-weight:700;white-space:nowrap;background:var(--surface-soft);color:var(--text-2)}.pill.success{background:var(--success-bg);color:var(--success)}.pill.danger{background:var(--danger-bg);color:var(--danger)}.pill.warning{background:var(--warning-bg);color:var(--warning)}.pill.dark{background:var(--ink);color:#fff}.pill.outline{background:transparent;border:1px solid var(--border-strong)}.grade{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 5px;border-radius:5px;font-weight:800;font-size:11px}.grade.lg{min-width:52px;height:52px;font-size:26px;border-radius:12px}.table-wrap{overflow:auto}table.t{width:100%;border-collapse:collapse;font-size:12px}table.t th{position:sticky;top:0;background:#fff;z-index:1;text-align:left;font-weight:700;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}table.t th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.t th.sortable:hover{color:var(--ink)}table.t td{padding:10px 12px;border-bottom:1px solid var(--border-soft);vertical-align:middle}table.t tr:last-child td{border-bottom:none}table.t tbody tr.clickable{cursor:pointer}table.t tbody tr:hover td{background:var(--row-hover)}table.t tbody tr.selected td{background:var(--success-bg)}table.t .r{text-align:right}table.t .c{text-align:center}table.t td.name{font-weight:700}.input,.select,.textarea{width:100%;border:1px solid var(--border-strong);background:#fff;border-radius:8px;padding:8px 10px;outline:none;font-size:12.5px}.input:focus,.select:focus,.textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px #1e2d2814}.textarea{min-height:110px;resize:vertical}.field{display:flex;flex-direction:column;gap:5px}.field>label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.search{position:relative}.search .input{padding-left:32px}.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--faint)}.check{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:12px}.toggle{width:34px;height:20px;border-radius:20px;background:var(--border-strong);border:none;position:relative;transition:background .15s;flex-shrink:0}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:left .15s}.toggle.on{background:var(--success)}.toggle.on:after{left:17px}.segmented{display:inline-flex;background:var(--surface-soft);border-radius:9px;padding:3px;gap:2px}.segmented button{border:none;background:transparent;padding:6px 12px;border-radius:7px;font-weight:700;font-size:11.5px;color:var(--muted)}.segmented button.on{background:#fff;color:var(--ink);box-shadow:var(--shadow-card)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:18px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{border:none;background:none;padding:10px 14px;font-weight:600;font-size:12.5px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:inline-flex;gap:5px;align-items:center}.tabs button:hover{color:var(--ink)}.tabs button.on{color:var(--ink);font-weight:700;border-bottom-color:var(--ink)}.tabs button.amber{color:var(--warning)}.dd{position:relative}.dd-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:1px solid var(--border-strong);background:#fff;border-radius:8px;padding:7px 10px;text-align:left;font-size:12px;min-height:34px}.dd-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-menu{position:absolute;z-index:40;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #1e2d2829;max-height:300px;overflow:auto;padding:6px;min-width:220px}.dd-menu .opt{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;cursor:pointer;font-size:12px}.dd-menu .opt:hover{background:var(--surface-soft)}.dd-menu .opt.on{font-weight:700}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e2d286b;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade .12s ease-out}.modal{background:#fff;border-radius:16px;box-shadow:var(--shadow-modal);width:100%;max-width:560px;max-height:calc(100vh - 48px);display:flex;flex-direction:column}.modal.wide{max-width:860px}.modal.xwide{max-width:1120px}.modal-head{padding:18px 22px 12px;display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.modal-head h2{margin:2px 0 0;font-size:18px;font-weight:800}.modal-body{padding:4px 22px 18px;overflow:auto}.modal-foot{padding:14px 22px;border-top:1px solid var(--border-soft);display:flex;justify-content:flex-end;gap:8px}.x-btn{border:none;background:transparent;width:28px;height:28px;border-radius:6px;color:var(--muted);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.x-btn:hover{background:var(--surface-soft)}.x-btn:hover{color:var(--ink)}@keyframes fade{0%{opacity:0}to{opacity:1}}.toasts{position:fixed;right:20px;bottom:20px;z-index:200;display:flex;flex-direction:column;gap:8px}.toast{background:var(--ink);color:#fff;padding:10px 14px;border-radius:10px;box-shadow:var(--shadow-modal);font-weight:600;font-size:12.5px;display:flex;gap:8px;align-items:center;animation:fade .15s;max-width:380px}.toast.danger{background:var(--danger)}.hbar{height:6px;border-radius:6px;background:var(--surface-soft);overflow:hidden}.hbar>div{height:100%;border-radius:6px;background:var(--chart)}.empty{text-align:center;padding:36px 16px;color:var(--faint)}.divider{height:1px;background:var(--border-soft);margin:14px 0}.chip-filter{display:inline-flex;align-items:center;gap:6px;background:var(--success-bg);color:var(--success);border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.chip-filter button{background:none;border:none;color:inherit;font-weight:800;padding:0}.scroll-y{overflow-y:auto}.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:10.5px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:5px}.inner-app{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-card);overflow:hidden}.inner-app-head{display:flex;align-items:center;gap:24px;padding:0 22px;border-bottom:1px solid var(--border);height:58px}.inner-app-head .brand{font-weight:800;font-size:22px;letter-spacing:.06em;font-style:italic;color:var(--ink)}.scroll-y,.table-wrap,.dd-menu,.modal-body{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.mobile-notice{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:var(--canvas);display:flex;align-items:center;justify-content:center;padding:24px 16px}.mobile-notice-inner{max-width:380px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.mobile-notice-inner h1{font-size:22px;font-weight:800;margin:8px 0 0}.mobile-notice-inner p{color:var(--muted);line-height:1.6;margin:0 0 8px}.mobile-notice-inner .btn{width:100%;padding:11px 14px;text-decoration:none}.ts-section{margin-top:22px}.ts-section>h3{font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;margin:0 0 10px;display:flex;align-items:baseline;gap:10px}.ts-section>h3 .n{color:var(--faint);font-weight:700}.ts-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.ts-kpis .tile .value{font-size:22px}.ts-kpis .tile .value.money{color:var(--success)}@media (max-width: 900px){.ts-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.ts-dl{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);margin:0;font-size:12px;border-top:1px solid var(--border-soft)}.ts-dl dt,.ts-dl dd{margin:0;padding:6px 8px;border-bottom:1px solid var(--border-soft)}.ts-dl dt{color:var(--muted)}.ts-dl dd{font-weight:600}.ts-dl .na{color:var(--faint);font-weight:500}.ts-note{font-size:11px;color:var(--muted);line-height:1.55;margin:8px 0 0}.ts-cii td,.ts-cii th{text-align:center}.ts-cii td:first-child,.ts-cii th:first-child{text-align:left}.ts-tech-desc{font-size:10.5px;color:var(--faint);font-weight:500;line-height:1.4;margin-top:2px}.tag{display:inline-block;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:800;letter-spacing:.04em}.tag.ds{background:var(--success-bg);color:var(--success)}.tag.es{background:var(--surface-soft);color:var(--text-2)}.tag.pilot{background:var(--warning-bg);color:var(--warning)}.tag.preview{background:#f0d893;color:#1b3c35;text-transform:uppercase;font-size:9px;vertical-align:middle;margin-left:6px;cursor:help}.nowork{display:inline-flex;align-items:center;border-radius:20px;padding:2px 8px;font-size:10px;font-weight:700;background:var(--warning-bg);color:var(--warning);white-space:nowrap}
