:root{--primary: #1a56db;--primary-dark: #1344b0;--primary-light: #e8effc;--accent: #0e7490;--success: #059669;--warning: #d97706;--danger: #dc2626;--bg: #f1f5f9;--surface: #ffffff;--border: #e2e8f0;--text: #0f172a;--text-secondary: #64748b;--sidebar-width: 240px;--header-height: 56px;--radius: 8px;--shadow: 0 1px 3px rgba(15, 23, 42, .08)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}table{width:100%;border-collapse:collapse}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:#0f172a;color:#cbd5e1;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-brand{padding:20px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand h1{font-size:15px;font-weight:600;color:#fff;line-height:1.4}.sidebar-brand p{font-size:11px;color:#94a3b8;margin-top:4px}.sidebar-nav{flex:1;overflow-y:auto;padding:12px 8px}.nav-group-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;padding:12px 12px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:6px;font-size:14px;transition:background .15s;margin-bottom:2px}.nav-item:hover{background:#ffffff0f;color:#fff}.nav-item.active{background:var(--primary);color:#fff}.nav-item .badge{margin-left:auto;background:var(--danger);color:#fff;font-size:11px;padding:1px 6px;border-radius:10px;min-width:18px;text-align:center}.main-area{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-height:100vh}.top-header{height:var(--header-height);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:50}.top-header-left{display:flex;align-items:center;gap:12px}.breadcrumb{font-size:14px;color:var(--text-secondary)}.breadcrumb strong{color:var(--text)}.top-header-right{display:flex;align-items:center;gap:16px}.header-icon-btn{position:relative;background:none;border:none;color:var(--text-secondary);padding:8px;border-radius:6px}.header-icon-btn:hover{background:var(--bg);color:var(--text)}.header-icon-btn .dot{position:absolute;top:6px;right:6px;width:8px;height:8px;background:var(--danger);border-radius:50%;border:2px solid var(--surface)}.user-info{display:flex;align-items:center;gap:8px;font-size:13px}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.demo-badge{font-size:11px;padding:3px 8px;border-radius:999px;background:#fef3c7;color:#92400e;font-weight:500}.demo-reset-btn{padding:4px 10px;font-size:12px;display:inline-flex;align-items:center;gap:4px}.role-switcher{position:relative}.role-switcher-trigger{background:none;border:1px solid transparent;border-radius:var(--radius);padding:4px 8px 4px 4px;cursor:pointer;transition:background .15s,border-color .15s}.role-switcher-trigger:hover{background:var(--bg);border-color:var(--border)}.role-chevron{color:var(--text-secondary);transition:transform .15s}.role-chevron.open{transform:rotate(180deg)}.role-switcher-menu{position:absolute;top:calc(100% + 8px);right:0;width:280px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #0f172a1f;z-index:200;overflow:hidden}.role-switcher-menu-header{padding:10px 14px;font-size:12px;color:var(--text-secondary);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:2px}.role-scope{font-size:11px;color:var(--primary)}.role-switcher-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:none;background:none;text-align:left;cursor:pointer;font-size:13px}.role-switcher-item:hover{background:var(--bg)}.role-switcher-item.active{background:var(--primary-light)}.role-switcher-item-text{display:flex;flex-direction:column;gap:2px;min-width:0}.role-switcher-item-text strong{font-size:13px;color:var(--text)}.role-switcher-item-text span{font-size:11px;color:var(--text-secondary)}.page-content{flex:1;padding:24px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.page-header h2{font-size:22px;font-weight:600}.page-header p{font-size:14px;color:var(--text-secondary);margin-top:4px}.page-actions{display:flex;gap:8px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;border:1px solid transparent;transition:all .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-outline{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-outline:hover{background:var(--bg)}.btn-danger{background:#fff;border-color:#fecaca;color:var(--danger)}.btn-danger:hover{background:#fef2f2;border-color:#f87171;color:#b91c1c}.btn-sm{padding:4px 10px;font-size:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card-header h3{font-size:15px;font-weight:600}.card-body{padding:20px}.card-footer{padding:12px 20px;border-top:1px solid var(--border);background:var(--bg-secondary, #f8fafc)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stats-grid-5{grid-template-columns:repeat(5,1fr)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.stat-card .label{font-size:13px;color:var(--text-secondary);margin-bottom:8px}.stat-card .value{font-size:28px;font-weight:700;line-height:1.2}.stat-card .sub{font-size:12px;margin-top:8px;display:flex;align-items:center;gap:4px}.stat-card .sub.up{color:var(--success)}.stat-card .sub.down{color:var(--danger)}.stat-card .sub.warn{color:var(--warning)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.grid-3-1{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:16px}.data-table{font-size:13px}.data-table th{text-align:left;padding:10px 16px;background:#f8fafc;border-bottom:1px solid var(--border);font-weight:600;color:var(--text-secondary);white-space:nowrap}.data-table td{padding:12px 16px;border-bottom:1px solid var(--border)}.data-table tr:hover td{background:#f8fafc}.data-table tr.row-expanded>td{background:#f1f5f9;border-bottom-color:transparent}.plan-items-expand-btn{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);background:#fff;border-radius:4px;padding:2px 8px;font-size:12px;color:var(--primary);cursor:pointer;line-height:1.4}.plan-items-expand-btn:hover,.plan-items-expand-btn.open{background:#eff6ff;border-color:#bfdbfe}.plan-items-expand-row:hover td{background:#f8fafc}.plan-items-subtable-wrap{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff}.plan-items-subtable-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;font-weight:600;color:var(--text-secondary);padding:8px 12px;border-bottom:1px solid var(--border);background:#f8fafc}.plan-items-subtable-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-weight:400}.plan-items-shared-cell{vertical-align:middle;background:#f8fafc}.plan-items-subtable{width:100%;margin:0}.plan-items-subtable th,.plan-items-subtable td{padding:8px 12px!important;font-size:12px}.plan-items-subtable tr:last-child td{border-bottom:none}.tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.tag-blue{background:#dbeafe;color:#1d4ed8}.tag-green{background:#d1fae5;color:#047857}.tag-yellow{background:#fef3c7;color:#b45309}.tag-red{background:#fee2e2;color:#b91c1c}.tag-gray{background:#f1f5f9;color:#475569}.tag-cyan{background:#cffafe;color:#0e7490}.progress-bar{height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:3px;background:var(--primary)}.progress-bar-fill.success{background:var(--success)}.progress-bar-fill.warning{background:var(--warning)}.progress-bar-fill.danger{background:var(--danger)}.tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:20px}.tab{padding:10px 20px;font-size:14px;color:var(--text-secondary);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.tab-badge{display:inline-block;margin-left:6px;min-width:18px;padding:1px 6px;border-radius:10px;background:var(--danger);color:#fff;font-size:11px;font-weight:600;line-height:1.4;text-align:center;vertical-align:middle}.tab:hover:not(.active){color:var(--text)}.filter-bar{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.filter-bar select,.filter-bar input{padding:7px 12px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--surface)}.search-input{padding:7px 12px 7px 36px;border:1px solid var(--border);border-radius:6px;font-size:13px;width:240px;background:var(--surface)}.reminder-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--border)}.reminder-item:last-child{border-bottom:none}.reminder-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.reminder-icon.urgent{background:#fee2e2;color:var(--danger)}.reminder-icon.normal{background:#fef3c7;color:var(--warning)}.reminder-icon.info{background:var(--primary-light);color:var(--primary)}.reminder-content{flex:1}.reminder-content h4{font-size:14px;font-weight:500;margin-bottom:2px}.reminder-content p{font-size:12px;color:var(--text-secondary)}.reminder-meta{font-size:11px;color:var(--text-secondary);margin-top:4px}.timeline{position:relative;padding-left:24px}.timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--border)}.timeline-item{position:relative;padding-bottom:20px}.timeline-item:before{content:"";position:absolute;left:-20px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--primary);border:2px solid var(--surface)}.timeline-item.done:before{background:var(--success)}.timeline-item.pending:before{background:var(--warning)}.timeline-item.overdue:before{background:var(--danger)}.timeline-item h4{font-size:14px;font-weight:500}.timeline-item p{font-size:12px;color:var(--text-secondary);margin-top:2px}.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kanban-col{background:#f8fafc;border-radius:var(--radius);padding:12px;min-height:400px}.kanban-col-header{font-size:13px;font-weight:600;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}.kanban-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:12px;margin-bottom:8px;font-size:13px}.kanban-card h4{font-size:13px;font-weight:500;margin-bottom:6px}.kanban-card .meta{font-size:11px;color:var(--text-secondary)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:500;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px}.form-group textarea{min-height:80px;resize:vertical}.form-group.full-width{grid-column:1 / -1}.radio-group{display:flex;flex-wrap:wrap;gap:10px 20px;padding:4px 0}.radio-option{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:400;cursor:pointer;margin-bottom:0}.radio-option input{width:auto;margin:0;accent-color:var(--primary)}.data-table tr.row-selected{background:color-mix(in srgb,var(--primary) 8%,transparent)}.chart-container{width:100%;height:260px}.link-text{color:var(--primary);cursor:pointer;font-size:13px}.link-text:hover{text-decoration:underline}@media(max-width:1200px){.stats-grid,.stats-grid-5{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-3-1,.kanban,.procurement-analytics-charts{grid-template-columns:1fr}}.procurement-analytics-charts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.market-region-map-card{grid-column:1 / -1}.plc-map-sep{width:1px;align-self:stretch;margin:0 2px;background:#e2e8f0}.plc-map-kpis{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}.plc-map-kpis>div:first-child{grid-column:1 / -1}.market-region-summary-row.active{background:#eff6ff;border-color:#93c5fd}.market-region-map-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.market-region-legend{display:flex;flex-wrap:wrap;gap:8px}.market-region-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:#fff;font-size:12px;color:var(--text-primary);cursor:pointer}.market-region-chip.active{border-color:var(--chip-color, #1a56db);background:color-mix(in srgb,var(--chip-color, #1a56db) 12%,#fff);color:#0f172a;font-weight:600}.market-region-dot{width:8px;height:8px;border-radius:50%;background:var(--chip-color, #64748b);flex-shrink:0}.market-region-hint{font-size:12px;color:var(--text-secondary)}.market-region-map-body{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:16px;align-items:stretch}.market-region-map-canvas-wrap{min-height:360px;border:1px solid var(--border);border-radius:10px;background:linear-gradient(180deg,#f8fafc,#eef2ff);overflow:hidden}.market-region-side-card{height:100%;border:1px solid var(--border);border-radius:10px;padding:14px;background:#fff}.market-region-side-card h4{margin:0 0 4px;font-size:15px}.market-region-side-meta{margin:0 0 12px;font-size:12px;color:var(--text-secondary)}.market-region-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.market-region-kpis>div{display:flex;flex-direction:column;gap:2px;padding:8px;border-radius:8px;background:#f8fafc}.market-region-kpis span{font-size:11px;color:var(--text-secondary)}.market-region-kpis strong{font-size:14px}.market-region-province-title{font-size:12px;color:var(--text-secondary);margin-bottom:6px}.market-region-province-list{max-height:280px;overflow:auto}.market-region-province-row,.market-region-summary-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;width:100%;padding:6px 4px;border:none;border-bottom:1px solid #f1f5f9;background:transparent;font-size:12px;text-align:left;color:var(--text-primary);cursor:pointer}.market-region-summary-row{grid-template-columns:12px 1fr auto auto;align-items:center}.market-region-province-row.active{background:#eff6ff;border-radius:6px}.market-region-summary-row .name{font-weight:600}.market-region-intl{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;border-top:1px dashed var(--border);font-size:12px;color:var(--text-secondary)}@media(max-width:960px){.market-region-map-body{grid-template-columns:1fr}}.nav-highlight{margin-left:auto;background:linear-gradient(135deg,#7c3aed,#1a56db);color:#fff;font-size:10px;padding:1px 6px;border-radius:10px;font-weight:600;letter-spacing:.03em}.ai-page-title{display:flex;align-items:center;gap:10px}.ai-sparkle{color:#7c3aed}.ai-badge-highlight{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:linear-gradient(135deg,#ede9fe,#e8effc);color:#5b21b6;border-radius:20px;font-size:13px;font-weight:600}.ai-feature-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:24px}.ai-feature-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:12px;font-weight:500;color:var(--text-secondary);transition:all .2s;text-align:center}.ai-feature-card:hover{border-color:#a78bfa;color:var(--text)}.ai-feature-card.active{background:linear-gradient(135deg,#7c3aed,#1a56db);color:#fff;border-color:transparent;box-shadow:0 4px 12px #7c3aed4d}.ai-chat-card{display:flex;flex-direction:column;min-height:520px}.ai-chat-messages{flex:1;overflow-y:auto;padding:16px 20px;max-height:420px}.ai-message{display:flex;gap:10px;margin-bottom:16px}.ai-message.user{flex-direction:row-reverse}.ai-message-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ai-message.assistant .ai-message-avatar{background:linear-gradient(135deg,#ede9fe,#e8effc);color:#7c3aed}.ai-message.user .ai-message-avatar{background:var(--primary);color:#fff}.ai-message-body{max-width:80%}.ai-message.user .ai-message-body{text-align:right}.ai-message-content{padding:10px 14px;border-radius:12px;font-size:14px;line-height:1.6}.ai-message.assistant .ai-message-content{background:#f8fafc;border:1px solid var(--border)}.ai-message.user .ai-message-content{background:var(--primary);color:#fff}.ai-message-time{font-size:11px;color:var(--text-secondary);margin-top:4px;display:block}.ai-highlights{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.ai-highlight-item{padding:6px 12px;background:var(--surface);border:1px solid var(--border);border-radius:6px;font-size:12px}.ai-highlight-item .label{color:var(--text-secondary);margin-right:6px}.ai-highlight-item .value{font-weight:600}.ai-highlight-item.warn .value{color:var(--warning)}.ai-highlight-item.up .value{color:var(--success)}.ai-highlight-item.down .value{color:var(--danger)}.ai-thinking{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#f8fafc;border-radius:12px;font-size:13px;color:var(--text-secondary)}.ai-chat-input{display:flex;gap:8px;padding:16px 20px;border-top:1px solid var(--border)}.ai-chat-input input{flex:1;padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:14px}.ai-suggest-btn{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;background:none;border:none;border-radius:6px;font-size:13px;text-align:left;color:var(--text);transition:background .15s}.ai-suggest-btn:hover{background:var(--primary-light);color:var(--primary)}.ai-capability-card h4{font-size:14px;margin-bottom:8px}.ai-capability-card p{font-size:13px;color:var(--text-secondary);line-height:1.6}.ai-risk-item{display:flex;gap:16px;padding:20px;border-bottom:1px solid var(--border)}.ai-risk-item:last-child{border-bottom:none}.ai-risk-score{width:64px;text-align:center;flex-shrink:0}.ai-risk-score .score{display:block;font-size:28px;font-weight:700;line-height:1}.ai-risk-score[data-level="?"] .score{color:var(--danger)}.ai-risk-score[data-level="?"] .score{color:var(--warning)}.ai-risk-score[data-level="?"] .score{color:var(--success)}.ai-risk-score .level{font-size:11px;color:var(--text-secondary);margin-top:4px;display:block}.ai-risk-content{flex:1}.ai-risk-content h4{font-size:15px;margin-bottom:6px}.ai-risk-tags{display:flex;gap:6px;margin-bottom:8px}.ai-risk-content p{font-size:13px;color:var(--text-secondary);line-height:1.5}.ai-risk-suggestion{margin-top:8px;padding:8px 12px;background:#fef3c7;border-radius:6px;font-size:12px;color:#92400e}.ai-risk-action{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}.ai-risk-time{font-size:11px;color:var(--text-secondary)}.ai-minutes-input{width:100%;padding:12px;border:1px solid var(--border);border-radius:6px;font-size:13px;line-height:1.7;resize:vertical;font-family:inherit}.ai-hint{font-size:12px;color:var(--text-secondary);margin-top:8px}.ai-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;color:var(--text-secondary);gap:12px}.ai-extracted-tasks{display:flex;flex-direction:column;gap:8px}.ai-task-item{display:flex;gap:12px;padding:12px;border:1px solid var(--border);border-radius:6px;transition:border-color .15s}.ai-task-item.confirmed{border-color:var(--success);background:#f0fdf4}.ai-task-check{width:24px;height:24px;border:2px solid var(--border);border-radius:4px;background:var(--surface);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--success)}.ai-task-item.confirmed .ai-task-check{border-color:var(--success);background:var(--success);color:#fff}.ai-task-info h4{font-size:13px;font-weight:500;margin-bottom:4px}.ai-task-info .meta{display:flex;gap:12px;font-size:11px;color:var(--text-secondary);flex-wrap:wrap}.ai-search-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border:2px solid #c4b5fd;border-radius:10px;margin-bottom:12px}.ai-search-bar input{flex:1;border:none;font-size:15px;outline:none;background:transparent}.ai-search-bar svg{color:#7c3aed;flex-shrink:0}.ai-search-hint{font-size:11px;color:var(--text-secondary);white-space:nowrap}.ai-search-tags{display:flex;gap:8px;margin-bottom:16px}.ai-search-tags .tag{cursor:pointer}.ai-doc-result{display:flex;gap:16px;padding:16px 20px;border-bottom:1px solid var(--border);align-items:flex-start}.ai-doc-result:last-child{border-bottom:none}.ai-doc-rank{width:28px;height:28px;border-radius:50%;background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.ai-doc-info{flex:1}.ai-doc-info h4{font-size:14px;margin-bottom:4px}.ai-doc-info .meta{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--text-secondary);margin-bottom:6px}.ai-doc-info p{font-size:13px;color:var(--text-secondary);line-height:1.5}.ai-doc-tags{display:flex;gap:6px;margin-top:8px}.ai-report-types{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.ai-report-type-card{padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;transition:all .2s}.ai-report-type-card:hover{border-color:#a78bfa}.ai-report-type-card.active{border-color:#7c3aed;background:linear-gradient(135deg,#faf5ff,#ede9fe)}.ai-report-type-card svg{color:#7c3aed;margin-bottom:8px}.ai-report-type-card h4{font-size:14px;margin-bottom:4px}.ai-report-type-card p{font-size:12px;color:var(--text-secondary)}.ai-report-preview .ai-report-meta{font-size:12px;color:var(--text-secondary);margin-bottom:16px}.ai-report-section{margin-bottom:16px}.ai-report-section h4{font-size:14px;margin-bottom:6px}.ai-report-section p,.ai-report-section li{font-size:13px;color:var(--text-secondary);line-height:1.6}.ai-report-section ul{padding-left:20px}.ai-report-output{font-family:inherit;font-size:13px;line-height:1.7;white-space:pre-wrap;color:var(--text)}.ai-source-list{list-style:none;font-size:13px}.ai-source-list li{padding:6px 0;border-bottom:1px solid var(--border);color:var(--text-secondary)}.ai-source-list li:before{content:"? ";color:var(--success)}.ai-promo-banner{display:flex;align-items:center;gap:20px;padding:20px 24px;background:linear-gradient(135deg,#1e1b4b,#312e81,#1a56db);border-radius:var(--radius);color:#fff;margin-bottom:24px;text-decoration:none;transition:transform .15s,box-shadow .15s}.ai-promo-banner:hover{transform:translateY(-1px);box-shadow:0 8px 24px #312e814d;color:#fff}.ai-promo-icon{width:48px;height:48px;border-radius:12px;background:#ffffff26;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ai-promo-text h3{font-size:16px;font-weight:600;margin-bottom:4px}.ai-promo-text p{font-size:13px;opacity:.85}.ai-promo-tags{display:flex;gap:8px;margin-left:auto;flex-shrink:0}.ai-promo-tags span{padding:4px 10px;background:#ffffff1f;border-radius:12px;font-size:11px}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@media(max-width:1200px){.ai-feature-grid{grid-template-columns:repeat(3,1fr)}.ai-report-types{grid-template-columns:1fr}.ai-promo-banner{flex-wrap:wrap}.ai-promo-tags{margin-left:0;flex-wrap:wrap}}.project-code{font-size:12px;background:#f1f5f9;padding:2px 6px;border-radius:4px;color:var(--text-secondary)}.proj-form-modal .modal-header{align-items:flex-start;gap:12px}.proj-form-subtitle{margin:4px 0 0;font-size:12px;color:var(--text-secondary);font-weight:400}.proj-form-body{display:flex;flex-direction:column;gap:14px;background:radial-gradient(1200px 240px at 0% 0%,rgba(64,128,255,.08),transparent 55%),radial-gradient(900px 200px at 100% 0%,rgba(0,180,42,.06),transparent 50%),#f8fafc}.proj-form-section{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px}.proj-form-section-title{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--primary)}.proj-form-section-title h4{margin:0;font-size:14px;color:var(--text)}.proj-form-section-hint{margin-left:auto;font-size:12px;color:var(--text-secondary);font-style:normal;font-weight:400}.proj-stage-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px}.proj-stage-switch.proc-type-switch{grid-template-columns:repeat(3,minmax(0,1fr))}.proj-stage-card{text-align:left;border:1px solid var(--border);background:#f8fafc;border-radius:10px;padding:12px 14px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.proj-stage-card strong{display:block;font-size:14px;color:var(--text);margin-bottom:4px}.proj-stage-card span{font-size:12px;color:var(--text-secondary);line-height:1.4}.proj-stage-card:hover{border-color:#93c5fd}.proj-stage-card.is-active{border-color:#4080ff;background:linear-gradient(180deg,#eff6ff,#fff);box-shadow:0 0 0 3px #4080ff1f}.proj-stage-card.is-active.is-exec{border-color:#00b42a;background:linear-gradient(180deg,#f0fdf4,#fff);box-shadow:0 0 0 3px #00b42a1f}.proj-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.proj-form-field{display:flex;flex-direction:column;gap:6px;font-size:13px;min-width:0}.proj-form-field--full{grid-column:1 / -1}.proj-form-field>span{font-size:12px;color:var(--text-secondary);font-weight:500}.proj-form-field>span em{color:var(--danger);font-style:normal}.proj-form-field input,.proj-form-field select,.proj-form-field textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:13px;background:#fff;color:var(--text)}.proj-form-field input:focus,.proj-form-field select:focus,.proj-form-field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4080ff1f}.proj-form-field textarea{resize:vertical;min-height:64px}.proj-form-field .form-group{margin:0}.proj-form-field .form-group>label{font-size:12px;color:var(--text-secondary);font-weight:500;margin-bottom:6px}.proj-form-modal .modal-footer .btn-primary{display:inline-flex;align-items:center;gap:6px}.proj-region-radios{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:4px}.proj-org-picker.org-picker{border:none;border-radius:0;overflow:hidden;background:#fff}.proj-org-picker .org-picker-tree{max-height:220px;overflow:auto}.org-person-field{position:relative;display:flex;flex-direction:column;gap:6px}.org-person-field-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:1px solid var(--border);border-radius:8px;padding:9px 12px;background:#fff;cursor:pointer;font-size:13px;color:var(--text);text-align:left}.org-person-field-trigger .placeholder{color:var(--text-secondary)}.org-person-field-trigger.open{border-color:var(--primary);box-shadow:0 0 0 3px #4080ff1f}.org-person-field-tags{display:flex;flex-wrap:wrap;gap:6px}.org-person-field-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;background:#eff6ff;color:var(--primary);font-size:12px}.org-person-field-tag small{color:var(--text-secondary)}.org-person-field-tag button{border:none;background:transparent;color:inherit;cursor:pointer;display:inline-flex;padding:0}.org-person-field-popover{position:absolute;z-index:40;top:calc(100% + 4px);left:0;right:0;min-width:320px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 36px #0f172a24;overflow:hidden}.org-person-field-popover-foot{display:flex;justify-content:flex-end;padding:10px 12px;border-top:1px solid var(--border);background:#f8fafc}.proj-form-field-label,.proj-form-field>span{font-size:12px;color:var(--text-secondary);font-weight:500}.proj-form-field-label em{color:var(--danger);font-style:normal}.proj-client-select{position:relative;display:flex;flex-direction:column;gap:6px}.proj-client-select--compact{gap:0}.proj-client-select--compact .proj-client-trigger{padding:6px 10px;border-radius:6px}.proj-client-select--compact .proj-client-dropdown{min-width:280px;right:auto}.proj-client-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:1px solid var(--border);border-radius:8px;padding:9px 12px;background:#fff;cursor:pointer;font-size:13px;color:var(--text);text-align:left}.proj-client-trigger .placeholder{color:var(--text-secondary)}.proj-client-trigger.open{border-color:var(--primary);box-shadow:0 0 0 3px #4080ff1f}.proj-client-dropdown{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 28px #0f172a1f;overflow:hidden}.proj-client-search{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.proj-client-search input{flex:1;border:none;outline:none;font-size:13px}.proj-client-list{max-height:220px;overflow:auto}.proj-client-option{display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 12px;border:none;background:transparent;text-align:left;cursor:pointer}.proj-client-option:hover,.proj-client-option.selected{background:#f0f7ff}.proj-client-option strong{font-size:13px;color:var(--text)}.proj-client-option small,.proj-client-empty{font-size:12px;color:var(--text-secondary)}.proj-client-empty{padding:16px;text-align:center}.proj-client-create-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px 12px;border:none;border-top:1px solid var(--border);background:#f8fafc;color:var(--primary);font-size:13px;cursor:pointer}.proj-client-create-btn:hover{background:#eff6ff}.proj-client-selected{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:4px 8px;border-radius:999px;background:#eff6ff;color:var(--primary);font-size:12px}.proj-client-selected button{border:none;background:transparent;color:inherit;cursor:pointer;display:inline-flex;padding:0}@media(max-width:720px){.proj-stage-switch,.proj-stage-switch.proc-type-switch,.proj-form-grid{grid-template-columns:1fr}.proj-form-section-hint{display:none}}.project-name-link{color:var(--primary);font-size:inherit}.project-name-link:hover{text-decoration:underline}.inline-link{color:var(--primary);margin:0 2px}.inline-link:hover{text-decoration:underline}.binding-dot{display:inline-flex;margin-left:6px;color:var(--accent);vertical-align:middle}.project-detail-name{font-size:16px;margin-bottom:12px}.project-detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;font-size:13px}.project-detail-meta span:first-child{color:var(--text-secondary);display:block;font-size:11px;margin-bottom:2px}.project-detail-desc{margin-top:12px;font-size:13px;color:var(--text-secondary);line-height:1.6;padding:10px;background:#f8fafc;border-radius:6px}.project-bindings{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.project-bindings h5{font-size:13px;margin-bottom:10px;color:var(--text-secondary)}.binding-links{display:grid;grid-template-columns:1fr 1fr;gap:8px}.binding-link{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--primary-light);border-radius:6px;font-size:13px;color:var(--primary);transition:background .15s;border:none;width:100%;cursor:pointer;font-family:inherit;text-align:left;text-decoration:none}.binding-link:hover{background:#dbeafe;color:var(--primary-dark)}.binding-link span{font-weight:600}.btn-icon{background:none;border:none;padding:6px;border-radius:4px;color:var(--text-secondary);margin-right:4px}.btn-icon:hover{background:var(--bg);color:var(--primary)}.btn-icon.danger:hover{background:#fee2e2;color:var(--danger)}.alert{padding:12px 16px;border-radius:6px;font-size:13px;margin-bottom:16px}.alert-warn{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.alert-success{background:#d1fae5;color:#047857;border:1px solid #6ee7b7}.stage-reminder-panel{margin-top:10px;padding:12px;background:#f8fafc;border:1px solid var(--border);border-radius:8px}.stage-reminder-header{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--primary);margin-bottom:10px}.stage-reminder-members{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.member-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:#fff;cursor:pointer;font-size:13px;transition:border-color .15s,background .15s}.member-chip input{display:none}.member-chip.selected{border-color:var(--primary);background:var(--primary-light)}.member-chip small{font-size:11px;color:var(--text-secondary)}.stage-reminder-actions{display:flex;gap:8px;flex-wrap:wrap}.project-preview-card{margin-top:12px;padding:16px;background:#f8fafc;border:1px solid var(--border);border-radius:8px}.project-preview-card h4{margin:0 0 12px;font-size:15px}.project-preview-notice{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;background:var(--primary-light);border-radius:6px;font-size:13px;color:var(--primary)}.org-settings-panels{align-items:stretch}.org-panel{display:flex;flex-direction:column;height:520px;max-height:520px;overflow:hidden}.org-panel-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.org-tree{display:flex;flex-direction:column;gap:2px;padding:8px 0!important}.org-tree-root{display:flex;align-items:center;gap:8px;padding:8px 12px;font-weight:600;font-size:14px;margin-bottom:4px}.org-tree-group,.org-tree-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px 8px 20px;border:none;background:transparent;text-align:left;font-size:13px;color:var(--text-primary);border-radius:6px;cursor:pointer}.org-tree-item{padding-left:44px}.org-tree-group:hover,.org-tree-item:hover,.org-tree-dept:hover{background:#f1f5f9}.org-tree-dept.selected{background:#e8f0fe;color:var(--primary)}.org-tree-dept{padding-left:20px}.org-tree-item.selected{background:#e8f0fe;color:var(--primary)}.org-tree-spacer{width:14px;flex-shrink:0}.org-tree-icon{color:#3b82f6;flex-shrink:0}.org-tree-label{flex:1;line-height:1.4}.org-tree-person{padding-left:44px;gap:10px}.org-leader-avatar{width:28px;height:28px;border-radius:6px;background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1d4ed8;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.org-leader-avatar.large{width:56px;height:56px;font-size:22px;border-radius:10px;margin-bottom:12px}.org-leader-list{display:flex;flex-direction:column;gap:4px}.org-leader-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:transparent;border-radius:8px;cursor:pointer;text-align:left}.org-leader-row:hover{background:#f1f5f9}.org-leader-row.selected{background:#e8f0fe}.org-leader-name{flex:1;font-size:14px;font-weight:500}.initiation-hint{font-size:12px;color:var(--text-secondary);align-self:center}.initiation-reminder-notice{padding:8px 10px;margin-bottom:10px;background:#fef3c7;border-radius:6px;font-size:12px;color:#92400e}.initiation-roles{margin-top:14px;padding-top:14px;border-top:1px dashed var(--border)}.initiation-roles h5{margin:0 0 10px;font-size:13px;font-weight:600}.initiation-role-summary{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-secondary);margin-top:8px}.org-picker{border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:12px}.org-picker-head{padding:10px 12px;background:#f8fafc;border-bottom:1px solid var(--border)}.org-picker-title{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:6px}.org-picker-title span{font-size:12px;color:var(--text-secondary);font-weight:400}.org-picker-hint{margin:0 0 8px;font-size:11px;color:var(--text-secondary)}.org-picker-search{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#fff;border:1px solid var(--border);border-radius:6px}.org-picker-search input{flex:1;border:none;outline:none;font-size:13px;background:transparent}.org-picker-search-clear{border:none;background:none;font-size:12px;color:var(--primary);cursor:pointer;padding:0}.org-picker-selected{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-bottom:1px solid var(--border);background:#fff}.org-picker-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--primary-light);color:var(--primary);border-radius:4px;font-size:12px}.org-picker-tag small{color:var(--text-secondary);font-size:11px}.org-picker-tag button{border:none;background:none;cursor:pointer;color:inherit;padding:0;font-size:14px;line-height:1}.org-picker-tree{max-height:220px;overflow-y:auto;padding:6px 0;background:#fff}.org-picker-root{padding:6px 12px;font-size:13px;font-weight:600;color:var(--text-primary)}.org-picker-group-head{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px 6px 20px;border:none;background:transparent;font-size:12px;font-weight:600;cursor:pointer;text-align:left}.org-picker-group-head small{color:var(--text-secondary);font-weight:400}.org-picker-person{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px 6px 36px;border:none;background:transparent;font-size:13px;cursor:pointer;text-align:left}.org-picker-person-name{flex:1}.org-picker-person small{color:var(--text-secondary);font-size:11px}.org-picker-check{width:14px;height:14px;border:1.5px solid var(--border);border-radius:3px;flex-shrink:0}.org-picker-check.radio{border-radius:50%}.org-picker-check.on{background:var(--primary);border-color:var(--primary);box-shadow:inset 0 0 0 2px #fff}.org-picker-person.selected{background:#e8f0fe}.org-picker-person.disabled{opacity:.45;cursor:not-allowed}.org-picker-person:hover:not(.disabled){background:#f1f5f9}.org-picker-empty,.org-picker-empty-group{padding:8px 12px 8px 36px;font-size:12px;color:var(--text-secondary)}.initiation-roles .org-picker:last-of-type{margin-bottom:0}.searchable-region{position:relative}.searchable-region-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:#fff;font-size:14px;cursor:pointer;text-align:left}.searchable-region-trigger.open{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}.searchable-region-trigger .placeholder{color:var(--text-secondary)}.searchable-region-dropdown{position:absolute;z-index:20;left:0;right:0;margin-top:4px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0f172a1f;overflow:hidden}.searchable-region-search{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border)}.searchable-region-search input{flex:1;border:none;outline:none;font-size:13px}.searchable-region-list{max-height:220px;overflow-y:auto}.searchable-region-option{display:block;width:100%;padding:8px 12px;border:none;background:transparent;text-align:left;font-size:13px;cursor:pointer}.searchable-region-option:hover{background:#f1f5f9}.searchable-region-option.selected{background:#e8f0fe;color:var(--primary);font-weight:500}.searchable-region-empty{padding:16px 12px;font-size:13px;color:var(--text-secondary);text-align:center}.org-leader-detail{display:flex;flex-direction:column;align-items:flex-start}.leader-division{width:100%;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.leader-division-version{font-size:12px;color:var(--text-secondary);margin-bottom:12px}.leader-division-block{margin-bottom:14px}.leader-division-block h5{margin:0 0 6px;font-size:13px;font-weight:600;color:var(--primary)}.leader-division-block p{margin:0;font-size:13px;line-height:1.65;color:var(--text-primary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:200;padding:24px}.modal{background:var(--surface);border-radius:var(--radius);width:100%;max-width:640px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0f172a33}.modal.modal-lg{max-width:860px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3{font-size:16px}.modal-body{padding:20px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--border)}.cockpit{display:flex;flex-direction:column;gap:16px}.cockpit-toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 16px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);border-left:3px solid var(--primary)}.cockpit-brand h2{font-size:16px;font-weight:650;color:var(--text);line-height:1.35}.cockpit-brand p{margin-top:2px;font-size:12px;color:var(--text-secondary)}.cockpit-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.cockpit-filters label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.cockpit-filters select{height:32px;padding:0 8px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);font-size:13px}.cockpit-freeze{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;background:#ecfdf5;color:var(--success);font-size:12px}.cockpit-region-hint{display:inline-flex;align-items:center;max-width:220px;padding:4px 8px;border-radius:6px;background:var(--primary-light);color:var(--primary);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:help}.cockpit-freeze.frozen{background:#eff6ff;color:var(--primary)}.cockpit-actions{display:flex;align-items:center;gap:8px}.cockpit-export{position:relative}.cockpit-export-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:20;min-width:180px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);overflow:hidden}.cockpit-export-menu button{display:block;width:100%;padding:10px 12px;border:0;background:transparent;text-align:left;font-size:13px;color:var(--text)}.cockpit-export-menu button:hover{background:var(--primary-light)}.cockpit-kpis{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px}.cockpit-kpi{position:relative;display:block;padding:12px 12px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);border-top:3px solid var(--primary);transition:border-color .15s,box-shadow .15s,transform .15s}.cockpit-kpi:hover{border-color:var(--primary);box-shadow:0 4px 14px #1a56db1f;transform:translateY(-1px)}.cockpit-kpi .label{font-size:12px;color:var(--text-secondary);line-height:1.3}.cockpit-kpi .value{margin-top:6px;font-size:20px;font-weight:700;color:var(--text);line-height:1.2}.cockpit-kpi .sub{margin-top:6px;font-size:11px;color:var(--text-secondary);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cockpit-kpi .tip{display:none;position:absolute;left:8px;right:8px;bottom:calc(100% + 6px);z-index:5;padding:8px 10px;background:#0f172a;color:#e2e8f0;font-size:11px;border-radius:6px;box-shadow:var(--shadow)}.cockpit-kpi:hover .tip{display:block}.cockpit-kpi.status-warn{border-top-color:var(--warning)}.cockpit-kpi.status-warn .value{color:var(--warning)}.cockpit-kpi.status-danger{border-top-color:var(--danger);background:#fff7f7}.cockpit-kpi.status-danger .value{color:var(--danger)}.cockpit-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start}.cockpit-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cockpit-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);border-left:3px solid var(--primary);overflow:hidden}.cockpit-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#f8fbff,#fff)}.cockpit-panel-title{display:flex;gap:8px;align-items:flex-start;color:var(--primary)}.cockpit-panel-title h3{font-size:14px;font-weight:650;color:var(--text)}.cockpit-panel-title p{margin-top:2px;font-size:11px;color:var(--text-secondary)}.cockpit-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;padding:12px 14px 14px}.cockpit-panel-grid .span-2{grid-column:1 / -1}.cockpit-chart-label{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.chart-container.chart-sm{height:180px}.cockpit-gauge{position:relative}.cockpit-gauge-center{position:absolute;left:50%;top:58%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.cockpit-gauge-center strong{display:block;font-size:22px;line-height:1.1}.cockpit-gauge-center span{display:block;margin-top:4px;font-size:11px;color:var(--text-secondary);max-width:140px}.cockpit-gauge-legend{display:flex;justify-content:center;gap:12px;margin-top:-8px;font-size:11px;color:var(--text-secondary)}.cockpit-heat{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;min-height:140px}.cockpit-heat-cell{display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:56px;padding:8px;border-radius:6px;color:#fff;text-shadow:0 1px 1px rgba(15,23,42,.25)}.cockpit-heat-cell strong{font-size:12px}.cockpit-heat-cell span{font-size:10px;opacity:.95}.cockpit-warn-line{margin-top:8px;font-size:11px;color:var(--warning)}.cockpit-stat-row{margin-top:6px;font-size:12px;color:var(--text);text-align:center}.cockpit-stat-row.muted{color:var(--text-secondary);text-align:left}.cockpit-mini-list{max-height:180px;overflow:auto;border:1px solid var(--border);border-radius:6px}.cockpit-mini-list .data-table.compact th,.cockpit-mini-list .data-table.compact td{padding:6px 8px;font-size:11px}.cockpit-list-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border);transition:background .12s}.cockpit-list-row:last-child{border-bottom:0}.cockpit-list-row:hover{background:var(--primary-light)}.cockpit-list-row strong{display:block;font-size:12px;color:var(--text);line-height:1.35}.cockpit-list-row span{display:block;margin-top:2px;font-size:11px;color:var(--text-secondary)}.cockpit-list-row .right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.cockpit-load-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.cockpit-load-cell{padding:8px;border-radius:6px;border:1px solid var(--border);background:#f8fafc}.cockpit-load-cell strong{display:block;font-size:12px}.cockpit-load-cell span,.cockpit-load-cell em{display:block;font-size:11px;font-style:normal;color:var(--text-secondary);margin-top:2px}.cockpit-load-cell.load-????{background:#fef2f2;border-color:#fecaca}.cockpit-load-cell.load-???? em{color:var(--danger);font-weight:600}.cockpit-load-cell.load-???? em{color:var(--success);font-weight:600}.cockpit-load-cell.load-???{background:#f8fafc}.cockpit-load-cell.load-??? em{color:var(--text-secondary);font-weight:600}.cockpit-metric-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cockpit-metric-tiles>div{padding:12px 10px;border:1px solid var(--border);border-radius:6px;background:#f8fafc;text-align:center}.cockpit-metric-tiles strong{display:block;font-size:20px;color:var(--primary);line-height:1.1}.cockpit-metric-tiles span{display:block;margin-top:4px;font-size:11px;color:var(--text-secondary)}.cockpit-metric-tiles em{display:block;margin-top:4px;font-size:10px;font-style:normal;color:var(--text-secondary)}.cockpit-risk-aside{position:sticky;top:12px;max-height:calc(100vh - 100px);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);border-top:3px solid var(--danger)}.cockpit-risk-header{display:flex;gap:8px;align-items:flex-start;padding:12px 14px;border-bottom:1px solid var(--border);color:var(--danger)}.cockpit-risk-header h3{font-size:14px;color:var(--text)}.cockpit-risk-header p{margin-top:2px;font-size:11px;color:var(--text-secondary)}.cockpit-risk-group-title{display:flex;width:100%;align-items:center;justify-content:space-between;padding:10px 14px;border:0;border-bottom:1px solid var(--border);background:#f8fafc;font-size:12px;font-weight:650;color:var(--text)}.cockpit-risk-group.level-red .cockpit-risk-group-title{background:#fef2f2;color:var(--danger)}.cockpit-risk-group.level-orange .cockpit-risk-group-title{background:#fff7ed;color:#c2410c}.cockpit-risk-group.level-yellow .cockpit-risk-group-title{background:#fffbeb;color:#b45309;cursor:pointer}.cockpit-risk-group-title em{font-style:normal;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#0f172a14;display:inline-flex;align-items:center;justify-content:center;font-size:11px}.cockpit-risk-list{padding:8px;display:flex;flex-direction:column;gap:8px}.cockpit-risk-item{padding:10px;border:1px solid var(--border);border-radius:6px;background:#fff}.cockpit-risk-item:hover{border-color:#cbd5e1;background:#f8fafc}.cockpit-risk-item-top{display:flex;align-items:center;gap:6px;margin-bottom:4px}.risk-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.risk-dot.red{background:var(--danger)}.risk-dot.orange{background:#ea580c}.risk-dot.yellow{background:#d97706}.risk-type{font-size:11px;font-weight:600;color:var(--text-secondary)}.risk-time{margin-left:auto;font-size:10px;color:var(--text-secondary)}.cockpit-risk-item h4{font-size:12px;font-weight:600;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cockpit-risk-item p{margin-top:4px;font-size:11px;color:var(--text-secondary)}.cockpit-risk-actions{display:flex;gap:6px;margin-top:8px}.cockpit-risk-actions .btn{flex:1;justify-content:center;gap:4px;padding:4px 6px;font-size:11px}.cockpit-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:16px}.cockpit-modal{width:min(480px,100%);background:#fff;border-radius:10px;padding:18px 20px;box-shadow:0 20px 60px #0f172a40}.cockpit-modal h3{font-size:16px;margin-bottom:8px}.cockpit-modal .muted{color:var(--text-secondary);font-size:13px;margin-bottom:4px}.cockpit-modal .muted.small{font-size:11px;margin-bottom:10px}.cockpit-modal textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;resize:vertical;font:inherit;font-size:13px}.cockpit-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.cockpit-toast{position:fixed;right:24px;bottom:24px;z-index:1100;padding:10px 14px;background:#0f172a;color:#fff;border-radius:8px;font-size:13px;box-shadow:var(--shadow)}.empty-hint{padding:16px;text-align:center;font-size:12px;color:var(--text-secondary)}@keyframes cockpit-spin{to{transform:rotate(360deg)}}.spin{animation:cockpit-spin .8s linear infinite}body.cockpit-bigscreen .sidebar,body.cockpit-bigscreen .top-header{display:none!important}body.cockpit-bigscreen .main-area{margin-left:0!important}body.cockpit-bigscreen .page-content{padding:12px 14px}body.cockpit-bigscreen .cockpit{gap:12px}body.cockpit-bigscreen .cockpit-kpi .value{font-size:24px}body.cockpit-bigscreen .cockpit-panel-title h3,body.cockpit-bigscreen .cockpit-risk-header h3{font-size:15px}body.cockpit-bigscreen .cockpit-risk-item h4{font-size:13px;font-weight:700}body.cockpit-bigscreen .cockpit-actions .cockpit-export,body.cockpit-bigscreen .cockpit-risk-actions{display:none}body.cockpit-bigscreen .cockpit-body{grid-template-columns:minmax(0,1fr) 280px}body.cockpit-bigscreen .chart-container.chart-sm{height:200px}@media(max-width:1600px){.cockpit-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1200px){.cockpit-body,.cockpit-panels{grid-template-columns:1fr}.cockpit-risk-aside{position:static;max-height:none}.cockpit-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.cockpit-panel-grid,.cockpit-kpis{grid-template-columns:1fr}}.lifecycle-tabs{display:flex;flex-wrap:wrap;gap:8px}.lifecycle-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text-secondary);font-size:13px;cursor:pointer}.lifecycle-tab:hover{border-color:#94bfff;color:var(--primary)}.lifecycle-tab.active{background:#eff6ff;border-color:var(--primary);color:var(--primary);font-weight:600}.lifecycle-todo-list{display:flex;flex-direction:column;gap:10px}.lifecycle-todo-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:#fff;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}.lifecycle-todo-item:hover{border-color:#4080ff;background:#f7faff}.lifecycle-todo-item strong{display:block;font-size:14px}.lifecycle-todo-item p{margin:2px 0 0;font-size:12px;color:var(--text-secondary)}.lifecycle-todo-item>svg{color:#4080ff;flex-shrink:0}.lifecycle-alert-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.lifecycle-alert-item{padding:12px;border-radius:8px;display:flex;flex-direction:column;gap:6px;font-size:13px}.lifecycle-alert-item strong{font-size:12px;font-weight:600}.lifecycle-alert-item span{font-size:20px;font-weight:700}.lifecycle-alert-item.critical{background:#ffece8;color:#f53f3f}.lifecycle-alert-item.warning{background:#fff7e8;color:#ff9500}.lifecycle-alert-item.remind{background:#fff4e8;color:#ff7d00}.lifecycle-alert-banner{padding:10px 14px;border-radius:8px;background:#fff7e8;border:1px solid #ffcf8b;color:#ad6800;font-size:13px}.lifecycle-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;font-size:13px;line-height:1.6}.lifecycle-info-grid>div{display:flex;flex-direction:column;gap:2px}.lifecycle-info-grid span{color:var(--text-secondary);font-size:12px}.lifecycle-file-tree{display:flex;flex-direction:column;gap:6px}.lifecycle-file-tree button{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer;font-size:13px;text-align:left}.lifecycle-file-tree button:hover,.lifecycle-file-tree button.active{background:#f0f7ff;border-color:#bfdbfe;color:#1d4ed8}.lifecycle-file-tree button span{color:var(--text-secondary);font-size:12px}@media(max-width:900px){.lifecycle-alert-list,.lifecycle-info-grid{grid-template-columns:1fr}}.lifecycle-upload-block{border:1px dashed var(--border);border-radius:8px;padding:12px;background:#fafbfc}.lifecycle-upload-header{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:10px;flex-wrap:wrap}.lifecycle-upload-header strong{font-size:13px}.lifecycle-upload-header span,.lifecycle-upload-hint{font-size:12px;color:var(--text-secondary)}.lifecycle-upload-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:#fff;cursor:pointer;font-size:13px;width:fit-content}.lifecycle-upload-btn input{display:none}.lifecycle-upload-btn:hover{border-color:#4080ff;color:#1d4ed8}.lifecycle-attach-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.lifecycle-attach-list li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;background:#fff;border:1px solid var(--border);border-radius:6px}.lifecycle-attach-list li strong{display:block;font-size:13px;word-break:break-all}.lifecycle-attach-list li span{font-size:12px;color:var(--text-secondary)}.lifecycle-attach-actions{display:flex;gap:6px;flex-shrink:0}.lifecycle-attach-chips{display:flex;flex-direction:column;gap:4px;max-width:220px}.lifecycle-attach-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 8px;border:1px solid #bfdbfe;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px;cursor:pointer}.lifecycle-attach-chip:disabled{opacity:.55;cursor:not-allowed;border-color:var(--border);background:#f8fafc;color:var(--text-secondary)}.lifecycle-attach-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hse-todo-list,.market-todo-list{display:flex;flex-direction:column;gap:8px}.hse-todo-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer;text-align:left;font-size:13px;color:var(--text-primary);transition:border-color .15s,background .15s}.hse-todo-item:hover{border-color:#93c5fd;background:#f8fbff}.hse-todo-item span:first-child{flex:1}.hse-todo-item strong{min-width:28px;text-align:right;color:#1a56db}.hse-todo-item.danger{border-color:#fecaca;background:#fff5f5}.hse-todo-item.danger strong{color:#f53f3f}.form-section-title{margin:16px 0 10px;font-size:13px;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border);padding-bottom:6px}.form-section-title:first-child{margin-top:0}.link-btn{border:none;background:none;color:#1a56db;cursor:pointer;padding:0;font-size:inherit;text-decoration:underline;text-underline-offset:2px}.market-risk-scroll{display:flex;flex-direction:column;gap:8px;padding:12px}.market-risk-card{display:block;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s}.market-risk-card:hover{border-color:#fdba74;background:#fffaf5}.kb-detail{margin-top:16px;animation:kb-detail-in .28s ease-out}@keyframes kb-detail-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.kb-detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.kb-detail-back{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-secondary);font-size:13px;transition:color .15s,border-color .15s,background .15s}.kb-detail-back:hover{color:var(--primary);border-color:#bfdbfe;background:var(--primary-light)}.kb-detail-actions{display:flex;gap:8px}.kb-detail-hero{position:relative;padding:28px 32px 24px;border-radius:12px;background:linear-gradient(135deg,#1a56db,#2563eb 45%,#0e7490);color:#fff;overflow:hidden;box-shadow:0 8px 24px #1a56db38}.kb-detail-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 85% 15%,rgba(255,255,255,.18) 0%,transparent 45%),radial-gradient(circle at 10% 90%,rgba(255,255,255,.08) 0%,transparent 40%);pointer-events:none}.kb-detail-hero>*{position:relative;z-index:1}.kb-detail-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:#ffffffc7;margin-bottom:12px}.kb-detail-breadcrumb .sep{opacity:.5}.kb-detail-title{font-size:22px;font-weight:700;line-height:1.35;letter-spacing:-.02em;margin-bottom:14px;max-width:900px}.kb-detail-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.kb-detail-badges .tag{border:none}.kb-detail-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:12px;background:#ffffff29;color:#fffffff2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.kb-detail-stats{display:flex;flex-wrap:wrap;gap:12px}.kb-detail-stat{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:10px;background:#ffffff24;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.2)}.kb-detail-stat-value{font-size:18px;font-weight:700;line-height:1}.kb-detail-stat-label{font-size:12px;color:#ffffffd1}.kb-detail-body{display:grid;grid-template-columns:1fr 280px;gap:16px;margin-top:16px;align-items:start}.kb-detail-main{display:flex;flex-direction:column;gap:16px}.kb-detail-section{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}.kb-detail-section-head{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--border);background:#fafbfc}.kb-detail-section-head h3{font-size:14px;font-weight:600;margin:0;flex:1}.kb-detail-section-count{font-size:12px;color:var(--text-secondary)}.kb-detail-summary{padding:20px 24px}.kb-detail-summary p{margin:0;font-size:14px;line-height:1.85;color:var(--text)}.kb-detail-files{display:flex;flex-direction:column;gap:10px;padding:16px 20px}.kb-detail-file{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:#fafbfc;transition:border-color .15s,box-shadow .15s,transform .15s}.kb-detail-file:hover{border-color:#bfdbfe;background:#fff;box-shadow:0 4px 12px #1a56db14;transform:translateY(-1px)}.kb-detail-file-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;letter-spacing:.02em;flex-shrink:0}.kb-detail-file-icon--pdf{background:#fee2e2;color:#dc2626}.kb-detail-file-icon--doc{background:#dbeafe;color:#1d4ed8}.kb-detail-file-icon--xls{background:#dcfce7;color:#15803d}.kb-detail-file-icon--ppt{background:#ffedd5;color:#c2410c}.kb-detail-file-icon--cad{background:#f3e8ff;color:#7c3aed}.kb-detail-file-icon--zip{background:#fef9c3;color:#a16207}.kb-detail-file-icon--default{background:#f1f5f9;color:#64748b}.kb-detail-file-info{flex:1;min-width:0}.kb-detail-file-info strong{display:block;font-size:14px;margin-bottom:4px;word-break:break-all}.kb-detail-file-info span{font-size:12px;color:var(--text-secondary)}.kb-detail-file-btn{flex-shrink:0}.kb-detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 20px;color:var(--text-secondary)}.kb-detail-empty p{margin:0;font-size:13px}.kb-detail-aside{display:flex;flex-direction:column;gap:12px;position:sticky;top:calc(var(--header-height) + 16px)}.kb-detail-meta-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow)}.kb-detail-meta-card h4{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}.kb-detail-meta-card ul{list-style:none;display:flex;flex-direction:column;gap:12px}.kb-detail-meta-card li{display:flex;align-items:flex-start;gap:10px}.kb-detail-meta-card li>svg{flex-shrink:0;margin-top:2px;color:var(--primary);opacity:.85}.kb-detail-meta-card li div span{display:block;font-size:11px;color:var(--text-secondary);margin-bottom:2px}.kb-detail-meta-card li div strong{font-size:13px;font-weight:600;word-break:break-word}@media(max-width:960px){.kb-detail-body{grid-template-columns:1fr}.kb-detail-aside{position:static;display:grid;grid-template-columns:1fr 1fr}}@media(max-width:640px){.kb-detail-hero{padding:20px 18px 18px}.kb-detail-title{font-size:18px}.kb-detail-toolbar{flex-direction:column;align-items:stretch}.kb-detail-actions{justify-content:flex-end}.kb-detail-aside{grid-template-columns:1fr}.kb-detail-file{flex-wrap:wrap}.kb-detail-file-btn{width:100%;justify-content:center}}.kb-detail-tag--version{background:#ffffff3d;font-weight:600}.kb-detail-version-timeline{padding:8px 20px 20px;display:flex;flex-direction:column;gap:0}.kb-detail-version-item{position:relative;padding-left:28px;border-left:2px solid #e2e8f0;margin-left:8px}.kb-detail-version-item:last-child{border-left-color:transparent}.kb-detail-version-item--current{border-left-color:#bfdbfe}.kb-detail-version-head{display:flex;align-items:flex-start;gap:12px;width:100%;padding:14px 12px;margin:4px 0 4px -29px;border:1px solid transparent;border-radius:10px;background:transparent;text-align:left;color:inherit;transition:background .15s,border-color .15s}.kb-detail-version-head:hover{background:#f8fafc;border-color:var(--border)}.kb-detail-version-item--current .kb-detail-version-head{background:#eff6ff;border-color:#bfdbfe}.kb-detail-version-item--expanded .kb-detail-version-head{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}.kb-detail-version-dot{position:absolute;left:-7px;top:22px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #94a3b8;flex-shrink:0}.kb-detail-version-item--current .kb-detail-version-dot{border-color:var(--primary);background:var(--primary);box-shadow:0 0 0 3px #1a56db26}.kb-detail-version-meta{flex:1;min-width:0}.kb-detail-version-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px}.kb-detail-version-title-row strong{font-size:14px;color:var(--text)}.kb-detail-version-current{font-size:11px;font-weight:600;color:var(--primary);background:var(--primary-light);padding:2px 8px;border-radius:999px}.kb-detail-version-sub{font-size:12px;color:var(--text-secondary);line-height:1.5}.kb-detail-version-head>svg:last-child{flex-shrink:0;margin-top:2px;color:var(--text-secondary)}.kb-detail-version-body{margin:0 0 12px 12px;padding:16px 18px;background:#fafbfc;border:1px solid var(--border);border-radius:0 10px 10px}.kb-detail-version-item--current .kb-detail-version-body{background:#fff;border-color:#bfdbfe}.kb-detail-version-field{margin-bottom:14px}.kb-detail-version-field:last-child{margin-bottom:0}.kb-detail-version-field>span{display:block;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.kb-detail-version-field>p{margin:0;font-size:13px;line-height:1.65;color:var(--text)}.kb-detail-version-tags{display:flex;flex-wrap:wrap;gap:6px}.kb-detail-version-files{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.kb-detail-version-files li{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#fff;border:1px solid var(--border);border-radius:6px;font-size:13px}.kb-detail-version-files li span{flex:1;min-width:0;word-break:break-all}.kb-detail-version-files li em{font-style:normal;font-size:11px;color:var(--text-secondary);flex-shrink:0}.kb-detail-version-empty{margin:0;font-size:13px;color:var(--text-secondary)}.kb-search-box{position:relative;display:flex;align-items:center;gap:8px;flex:1}.kb-search-icon{color:var(--text-secondary);flex-shrink:0}.kb-search-input{flex:1;min-width:0}.kb-entry-type-select{flex-shrink:0}.kb-entry-type-select select{min-width:160px;height:36px;padding:0 10px;border:1px solid var(--border);border-radius:6px;background:#fff;font-size:13px;color:var(--text)}.kb-entry-type-select select:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 3px #165dff14}.kb-search-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #0f172a1f;overflow:hidden}.kb-search-dropdown-head{padding:10px 14px;font-size:12px;color:var(--text-secondary);background:#fafbfc;border-bottom:1px solid var(--border)}.kb-search-dropdown-list{list-style:none;margin:0;padding:6px;max-height:320px;overflow-y:auto}.kb-search-dropdown-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;padding:10px 12px;border:none;border-radius:8px;background:transparent;text-align:left;cursor:pointer;transition:background .15s}.kb-search-dropdown-item:hover{background:var(--primary-light)}.kb-search-dropdown-item strong{font-size:14px;color:var(--text);line-height:1.4}.kb-search-dropdown-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.kb-search-dropdown-summary{font-size:12px;color:var(--text-secondary);line-height:1.5}.kb-search-dropdown-more{display:block;width:100%;padding:10px 14px;border:none;border-top:1px solid var(--border);background:#fafbfc;color:var(--primary);font-size:13px;cursor:pointer;text-align:center}.kb-search-dropdown-more:hover{background:var(--primary-light)}.kb-search-dropdown-empty{padding:24px 16px;text-align:center;font-size:13px;color:var(--text-secondary)}.kb-search-mark{background:#fef08a;color:inherit;padding:0 1px;border-radius:2px}.kb-search-result-bar{display:flex;align-items:center;gap:12px;margin-top:12px;padding:8px 12px;background:var(--primary-light);border-radius:8px;font-size:13px;color:var(--text-secondary)}.kb-search-result-bar strong{color:var(--primary)}.kb-search-result-bar .link-text{margin-left:auto;font-size:13px}.kb-entry-row--highlight{animation:kb-entry-flash 2.4s ease-out}@keyframes kb-entry-flash{0%,35%{background:#dbeafe;box-shadow:inset 3px 0 0 var(--primary)}to{background:transparent;box-shadow:none}}.kb-approval-flow{margin-top:4px;padding:14px 16px;background:#fafbfc;border:1px solid var(--border);border-radius:10px}.kb-approval-flow-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.kb-approval-flow-head h4{margin:0;font-size:14px}.kb-approval-flow-head span{font-size:12px;color:var(--text-secondary)}.kb-approval-timeline{margin:0}.kb-approval-timeline .timeline-item:last-child{padding-bottom:0}.kb-approval-step-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.kb-approval-step-index{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:6px;border-radius:50%;background:var(--primary-light);color:var(--primary);font-size:11px;font-weight:700;vertical-align:1px}.kb-approval-step-body{margin-top:8px}.kb-approval-step-meta{font-size:12px;color:var(--text-secondary);margin-bottom:6px}.kb-approval-step-comment{padding:8px 10px;background:#fff;border:1px solid var(--border);border-radius:6px}.kb-approval-step-comment>span{display:block;font-size:11px;color:var(--text-secondary);margin-bottom:4px}.kb-approval-step-comment>p{margin:0;font-size:13px;line-height:1.55;color:var(--text)}.timeline-item.pending .kb-approval-step-comment{border-color:#fcd34d;background:#fffbeb}.timeline-item.overdue .kb-approval-step-comment{border-color:#fecaca;background:#fef2f2}.timeline-item.done .kb-approval-step-comment{border-color:#a7f3d0;background:#ecfdf5}.tag-orange{background:#ffedd5;color:#c2410c}.tag-purple{background:#ede9fe;color:#6d28d9}.kb-form-modal{max-width:720px;overflow:hidden;border-radius:14px;animation:kb-detail-in .24s ease-out}.kb-form-modal.kb-form-modal--wide{max-width:880px}.kb-form-modal.kb-form-modal--xl{max-width:min(1180px,calc(100vw - 32px))}.kb-form-modal.kb-form-modal--planning{max-width:min(1520px,calc(100vw - 32px))}.kb-form-modal--xl .kb-form-body{max-height:min(72vh,720px)}.kb-form-modal--planning .kb-form-body{max-height:min(76vh,800px)}.plan-detail-scroll{overflow-x:auto}.kb-form-modal--planning .plan-detail-scroll{overflow-x:hidden}.plan-detail-table{min-width:1120px}.kb-form-modal--planning .plan-detail-table{min-width:0;width:100%;table-layout:fixed}.kb-form-modal--planning .plan-detail-table th,.kb-form-modal--planning .plan-detail-table td{padding:8px;white-space:normal;overflow-wrap:anywhere}.plan-detail-table th,.plan-detail-table td{vertical-align:middle}.plan-detail-table input,.plan-detail-table select{width:100%;min-width:0;padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-size:12px;background:#fff}.plan-upload-empty{font-size:13px;color:var(--text-secondary);margin:10px 0 0}.kb-form-file-slot+.kb-form-file-slot{margin-top:16px;padding-top:14px;border-top:1px dashed var(--border)}.kb-form-file-slot .kb-form-section-title{margin-bottom:10px}.kb-form-body>.alert-warn{position:sticky;top:0;z-index:3}.kb-form-field.is-invalid input,.kb-form-file-slot.is-invalid .kb-form-upload{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 16%,transparent)}.kb-form-section.is-invalid{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 12%,transparent)}.plan-detail-table tr.is-invalid input,.plan-detail-table tr.is-invalid select{border-color:color-mix(in srgb,var(--danger) 48%,var(--border))}.plan-detail-table tr.is-invalid input:focus,.plan-detail-table tr.is-invalid select:focus{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 16%,transparent)}.plan-works-toggle{display:flex;align-items:center;align-self:end;gap:10px;min-height:38px;margin:0;padding:8px 14px;border:1px solid var(--border);border-radius:8px;background:#f8fafc;font-size:13px;font-weight:600;color:var(--text);cursor:pointer}.plan-works-toggle.is-on{background:#eff6ff;border-color:#bfdbfe;color:var(--primary)}.plan-works-toggle.is-readonly{cursor:default}.plan-works-toggle input{width:16px;height:16px;accent-color:var(--primary)}.kb-form-modal--wide .kb-form-body{max-height:min(68vh,640px)}.kb-form-section .member-form-preview{margin-top:12px}.kb-form-section .kb-add-catalog{max-height:36vh;min-height:220px}.kb-entry-title-link{border:none;padding:0;background:none;color:var(--primary);font-weight:600;font-size:13px;text-align:left;cursor:pointer}.kb-entry-title-link:hover{text-decoration:underline}.kb-entry-view-modal{max-height:min(88vh,860px);overflow:auto;padding:20px 24px 24px}.kb-entry-view-modal .kb-detail{margin-top:0}.kb-form-modal.kb-form-modal--page{overflow:visible;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.kb-form-modal.kb-form-modal--page .kb-form-body{max-height:none;overflow:visible}.kb-form-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px;background:linear-gradient(135deg,#1a56db,#2563eb 48%,#0e7490);color:#fff;position:relative;overflow:hidden}.kb-form-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 90% 10%,rgba(255,255,255,.18),transparent 42%);pointer-events:none}.kb-form-hero-main{display:flex;align-items:center;gap:14px;position:relative;z-index:1}.kb-form-hero-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#ffffff29;border:1px solid rgba(255,255,255,.22);flex-shrink:0}.kb-form-hero h3{margin:0 0 4px;font-size:18px;font-weight:700}.kb-form-hero p{margin:0;font-size:13px;color:#ffffffd1}.kb-form-close{position:relative;z-index:1;width:32px;height:32px;border:none;border-radius:8px;background:#ffffff24;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.kb-form-close:hover{background:#ffffff3d}.kb-form-body{padding:20px 24px;max-height:min(62vh,560px);overflow-y:auto;display:flex;flex-direction:column;gap:16px;background:#f8fafc}.kb-form-fieldset{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:16px}.kb-form-fieldset:disabled{pointer-events:none}.kb-form-steps{display:flex;align-items:center;gap:8px;padding:12px 14px;background:#fff;border:1px solid var(--border);border-radius:10px}.kb-form-step{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);white-space:nowrap}.kb-form-step span{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#e2e8f0;color:#64748b;font-size:11px;font-weight:700}.kb-form-step--active{color:var(--primary);font-weight:600}.kb-form-step--active span{background:var(--primary);color:#fff}.kb-form-step--done{color:#059669;font-weight:600}.kb-form-step--done span{background:#059669;color:#fff}.kb-form-step--reject{color:#dc2626;font-weight:600}.kb-form-step--reject span{background:#dc2626;color:#fff}.kb-form-step-line--done{background:#86efac}.kb-form-field input:disabled,.kb-form-field select:disabled,.kb-form-field textarea:disabled,.kb-form-field input[readonly],.kb-form-field textarea[readonly]{background:#f8fafc;color:#334155;cursor:default;opacity:1;border-color:#e2e8f0;box-shadow:none}.kb-approval-flow--embedded{margin:0;border:none;box-shadow:none;background:transparent;padding:0}.kb-audit-empty{margin:0;padding:16px;text-align:center;font-size:13px;color:var(--text-secondary);background:#f8fafc;border:1px dashed var(--border);border-radius:8px}.kb-audit-final-comment{margin-top:12px;padding:12px 14px;background:#f8fafc;border:1px solid var(--border);border-radius:8px}.kb-audit-final-comment span{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:4px}.kb-audit-final-comment p{margin:0;font-size:13px;line-height:1.6;color:var(--text)}.kb-form-step-line{flex:1;height:1px;background:#e2e8f0;min-width:16px}.kb-form-section{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px}.kb-form-section-title{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:var(--primary)}.kb-form-section-title h4{margin:0;font-size:14px;color:var(--text)}.kb-form-section-title em{color:var(--danger);font-style:normal;margin-left:2px}.kb-form-section-extra{margin-left:auto;font-size:12px;color:var(--text-secondary);font-weight:400}.kb-form-section-notice{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:5px 10px;border-radius:8px;border:1px solid #fdba74;background:linear-gradient(180deg,#fff7ed,#ffedd5);color:#c2410c;font-size:12px;font-weight:600;line-height:1.3;box-shadow:0 1px 2px #c2410c14}.kb-form-section-notice svg{flex-shrink:0;color:#ea580c}.kb-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.kb-form-field{display:flex;flex-direction:column;gap:6px;font-size:13px}.kb-form-field--full{grid-column:1 / -1}.kb-form-field>span{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary);font-weight:500}.kb-form-field>span em{color:var(--danger);font-style:normal}.kb-form-field-tip{margin:0;font-size:12px;font-style:normal;font-weight:400;line-height:1.45;color:#b45309}.yesno-switch{display:flex;align-items:stretch;gap:8px;min-height:38px}.yesno-switch .btn{flex:1;min-height:38px}.industry-picker{position:relative}.industry-picker-trigger{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);font-size:13px;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}.industry-picker-trigger:hover{border-color:var(--primary)}.industry-picker-trigger.open{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1f}.industry-picker-trigger.is-empty .industry-picker-value{color:var(--text-secondary)}.industry-picker-trigger>svg:first-child{flex-shrink:0;color:var(--text-secondary)}.industry-picker-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-picker-clear{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;color:var(--text-secondary);background:#f1f5f9}.industry-picker-clear:hover{color:var(--danger);background:#fee2e2}.industry-picker-dropdown{position:absolute;z-index:40;top:calc(100% + 6px);left:0;width:min(520px,calc(100vw - 48px));border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 12px 28px #0f172a24;overflow:hidden}.industry-picker-search{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);background:#f8fafc;color:var(--text-secondary)}.industry-picker-search input{flex:1;min-width:0;height:28px;border:none;outline:none;background:transparent;font-size:13px}.industry-picker-body{display:flex;flex-direction:column}.industry-picker-cols{display:grid;grid-template-columns:1.15fr 1fr;max-height:320px}.industry-picker-col{min-width:0;max-height:320px;padding:6px 0;overflow-y:auto;border-right:1px solid #f1f5f9}.industry-picker-domain+.industry-picker-domain{margin-top:4px;padding-top:4px;border-top:1px solid #f1f5f9}.industry-picker-domain-label{padding:6px 12px 4px;color:#64748b;font-size:11px;font-weight:600;letter-spacing:.02em}.industry-picker-col:last-child{border-right:none}.industry-picker-option{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;padding:7px 12px;border:none;background:transparent;color:var(--text);font-size:13px;text-align:left;cursor:pointer}.industry-picker-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-picker-option svg{flex-shrink:0;color:#cbd5e1}.industry-picker-option:hover{background:#f1f5f9}.industry-picker-option.active{background:#eff6ff;color:var(--primary);font-weight:600}.industry-picker-option.selected{color:var(--primary);font-weight:600}.industry-picker-desc{margin:0;padding:10px 12px;border-top:1px solid #f1f5f9;background:#f8fafc;color:var(--text-secondary);font-size:12px;line-height:1.5}.industry-picker-results{max-height:280px;overflow-y:auto;padding:6px 0}.industry-picker-result{display:block;width:100%;padding:8px 14px;border:none;background:transparent;color:var(--text);font-size:13px;text-align:left;cursor:pointer}.industry-picker-result:hover{background:#f1f5f9}.industry-picker-result.selected{color:var(--primary);font-weight:600}.industry-picker-empty{padding:16px 12px;color:var(--text-secondary);font-size:12px;text-align:center}.region-picker{position:relative}.region-picker-trigger{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);font-size:13px;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}.region-picker-trigger:hover{border-color:var(--primary)}.region-picker-trigger.open{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1f}.region-picker-trigger.is-empty .region-picker-value{color:var(--text-secondary)}.region-picker-trigger>svg:first-child{flex-shrink:0;color:var(--text-secondary)}.region-picker-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.region-picker-clear{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;color:var(--text-secondary);background:#f1f5f9}.region-picker-clear:hover{color:var(--danger);background:#fee2e2}.region-picker-dropdown{position:fixed;z-index:320;top:0;left:0;width:min(620px,calc(100vw - 24px));border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 12px 28px #0f172a24;overflow:hidden}.region-picker-search{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);background:#f8fafc;color:var(--text-secondary)}.region-picker-search input{flex:1;min-width:0;height:28px;border:none;outline:none;background:transparent;font-size:13px}.region-picker-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;max-height:280px}.region-picker-col{min-width:0;max-height:280px;padding:6px 0;overflow-y:auto;border-right:1px solid #f1f5f9}.region-picker-col:last-child{border-right:none}.region-picker-option{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;padding:7px 12px;border:none;background:transparent;color:var(--text);font-size:13px;text-align:left;cursor:pointer}.region-picker-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.region-picker-option svg{flex-shrink:0;color:#cbd5e1}.region-picker-option:hover{background:#f1f5f9}.region-picker-option.active{background:#eff6ff;color:var(--primary);font-weight:600}.region-picker-option.selected{color:var(--primary);font-weight:600}.region-picker-results{max-height:288px;overflow-y:auto;padding:6px 0}.region-picker-result{display:block;width:100%;padding:8px 14px;border:none;background:transparent;color:var(--text);font-size:13px;text-align:left;cursor:pointer}.region-picker-result:hover{background:#f1f5f9}.region-picker-result.selected{color:var(--primary);font-weight:600}.region-picker-empty{padding:16px 12px;color:var(--text-secondary);font-size:12px;text-align:center}.kb-form-field input,.kb-form-field select,.kb-form-field textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:13px;background:#fff;transition:border-color .15s,box-shadow .15s}.kb-form-field input:focus,.kb-form-field select:focus,.kb-form-field textarea:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 3px #1a56db1f}.kb-form-field textarea{resize:vertical;min-height:96px;line-height:1.6}.kb-form-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.kb-type-tag--blue,.kb-form-type-chip--blue{--kb-type-fg: #1d4ed8;--kb-type-bg: #eff6ff;--kb-type-border: #bfdbfe}.kb-type-tag--cyan,.kb-form-type-chip--cyan{--kb-type-fg: #0e7490;--kb-type-bg: #ecfeff;--kb-type-border: #a5f3fc}.kb-type-tag--purple,.kb-form-type-chip--purple{--kb-type-fg: #6d28d9;--kb-type-bg: #f5f3ff;--kb-type-border: #ddd6fe}.kb-type-tag--green,.kb-form-type-chip--green{--kb-type-fg: #15803d;--kb-type-bg: #f0fdf4;--kb-type-border: #bbf7d0}.kb-type-tag--orange,.kb-form-type-chip--orange{--kb-type-fg: #c2410c;--kb-type-bg: #fff7ed;--kb-type-border: #fed7aa}.kb-type-tag--pink,.kb-form-type-chip--pink{--kb-type-fg: #be185d;--kb-type-bg: #fdf2f8;--kb-type-border: #fbcfe8}.kb-type-tag--red,.kb-form-type-chip--red{--kb-type-fg: #b91c1c;--kb-type-bg: #fef2f2;--kb-type-border: #fecaca}.kb-type-tag--gray,.kb-form-type-chip--gray{--kb-type-fg: #475569;--kb-type-bg: #f1f5f9;--kb-type-border: #e2e8f0}.kb-secrecy-tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;border:1px solid var(--kb-secrecy-border, #e2e8f0);background:var(--kb-secrecy-bg, #f1f5f9);color:var(--kb-secrecy-fg, #475569);font-size:12px;font-weight:600;line-height:18px;white-space:nowrap}.kb-secrecy-tag--green{--kb-secrecy-fg: #15803d;--kb-secrecy-bg: #f0fdf4;--kb-secrecy-border: #bbf7d0}.kb-secrecy-tag--blue{--kb-secrecy-fg: #1d4ed8;--kb-secrecy-bg: #eff6ff;--kb-secrecy-border: #bfdbfe}.kb-secrecy-tag--orange{--kb-secrecy-fg: #c2410c;--kb-secrecy-bg: #fff7ed;--kb-secrecy-border: #fed7aa}.kb-secrecy-tag--red{--kb-secrecy-fg: #b91c1c;--kb-secrecy-bg: #fef2f2;--kb-secrecy-border: #fecaca}.kb-secrecy-tag--gray{--kb-secrecy-fg: #475569;--kb-secrecy-bg: #f1f5f9;--kb-secrecy-border: #e2e8f0}.kb-detail-secrecy-hint{margin:0 0 12px;padding:8px 12px;font-size:12px;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:8px}.kb-download-tip{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:10px 12px;font-size:13px;color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px}.kb-type-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;border:1px solid var(--kb-type-border, #e2e8f0);background:var(--kb-type-bg, #f1f5f9);color:var(--kb-type-fg, #475569);font-size:12px;font-weight:500;line-height:18px;white-space:nowrap}.kb-type-tag--icon{padding:3px 10px;box-shadow:0 1px 3px #0f172a2e}.kb-form-type-chip{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:13px;color:var(--text);text-align:center;cursor:pointer;transition:all .15s}.kb-form-type-dot{width:8px;height:8px;border-radius:50%;background:var(--kb-type-fg, #94a3b8);flex-shrink:0}.kb-form-type-chip:hover{border-color:var(--kb-type-border, #93c5fd);background:var(--kb-type-bg, #eff6ff);color:var(--kb-type-fg, var(--primary))}.kb-form-type-chip.active{border-color:var(--kb-type-fg, var(--primary));background:var(--kb-type-bg, var(--primary-light));color:var(--kb-type-fg, var(--primary));font-weight:600;box-shadow:inset 0 0 0 1px var(--kb-type-fg, var(--primary))}.kb-form-upload{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:28px 16px;border:1.5px dashed #bfdbfe;border-radius:10px;background:linear-gradient(180deg,#f8fbff,#eff6ff);color:var(--primary);cursor:pointer;transition:border-color .15s,background .15s}.kb-form-upload:hover{border-color:var(--primary);background:#eff6ff}.kb-form-upload.is-uploading{opacity:.7;pointer-events:none}.kb-form-upload strong{font-size:14px}.kb-form-upload span{font-size:12px;color:var(--text-secondary)}.kb-form-attach-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.kb-form-attach-list li{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#f8fafc;border:1px solid var(--border);border-radius:8px}.kb-form-attach-icon{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#dbeafe;color:#1d4ed8;flex-shrink:0}.kb-form-attach-info{flex:1;min-width:0}.kb-form-attach-info strong{display:block;font-size:13px;word-break:break-all}.kb-form-attach-info span{font-size:12px;color:var(--text-secondary)}.kb-form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;border-top:1px solid var(--border);background:#fff}.kb-form-footer>p{margin:0;font-size:12px;color:var(--text-secondary);flex:1}.kb-form-footer-actions{display:flex;gap:8px;flex-shrink:0}@media(max-width:720px){.kb-form-grid{grid-template-columns:1fr}.kb-form-footer{flex-direction:column;align-items:stretch}.kb-form-footer-actions{justify-content:flex-end}.kb-form-steps{overflow-x:auto}}.kb-review-modal{max-width:520px;overflow:hidden;border-radius:14px;animation:kb-detail-in .2s ease-out}.kb-review-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 22px;background:linear-gradient(135deg,#059669,#0d9488);color:#fff}.kb-review-hero--reject{background:linear-gradient(135deg,#dc2626,#ea580c)}.kb-review-hero-main{display:flex;align-items:center;gap:12px}.kb-review-hero-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#ffffff29;border:1px solid rgba(255,255,255,.22);flex-shrink:0}.kb-review-hero h3{margin:0 0 4px;font-size:17px}.kb-review-hero p{margin:0;font-size:12px;color:#ffffffd9}.kb-review-body{padding:18px 22px;display:flex;flex-direction:column;gap:14px;background:#f8fafc}.kb-review-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;padding:12px 14px;background:#fff;border:1px solid var(--border);border-radius:10px;font-size:13px}.kb-review-summary>div span{display:block;font-size:11px;color:var(--text-secondary);margin-bottom:2px}.kb-review-summary>div strong{font-weight:600}.kb-review-summary-title{grid-column:1 / -1}.kb-review-hint{margin:0;font-size:12px;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:8px 10px}.kb-review-body .kb-form-field textarea{background:#fff}.kb-kpi-grid{display:grid;gap:14px}.kb-kpi-grid--5{grid-template-columns:repeat(5,minmax(0,1fr))}.kb-kpi-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.kb-kpi-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.kb-kpi{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:16px 16px 14px;border-radius:14px;border:1px solid var(--border);background:linear-gradient(180deg,#ffffffeb,#f8fafcf5);box-shadow:0 1px 2px #0f172a0a,0 8px 20px #0f172a0a;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.kb-kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--kb-kpi-accent, var(--primary));border-radius:14px 0 0 14px}.kb-kpi:after{content:"";position:absolute;top:-36px;right:-28px;width:96px;height:96px;border-radius:50%;background:var(--kb-kpi-glow, rgba(22, 93, 255, .08));pointer-events:none}.kb-kpi:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0f172a14;border-color:color-mix(in srgb,var(--kb-kpi-accent, var(--primary)) 35%,var(--border))}.kb-kpi.is-clickable{cursor:pointer;text-align:left;font:inherit;color:inherit;width:100%}.kb-kpi.is-active{border-color:var(--kb-kpi-accent, var(--primary));box-shadow:0 0 0 2px color-mix(in srgb,var(--kb-kpi-accent, var(--primary)) 22%,transparent),0 8px 24px #0f172a14}.kb-kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;width:100%;position:relative;z-index:1}.kb-kpi-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--kb-kpi-icon-bg, #eff6ff);color:var(--kb-kpi-accent, var(--primary));flex-shrink:0}.kb-kpi-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;line-height:16px;background:var(--kb-kpi-badge-bg, #eff6ff);color:var(--kb-kpi-accent, var(--primary));white-space:nowrap;margin-left:auto}.kb-kpi-body{position:relative;z-index:1;min-width:0}.kb-kpi-label{font-size:13px;color:var(--text-secondary);line-height:1.3;margin-bottom:6px}.kb-kpi-value{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--text);font-variant-numeric:tabular-nums}.kb-kpi-value em{font-style:normal;font-size:13px;font-weight:600;margin-left:4px;color:var(--text-secondary)}.kb-kpi-sub{margin-top:8px;font-size:12px;color:var(--text-secondary);line-height:1.4;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.kb-kpi-sub strong{color:var(--text);font-weight:600}.kb-kpi-delta{display:inline-flex;align-items:center;gap:2px;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:600}.kb-kpi-delta.up{background:#ecfdf5;color:#059669}.kb-kpi-delta.warn{background:#fffbeb;color:#d97706}.kb-kpi-delta.down{background:#fef2f2;color:#dc2626}.kb-kpi-delta.neutral{background:#f1f5f9;color:#64748b}.kb-kpi--featured{background:linear-gradient(135deg,var(--kb-kpi-feature-from, #eff6ff) 0%,#ffffff 58%,#ffffff 100%);border-color:color-mix(in srgb,var(--kb-kpi-accent, var(--primary)) 28%,var(--border))}.kb-kpi--featured .kb-kpi-value{font-size:34px;color:var(--kb-kpi-accent, var(--primary))}.kb-kpi--featured .kb-kpi-icon{width:40px;height:40px;border-radius:12px}.kb-kpi--blue{--kb-kpi-accent: #165dff;--kb-kpi-icon-bg: #eff6ff;--kb-kpi-badge-bg: #dbeafe;--kb-kpi-glow: rgba(22, 93, 255, .12);--kb-kpi-feature-from: #eff6ff}.kb-kpi--cyan{--kb-kpi-accent: #0891b2;--kb-kpi-icon-bg: #ecfeff;--kb-kpi-badge-bg: #cffafe;--kb-kpi-glow: rgba(8, 145, 178, .12);--kb-kpi-feature-from: #ecfeff}.kb-kpi--teal{--kb-kpi-accent: #0f766e;--kb-kpi-icon-bg: #f0fdfa;--kb-kpi-badge-bg: #ccfbf1;--kb-kpi-glow: rgba(15, 118, 110, .12);--kb-kpi-feature-from: #f0fdfa}.kb-kpi--green{--kb-kpi-accent: #059669;--kb-kpi-icon-bg: #ecfdf5;--kb-kpi-badge-bg: #d1fae5;--kb-kpi-glow: rgba(5, 150, 105, .12);--kb-kpi-feature-from: #ecfdf5}.kb-kpi--orange{--kb-kpi-accent: #d97706;--kb-kpi-icon-bg: #fffbeb;--kb-kpi-badge-bg: #fde68a;--kb-kpi-glow: rgba(217, 119, 6, .14);--kb-kpi-feature-from: #fffbeb}.kb-kpi--violet{--kb-kpi-accent: #7c3aed;--kb-kpi-icon-bg: #f5f3ff;--kb-kpi-badge-bg: #ddd6fe;--kb-kpi-glow: rgba(124, 58, 237, .12);--kb-kpi-feature-from: #f5f3ff}.kb-kpi--slate{--kb-kpi-accent: #475569;--kb-kpi-icon-bg: #f1f5f9;--kb-kpi-badge-bg: #e2e8f0;--kb-kpi-glow: rgba(71, 85, 105, .1);--kb-kpi-feature-from: #f8fafc}.kb-kpi--rose{--kb-kpi-accent: #e11d48;--kb-kpi-icon-bg: #fff1f2;--kb-kpi-badge-bg: #fecdd3;--kb-kpi-glow: rgba(225, 29, 72, .12);--kb-kpi-feature-from: #fff1f2}.kb-kpi--switchable .kb-kpi-top{align-items:center}.kb-kpi-switch{display:inline-flex;padding:2px;border-radius:999px;background:#0f172a0d;border:1px solid color-mix(in srgb,var(--kb-kpi-accent, var(--primary)) 18%,var(--border));gap:2px}.kb-kpi-switch button{border:none;background:transparent;color:var(--text-secondary);font-size:11px;font-weight:600;line-height:1;padding:5px 9px;border-radius:999px;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}.kb-kpi-switch button:hover{color:var(--kb-kpi-accent, var(--primary))}.kb-kpi-switch button.active{background:#fff;color:var(--kb-kpi-accent, var(--primary));box-shadow:0 1px 3px #0f172a1a}.kb-kpi--alert{background:linear-gradient(135deg,#fffbeb,#fff 55%);animation:kb-kpi-pulse 2.4s ease-in-out infinite}.kb-kpi--alert .kb-kpi-value{color:#d97706}@keyframes kb-kpi-pulse{0%,to{box-shadow:0 1px 2px #0f172a0a,0 8px 20px #d977060f}50%{box-shadow:0 1px 2px #0f172a0a,0 8px 24px #d9770629}}@media(max-width:1200px){.kb-kpi-grid--5{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.kb-kpi-grid--5,.kb-kpi-grid--4,.kb-kpi-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}.kb-kpi--featured .kb-kpi-value{font-size:30px}}@media(max-width:560px){.kb-kpi-grid--5,.kb-kpi-grid--4,.kb-kpi-grid--3{grid-template-columns:1fr}}.kb-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.kb-chart-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 1px 2px #0f172a0a,0 8px 20px #0f172a0a;overflow:hidden;transition:box-shadow .18s ease}.kb-chart-card:hover{box-shadow:0 8px 26px #0f172a14}.kb-chart-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid #f1f5f9;background:linear-gradient(180deg,#fbfdff,#fff)}.kb-chart-head-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;flex-shrink:0}.kb-chart-head-icon--blue{background:#eff6ff;color:#1d4ed8}.kb-chart-head-icon--violet{background:#f5f3ff;color:#7c3aed}.kb-chart-head-icon--cyan{background:#ecfeff;color:#0e7490}.kb-chart-head-icon--teal{background:#f0fdfa;color:#0f766e}.kb-chart-head-actions{margin-left:auto;flex-shrink:0}.kb-chart-switch{--kb-kpi-accent: #7c3aed}.kb-chart-switch--teal{--kb-kpi-accent: #0f766e}.kb-chart-switch button{padding:6px 10px;font-size:12px}.kb-chart-titles{min-width:0;flex:1}.kb-chart-titles h3{font-size:15px;font-weight:600;line-height:1.3;color:var(--text)}.kb-chart-titles p{margin:2px 0 0;font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kb-chart-pill{padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap;flex-shrink:0}.kb-chart-pill--blue{background:#eff6ff;color:#1d4ed8;border:1px solid #dbeafe}.kb-chart-pill--violet{background:#f5f3ff;color:#6d28d9;border:1px solid #ddd6fe}.kb-chart-pill--cyan{background:#ecfeff;color:#0e7490;border:1px solid #cffafe}.kb-chart-body{padding:14px 16px 10px}.kb-chart-body .recharts-rectangle.recharts-tooltip-cursor{transition:none}@media(max-width:1100px){.kb-chart-grid{grid-template-columns:1fr}}.kb-cat-nav{padding:8px 0!important}.kb-cat-group{margin-bottom:2px}.kb-cat-node{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:9px 14px;border:none;background:transparent;color:var(--text);font-size:13px;text-align:left;cursor:pointer;transition:background .12s,color .12s}.kb-cat-node:hover{background:#f1f5f9}.kb-cat-node.active{background:var(--primary-light);color:var(--primary);font-weight:600}.kb-cat-node--parent{font-weight:600;color:#0f172a}.kb-cat-node--parent.is-branch-active{color:var(--primary)}.kb-cat-node--parent.active:not(:has(+.kb-cat-children .kb-cat-node--child.active)){background:var(--primary-light)}.kb-cat-node--parent.active:has(+.kb-cat-children .kb-cat-node--child.active){background:transparent;color:var(--text);font-weight:600}.kb-cat-node--parent.active:has(+.kb-cat-children .kb-cat-node--child.active):hover{background:#f1f5f9}.kb-cat-node-label{display:inline-flex;align-items:center;gap:6px;min-width:0}.kb-cat-chevron{width:12px;font-size:11px;color:var(--text-secondary);line-height:1}.kb-cat-node-count{font-size:12px;color:var(--text-secondary);font-variant-numeric:tabular-nums;flex-shrink:0}.kb-cat-node.active .kb-cat-node-count{color:var(--primary);opacity:.75}.kb-cat-children{position:relative;margin:0 0 4px;padding-left:0}.kb-cat-children:before{content:"";position:absolute;left:20px;top:2px;bottom:2px;width:1px;background:#e2e8f0}.kb-cat-node--child{padding:7px 14px 7px 34px;font-size:12.5px;color:#475569}.kb-cat-node--child.active{background:var(--primary-light);color:var(--primary);box-shadow:inset 3px 0 0 var(--primary)}.kb-cat-node.is-empty{opacity:.45}.kb-cat-node.is-empty .kb-cat-node-count{color:#94a3b8}.kb-folder-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 20px;border-bottom:1px solid var(--border);background:#fbfdff}.kb-folder-chip-wrap{display:inline-flex;align-items:center;gap:2px;border-radius:999px}.kb-folder-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:#fff;color:#475569;font-size:12.5px;cursor:pointer;transition:all .14s}.kb-folder-chip:hover{border-color:#bfdbfe;color:var(--primary);background:#f8fbff}.kb-folder-chip.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:600}.kb-folder-chip em{font-style:normal;font-size:11px;padding:0 6px;border-radius:999px;background:#f1f5f9;color:#64748b;font-variant-numeric:tabular-nums}.kb-folder-chip.active em{background:#ffffffbf;color:var(--primary)}.kb-folder-chip-actions{display:none;gap:2px}.kb-folder-chip-wrap:hover .kb-folder-chip-actions,.kb-folder-chip-wrap.active .kb-folder-chip-actions{display:inline-flex}.kb-folder-chip-actions button{width:22px;height:22px;border:1px solid var(--border);border-radius:50%;background:#fff;color:#64748b;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.kb-folder-chip-actions button:hover{color:var(--primary);border-color:#bfdbfe;background:#eff6ff}.kb-organize-modal{width:min(1120px,96vw);max-width:none;max-height:90vh;display:flex;flex-direction:column}.kb-organize-modal .modal-header{align-items:flex-start}.kb-organize-sub{margin:4px 0 0;font-size:12px;color:var(--text-secondary);font-weight:400}.kb-organize-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 20px;border-bottom:1px solid var(--border);background:#f8fafc}.kb-organize-toolbar-left,.kb-organize-toolbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--text-secondary)}.kb-organize-toolbar-right select{min-width:140px;padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:#fff;font-size:13px}.kb-organize-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;padding:16px 20px;overflow:auto;flex:1;min-height:360px;background:#f1f5f9}.kb-organize-col{display:flex;flex-direction:column;min-height:280px;max-height:520px;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.kb-organize-col-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid #f1f5f9;background:linear-gradient(180deg,#fbfdff,#fff)}.kb-organize-col-title{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text);cursor:pointer;min-width:0}.kb-organize-col-title strong{font-weight:600}.kb-organize-col-title em{font-style:normal;font-size:11px;padding:0 6px;border-radius:999px;background:#f1f5f9;color:#64748b}.kb-organize-drop-btn{flex-shrink:0;padding:3px 8px;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:var(--primary);font-size:11px;font-weight:600;cursor:pointer}.kb-organize-drop-btn:hover{background:#dbeafe}.kb-organize-col-body{flex:1;overflow:auto;padding:8px;display:flex;flex-direction:column;gap:8px}.kb-organize-empty{margin:auto;padding:24px 8px;font-size:12px;color:#94a3b8;text-align:center}.kb-organize-card{display:flex;gap:8px;padding:10px;border:1px solid var(--border);border-radius:10px;background:#fff;transition:border-color .12s,box-shadow .12s,background .12s}.kb-organize-card:hover{border-color:#bfdbfe}.kb-organize-card.selected{border-color:var(--primary);background:#f8fbff;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 25%,transparent)}.kb-organize-card-check{padding-top:2px}.kb-organize-card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.kb-organize-card-title{font-size:13px;font-weight:600;line-height:1.35;color:var(--text)}.kb-organize-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--text-secondary)}.kb-organize-card-select{width:100%;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:#f8fafc;font-size:12px;color:var(--text)}.kb-organize-card-select:focus{outline:none;border-color:#93c5fd;background:#fff}@media(max-width:720px){.kb-organize-board{grid-template-columns:1fr}}.plc-workspace{display:flex;flex-direction:column;gap:14px}.plc-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(135deg,#f8fbff,#fff 55%)}.plc-toolbar-main{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.plc-project-pick{position:relative;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary)}.plc-project-pick.is-compact{z-index:5}.plc-project-pick.is-compact .plc-project-dropdown{left:auto;right:0}.plc-project-pick.is-compact .plc-project-trigger{min-width:240px;max-width:320px;padding:6px 10px}.plc-project-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:300px;max-width:440px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);cursor:pointer;text-align:left}.plc-project-trigger.open{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}.plc-project-trigger-text{display:flex;align-items:baseline;gap:8px;min-width:0;overflow:hidden}.plc-project-trigger-text strong{flex:0 0 auto;font-size:13px}.plc-project-trigger-text em{font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;color:var(--text)}.plc-project-dropdown{position:absolute;z-index:30;top:calc(100% + 6px);left:0;width:min(560px,calc(100vw - 48px));background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 28px #0f172a1f;overflow:hidden}.plc-project-filters{display:grid;grid-template-columns:1fr 110px 120px;gap:8px;padding:10px;border-bottom:1px solid var(--border);background:#f8fafc}.plc-project-search{display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:#fff}.plc-project-search input{flex:1;min-width:0;height:34px;border:none;outline:none;background:transparent;font-size:13px}.plc-project-filters select{height:36px;padding:0 8px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:13px;color:var(--text)}@media(max-width:640px){.plc-project-filters{grid-template-columns:1fr 1fr}.plc-project-search{grid-column:1 / -1}}.plc-project-list{max-height:280px;overflow-y:auto}.plc-project-option{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;padding:10px 14px;border:none;border-bottom:1px solid #f1f5f9;background:transparent;text-align:left;cursor:pointer}.plc-project-option:last-child{border-bottom:none}.plc-project-option:hover{background:#f8fafc}.plc-project-option.selected{background:#eff6ff}.plc-project-option-main{display:flex;flex-direction:column;gap:2px;min-width:0}.plc-project-option-main strong{font-size:12px;color:var(--primary)}.plc-project-option-main span{font-size:13px;font-weight:600;color:var(--text);line-height:1.4}.plc-project-option-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.plc-project-empty{padding:28px 12px;font-size:13px;color:var(--text-secondary);text-align:center}.plc-project-foot{padding:8px 14px;border-top:1px solid var(--border);background:#fafbfd;font-size:12px;color:var(--text-secondary)}.plc-toolbar-hint{margin:0;font-size:12px;color:var(--text-secondary)}.plc-docs{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;align-items:start}.plc-docs-stages{border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden}.plc-docs-stages-head{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border);font-size:13px;color:var(--text);background:#f8fafc}.plc-stage-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px 14px;border:none;border-bottom:1px solid #f1f5f9;background:#fff;text-align:left;font-size:13px;color:var(--text);cursor:pointer}.plc-stage-item:last-child{border-bottom:none}.plc-stage-item:hover{background:#f8fafc}.plc-stage-item.is-active{background:#f1f5f9;color:var(--primary);font-weight:600}.plc-stage-item em{font-style:normal;min-width:22px;padding:1px 7px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:11px;text-align:center}.plc-stage-item.is-active em{background:#dbeafe;color:#1d4ed8}@media(max-width:900px){.plc-docs{grid-template-columns:1fr}}.plc-progress{display:flex;flex-direction:column;gap:16px}.plc-progress-hero{display:flex;align-items:center;gap:22px;padding:20px 24px;border:1px solid #e2e8f0;border-radius:14px;background:linear-gradient(135deg,#f8fbff,#fff 45%,#f6faff);box-shadow:0 6px 18px #0f172a0a}.plc-ring{position:relative;flex:0 0 auto;width:108px;height:108px;border-radius:50%;background:conic-gradient(var(--primary) var(--pv, 0deg),#e6eefb 0deg)}.plc-ring-inner{position:absolute;top:10px;right:10px;bottom:10px;left:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:50%;background:#fff}.plc-ring-inner strong{font-size:24px;font-weight:700;color:var(--text)}.plc-ring-inner span{font-size:12px;color:var(--text-secondary)}.plc-hero-main{flex:1;min-width:0}.plc-hero-label{display:inline-block;margin-bottom:6px;padding:2px 10px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:600}.plc-hero-main h3{margin:0 0 6px;font-size:18px;color:var(--text)}.plc-hero-main p{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.6}.plc-hero-stats{display:flex;gap:12px;flex-wrap:wrap}.plc-hero-stat{display:flex;align-items:center;gap:10px;min-width:132px;padding:12px 14px;border:1px solid #e8eef7;border-radius:12px;background:#fff}.plc-hero-stat strong{display:block;font-size:18px;line-height:1.2;color:var(--text)}.plc-hero-stat span:not(.plc-hero-stat-icon){font-size:12px;color:var(--text-secondary)}.plc-hero-stat-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px}.plc-hero-stat-icon.tone-blue{background:#eff6ff;color:#2563eb}.plc-hero-stat-icon.tone-green{background:#ecfdf5;color:#059669}.plc-hero-stat-icon.tone-amber{background:#fffbeb;color:#d97706}.plc-hero-stat-icon.tone-red{background:#fef2f2;color:#dc2626}.plc-head-hint{font-size:12px;color:var(--text-secondary)}.plc-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:34px 12px;color:var(--text-secondary)}.plc-empty p{margin:0;font-size:13px}.plc-task-list{display:flex;flex-direction:column;gap:10px}.plc-task{display:grid;grid-template-columns:40px 1fr 180px 96px;align-items:center;gap:14px;padding:14px 16px;border:1px solid #e8eef7;border-left:3px solid #cbd5e1;border-radius:12px;background:#fff;transition:box-shadow .15s ease,transform .15s ease}.plc-task:hover{box-shadow:0 6px 16px #0f172a0f;transform:translateY(-1px)}.plc-task.is-done{border-left-color:#10b981}.plc-task.is-overdue{border-left-color:#ef4444;background:#fffbfb}.plc-task-index{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:#f1f5f9;color:#64748b;font-size:13px;font-weight:700}.plc-task.is-done .plc-task-index{background:#ecfdf5;color:#059669}.plc-task.is-overdue .plc-task-index{background:#fef2f2;color:#dc2626}.plc-task-main{min-width:0}.plc-task-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:6px}.plc-task-title strong{font-size:14px;color:var(--text)}.plc-task-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--text-secondary)}.plc-task-meta span{display:inline-flex;align-items:center;gap:4px}.plc-task-remark{margin-top:6px;padding:6px 10px;border-radius:8px;background:#f8fafc;font-size:12px;color:#475569;line-height:1.6}.plc-task-progress{display:flex;align-items:center;gap:10px}.plc-task-bar{flex:1;height:8px;border-radius:999px;background:#eef2f7;overflow:hidden}.plc-task-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#60a5fa,#2563eb)}.plc-task.is-done .plc-task-bar span{background:linear-gradient(90deg,#34d399,#059669)}.plc-task.is-overdue .plc-task-bar span{background:linear-gradient(90deg,#fca5a5,#dc2626)}.plc-task-value{min-width:38px;font-size:13px;font-weight:600;color:var(--text);text-align:right}.plc-task-actions{display:flex;justify-content:flex-end}.plc-task-modal-head{margin-bottom:14px;padding:12px 14px;border-radius:10px;background:#f8fafc}.plc-task-modal-head strong{display:block;margin-bottom:4px;font-size:14px}.plc-task-modal-head span{font-size:12px;color:var(--text-secondary)}.plc-plan-view{display:flex;flex-direction:column;gap:14px}.plc-plan-block span{display:block;margin-bottom:4px;font-size:12px;font-weight:600;color:var(--text-secondary)}.plc-plan-block p{margin:0;font-size:13px;line-height:1.7;color:var(--text);white-space:pre-wrap}.plc-plan-targets{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.plc-plan-targets>div{padding:10px 12px;border:1px solid #eef2f7;border-radius:10px;background:#fafbfd}.plc-plan-targets span{display:block;margin-bottom:3px;font-size:12px;color:var(--text-secondary)}.plc-plan-targets strong{font-size:13px;color:var(--text)}.plc-timeline{position:relative;margin:0;padding:4px 0 0 22px;list-style:none}.plc-timeline:before{content:"";position:absolute;top:10px;bottom:8px;left:5px;width:2px;background:linear-gradient(180deg,#dbeafe,#eef2f7)}.plc-tl-item{position:relative;padding-bottom:14px}.plc-tl-item:last-child{padding-bottom:0}.plc-tl-dot{position:absolute;top:16px;left:-21px;width:10px;height:10px;border:2px solid #fff;border-radius:50%;background:var(--primary);box-shadow:0 0 0 2px #dbeafe}.plc-tl-card{padding:14px 16px;border:1px solid #e8eef7;border-radius:12px;background:#fff;transition:box-shadow .15s ease}.plc-tl-card:hover{box-shadow:0 6px 16px #0f172a0f}.plc-tl-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.plc-tl-date{font-size:13px;font-weight:700;color:var(--text)}.plc-tl-head strong{font-size:13px;font-weight:600;color:var(--text-secondary)}.plc-tl-del{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid transparent;border-radius:8px;background:transparent;color:#94a3b8;cursor:pointer}.plc-tl-del:hover{border-color:#fecaca;background:#fef2f2;color:#dc2626}.plc-tl-content{margin:0 0 10px;font-size:13px;line-height:1.7;color:var(--text)}.plc-tl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.plc-tl-grid>div{padding:8px 12px;border-radius:10px;background:#f8fafc}.plc-tl-grid span{display:block;margin-bottom:3px;font-size:12px;color:var(--text-secondary)}.plc-tl-grid p{margin:0;font-size:13px;color:var(--text);line-height:1.6}.plc-tl-foot{margin-top:10px;font-size:12px;color:var(--text-secondary)}@media(max-width:1100px){.plc-progress-hero{flex-wrap:wrap}.plc-task{grid-template-columns:34px 1fr;row-gap:10px}.plc-task-progress,.plc-task-actions{grid-column:2}}.plc-proc-stack{display:flex;flex-direction:column;gap:14px}.plc-row-clickable{cursor:pointer}.plc-row-clickable:hover{background:#f8fafc}.plc-proc-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:18px}.plc-proc-summary>div{padding:10px 12px;border:1px solid #eef2f7;border-radius:10px;background:#fafbfd}.plc-proc-summary span{display:block;margin-bottom:4px;font-size:12px;color:var(--text-secondary)}.plc-proc-summary strong{font-size:13px;color:var(--text)}.plc-proc-section-title{margin:0 0 10px;font-size:14px;font-weight:600;color:var(--text)}.plc-plan-item-list{display:flex;flex-direction:column;gap:10px;margin-top:4px}.plc-plan-item-card{padding:14px 16px;border:1px solid #e8eef7;border-left:3px solid #93c5fd;border-radius:12px;background:#fff}.plc-plan-item-card.is-done{border-left-color:#10b981}.plc-plan-item-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:8px}.plc-plan-item-index{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:#f1f5f9;color:#64748b;font-size:12px;font-weight:700}.plc-plan-item-card.is-done .plc-plan-item-index{background:#ecfdf5;color:#059669}.plc-plan-item-head strong{display:block;margin-bottom:6px;font-size:14px}.plc-plan-item-tags{display:flex;flex-wrap:wrap;gap:6px}.plc-plan-item-content{margin:0 0 10px;font-size:13px;line-height:1.6;color:var(--text-secondary)}.plc-plan-item-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.plc-plan-item-grid>div{padding:8px 10px;border-radius:8px;background:#f8fafc}.plc-plan-item-grid span{display:block;margin-bottom:2px;font-size:12px;color:var(--text-secondary)}.plc-plan-item-grid strong{font-size:13px;color:var(--text)}.plc-plan-item-remind{margin-top:10px;font-size:12px;color:var(--text-secondary)}.plc-analytics .grid-2{align-items:stretch}.plc-stat-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:12px 16px;border:1px solid #e8eef7;border-radius:12px;background:linear-gradient(135deg,#f8fbff,#fff 60%)}.plc-stat-bar label{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--text-secondary)}.plc-stat-bar select{min-width:220px;height:34px;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);font-size:13px;font-weight:600}.plc-chart-card{border-radius:14px;overflow:hidden}.plc-chart-card .card-header{flex-wrap:wrap;gap:10px;border-bottom:1px solid #f1f5f9;background:linear-gradient(180deg,#fbfdff,#fff)}.plc-chart-card .card-header h3{font-size:15px}.plc-chart-hint{font-size:12px;color:var(--text-secondary)}.plc-chart-empty{display:flex;align-items:center;justify-content:center;min-height:220px;color:var(--text-secondary)}.plc-chart-empty p{margin:0;font-size:13px}.plc-seg{display:inline-flex;padding:3px;border:1px solid #e2e8f0;border-radius:999px;background:#f8fafc}.plc-seg-btn{padding:5px 14px;border:none;border-radius:999px;background:transparent;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:background .15s ease,color .15s ease}.plc-seg-btn:hover{color:var(--primary)}.plc-seg-btn.active{background:#fff;color:var(--primary);font-weight:600;box-shadow:0 1px 4px #0f172a1f}.plc-source-pie-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto}.plc-pie-wrap{display:grid;grid-template-columns:minmax(200px,1fr) minmax(190px,240px);align-items:center;gap:18px}.plc-pie-canvas{position:relative;width:100%;height:300px}.plc-pie-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none}.plc-pie-center strong{font-size:26px;font-weight:700;color:var(--text);line-height:1.1}.plc-pie-center strong em{margin-left:2px;font-size:12px;font-style:normal;font-weight:500;color:var(--text-secondary)}.plc-pie-center span{font-size:12px;color:var(--text-secondary)}.plc-pie-center.active{max-width:46%;text-align:center}.plc-pie-center-name{display:inline-flex;align-items:center;gap:5px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;color:var(--text)!important}.plc-pie-legend{display:flex;flex-direction:column;gap:2px;max-height:300px;margin:0;padding:0;overflow-y:auto;list-style:none}.plc-pie-legend li{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;font-size:12px}.plc-pie-legend li{cursor:default;transition:background .15s ease}.plc-pie-legend li:hover,.plc-pie-legend li.active{background:#f1f5f9}.plc-pie-dot{width:8px;height:8px;border-radius:50%}.plc-pie-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.plc-pie-count{color:var(--text-secondary);font-variant-numeric:tabular-nums}.plc-pie-percent{min-width:44px;color:var(--text);font-weight:600;text-align:right;font-variant-numeric:tabular-nums}@media(max-width:900px){.plc-pie-wrap{grid-template-columns:1fr}.plc-pie-legend{max-height:none}}.project-config-kb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.project-config-kb-card{display:flex;flex-direction:column;gap:6px;text-align:left;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.project-config-kb-card:hover:not(:disabled){border-color:#93c5fd;box-shadow:0 2px 8px #2563eb14}.project-config-kb-card.is-selected{border-color:#38bdf8;background:#f0f9ff}.project-config-kb-card strong{font-size:13px;color:var(--text);line-height:1.4}.project-config-kb-card em{font-style:normal;font-size:12px;color:var(--text-secondary)}.project-config-kb-card-top{display:flex;gap:6px;flex-wrap:wrap}.project-config-kb-check{display:inline-flex;align-items:center;gap:4px;margin-top:4px;color:#0284c7;font-size:12px;font-weight:600}.project-config-kb-picker-list{max-height:420px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.project-config-kb-picker-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;text-align:left;cursor:pointer}.project-config-kb-picker-row:hover{border-color:#93c5fd;background:#f8fafc}.project-config-kb-picker-row strong{display:block;font-size:13px}.project-config-kb-picker-row em{display:block;margin-top:2px;font-style:normal;font-size:12px;color:var(--text-secondary)}.kb-add-modal{width:min(920px,94vw);max-width:920px}.kb-add-modal-body{display:flex;flex-direction:column;gap:12px;max-height:68vh;padding-bottom:12px}.kb-add-toolbar{display:flex;flex-direction:column;gap:10px}.kb-add-search{margin:0}.kb-add-leaf-filter{display:flex;flex-wrap:wrap;gap:6px;max-height:72px;overflow-y:auto}.kb-add-leaf-chip{padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--text-secondary);font-size:12px;cursor:pointer;white-space:nowrap}.kb-add-leaf-chip:hover{border-color:#93c5fd;color:var(--primary)}.kb-add-leaf-chip.is-active{border-color:var(--primary);background:#eff6ff;color:var(--primary);font-weight:600}.kb-add-catalog{flex:1;min-height:280px;max-height:48vh;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding-right:2px}.kb-add-group-title{position:sticky;top:0;z-index:1;padding:6px 0 8px;background:linear-gradient(180deg,#fff 70%,#ffffffd9);color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.04em}.kb-add-leaf{margin-bottom:10px;border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden}.kb-add-leaf-head{display:flex;align-items:center;gap:8px;padding:10px 12px;background:linear-gradient(180deg,#f8fafc,#fff);border-bottom:1px solid #eef2f7}.kb-add-leaf-head strong{font-size:13px}.kb-add-leaf-head em{font-style:normal;font-size:12px;color:var(--text-secondary)}.kb-add-leaf-picked{margin-left:auto;padding:2px 8px;border-radius:999px;background:#ecfdf5;color:#047857;font-size:11px;font-weight:600}.kb-add-leaf-check{display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;cursor:pointer}.kb-add-leaf-empty{padding:14px 12px;color:var(--text-secondary);font-size:12px}.kb-add-node-toggle{display:flex;align-items:center;gap:6px;flex:1;min-width:0;padding:0;border:0;background:transparent;text-align:left;cursor:pointer;color:inherit}.kb-add-node-toggle strong{font-size:13px}.kb-add-node-toggle em,.kb-add-node-toggle span{font-style:normal;font-size:12px;color:var(--text-secondary)}.kb-add-node-toggle svg{flex-shrink:0;color:var(--text-secondary)}.kb-add-folder-list{display:flex;flex-direction:column;padding:6px 8px 8px 22px;gap:6px}.kb-add-folder{border:1px solid #eef2f7;border-radius:10px;overflow:hidden;background:#fff}.kb-add-folder-head{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#fbfcfe}.kb-add-folder-head .kb-add-node-toggle span{color:var(--text-primary, #0f172a);font-weight:600}.kb-add-folder-head .kb-add-node-toggle em{margin-left:auto;padding:1px 7px;border-radius:999px;background:#f1f5f9;font-size:11px}.kb-add-folder-empty{padding:10px 12px}.kb-add-entry-list{display:flex;flex-direction:column}.kb-add-entry-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid #f1f5f9;cursor:pointer;position:relative}.kb-add-entry-row:first-child{border-top:0}.kb-add-entry-row:hover{background:#f8fbff}.kb-add-entry-row.is-checked{background:#eff6ff}.kb-add-entry-row input{position:absolute;opacity:0;pointer-events:none}.kb-add-check{width:16px;height:16px;border:1.5px solid #cbd5e1;border-radius:4px;background:#fff;position:relative;flex-shrink:0}.kb-add-check.is-on,.kb-add-entry-row.is-checked .kb-add-check{border-color:var(--primary);background:var(--primary)}.kb-add-check.is-on:after,.kb-add-entry-row.is-checked .kb-add-check:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.kb-add-check.is-partial{border-color:var(--primary);background:#fff}.kb-add-check.is-partial:after{content:"";position:absolute;left:3px;top:6px;width:8px;height:2px;background:var(--primary);border-radius:1px}.kb-add-entry-main{min-width:0}.kb-add-entry-main strong{display:block;font-size:13px;line-height:1.35}.kb-add-entry-main em{display:block;margin-top:2px;font-style:normal;font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kb-add-footer{justify-content:space-between;align-items:center}.kb-add-count{font-size:13px;color:var(--text-secondary)}.kb-add-count strong{color:var(--primary)}.kb-add-footer-actions{display:flex;gap:8px}@media(max-width:720px){.kb-add-entry-row{grid-template-columns:18px minmax(0,1fr)}.kb-add-entry-row .tag,.kb-add-entry-row [class*=secrecy]{display:none}}.tabs .tab svg{vertical-align:-2px;margin-right:2px}.member-cell{display:flex;align-items:center;gap:8px}.member-avatar{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;font-size:12px;font-weight:600;flex-shrink:0}.member-avatar.lg{width:40px;height:40px;font-size:16px}.member-modal-header{align-items:flex-start}.member-modal-header p{margin:4px 0 0;font-size:12px;color:var(--text-secondary)}.member-modal-body{display:flex;flex-direction:column;gap:16px;max-height:62vh;overflow:auto}.member-form-block{display:flex;flex-direction:column;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg,#fbfdff,#fff 60%)}.member-form-block-head{display:flex;align-items:center;gap:10px}.member-form-block-head strong{display:block;font-size:13px}.member-form-block-head em{display:block;margin-top:2px;font-style:normal;font-size:12px;color:var(--text-secondary)}.member-form-step{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#eff6ff;color:var(--primary);font-size:12px;font-weight:700;flex-shrink:0}.member-form-preview{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #dbeafe;border-radius:10px;background:#f8fbff}.member-form-preview.is-empty{justify-content:center;border-style:dashed;border-color:var(--border);background:#fbfbfc;color:var(--text-secondary);font-size:12px;gap:6px}.member-form-preview-info strong{display:block;font-size:14px}.member-form-preview-info span{display:block;margin-top:2px;font-size:12px;color:var(--text-secondary)}.member-form-preview-auto{margin-left:auto;padding:3px 8px;border-radius:999px;background:#ecfdf5;color:#047857;font-size:11px;font-weight:600}.member-form-field{display:flex;flex-direction:column;gap:6px}.member-form-field input,.member-form-field textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-family:inherit;background:#fff}.member-form-field input:focus,.member-form-field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61f}.member-form-field textarea{resize:vertical}.member-permission-summary{display:flex;flex-wrap:wrap;gap:4px}.member-permission-note{display:flex;flex-wrap:wrap;gap:8px 18px;padding:9px 12px;border-radius:8px;background:#f8fafc;color:var(--text-secondary);font-size:12px}.member-permission-note strong{color:var(--text-primary)}.member-permission-modules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.member-permission-module{min-width:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fff}.member-permission-module-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;background:#f8fafc;border-bottom:1px solid var(--border)}.member-permission-module-head>div:first-child{min-width:0}.member-permission-module-head strong{display:block;font-size:13px}.member-permission-module-head span{display:block;margin-top:2px;color:var(--text-tertiary);font-size:11px}.member-permission-quick,.member-permission-levels{display:inline-flex;flex-shrink:0;border:1px solid var(--border);border-radius:6px;overflow:hidden}.member-permission-quick button,.member-permission-levels button{border:0;border-right:1px solid var(--border);padding:4px 7px;background:#fff;color:var(--text-secondary);font-size:11px;cursor:pointer}.member-permission-quick button:last-child,.member-permission-levels button:last-child{border-right:0}.member-permission-quick button.is-active,.member-permission-levels button.is-active{background:#eff6ff;color:#1d4ed8;font-weight:600}.member-permission-quick button.is-active.is-edit,.member-permission-levels button.is-active.is-edit{background:#ecfdf5;color:#047857}.member-permission-levels button.is-active.is-none{background:#f1f5f9;color:#64748b}.member-permission-pages{max-height:220px;overflow:auto}.member-permission-page{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-bottom:1px dashed var(--border)}.member-permission-page:last-child{border-bottom:0}.member-permission-page>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);font-size:12px}.member-permission-required{color:#b45309;font-size:12px}@media(max-width:760px){.member-permission-modules{grid-template-columns:1fr}.member-permission-module-head{align-items:flex-start;flex-direction:column}}.member-role-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.member-role-chip{padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s ease}.member-role-chip:hover{border-color:#93c5fd;color:var(--primary)}.member-role-chip.is-active{border-color:var(--primary);background:#eff6ff;color:var(--primary);font-weight:600}.wf-list-stats{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:14px;padding:10px 14px;background:#f8fafc;border:1px solid var(--border);border-radius:8px;font-size:13px;color:var(--text-secondary)}.wf-list-stats strong{color:var(--text-primary);font-weight:650;margin-left:4px}.wf-module-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.wf-module-panel{border:1px solid var(--border);border-radius:10px;background:#fff;overflow:hidden;min-width:0}.wf-module-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border);background:#f8fafc}.wf-module-panel-head h3{margin:0;font-size:14px;font-weight:650;display:inline-flex;align-items:center;gap:6px}.wf-module-panel-head p{margin:2px 0 0;font-size:12px;color:var(--text-secondary)}.wf-flow-rows{display:flex;flex-direction:column}.wf-flow-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border)}.wf-flow-row:last-child{border-bottom:none}.wf-flow-row.is-active{background:linear-gradient(90deg,rgba(16,185,129,.06),transparent 55%)}.wf-flow-row-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px}.wf-flow-row-title strong{font-size:13px;font-weight:650}.wf-flow-row-meta{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:12px;color:var(--text-tertiary)}.wf-flow-row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:220px}@media(max-width:1100px){.wf-module-board{grid-template-columns:1fr}}@media(max-width:720px){.wf-flow-row{grid-template-columns:1fr}.wf-flow-row-actions{max-width:none;justify-content:flex-start}}.wf-module-section{margin-bottom:24px}.wf-module-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.wf-module-section-head h3{margin:0;font-size:15px;font-weight:650}.wf-module-section-meta{font-size:12px;color:var(--text-secondary)}.wf-module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.wf-module-card .card-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.wf-module-desc{margin:0 0 12px;font-size:13px;color:var(--text-secondary);line-height:1.5;min-height:40px}.wf-module-meta{display:flex;flex-wrap:wrap;gap:10px 14px;font-size:12px;color:var(--text-tertiary);margin-bottom:12px}.wf-module-meta strong{color:var(--text-primary);font-weight:600}.wf-module-stage-list{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:6px;max-height:180px;overflow:auto}.wf-module-stage-list li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-primary)}.wf-module-stage-list em{font-style:normal;width:20px;height:20px;border-radius:50%;background:var(--primary-light, #e8f0fe);color:var(--primary);font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.wf-module-card-actions{display:flex;flex-wrap:wrap;gap:8px}.wf-fixed-stages{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:12px;padding:10px 14px;background:var(--bg-secondary, #f8fafc);border:1px solid var(--border);border-radius:8px;font-size:13px}.wf-fixed-stages strong{color:var(--text-secondary);font-weight:600;white-space:nowrap}.wf-fixed-stages ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.wf-fixed-stages li{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#fff;border:1px solid var(--border);border-radius:6px;font-size:12px}.wf-fixed-stages em{font-style:normal;color:var(--primary);font-weight:600}.wf-create-actions{display:flex;align-items:center;gap:8px}.wf-create-actions select{padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:#fff}.wf-module-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.wf-module-chip{border:1px solid var(--border);background:#fff;border-radius:999px;padding:6px 12px;font-size:13px;color:var(--text-secondary);display:inline-flex;align-items:center;gap:6px}.wf-module-chip em{font-style:normal;font-size:11px;color:var(--success);background:#ecfdf5;padding:1px 6px;border-radius:999px}.wf-module-chip.is-active{border-color:var(--primary);color:var(--primary);background:var(--primary-light);font-weight:600}.wf-row-actions{display:flex;flex-wrap:wrap;gap:6px}.wf-meta-card{margin-bottom:12px}.wf-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.wf-meta-grid label,.wf-inspector-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-secondary)}.wf-meta-grid input,.wf-meta-grid select,.wf-inspector-form input,.wf-inspector-form textarea,.wf-inspector-form select{padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-family:inherit;background:#fff;color:var(--text)}.wf-meta-desc{grid-column:1 / -1}.wf-hint-bar{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px;padding:10px 14px;background:#f8fafc;border:1px solid var(--border);border-radius:8px;font-size:12px;color:var(--text-secondary)}.wf-hint-bar span{display:inline-flex;align-items:center;gap:6px}.wf-canvas-wrap{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}.wf-canvas-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);background:#f8fafc}.wf-toolbar-sep{width:1px;height:20px;background:var(--border);margin:0 4px}.wf-toolbar-hint{font-size:12px;color:var(--text-secondary);margin-left:auto}.wf-canvas-body{display:grid;grid-template-columns:minmax(0,1fr) 280px;min-height:460px}.wf-canvas-viewport{position:relative;min-width:0;height:560px;overflow:auto;overscroll-behavior:contain;cursor:grab}.wf-canvas-viewport.is-panning{cursor:grabbing}.wf-canvas{position:relative;background:radial-gradient(circle at 1px 1px,#e2e8f0 1px,transparent 0) 0 0 / 20px 20px,linear-gradient(180deg,#fbfdff,#f8fafc)}.wf-edges{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.wf-canvas-viewport.is-linking{cursor:crosshair}.wf-edge{fill:none;stroke:var(--primary);stroke-width:2.4;pointer-events:stroke;cursor:pointer}.wf-edge-preview{fill:none;stroke:var(--accent, #0e7490);stroke-width:2.2;stroke-dasharray:7 5;pointer-events:none}.wf-edge-preview.is-corrected{stroke:#059669;stroke-dasharray:5 4}.wf-link-toast{margin:0;padding:8px 14px;font-size:13px;color:#0f766e;background:#f0fdfa;border-bottom:1px solid #99f6e4}.wf-link-toast.is-error{color:#b91c1c;background:#fef2f2;border-bottom-color:#fecaca}.wf-node.is-link-target{border-color:var(--accent, #0e7490);box-shadow:0 0 0 3px #0e74902e}.wf-node.is-link-invalid{border-color:#dc2626;box-shadow:0 0 0 3px #dc26262e}.wf-edge.is-serial{stroke:var(--primary)}.wf-edge.is-parallel{stroke:var(--accent);stroke-dasharray:6 5}.wf-edge-hit{fill:transparent;pointer-events:all;cursor:pointer}.wf-edge-hit:hover{fill:#dc262626}.wf-node{position:absolute;background:#fff;border:1.5px solid #cbd5e1;border-radius:10px;padding:10px 12px;box-shadow:var(--shadow);cursor:grab;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;justify-content:center;gap:6px;box-sizing:border-box;overflow:hidden;transition:border-color .15s,box-shadow .15s}.wf-node:active{cursor:grabbing}.wf-node.is-selected{border-color:var(--primary);box-shadow:0 0 0 3px #1a56db26}.wf-node.is-linking{border-color:var(--accent);box-shadow:0 0 0 3px #0e74902e}.wf-node-title{font-size:13px;font-weight:600;line-height:1.35;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.wf-node-meta{display:flex;align-items:center;gap:4px;min-width:0;font-size:11px;line-height:1.3;color:var(--text-secondary);flex-shrink:0}.wf-node-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-inspector{border-left:1px solid var(--border);padding:14px;background:#fff;overflow:auto}.wf-inspector h4{font-size:14px;margin-bottom:10px}.wf-inspector h5{font-size:12px;margin:12px 0 6px;color:var(--text-secondary)}.wf-inspector-empty{font-size:12px;color:var(--text-secondary);margin:8px 0}.wf-inspector-form{display:flex;flex-direction:column;gap:10px}.wf-check{flex-direction:row!important;align-items:center;gap:8px!important}.wf-edge-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;padding:6px 0;border-bottom:1px dashed var(--border)}.wf-edge-row-actions{display:flex;align-items:center;gap:4px}.wf-edge-row-actions .tag{border:none;cursor:pointer}.wf-legend{margin-top:18px;padding-top:12px;border-top:1px solid var(--border);font-size:12px;color:var(--text-secondary);display:flex;flex-direction:column;gap:8px}.wf-legend i{display:inline-block;width:22px;height:2px;margin-right:8px;vertical-align:middle}.wf-legend-serial{background:var(--primary)}.wf-legend-parallel{background:repeating-linear-gradient(90deg,var(--accent) 0 4px,transparent 4px 7px)}.proc-flow-bridge{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;color:var(--primary);font-size:10px;padding:0 2px;flex-shrink:0}.proc-flow-bridge[data-relation=parallel]{color:var(--accent)}.proc-flow-bridge em{font-style:normal;line-height:1}.wf-runtime-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:12px;color:var(--text-secondary)}.wf-runtime-tab.is-active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:600}.wf-runtime-tab.is-done{border-color:#86efac}.wf-runtime-tab.is-current:not(.is-active){border-color:#93c5fd}.wf-runtime-tab.is-locked{opacity:.55;cursor:not-allowed;background:#f8fafc}.wf-runtime-idx{width:18px;height:18px;border-radius:50%;background:#e2e8f0;color:#475569;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.wf-runtime-tab.is-active .wf-runtime-idx{background:var(--primary);color:#fff}.wf-runtime-panel{margin-top:12px;border:1px solid var(--border);border-radius:10px;background:#fff}.wf-runtime-panel-head{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);align-items:flex-start}.wf-runtime-panel-head h4{font-size:15px}.wf-runtime-panel-head p{margin-top:4px;font-size:12px;color:var(--text-secondary)}.wf-runtime-panel-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.wf-runtime-body{padding:14px}.wf-runtime-files{padding:12px 14px 14px;border-top:1px dashed var(--border);background:#f8fafc}.wf-runtime-files-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.wf-runtime-files-head strong{display:inline-flex;align-items:center;gap:6px;font-size:13px}.wf-file-list{list-style:none;display:flex;flex-direction:column;gap:6px}.wf-file-list li{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#fff;border:1px solid var(--border);border-radius:8px;font-size:12px}.wf-file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-file-list em{font-style:normal;color:var(--text-secondary)}@media(max-width:960px){.wf-canvas-body{grid-template-columns:1fr}.wf-inspector{border-left:none;border-top:1px solid var(--border)}.wf-meta-grid{grid-template-columns:1fr}}.wf-node.is-start,.wf-node.is-end{border-radius:50%;align-items:center;justify-content:center;text-align:center;gap:4px;padding:8px}.wf-node.is-start{border-color:#34d399;background:linear-gradient(180deg,#ecfdf5,#fff);color:#047857}.wf-node.is-end{border-color:#f87171;background:linear-gradient(180deg,#fef2f2,#fff);color:#b91c1c}.wf-node.is-start .wf-node-title,.wf-node.is-end .wf-node-title{font-size:12px}.wf-edge-hitpath{fill:none;stroke:transparent;stroke-width:16;pointer-events:stroke;cursor:pointer}.wf-edge.is-selected{stroke-width:3.2;filter:drop-shadow(0 0 2px rgba(26,86,219,.45))}.wf-edge-delete{pointer-events:all;cursor:pointer;opacity:0;transition:opacity .15s}.wf-edge-group:hover .wf-edge-delete,.wf-edge-delete.is-visible{opacity:1}.wf-edge-delete-bg{fill:#fee2e2;stroke:#dc2626;stroke-width:1.5}.wf-edge-delete:hover .wf-edge-delete-bg{fill:#fecaca}.wf-edge-delete-icon{display:flex;align-items:center;justify-content:center;width:14px;height:14px;color:#dc2626;line-height:0}.wf-edge-row-actions{display:inline-flex;align-items:center;gap:4px}.supplier-signup-table,.plan-detail-scroll.supplier-signup-table{overflow:visible}.supplier-signup-table .proj-client-dropdown{z-index:80}.proj-client-select--compact{gap:6px}.proj-client-select--compact .proj-client-trigger{padding:7px 10px}.proj-client-select--compact .proj-client-dropdown{min-width:280px;right:auto;z-index:80}.supplier-combo{position:relative}.supplier-combo-menu{position:absolute;z-index:40;left:0;right:auto;top:calc(100% + 4px);min-width:280px;max-width:420px;max-height:240px;overflow-y:auto;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 32px #0f172a29}.supplier-combo-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 12px;border:0;background:none;text-align:left;cursor:pointer}.supplier-combo-item:hover{background:#f8fafc}.supplier-combo-item strong{font-size:13px;color:var(--text)}.supplier-combo-item span{font-size:12px;color:var(--text-secondary)}.supplier-combo-empty{padding:10px 12px;font-size:12px;color:var(--text-secondary);line-height:1.5}.page-actions .btn{text-decoration:none}
