:root{color-scheme:light;--color-brand-50: #eff6ff;--color-brand-100: #dbeafe;--color-brand-200: #bfdbfe;--color-brand-300: #93c5fd;--color-brand-400: #60a5fa;--color-brand-500: #3b82f6;--color-brand-600: #2563eb;--color-brand-700: #1d4ed8;--color-brand-800: #1e40af;--color-brand-900: #1e3a8a;--color-pv-50: #f0f7f1;--color-pv-100: #dcebdd;--color-pv-500: #5f8f65;--color-pv-600: #4f7d55;--color-pv-700: #3f6544;--color-gold-50: #fbf8ef;--color-gold-100: #f2ead7;--color-gold-300: #d8c28f;--color-gold-500: #b99852;--color-gold-600: #9b7a3d;--color-gold-700: #765c2e;--color-success-bg: #d1fae5;--color-success-text: #065f46;--color-warning-bg: #fef3c7;--color-warning-text: #92400e;--color-error-bg: #fee2e2;--color-error-text: #991b1b;--color-info-bg: #dbeafe;--color-info-text: #1e40af;--color-bg: #f7faf8;--color-surface: rgba(255, 255, 255, .96);--color-surface-solid: #ffffff;--color-surface-muted: #f9fafb;--color-border: rgba(31, 55, 44, .12);--color-border-strong: rgba(185, 152, 82, .34);--color-text: #111827;--color-text-secondary: #4b5563;--color-text-tertiary: #6b7280;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 999px;--shadow-sm: 0 1px 3px rgba(16, 24, 40, .06);--shadow-md: 0 8px 22px rgba(39, 71, 55, .08);--shadow-lg: 0 16px 42px rgba(39, 71, 55, .12);--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 22px;--text-2xl: 28px;--text-3xl: 34px;--transition-fast: .16s ease-out;--transition-base: .26s ease-out;--page-max: 1440px;--safe-area-inset-top: env(safe-area-inset-top, 0px);--safe-area-inset-bottom: env(safe-area-inset-bottom, 0px)}[data-theme=dark]{--color-bg: #0f172a;--color-surface: rgba(15, 23, 42, .96);--color-surface-solid: #111827;--color-surface-muted: #1f2937;--color-border: rgba(255, 255, 255, .14);--color-text: #f9fafb;--color-text-secondary: #d1d5db;--color-text-tertiary: #9ca3af}.tx-page{min-height:100vh;min-width:0;max-width:100%;padding:clamp(16px,2vw,28px);padding-top:calc(clamp(16px,2vw,28px) + var(--safe-area-inset-top));background:radial-gradient(circle at top left,rgba(37,99,235,.06),transparent 34%),linear-gradient(180deg,#fbfdfb 0%,var(--color-bg) 100%);color:var(--color-text)}.tx-page-inner{width:min(var(--page-max),100%);min-width:0;margin:0 auto}.tx-page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-6);border:1px solid var(--color-border-strong);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-md)}.tx-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:var(--space-5)}.tx-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4)}.tx-dashboard-grid>*,.tx-metric-grid>*{min-width:0}@media(max-width:1024px){.tx-dashboard-grid{grid-template-columns:1fr}}@media(max-width:768px){.tx-page{padding:12px;padding-bottom:calc(76px + var(--safe-area-inset-bottom))}.tx-page-head{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);padding:var(--space-4)}.tx-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.tx-page{padding-right:10px;padding-left:10px}.tx-metric-grid{grid-template-columns:minmax(0,1fr)}}.tx-btn,.el-button{min-height:36px;border-radius:var(--radius-md);transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.el-button:hover,.tx-btn:hover{box-shadow:0 2px 8px #2563eb24;transform:translateY(-1px)}.el-button:active,.tx-btn:active{transform:translateY(0) scale(.99)}.el-button:focus-visible,.tx-btn:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:2px}.el-button--primary{--el-button-bg-color: var(--color-brand-600);--el-button-border-color: var(--color-brand-600);--el-button-hover-bg-color: var(--color-brand-700);--el-button-hover-border-color: var(--color-brand-700);--el-button-active-bg-color: var(--color-brand-800);--el-button-active-border-color: var(--color-brand-800)}.el-button.is-link{min-height:28px;padding:0 2px;color:var(--color-brand-700);text-decoration:underline;text-underline-offset:3px;box-shadow:none}@media(max-width:768px){.tx-btn,.el-button{min-height:44px;min-width:44px}}.el-input__wrapper,.el-select__wrapper,.el-textarea__inner{border-radius:var(--radius-md);box-shadow:0 0 0 1px var(--color-border) inset}.el-input__wrapper:hover,.el-select__wrapper:hover,.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--color-brand-300) inset}.el-form-item__label{color:var(--color-text-secondary);font-weight:700}@media(max-width:768px){.el-input__inner,.el-textarea__inner{font-size:16px}.el-form--inline{display:block;width:100%}.el-form--inline .el-form-item{display:flex;width:100%;margin-right:0}.el-form--inline .el-form-item__content,.el-form--inline .el-input,.el-form--inline .el-select,.el-form--inline .el-date-editor{width:100%;min-width:0}}.tx-badge{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:700;white-space:nowrap}.tx-badge--success,.el-tag.el-tag--success{background:var(--color-success-bg);color:var(--color-success-text);border-color:transparent}.tx-badge--warning,.el-tag.el-tag--warning{background:var(--color-warning-bg);color:var(--color-warning-text);border-color:transparent}.tx-badge--danger,.el-tag.el-tag--danger{background:var(--color-error-bg);color:var(--color-error-text);border-color:transparent}.tx-badge--info,.el-tag.el-tag--primary,.el-tag.el-tag--info{background:var(--color-info-bg);color:var(--color-info-text);border-color:transparent}.tx-card{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-md)}.tx-card--clickable{cursor:pointer}.tx-card--clickable:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.tx-card-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.el-table{--el-table-header-bg-color: var(--color-surface-muted);--el-table-header-text-color: var(--color-text-secondary);--el-table-row-hover-bg-color: var(--color-brand-50);width:100%;max-width:100%;border-radius:var(--radius-lg)}.el-table__inner-wrapper,.el-table__body-wrapper,.el-table .el-scrollbar__wrap{min-width:0;max-width:100%}.el-table__body-wrapper,.el-table .el-scrollbar__wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch}.el-table th.el-table__cell{height:44px;font-size:var(--text-xs);font-weight:700}.el-table .el-table__cell{padding:10px 0}.el-table__row{min-height:48px}@media(max-width:768px){.el-table{height:auto!important;font-size:var(--text-sm)}.el-table__inner-wrapper,.el-table__body-wrapper{height:auto!important}.el-table__body-wrapper{max-height:65vh}.el-table__fixed,.el-table__fixed-left,.el-table__fixed-right,.el-table__fixed-right-patch{display:none!important}}.el-progress-bar__outer{background:#edf2ee}.el-progress-bar__inner{background:linear-gradient(90deg,var(--color-pv-500),var(--color-brand-500));transition:width .42s ease-out}.tx-progress-rail{height:8px;overflow:hidden;border-radius:var(--radius-full);background:#edf2ee}.tx-progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-pv-500),var(--color-brand-500))}.tx-empty{display:grid;place-items:center;gap:var(--space-2);min-height:160px;color:var(--color-text-tertiary);text-align:center}.tx-loading-skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg,#eef2f0 25%,#f8faf9 37%,#eef2f0 63%);background-size:400% 100%;animation:tx-skeleton 1.2s ease-in-out infinite}@keyframes tx-skeleton{0%{background-position:100% 50%}to{background-position:0 50%}}.m-0{margin:0}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.grid{display:grid}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-brand{color:var(--color-brand-700)}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hidden-mobile{display:initial}.show-mobile-only{display:none}@media(max-width:768px){.hidden-mobile{display:none!important}.show-mobile-only{display:block}}html{scroll-behavior:smooth;max-width:100%;-webkit-text-size-adjust:100%}body{max-width:100%;color:var(--color-text);background:var(--color-bg)}#app,#app>*,main{min-width:0;max-width:100%}*{-webkit-tap-highlight-color:transparent}a,button,[role=button]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}:where(a[href],button,[role=button],input,textarea,select):focus-visible{outline:2px solid var(--color-brand-500);outline-offset:3px}.el-input__wrapper:focus-within,.el-select__wrapper:focus-within,.el-textarea__inner:focus-visible{box-shadow:0 0 0 2px var(--color-brand-500) inset!important}.tx-skip-link{position:fixed;z-index:10000;top:max(8px,var(--safe-area-inset-top));left:12px;padding:9px 14px;border-radius:var(--radius-md);background:var(--color-surface-solid);box-shadow:var(--shadow-md);color:var(--color-brand-700);font-size:var(--text-base);font-weight:700;opacity:0;pointer-events:none;transform:translateY(-140%);transition:opacity var(--transition-fast),transform var(--transition-fast)}.tx-skip-link:focus-visible{opacity:1;pointer-events:auto;transform:translateY(0)}#app-content:focus{outline:none}.el-scrollbar__wrap,.el-table__body-wrapper,.filter-scroll,.station-list,.timeline-panel,.log-box,.progress-feed,.progress-list,.notice-list,.health-board,.load-list,.stuck-list,.compare-table{-webkit-overflow-scrolling:touch}.tx-page-enter{animation:tx-page-enter .3s linear both}@keyframes tx-page-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){input,textarea,select,.el-input__inner,.el-textarea__inner{font-size:16px!important}}@media(hover:none){.panel:hover,.tx-card:hover,.tx-card--clickable:hover,.module-tab:hover,.el-button:hover,.tx-btn:hover{transform:none!important}}@media(hover:hover)and (pointer:fine){.tx-card--clickable:hover,.module-tab:hover,.el-button:hover,.tx-btn:hover{will-change:transform}}:root{--vi-white: #fbfaf6;--vi-surface: #ffffff;--vi-frost: #f7f5ee;--vi-gold: #c8ad73;--vi-gold-soft: #eee5d2;--vi-gold-hover: #b79a5e;--vi-green: #6f9f8d;--vi-green-soft: #edf5ef;--vi-green-hover: #5f8f7e;--vi-ink: #1f2a24;--vi-muted: #6f766f;--vi-line: #e6dfcf;--vi-line-green: #d7e4dc;--vi-shadow: 0 10px 30px rgba(111, 95, 55, .08);--vi-soft-shadow: 0 4px 14px rgba(111, 95, 55, .08);--vi-radius: 8px;--el-color-primary: var(--vi-green);--el-color-primary-light-3: #93b8aa;--el-color-primary-light-5: #b7d1c6;--el-color-primary-light-7: #d7e8df;--el-color-primary-light-8: #e4f0e9;--el-color-primary-light-9: var(--vi-green-soft);--el-color-primary-dark-2: var(--vi-green-hover);--el-color-success: var(--vi-green);--el-color-warning: var(--vi-gold);--el-color-info: var(--vi-muted);--el-border-radius-base: var(--vi-radius);--el-border-color: var(--vi-line);--el-border-color-light: #eee8da;--el-fill-color-light: var(--vi-frost);--el-text-color-primary: var(--vi-ink);--el-text-color-regular: var(--vi-muted);color:var(--vi-ink);background:var(--vi-white);font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:#e6dfcf59;border-radius:999px}*::-webkit-scrollbar-thumb{background:#c8ad738c;border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:#6f9f8dad}body{min-width:320px;margin:0;background:radial-gradient(circle at 12% 8%,rgba(200,173,115,.12),transparent 28%),linear-gradient(180deg,var(--vi-white) 0%,#f6f4ec 100%)}button,input{font:inherit}#app{min-height:100vh}.app-shell{min-height:100vh;padding:16px 20px;animation:page-soft-in .3s linear both}.app-shell h1,.page-title{color:#111;font-size:24px;font-weight:700}.panel-title h2,.card-title,.archive-card>span{color:#111;font-size:16px;font-weight:700}.el-form-item__label,.field-label{color:var(--vi-muted);font-size:14px;font-weight:400}.el-table .cell,.field-value{font-size:14px}.field-value,.metric-value{color:#111;font-weight:700}.top-bar{position:relative;display:flex;align-items:center;justify-content:center;gap:16px;min-height:74px;padding:2px 24px 14px;border-bottom:1px solid var(--vi-line)}.top-actions{position:absolute;right:0;top:12px;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;max-width:350px}.top-actions .el-button{min-height:32px;padding:7px 11px}@media(max-width:768px){.top-bar{padding-right:0;padding-left:0;flex-direction:column}.top-actions{position:static;max-width:none;justify-content:center}}.brand-center{display:grid;place-items:center;gap:4px;text-align:center}.module-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;width:min(960px,100%);margin:14px auto 0}.module-tab{display:inline-flex;align-items:center;justify-content:center;min-width:0;text-decoration:none;min-height:46px;border:1px solid var(--vi-line);border-radius:var(--vi-radius);padding:9px 18px;background:#ffffffc7;color:var(--vi-ink);font-size:16px;font-weight:700;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.module-tab:hover{border-color:var(--vi-gold);box-shadow:0 1px 8px #c8ad731f}.module-tab.active{border-color:var(--vi-green);background:linear-gradient(180deg,var(--vi-green-soft),#ffffff);color:var(--vi-green-hover);font-weight:700}.v4-entry-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:min(1180px,100%);margin:14px auto 0}.v4-entry-strip button{display:grid;gap:5px;min-height:72px;padding:12px 14px;border:1px solid rgba(196,165,93,.34);border-radius:var(--vi-radius);background:linear-gradient(180deg,#fffffff5,#f4f8f3e6);color:var(--vi-ink);text-align:left;cursor:pointer;box-shadow:0 8px 20px #2747370f;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.v4-entry-strip button:hover{border-color:var(--vi-green);box-shadow:0 10px 22px #4a74521a;transform:translateY(-1px)}.v4-entry-strip span{color:var(--vi-gold-hover);font-size:16px;font-weight:700}.v4-entry-strip strong{color:var(--vi-green-hover);font-size:13px;font-weight:600;line-height:1.45}.top-bar h1,.login-brand h1{margin:0;color:var(--vi-ink);font-size:30px;font-weight:700;letter-spacing:0}.system-name,.company-name,.login-brand p{margin:0 0 6px;color:var(--vi-muted);font-size:13px}.summary-strip{display:grid;grid-template-columns:repeat(7,minmax(112px,1fr));gap:8px;margin:10px 0 12px}.kpi-note{margin:-6px 0 10px;color:var(--vi-muted);font-size:12px;text-align:center}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:16px}.module-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:16px}.admin-shell{display:grid;gap:16px}.admin-card-grid{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:14px}.admin-module-card{display:grid;min-height:142px;align-content:space-between;gap:8px;border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:#ffffffeb;box-shadow:var(--vi-soft-shadow);color:var(--vi-ink);cursor:pointer;padding:14px;text-align:left;transition:border-color .2s linear,box-shadow .2s linear,transform .2s linear}.admin-module-card:hover{border-color:var(--vi-gold);box-shadow:0 8px 22px #6f5f371f;transform:translateY(-2px)}.admin-module-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:var(--vi-radius);background:var(--vi-green-soft);color:var(--vi-green-hover);font-weight:800}.admin-module-card strong{color:var(--vi-ink);font-size:16px}.admin-module-card p{margin:0;color:var(--vi-muted);font-size:13px;line-height:1.55}.admin-module-card em{color:var(--vi-gold-hover);font-style:normal;font-weight:700}.admin-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:#ffffffdb;box-shadow:var(--vi-soft-shadow);padding:12px 14px}.admin-detail-head span{color:var(--vi-ink);font-weight:800}.development-dashboard{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:16px}.development-dashboard-detail{grid-template-columns:minmax(0,1fr)}.development-main,.development-side{min-width:0}.development-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px}.development-tool-card{display:grid;min-height:158px;align-content:space-between;gap:9px;border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:linear-gradient(180deg,#fffffff7,#f7f5eedb);box-shadow:0 8px 20px #2a52460d;padding:12px;animation:panel-soft-in .3s linear both}.development-tool-card-green{border-top:3px solid var(--vi-green)}.development-tool-card-gold{border-top:3px solid var(--vi-gold)}.development-tool-top,.development-tool-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.development-tool-top span{color:var(--vi-muted);font-size:12px}.development-tool-top h3{margin:4px 0 0;color:var(--vi-ink);font-size:16px;font-weight:700}.development-tool-top strong{display:grid;min-width:48px;min-height:34px;place-items:center;border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:var(--vi-green-soft);color:var(--vi-green-hover);font-size:13px}.development-tool-card-gold .development-tool-top strong{background:var(--vi-gold-soft);color:var(--vi-gold-hover)}.development-tool-card p{margin:0;color:var(--vi-muted);font-size:13px;line-height:1.5}.solution-workspace{margin:18px 14px 14px;padding:18px;border:1px solid rgba(198,174,113,.32);border-radius:var(--vi-radius);background:linear-gradient(180deg,#fffffffa,#faf8f2d1);box-shadow:0 14px 32px #344f3e14}.solution-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.solution-project-row{display:grid;grid-template-columns:90px minmax(260px,1fr);gap:12px;align-items:center;margin:14px 0 16px;color:var(--vi-green-hover);font-weight:700}.solution-form{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:8px 14px}.solution-form .el-form-item{margin-bottom:6px}.solution-upload-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;margin-top:14px}.solution-upload-box{display:grid;gap:8px;align-content:start;padding:14px;border:1px solid rgba(137,164,117,.28);border-radius:var(--vi-radius);background:#ffffffc7}.solution-upload-box .el-tag{justify-self:start}.solution-upload-box strong,.solution-history strong,.solution-validation strong{color:var(--vi-green-hover);font-size:14px}.solution-upload-box span,.solution-note{color:var(--vi-muted);font-size:12px}.solution-note{margin-top:12px;padding:10px 12px;border-left:3px solid var(--vi-gold);background:var(--vi-gold-soft);border-radius:8px}.solution-validation{display:grid;gap:10px;margin-top:14px;padding:14px;border-radius:var(--vi-radius);background:var(--vi-green-soft)}.solution-check-list{display:flex;flex-wrap:wrap;gap:8px}.solution-check-list span{padding:6px 9px;border:1px solid rgba(198,174,113,.28);border-radius:999px;color:var(--vi-muted);background:#ffffffc2;font-size:12px}.solution-check-list span.pass{border-color:#7b997057;color:var(--vi-green-hover)}.solution-history{display:grid;gap:10px;margin-top:14px}.wide-panel{min-width:0}.panel-table,.side-panel{border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:#ffffffe6;box-shadow:var(--vi-soft-shadow);animation:panel-soft-in .3s linear both}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--vi-line)}.panel-title h2{margin:0;color:var(--vi-ink);font-size:16px}.panel-title span,.table-sub,.task-mini span{color:var(--vi-muted);font-size:12px}.panel-title.compact{padding:12px}.project-list-title{align-items:stretch}.project-tools{display:grid;grid-template-columns:auto auto 180px auto auto;align-items:center;gap:8px}.project-tools .el-input{width:180px}.batch-action-bar{display:flex;align-items:center;gap:8px;margin:10px 0 8px;padding:8px 10px;border:1px solid rgba(188,160,106,.28);border-radius:10px;background:#faf7efb8;color:var(--vi-ink);font-size:14px;font-weight:700}.project-overview-table{width:100%}.project-overview-table .el-table__header,.project-overview-table .el-table__body{min-width:1820px}.project-overview-table .el-table__cell{vertical-align:top}.project-name-link.el-button{height:auto;min-height:24px;padding:0;white-space:normal;word-break:break-word;text-align:left;line-height:1.45}.muted-line{display:block;margin-top:2px;color:var(--vi-muted);font-size:12px}.upload-drop{display:grid;min-height:92px;place-items:center;color:var(--vi-green-hover);font-weight:700}.table-header-tools{display:inline-flex;align-items:center;gap:6px;min-width:0}.mini-filter-button{min-height:24px;padding:2px 7px;border:1px solid var(--vi-line);border-radius:999px;background:#fff;color:var(--vi-green-hover);cursor:pointer;font-size:12px;line-height:1;transition:background-color .2s linear,border-color .2s linear,box-shadow .2s linear}.mini-filter-button:hover,.mini-filter-button.active{border-color:var(--vi-gold);background:var(--vi-gold-soft);color:var(--vi-ink);box-shadow:0 1px 6px #c8ad7324}.mini-filter-button.icon-only{width:24px;min-height:24px;padding:0;display:inline-grid;place-items:center}.filter-chevron{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-1px) rotate(45deg);transition:transform .2s linear}.mini-filter-button.icon-only.active .filter-chevron,.mini-filter-button.icon-only:hover .filter-chevron{transform:translateY(1px) rotate(45deg)}.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;color:var(--vi-muted);font-size:13px}.filter-menu,.sort-menu{display:grid;gap:10px}.filter-scroll{max-height:240px;overflow-y:auto;padding:2px 4px 2px 0}.range-filter-row,.inline-region-fields,.date-input-combo{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px}.inline-region-fields,.date-input-combo{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.filter-scroll .el-checkbox-group,.sort-menu .el-radio-group{display:grid;gap:8px}.filter-scroll .el-checkbox{align-items:flex-start;height:auto;margin-right:0;white-space:normal}.filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:8px;border-top:1px solid var(--vi-line)}.filter-actions span{margin-right:auto;color:var(--vi-muted);font-size:12px}.search-result-note{padding:10px 16px;border-bottom:1px solid var(--vi-line);color:var(--vi-muted);font-size:13px}.adjust-mode-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;color:var(--vi-muted);font-size:13px}.side-stack{display:grid;gap:16px;align-content:start}.station-list{display:grid;max-height:220px;overflow:auto;padding:10px;gap:8px}.station-dashboard{grid-template-columns:minmax(0,1fr) minmax(300px,340px)}.station-visual-panel{overflow:hidden}.station-analysis-toolbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;border-bottom:1px solid var(--vi-line);padding:10px 12px;background:var(--vi-frost)}.station-analysis-toolbar label{display:grid;min-width:132px;gap:5px;color:var(--vi-muted);font-size:12px}.station-analysis-toolbar label:has(.el-input-number){grid-template-columns:minmax(120px,1fr) auto}.station-analysis-toolbar label:has(.el-input-number)>span{grid-column:1 / -1}.station-analysis-toolbar .el-select,.station-analysis-toolbar .el-input-number{width:150px}.station-analysis-toolbar em{align-self:center;color:var(--vi-muted);font-size:11px;font-style:normal}.station-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px}.station-kpi,.station-chart-card,.station-focus{border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:linear-gradient(180deg,#fffffff5,#f8fbf7e6);box-shadow:0 8px 20px #2a52460d}.station-kpi{display:grid;min-height:72px;align-content:center;gap:5px;padding:9px 10px;animation:panel-soft-in .3s linear both}.station-kpi span,.station-focus span,.chart-head span{color:var(--vi-muted);font-size:12px}.station-kpi strong{color:var(--vi-green-hover);font-size:20px;line-height:1.1}.station-kpi em,.station-focus em,.chart-head strong{color:var(--vi-gold-hover);font-style:normal;font-size:12px}.station-focus{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 12px 12px;padding:12px}.station-focus div{display:grid;gap:4px}.station-focus strong{color:var(--vi-ink);font-size:18px}.station-focus .el-select{width:220px}.station-data-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0 12px 12px;border:1px solid var(--vi-line);background:var(--vi-line)}.station-data-grid>div{display:grid;min-width:0;min-height:52px;align-content:center;gap:5px;padding:9px 10px;background:#fff}.station-data-grid span{color:var(--vi-muted);font-size:11px}.station-data-grid strong{overflow-wrap:anywhere;color:var(--vi-ink);font-size:13px}.station-data-wide{grid-column:span 2}.station-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 12px 12px}.station-chart-card{min-height:196px;padding:10px}.chart-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.chart-head .el-segmented{--el-segmented-item-selected-bg-color: var(--vi-green-soft);--el-segmented-item-selected-color: var(--vi-green-hover);flex-shrink:0}.chart-subtitle{margin:-2px 0 8px;color:var(--vi-muted);font-size:12px}.curve-chart{display:block;width:100%;height:150px;overflow:visible;border-bottom:1px solid var(--vi-line);border-left:1px solid var(--vi-line)}.curve-chart polygon{fill:#c8ad7329}.curve-chart polyline{fill:none;stroke:var(--vi-gold-hover);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:220;animation:chart-line-in .8s linear both}.curve-chart.green polygon{fill:#6a977a26}.curve-chart.green polyline{stroke:var(--vi-green-hover)}.curve-bar-chart{display:flex;height:150px;align-items:flex-end;gap:3px;overflow:hidden;border-bottom:1px solid var(--vi-line);border-left:1px solid var(--vi-line);padding:8px 6px 0}.curve-bar-chart span{display:flex;min-width:2px;height:100%;flex:1 1 0;align-items:flex-end}.curve-bar-chart i{display:block;width:100%;min-height:3px;border-radius:2px 2px 0 0;background:var(--vi-gold-hover);transition:height .22s ease-out}.curve-bar-chart.green i{background:var(--vi-green-hover)}.chart-empty,.empty-note{display:grid;min-height:150px;place-items:center;color:var(--vi-muted);font-size:13px}.station-side{align-content:start}.station-insights{display:grid;gap:8px;padding:12px}.station-insights p{margin:0;border-left:3px solid var(--vi-gold);border-radius:0 8px 8px 0;background:var(--vi-frost);padding:9px 10px;color:var(--vi-ink);font-size:13px;line-height:1.6}.station-row,.task-mini{display:grid;gap:4px;border:1px solid var(--vi-line);border-radius:var(--vi-radius);padding:10px;background:#ffffffd1;animation:panel-soft-in .3s linear both}.station-row{width:100%;text-align:left;color:var(--vi-ink);cursor:pointer;transition:border-color .2s linear,background-color .2s linear,box-shadow .2s linear}.station-row:hover,.station-row.active{border-color:var(--vi-gold);background:var(--vi-gold-soft);box-shadow:0 1px 8px #c8ad7324}.station-row span{color:var(--vi-muted);font-size:12px}.text-link{border:0;background:transparent;color:var(--vi-green-hover);cursor:pointer;font:inherit;font-weight:700;padding:0}.text-link:hover{color:var(--vi-gold-hover)}.report-box{max-height:260px;overflow:auto;margin:0;padding:12px;color:var(--vi-ink);white-space:pre-wrap;line-height:1.7;font-family:inherit}.report-box.full{max-height:560px}.mini-list{display:grid;gap:10px;padding:14px;color:var(--vi-muted);line-height:1.7}.mini-list p{margin:0}.task-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;padding:14px}.task-panel-head{align-items:flex-start}.task-tools{display:grid;grid-template-columns:180px 120px 130px auto;align-items:center;gap:8px}.task-title-text{display:block;color:var(--vi-ink);font-weight:700}.task-title-text+small{display:block;margin-top:4px;color:var(--vi-muted);line-height:1.45}.el-table .task-row-urgent td:first-child{border-left:4px solid #b75b55}.el-table .task-row-high td:first-child{border-left:4px solid var(--vi-gold)}.el-table .task-row-delayed td:first-child{border-left:4px solid #aeb8ad}.el-table .task-row-done-today td:first-child{border-left:4px solid var(--vi-green)}.done-list p{display:grid;gap:4px;border-left:3px solid var(--vi-green);padding-left:10px}.done-list strong{color:var(--vi-ink)}.done-list span{color:var(--vi-muted);font-size:12px}.report-dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.report-module{min-width:0}.report-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;padding:12px}.report-metric-card{display:grid;gap:6px;min-height:64px;align-content:center;border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:linear-gradient(180deg,#ffffff,var(--vi-frost));padding:9px 10px}.report-metric-card span{color:var(--vi-green-hover);font-size:13px;font-weight:700}.report-metric-card strong{color:var(--vi-ink);font-size:18px}.report-task-list{display:grid;gap:8px;padding:12px}.report-task-list p{display:grid;gap:4px;margin:0;border-left:3px solid var(--vi-gold);border-radius:0 8px 8px 0;background:var(--vi-frost);padding:9px 10px}.report-task-list strong{color:var(--vi-ink)}.report-task-list span{color:var(--vi-muted);font-size:12px}.report-risk-list{margin:0;padding:8px 18px 12px;color:var(--vi-ink);line-height:1.7}.permission-editor{display:grid;gap:14px}.permission-matrix-dialog .el-dialog__body{max-height:72vh;overflow:auto}.permission-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:var(--vi-frost);padding:12px}.permission-toolbar .el-select{width:220px}.permission-section{display:grid;gap:10px;border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:#fff;padding:14px}.permission-section h3{margin:0;color:var(--vi-green-hover);font-size:15px;font-weight:700}.permission-section>.el-select{width:100%}.section-actions.compact-actions{display:flex;flex-wrap:wrap;gap:8px}.row-actions{display:inline-flex;flex-wrap:wrap;gap:6px}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-height:520px;overflow:auto;padding-right:4px}.permission-group{border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:linear-gradient(180deg,#ffffff,var(--vi-frost));padding:12px}.permission-group h3{margin:0 0 10px;color:var(--vi-green-hover);font-size:15px}.permission-group .el-checkbox-group{display:grid;gap:8px}.permission-group .el-checkbox{height:auto;margin-right:0;white-space:normal}.manual-entry{display:grid;gap:14px}.manual-actions{display:flex;align-items:center;gap:12px;color:var(--vi-muted);font-size:13px}.manual-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.edit-form{display:grid;gap:2px}.section-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end}.summary-item{display:grid;min-height:54px;align-content:center;justify-items:center;padding:8px 10px;border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:linear-gradient(180deg,#fffffff5,#f7f5eed1);text-align:center;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.summary-item:hover{border-color:var(--vi-gold);box-shadow:0 1px 9px #c8ad7329}.summary-item span,.capacity-block span,.project-card-footer span,.panel-heading span,.detail-fields dt{display:block;color:var(--vi-muted);font-size:13px}.summary-item span{color:var(--vi-green-hover);font-size:14px;font-weight:700}.summary-item strong{display:inline-block;margin-top:3px;color:var(--vi-ink);font-size:16px;font-weight:700;letter-spacing:0}.summary-item em{display:inline-block;margin-left:6px;color:var(--vi-gold-hover);font-size:13px;font-style:normal;font-weight:700}.jump-frame{scroll-margin-top:12px;transition:border-color .24s ease,box-shadow .24s ease,transform .24s ease}.jump-frame-active{border-color:var(--vi-gold)!important;box-shadow:0 0 0 3px #c8ad7324,var(--vi-soft-shadow);transform:translateY(-1px)}.page-alert{margin-bottom:16px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;min-height:280px}.project-card{display:flex;flex-direction:column;justify-content:space-between;min-height:220px;padding:18px;border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:#ffffffeb;box-shadow:var(--vi-soft-shadow)}.project-card-main{display:grid;gap:18px}.project-card h2{min-height:58px;margin:0;color:var(--vi-ink);font-size:20px;font-weight:700;line-height:1.45;letter-spacing:0;overflow-wrap:anywhere}.company-name{overflow-wrap:anywhere}.capacity-block{padding:14px;border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:linear-gradient(180deg,#ffffff,var(--vi-frost))}.capacity-block strong{display:block;margin-top:6px;color:var(--vi-green-hover);font-size:24px;font-weight:700;letter-spacing:0}.project-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid var(--vi-line)}.project-meta{display:grid;gap:4px;min-width:0}.project-card-footer span{overflow-wrap:anywhere}.empty-state{grid-column:1 / -1;min-height:240px;border:1px dashed var(--vi-gold);border-radius:var(--vi-radius);background:#ffffffe0}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:radial-gradient(circle at 50% 10%,rgba(111,159,141,.12),transparent 30%),linear-gradient(180deg,var(--vi-white),#f3efe4)}.login-panel{width:min(420px,100%);padding:28px;border:1px solid var(--vi-line);border-radius:12px;background:#ffffffe6;box-shadow:var(--vi-shadow);animation:panel-soft-in .3s linear both}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:28px}.brand-mark{display:grid;width:44px;height:44px;place-items:center;border:1px solid rgba(200,173,115,.4);border-radius:10px;background:linear-gradient(145deg,var(--vi-green),#88b4a0);color:#fff;box-shadow:0 6px 18px #6f9f8d2e;font-weight:700}.login-form{display:grid;gap:2px}.login-submit{width:100%;margin-top:8px}.login-memory-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-2px 0 4px}.login-memory-options .el-checkbox{margin:0}.login-quick-entry{width:100%;margin:8px 0 0!important}.public-login-page{min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 50% -10%,rgba(212,175,55,.22),transparent 26%),radial-gradient(circle at 12% 18%,rgba(46,124,246,.22),transparent 32%),linear-gradient(180deg,#060910,#0a1a33 48%,#060910);color:#eaf0f7;animation:page-soft-in .3s linear both}.public-nav{position:fixed;z-index:20;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(18px,4vw,56px);border-bottom:1px solid rgba(234,240,247,.08);background:#060910b8;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.public-brand{display:inline-flex;align-items:center;gap:10px;color:#eaf0f7;text-decoration:none}.public-brand span{display:grid;width:38px;height:38px;place-items:center;border:1px solid rgba(212,175,55,.45);border-radius:10px;background:linear-gradient(135deg,#2e7cf6f2,#d4af37e6);color:#fff;font-weight:800}.public-brand strong,.public-brand small{display:block;line-height:1.1}.public-brand small{color:#8a9bb5;font-size:11px;text-transform:uppercase}.public-nav-actions{display:flex;align-items:center;gap:14px}.public-nav-actions a,.public-nav-actions button{border:0;background:transparent;color:#c9d4e5;cursor:pointer;font-size:14px;text-decoration:none;transition:color .25s ease,border-color .25s ease,background .25s ease,box-shadow .25s ease}.public-nav-actions a:hover,.public-nav-actions button:hover{color:#f2d479}.public-login-link{min-height:36px;padding:0 16px;border:1px solid rgba(212,175,55,.48)!important;border-radius:999px}.public-login-link:hover{background:#d4af371a!important;box-shadow:0 1px 8px #d4af372e}.public-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,460px);gap:clamp(24px,5vw,72px);min-height:100vh;align-items:center;padding:116px clamp(18px,6vw,86px) 72px}.dawn-horizon{position:absolute;top:22%;left:-8%;right:-8%;height:120px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(212,175,55,.18),rgba(242,212,121,.52),rgba(46,124,246,.16),transparent),radial-gradient(ellipse at center,rgba(242,212,121,.3),transparent 62%);filter:blur(10px);opacity:.78;animation:horizon-breathe 6s ease-in-out infinite alternate}.solar-grid{position:absolute;left:8%;right:8%;bottom:38px;display:grid;grid-template-columns:repeat(14,minmax(24px,1fr));gap:8px;perspective:560px;transform:rotateX(64deg);opacity:.34}.solar-grid i{height:52px;border:1px solid rgba(46,124,246,.22);border-radius:3px;background:linear-gradient(145deg,#2e7cf62e,#eaf0f708)}.public-hero-copy,.public-login-card,.public-stats article,.public-business-grid article,.public-ecosystem{animation:panel-soft-in .55s cubic-bezier(.16,1,.3,1) both}.hero-eyebrow,.public-section-heading span,.public-ecosystem span:first-child{margin:0 0 16px;color:#d4af37;font-size:12px;font-weight:700;letter-spacing:.2em}.public-hero-copy h1{max-width:780px;margin:0;color:#fff;font-size:clamp(42px,7vw,92px);line-height:1.04;font-weight:800}.public-hero-copy h2{max-width:720px;margin:18px 0 0;color:#f2d479;font-size:clamp(21px,2.4vw,34px);line-height:1.25;font-weight:600}.public-hero-copy p:not(.hero-eyebrow){max-width:680px;margin:22px 0 0;color:#b8c5d8;font-size:18px;line-height:1.8}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}.hero-actions button,.hero-actions a{display:inline-flex;align-items:center;min-height:46px;border-radius:999px;padding:0 22px;color:#fff;font-weight:700;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.hero-actions button{border:0;background:linear-gradient(135deg,#2e7cf6,#d4af37);cursor:pointer}.hero-actions a{border:1px solid rgba(234,240,247,.18);background:#eaf0f70f}.hero-actions button:hover,.hero-actions a:hover{transform:translateY(-2px);box-shadow:0 8px 24px #2e7cf62e}.public-login-card{position:relative;z-index:2;border:1px solid rgba(234,240,247,.12);border-radius:18px;padding:26px;background:#0a1a33c2;box-shadow:0 24px 70px #00000057;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.login-card-kicker{color:#d4af37;font-size:13px;font-weight:700}.public-login-card h3{margin:10px 0 8px;color:#fff;font-size:28px}.public-login-card p{margin:0 0 20px;color:#8a9bb5}.public-login-card .el-form-item__label{color:#d7e0ee}.public-login-card .el-input__wrapper{background:#eaf0f714;box-shadow:0 0 0 1px #eaf0f724 inset}.public-login-card .el-input__inner{color:#fff}.public-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border-top:1px solid rgba(234,240,247,.08);border-bottom:1px solid rgba(234,240,247,.08);background:#eaf0f714}.public-stats article{min-height:132px;padding:24px clamp(18px,3vw,36px);background:#060910c7}.public-stats strong{display:block;color:#f2d479;font-size:clamp(28px,4vw,48px);font-variant-numeric:tabular-nums}.public-stats span{display:block;margin-top:8px;color:#b8c5d8}.public-section{padding:clamp(72px,10vw,118px) clamp(18px,6vw,86px)}.public-section-heading{max-width:760px}.public-section h2{margin:0;color:#fff;font-size:clamp(32px,4vw,56px);line-height:1.12}.public-section p{color:#aab8cc;line-height:1.8}.public-business-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:34px}.public-business-grid article{min-height:190px;border:1px solid rgba(234,240,247,.1);border-radius:16px;padding:22px;background:linear-gradient(180deg,#eaf0f714,#eaf0f708);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.public-business-grid article:hover{transform:translateY(-4px);border-color:#d4af376b;box-shadow:0 14px 34px #00000038}.public-business-grid h3{margin:0 0 12px;color:#f2d479;font-size:22px}.public-ecosystem{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:38px;align-items:center;border-top:1px solid rgba(234,240,247,.08)}.ecosystem-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.ecosystem-list span{display:grid;min-height:76px;place-items:center;border:1px solid rgba(212,175,55,.22);border-radius:14px;background:#eaf0f70f;color:#eaf0f7;font-weight:800}.website-admin-panel{grid-column:1 / -1}.website-admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.92fr);gap:18px}.website-settings-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.website-settings-form .el-form-item:nth-last-child(-n+3){grid-column:1 / -1}.website-admin-tables{display:grid;align-content:start;gap:14px}.mini-table-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--vi-ink)}.mini-table-title span{color:var(--vi-muted);font-size:12px}.public-login-page{background:radial-gradient(circle at 12% 12%,rgba(200,173,115,.16),transparent 28%),radial-gradient(circle at 86% 20%,rgba(111,159,141,.18),transparent 26%),linear-gradient(180deg,#fffdf8,#f6f4ec 52%,#fff);color:var(--vi-ink)}.public-nav{border-bottom:1px solid rgba(230,223,207,.9);background:#ffffffd1;box-shadow:0 8px 24px #6f5f370f}.public-brand,.public-nav-actions a,.public-nav-actions button{color:var(--vi-ink)}.public-brand span{border-color:#c8ad738f;background:linear-gradient(135deg,var(--vi-green),var(--vi-gold))}.public-brand small,.public-login-card p,.public-section p,.public-stats span{color:var(--vi-muted)}.public-nav-actions a:hover,.public-nav-actions button:hover{color:var(--vi-gold-hover)}.public-hero{overflow:hidden}.public-hero-media,.public-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.public-hero-media{object-fit:cover;opacity:.28;filter:saturate(.86) contrast(.98)}.public-hero-overlay{background:linear-gradient(90deg,#fffffff0,#ffffffd1 46%,#ffffffb3),linear-gradient(180deg,#ffffff14,#edf5efb8)}.public-hero-copy,.public-login-card{position:relative;z-index:2}.dawn-horizon{background:linear-gradient(90deg,transparent,rgba(200,173,115,.18),rgba(111,159,141,.22),transparent),radial-gradient(ellipse at center,rgba(200,173,115,.22),transparent 62%)}.solar-grid i{border-color:#6f9f8d42;background:linear-gradient(145deg,#6f9f8d2e,#fff3)}.hero-eyebrow,.public-section-heading span,.public-ecosystem span:first-child,.login-card-kicker{color:var(--vi-gold-hover)}.public-hero-copy h1,.public-section h2,.public-login-card h3{color:var(--vi-ink)}.public-hero-copy h2,.public-business-grid h3{color:var(--vi-green-hover)}.public-hero-copy p:not(.hero-eyebrow){color:#516158}.hero-actions button{background:linear-gradient(135deg,var(--vi-green),var(--vi-gold))}.hero-actions a,.public-login-card,.public-business-grid article,.public-case-card,.public-ecosystem{border-color:var(--vi-line);background:#ffffffd6;box-shadow:var(--vi-soft-shadow)}.hero-actions a{color:var(--vi-green-hover)}.public-login-card{border-radius:14px}.public-login-card .el-form-item__label,.public-login-card .el-input__inner{color:var(--vi-ink)}.public-login-card .el-input__wrapper{background:#ffffffe6;box-shadow:0 0 0 1px var(--vi-line) inset}.public-stats{border-color:var(--vi-line);background:var(--vi-line)}.public-stats article{background:#ffffffe6}.public-stats strong{color:var(--vi-gold-hover);font-size:clamp(22px,2.6vw,34px)}.public-business-grid article:hover,.public-case-card:hover{border-color:var(--vi-gold);box-shadow:0 10px 28px #6f5f371f}.public-visual-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:28px}.public-visual-row img{width:100%;height:220px;border:1px solid var(--vi-line);border-radius:var(--vi-radius);object-fit:cover;box-shadow:var(--vi-soft-shadow)}.public-case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:34px}.public-case-card{overflow:hidden;border:1px solid var(--vi-line);border-radius:var(--vi-radius);transition:transform .25s linear,border-color .25s linear,box-shadow .25s linear}.public-case-card:hover{transform:translateY(-3px)}.public-case-card img,.case-image-placeholder{width:100%;height:190px;object-fit:cover}.case-image-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#6f9f8d2e,#c8ad732e),repeating-linear-gradient(90deg,transparent 0 18px,rgba(111,159,141,.1) 18px 20px);color:var(--vi-green-hover);font-weight:800;font-size:40px}.public-case-card div:last-child{padding:18px}.public-case-card span,.public-case-card em{color:var(--vi-gold-hover);font-size:12px;font-style:normal;font-weight:700}.public-case-card h3{margin:8px 0;color:var(--vi-ink);font-size:20px}.public-contact{color:var(--vi-green-hover)!important;font-weight:700}.ecosystem-list span{border-color:var(--vi-line);background:var(--vi-green-soft);color:var(--vi-green-hover)}.public-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;padding:18px;border-top:1px solid var(--vi-line);color:var(--vi-muted);background:#ffffffc7;font-size:13px}.reveal-on-scroll{opacity:0;transform:translateY(18px);transition:opacity .45s ease-out,transform .45s ease-out}.reveal-on-scroll.is-visible{opacity:1;transform:translateY(0)}.public-hero-video{display:block}.public-hero-mobile-image{display:none}.centered{margin-inline:auto;text-align:center}.cooperation-section{display:grid;gap:30px;border-top:1px solid var(--vi-line);border-bottom:1px solid var(--vi-line);background:linear-gradient(135deg,#fffffff5,#edf5efe0),radial-gradient(circle at 50% 0%,rgba(200,173,115,.18),transparent 32%)}.cooperation-logos{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr);gap:clamp(14px,3vw,34px);align-items:center;width:min(900px,100%);margin:0 auto}.cooperation-logos>strong{color:var(--vi-gold-hover);font-size:clamp(34px,5vw,58px)}.cooperation-logo{display:grid;min-height:130px;place-items:center;border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:#ffffffe0;box-shadow:var(--vi-soft-shadow);color:var(--vi-ink);font-size:clamp(20px,3vw,30px);font-weight:800;text-align:center}.cooperation-logo img{max-width:70%;max-height:76px;object-fit:contain}.cooperation-logo-tw{color:var(--vi-muted);font-size:clamp(16px,2vw,24px)}.cooperation-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.cooperation-values article,.strength-grid article,.service-timeline article,.case-detail-blocks article{border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:#ffffffe6;box-shadow:var(--vi-soft-shadow);padding:20px}.cooperation-values strong,.service-timeline h3,.case-detail-blocks h3{color:var(--vi-green-hover);font-size:18px}.public-strength{background:#ffffff9e}.strength-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:32px}.strength-grid strong{display:block;color:var(--vi-gold-hover);font-size:clamp(32px,5vw,54px);font-variant-numeric:tabular-nums}.strength-grid span{color:var(--vi-muted)}.solution-grid article{min-height:420px;overflow:hidden}.solution-grid img{width:calc(100% + 44px);height:190px;margin:-22px -22px 18px;object-fit:cover;transition:transform .35s ease,filter .35s ease}.solution-grid article:hover img{transform:scale(1.04);filter:saturate(1.06)}.public-case-card{color:inherit;text-decoration:none}.case-image-placeholder span{color:var(--vi-muted);font-size:20px}.service-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:34px;counter-reset:service-step}.service-timeline article{position:relative;overflow:hidden}.service-timeline article:before{position:absolute;inset:0 auto 0 0;width:3px;content:"";background:linear-gradient(180deg,var(--vi-gold),var(--vi-green))}.service-timeline article>span{display:grid;width:38px;height:38px;place-items:center;border-radius:999px;background:var(--vi-green-soft);color:var(--vi-green-hover);font-weight:800}.case-detail-page{min-height:100vh}.case-detail-hero{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(18px,4vw,52px);align-items:center;min-height:82vh;padding:116px clamp(18px,6vw,86px) 64px}.case-detail-hero>img,.case-image-placeholder.large{width:100%;min-height:420px;border:1px solid var(--vi-line);border-radius:var(--vi-radius);object-fit:cover;box-shadow:var(--vi-shadow)}.case-detail-copy>span{color:var(--vi-gold-hover);font-size:13px;font-weight:800;letter-spacing:.08em}.case-detail-copy h1{margin:14px 0;color:var(--vi-ink);font-size:clamp(36px,5vw,64px);line-height:1.08}.case-detail-copy p{color:var(--vi-muted);font-size:17px;line-height:1.8}.case-detail-metrics,.case-detail-blocks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:28px}.case-detail-metrics article{border-top:2px solid var(--vi-gold);background:#ffffffc7;padding:14px 0}.case-detail-metrics strong{display:block;color:var(--vi-green-hover);font-size:18px}.case-detail-metrics span{color:var(--vi-muted);font-size:12px}@keyframes horizon-breathe{0%{opacity:.56;transform:translateY(0)}to{opacity:.86;transform:translateY(8px)}}.detail-shell{background:transparent}.detail-layout{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:16px;margin-top:20px}.timeline-panel,.detail-panel{display:flex;flex-direction:column;min-height:520px;padding:18px;border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:#ffffffe6;box-shadow:var(--vi-soft-shadow);animation:panel-soft-in .3s linear both}.detail-panel>*{order:4}.detail-panel>.panel-heading{order:1}.detail-panel>.archive-card-grid{order:2}.detail-panel>.phase-detail-workbench{order:3}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--vi-line)}.panel-heading strong{color:var(--vi-ink);font-size:14px;font-weight:600;text-align:right;overflow-wrap:anywhere}.timeline-list{display:grid;gap:12px;margin:18px 0 0;padding:0;list-style:none}.timeline-list li{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;min-height:42px;color:var(--vi-muted)}.timeline-list li span{display:grid;width:28px;height:28px;place-items:center;border:1px solid var(--vi-line);border-radius:50%;background:#fff;font-size:13px}.timeline-list li.active{color:var(--vi-green-hover);font-weight:700}.timeline-list li.active span{border-color:var(--vi-green);background:var(--vi-green-soft)}.timeline-list p{margin:0}.timeline-list small{display:block;margin-top:4px;color:var(--vi-muted);font-size:12px}.detail-fields{display:grid;gap:14px;margin:18px 0 0}.detail-fields div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;min-height:44px;align-items:center;padding:10px 0;border-bottom:1px solid var(--vi-line)}.detail-fields dd{margin:0;color:var(--vi-ink);overflow-wrap:anywhere}.inline-title{margin-top:20px;padding-left:0;padding-right:0}.grid-2-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:16px}.log-box{display:grid;max-height:260px;overflow:auto;gap:8px;padding:10px;border:1px solid var(--vi-line);border-radius:var(--vi-radius);background:#ffffffc7}.log-box p{margin:0;color:var(--vi-muted);font-size:13px;line-height:1.6}.page-flow-enter-active,.page-flow-leave-active{transition:opacity .3s linear,transform .3s linear}.page-flow-enter-from,.page-flow-leave-to{opacity:0;transform:translateY(8px)}.el-button{border-radius:var(--vi-radius);transition:background-color .2s linear,border-color .2s linear,color .2s linear,box-shadow .2s linear}.el-button:hover,.el-button:focus{box-shadow:0 1px 8px #c8ad7324}.el-button--primary{--el-button-bg-color: var(--vi-green);--el-button-border-color: var(--vi-green);--el-button-hover-bg-color: var(--vi-green-hover);--el-button-hover-border-color: var(--vi-green-hover);--el-button-active-bg-color: var(--vi-green-hover);--el-button-active-border-color: var(--vi-green-hover)}.el-button--primary.is-plain{--el-button-bg-color: #ffffff;--el-button-border-color: var(--vi-gold);--el-button-text-color: var(--vi-gold-hover);--el-button-hover-bg-color: var(--vi-gold-soft);--el-button-hover-border-color: var(--vi-gold);--el-button-hover-text-color: var(--vi-ink)}.el-button--danger,.el-button--success{--el-button-bg-color: #ffffff;--el-button-border-color: var(--vi-line);--el-button-text-color: var(--vi-ink)}.el-input__wrapper,.el-textarea__inner,.el-select__wrapper{border-radius:var(--vi-radius);box-shadow:0 0 0 1px var(--vi-line) inset;transition:box-shadow .2s linear,background-color .2s linear}.el-input__wrapper:hover,.el-textarea__inner:hover,.el-select__wrapper:hover{box-shadow:0 0 0 1px var(--vi-gold) inset}.el-input__wrapper.is-focus,.el-textarea__inner:focus,.el-select__wrapper.is-focused{box-shadow:0 0 0 1px var(--vi-green) inset,0 1px 8px #6f9f8d1f}.el-table{--el-table-border-color: var(--vi-line);--el-table-header-bg-color: var(--vi-frost);--el-table-row-hover-bg-color: var(--vi-green-soft);--el-table-text-color: var(--vi-ink);--el-table-header-text-color: var(--vi-ink);color:var(--vi-ink)}.el-table th.el-table__cell{font-weight:700}.el-table__column-filter-trigger{color:var(--vi-gold-hover)}.el-dialog{border-radius:12px;border:1px solid var(--vi-line);box-shadow:var(--vi-shadow);animation:panel-soft-in .3s linear both}.el-dialog__header{border-bottom:1px solid var(--vi-line);margin-right:0;padding-bottom:14px}.el-dialog__title{color:var(--vi-ink);font-weight:700}.el-popper,.el-select-dropdown,.el-dropdown__popper{border-color:var(--vi-line)!important;box-shadow:var(--vi-soft-shadow)!important;animation:menu-soft-in .2s linear both}.el-select-dropdown__item.is-selected,.el-dropdown-menu__item:not(.is-disabled):focus{color:var(--vi-green-hover);background:var(--vi-green-soft)}.el-tag{border-radius:999px}.el-tag--success{--el-tag-bg-color: var(--vi-green-soft);--el-tag-border-color: var(--vi-line-green);--el-tag-text-color: var(--vi-green-hover)}.el-tag--warning{--el-tag-bg-color: var(--vi-gold-soft);--el-tag-border-color: var(--vi-gold);--el-tag-text-color: var(--vi-gold-hover)}.el-link,.el-button.is-link{color:var(--vi-green-hover)}.el-link:hover,.el-button.is-link:hover{color:var(--vi-gold-hover)}@keyframes page-soft-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes panel-soft-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes menu-soft-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes chart-line-in{0%{stroke-dashoffset:220}to{stroke-dashoffset:0}}@media(max-width:768px){.app-shell{padding:10px}.top-bar,.project-card-footer{align-items:stretch;flex-direction:column}.top-bar{padding:0 0 12px}.top-actions{position:static;justify-content:center}.top-bar h1,.login-brand h1{font-size:24px}.summary-strip,.dashboard-layout,.module-grid,.admin-card-grid,.development-dashboard,.report-dashboard,.manual-form,.grid-2-detail,.detail-layout{grid-template-columns:1fr}.summary-strip{grid-auto-flow:column;grid-auto-columns:minmax(132px,1fr);overflow-x:auto;padding-bottom:4px;scroll-snap-type:x proximity}.summary-item{scroll-snap-align:start}.module-tabs{grid-auto-flow:column;grid-auto-columns:minmax(118px,1fr);grid-template-columns:none;overflow-x:auto;padding-bottom:4px}.development-tool-grid{grid-template-columns:1fr}.project-list-title,.adjust-mode-line{flex-direction:column}.project-tools{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.project-tools .el-input{width:100%;grid-column:1 / -1}.panel-table{overflow-x:auto}.table-pagination{align-items:stretch;flex-direction:column}.table-pagination .el-pagination{justify-content:center;overflow-x:auto}.task-tools{grid-template-columns:1fr;width:100%}.permission-grid,.station-kpi-grid,.station-chart-grid{grid-template-columns:1fr}.station-focus{align-items:stretch;flex-direction:column}.station-analysis-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.station-analysis-toolbar label,.station-analysis-toolbar .el-select,.station-analysis-toolbar .el-input-number{width:100%;min-width:0}.station-data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.station-focus .el-select{width:100%}.project-grid{grid-template-columns:1fr}.detail-fields div{grid-template-columns:1fr;gap:6px}.public-nav{position:sticky;flex-wrap:wrap;gap:12px;padding:12px 16px}.public-nav-actions{width:100%;justify-content:space-between;overflow-x:auto}.public-hero{grid-template-columns:1fr;min-height:auto;padding:48px 16px 56px}.public-login-card{width:100%}.login-memory-options{align-items:flex-start;flex-direction:column;gap:4px}.solar-grid{grid-template-columns:repeat(7,minmax(20px,1fr));opacity:.22}.public-stats,.public-business-grid,.public-case-grid,.public-visual-row,.cooperation-logos,.cooperation-values,.strength-grid,.service-timeline,.case-detail-hero,.case-detail-metrics,.case-detail-blocks,.public-ecosystem,.website-admin-grid,.website-settings-form,.ecosystem-list{grid-template-columns:1fr}.public-hero-video{display:none}.public-hero-mobile-image{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;object-fit:cover;opacity:.28}.cooperation-logos>strong{text-align:center}.case-detail-hero{min-height:auto}.public-section{padding:58px 16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.time-edit-button{border:1px solid rgba(188,160,106,.32);background:#ffffffd1;color:#7b6539;border-radius:999px;padding:4px 9px;cursor:pointer;font-size:12px}.time-edit-button:hover{border-color:#bca06ab8;box-shadow:0 4px 12px #bca06a24}.compact-pop-form{display:grid;gap:8px}.compact-pop-form span{font-size:12px;color:var(--muted)}.archive-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0 12px}.archive-card{border:1px solid rgba(188,160,106,.2);border-radius:10px;padding:10px;background:#ffffffe6;box-shadow:0 10px 24px #1f3d340f}.archive-card-wide{grid-column:1 / -1}.archive-card>span{display:block;margin-bottom:8px;color:#8a6f3d;font-weight:700}.archive-card p{display:flex;gap:10px;margin:6px 0;color:#31433b;line-height:1.55}.archive-card b{min-width:72px;color:var(--muted);font-weight:600}.el-select-dropdown__wrap,.el-cascader-menu,.filter-scroll,.station-list,.log-box,.progress-feed{max-height:280px;overflow-y:auto}@media(max-width:768px){.archive-card-grid{grid-template-columns:1fr}}.detail-layout{grid-template-columns:280px minmax(0,1fr);align-items:start}.timeline-panel{position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto}.phase-chain li{position:relative;cursor:pointer;border:1px solid rgba(150,157,151,.28);border-radius:10px;margin-bottom:10px;transition:border-color .24s ease,box-shadow .24s ease,background .24s ease}.phase-chain li:after{content:"";position:absolute;left:19px;bottom:-11px;width:1px;height:10px;background:#bca06a47}.phase-chain li:last-child:after{display:none}.phase-chain li.active,.phase-chain li:hover{box-shadow:0 8px 18px #1f3d3414;background:#fffffff5}.phase-status-completed{border-color:#5d9f7abf!important}.phase-status-in_progress{border-color:#5284beb8!important;animation:phasePulse 2s ease-in-out infinite}.phase-status-blocked{border-color:#bc8440cc!important}.phase-status-delayed{border-color:#b84848cc!important}.phase-status-skipped{border-color:#969d9773!important;color:#8a918b;text-decoration:none}.phase-status-skipped_pending{border-color:#b91c1cb3!important;background:#fef2f2f0!important;color:#b91c1c;text-decoration:none}@keyframes phasePulse{0%,to{box-shadow:0 0 #5284be00}50%{box-shadow:0 0 0 4px #5284be14}}.phase-detail-workbench{border:1px solid rgba(188,160,106,.2);border-radius:12px;padding:16px;margin-bottom:18px;background:#fffffff5;box-shadow:0 12px 28px #1f3d340f}.phase-detail-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.phase-detail-head span,.phase-detail-head small{color:var(--muted)}.phase-detail-head h2{margin:4px 0;color:#2f5544}.phase-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.detail-head-actions{display:flex;gap:8px;align-items:center}.phase-section-title{display:flex;align-items:baseline;gap:10px;margin:14px 0 10px;padding-top:12px;border-top:1px solid rgba(188,160,106,.18)}.phase-section-title strong{color:#2f5544}.phase-section-title span{color:var(--muted);font-size:12px}.phase-save-actions{display:flex;gap:8px;margin-top:14px}.detail-single-section{margin-top:16px}.phase-form-grid,.phase-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.phase-field-item{display:grid;gap:6px}.phase-field-item span{font-size:12px;color:#7b6539;font-weight:700}.phase-field-item em{margin-left:3px;color:#b84848;font-style:normal}.phase-scroll-list{max-height:300px;overflow:auto;display:grid;gap:8px}.phase-scroll-list p{margin:0;padding:10px 12px;border:1px solid rgba(188,160,106,.16);border-radius:8px;background:#faf9f6b8;color:#34463d}.phase-note-editor{display:grid;gap:10px;margin-top:12px}.phase-progress-panel,.task-current-progress{display:grid;gap:10px;margin:12px 0 16px;padding:14px;border:1px solid var(--vi-line-green);border-radius:var(--vi-radius);background:var(--vi-green-soft)}.phase-progress-current,.task-current-progress p{margin:0;color:var(--vi-ink);font-size:14px;line-height:1.7;white-space:pre-wrap}.task-current-progress>div:first-child{display:flex;justify-content:space-between;gap:12px;color:var(--vi-muted);font-size:13px}.task-current-progress>div:first-child strong{color:var(--vi-ink);font-size:15px}.task-expand-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px 8px;background:#faf9f6ad}.task-compact-table .el-table__row{cursor:pointer}.task-detail-dialog-body{display:grid;gap:14px}.task-summary-card,.task-phase-card{border:1px solid rgba(188,160,106,.22);border-radius:10px;background:#fffffff5;padding:12px}.task-summary-card{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.task-summary-card h2{margin:0 0 8px;color:#111;font-size:18px}.task-summary-card p{margin:4px 0;color:#34463d;line-height:1.6}.task-summary-card p span{margin-left:16px}.task-summary-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.task-phase-card,.region-cascade-filter{display:grid;gap:10px}.region-cascade-filter>label{display:grid;gap:5px;color:var(--vi-muted);font-size:12px}.region-cascade-filter .el-select{width:100%}.manager-metrics .metric-card,.workbench-page .metric-grid article{min-height:76px;padding:10px 12px}.manager-metrics .metric-card strong,.workbench-page .metric-grid article strong{font-size:20px}.task-phase-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.task-phase-card-head h3{margin:0 0 4px;color:#111;font-size:16px}.task-phase-card-head span,.task-phase-subtitle{color:var(--vi-muted);font-size:14px}.task-phase-subtitle{font-weight:700}.task-phase-field-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.task-phase-field,.task-material-item{display:grid;gap:8px;border:1px solid rgba(215,228,220,.9);border-radius:8px;padding:10px;background:#fafcfadb}.task-phase-field.missing,.task-material-item.missing{border-color:#b848489e;background:#b848480a}.task-phase-field span,.task-material-item strong{color:#24342c;font-size:14px;font-weight:700}.task-phase-field em,.task-material-item span{margin-left:6px;color:#b84848;font-size:12px;font-style:normal;font-weight:600}.task-material-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.task-note-editor{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}.task-note-list{display:grid;max-height:160px;overflow:auto;gap:6px}.task-note-list p{margin:0;padding:8px 10px;border-radius:7px;background:#edf5efb8;color:#34463d}.task-expand-card{border:1px solid rgba(188,160,106,.18);border-radius:10px;padding:12px;background:#fff;min-height:130px}.task-expand-card h3{margin:0 0 8px;font-size:14px;color:#2f5544}.task-expand-card p{margin:6px 0;color:#34463d;line-height:1.5}.task-expand-card b{display:inline-block;min-width:70px;color:var(--muted)}.task-step-list,.task-audit-list{max-height:180px;overflow:auto;display:grid;gap:6px}.task-step-list span,.task-audit-list p{margin:0;padding:7px 9px;border-radius:7px;background:#5d9f7a14;color:#34463d}.task-audit-list em{color:#7b6539;font-style:normal}.el-table .task-row-critical>td{box-shadow:inset 3px 0 #b84848e6;background:#b848480f!important;animation:criticalTaskPulse 1.6s ease-in-out infinite}.el-table .task-row-warning>td{box-shadow:inset 3px 0 #bc8440e6;background:#bc84400f!important}.mobile-task-list,.mobile-task-tabs{display:none}.mobile-camera-input{min-height:44px;width:100%;border:1px dashed rgba(188,160,106,.42);border-radius:8px;padding:9px;background:#ffffffdb}.notice-dropdown{max-width:340px}.notice-dropdown-item{display:grid;gap:4px;max-width:300px;white-space:normal}.notice-dropdown-item strong{color:var(--vi-ink)}.notice-dropdown-item span{color:var(--vi-muted);font-size:12px;line-height:1.4}@keyframes criticalTaskPulse{0%,to{background:#b848480a}50%{background:#b848481a}}@media(max-width:768px){.detail-layout{grid-template-columns:1fr}.timeline-panel{position:relative;top:auto;max-height:360px}.phase-form-grid,.phase-field-grid,.task-expand-panel{grid-template-columns:1fr}.task-tools{grid-template-columns:1fr 1fr}.task-compact-table{display:none}.mobile-task-list{display:grid;gap:10px;padding-bottom:72px}.mobile-task-card{display:grid;gap:6px;min-height:92px;width:100%;border:1px solid rgba(215,228,220,.95);border-left:4px solid var(--vi-green);border-radius:10px;padding:12px;background:#fffffff5;color:var(--vi-ink);text-align:left}.mobile-task-card.task-row-urgent,.mobile-task-card.task-row-critical{border-left-color:#b84848;animation:criticalTaskPulse 1.6s ease-in-out infinite}.mobile-task-card.task-row-warning,.mobile-task-card.task-row-delayed{border-left-color:#bc8440}.mobile-task-card strong{font-size:15px}.mobile-task-card span,.mobile-task-card em{color:var(--vi-muted);font-size:13px;font-style:normal}.mobile-task-card em{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mobile-task-tabs{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(188,160,106,.24);background:#fffffff5;box-shadow:0 -8px 20px #22322a14}.mobile-task-tabs button{min-height:52px;border:0;background:transparent;color:var(--vi-muted);font-weight:700}.mobile-task-tabs button.active{color:var(--vi-green);background:#5d9f7a14}.task-summary-card,.task-summary-actions,.task-note-editor{grid-template-columns:1fr;display:grid}.task-phase-dialog .el-dialog{width:100%!important;max-width:none;height:100%;margin:0!important;border-radius:0}.task-phase-dialog .el-dialog__body{max-height:calc(100vh - 112px);overflow:auto}.task-phase-field-list,.task-material-grid{grid-template-columns:1fr}.el-button,.el-input__wrapper,.el-select__wrapper{min-height:44px}}.detail-layout{position:relative;display:flex;width:100%;max-width:1600px;margin:20px auto 0;align-items:flex-start;gap:20px}.detail-layout .timeline-panel{width:30%;min-width:280px;max-width:360px;flex:0 0 30%;position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto}.detail-layout .detail-panel{width:70%;min-width:0;flex:1 1 70%;padding-left:20px}.timeline-toggle{display:none}.phase-save-actions{position:fixed;right:32px;bottom:28px;z-index:80;display:flex;justify-content:flex-end;padding:8px;border:1px solid rgba(188,160,106,.22);border-radius:999px;background:#fffffff0;box-shadow:0 12px 26px #1f3d341f}@media(max-width:1440px){.detail-layout .timeline-panel{min-width:260px}}@media(max-width:768px){.detail-layout{display:block}.timeline-toggle{position:fixed;left:12px;top:92px;z-index:110;display:inline-flex;width:48px;min-width:48px;height:48px;padding:0;justify-content:center}.detail-layout .timeline-panel{position:fixed;left:12px;top:148px;z-index:105;width:min(360px,calc(100vw - 24px));min-width:0;max-width:none;max-height:calc(100vh - 168px);transform:translate(0);transition:opacity .3s linear,transform .3s linear,visibility .3s linear}.detail-layout .timeline-panel.is-collapsed{visibility:hidden;opacity:0;transform:translate(-18px);pointer-events:none}.detail-layout .detail-panel{width:100%;padding-left:0}}.app-shell,.detail-layout .detail-panel{animation-fill-mode:none}@media(max-width:1024px){.app-shell{width:100%;padding-right:16px;padding-left:16px}.detail-layout{gap:14px}.detail-layout .timeline-panel{min-width:240px}}@media(max-width:768px){.app-shell{width:100%;max-width:100%;padding:12px;padding-bottom:calc(76px + env(safe-area-inset-bottom))}.top-bar{flex-direction:column;align-items:stretch;gap:10px;min-height:0;padding:2px 24px 14px}.brand-center{width:100%;min-width:0}.top-actions{position:static;width:100%;max-width:none;justify-content:center}button,.el-button,.el-button.is-link,.el-input__wrapper,.el-select__wrapper{min-height:44px!important}.module-tabs{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:110px;justify-content:start;width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;padding:0 0 6px;-webkit-overflow-scrolling:touch}.module-tab{min-width:110px;padding:9px 12px;scroll-snap-align:start;white-space:nowrap}.detail-layout{display:block;width:100%;max-width:100%;margin-top:12px}.timeline-toggle{display:none!important}.detail-layout .timeline-panel,.detail-layout .timeline-panel.is-collapsed{position:relative;inset:auto;z-index:auto;display:block;visibility:visible;width:100%;min-width:0;max-width:none;max-height:42vh;margin-bottom:14px;overflow-y:auto;opacity:1;transform:none;pointer-events:auto;-webkit-overflow-scrolling:touch}.detail-layout .detail-panel{width:100%;min-width:0;padding-left:0}.phase-save-actions{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));justify-content:center;border-radius:var(--vi-radius)}.phase-save-actions .el-button{width:min(320px,100%)}.dashboard-grid,.manager-grid,.admin-card-grid,.module-grid,.development-dashboard,.report-dashboard,.archive-card-grid,.phase-form-grid,.phase-field-grid,.manual-form,.grid-2-detail,.task-expand-panel{grid-template-columns:minmax(0,1fr)}.metric-grid,.manager-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.panel,.detail-panel,.panel-table,.table-scroll,.project-table-wrap{min-width:0;max-width:100%}.panel-table,.table-scroll,.project-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.el-overlay-dialog{padding:max(12px,env(safe-area-inset-top)) 0 max(12px,env(safe-area-inset-bottom));overflow:hidden}.el-dialog,.task-phase-dialog .el-dialog{width:95%!important;max-width:95vw;height:auto;max-height:calc(100vh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));margin:0 auto!important;border-radius:var(--vi-radius)}.el-dialog__body,.task-phase-dialog .el-dialog__body{max-height:65vh;overflow-y:auto;-webkit-overflow-scrolling:touch}}@media(max-width:480px){.app-shell{padding:10px;padding-bottom:calc(76px + env(safe-area-inset-bottom))}.top-bar{padding:2px 12px 12px}.top-bar h1,.login-brand h1{font-size:22px}.metric-grid,.manager-metrics,.project-tools{grid-template-columns:minmax(0,1fr)}.top-actions .el-button{flex:1 1 calc(50% - 6px);margin-left:0}}.mobile-module-dock,.mobile-workbench-task-list{display:none}@media(max-width:768px){:root{--mobile-page-gap: 10px;--mobile-card-radius: 10px;--mobile-card-shadow: 0 4px 16px rgba(25, 55, 45, .06);--mobile-dock-height: 66px}body{background:#f4f7f4}.app-shell,.tx-page{padding-right:var(--mobile-page-gap)!important;padding-left:var(--mobile-page-gap)!important;padding-bottom:calc(var(--mobile-dock-height) + 18px + env(safe-area-inset-bottom))!important;background:#f4f7f4}.top-bar{min-height:56px!important;border-bottom-color:#c1a26047!important}.module-tabs{display:grid!important;grid-template-columns:none!important;grid-auto-flow:column!important;grid-auto-columns:minmax(82px,max-content)!important;gap:0!important;overflow-x:auto!important;border:0;border-bottom:1px solid rgba(193,162,96,.24);border-radius:0;padding:0 4px!important;background:#fff!important;box-shadow:none;scrollbar-width:none}.module-tab{min-width:0!important;min-height:44px!important;border:0!important;border-bottom:2px solid transparent!important;border-radius:0!important;padding:0 10px!important;background:transparent!important;color:#52605b!important;font-size:13px!important;font-weight:600}.module-tab.active{border-bottom-color:#6b9f8b!important;background:#f2f7f4!important;color:#4f8873!important;box-shadow:none}.summary-strip{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-flow:row!important;grid-auto-columns:auto!important;gap:8px!important;padding:10px 0!important;overflow:visible!important}body .app-shell .summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-flow:row!important;width:100%!important;padding:10px 0!important}.summary-item{min-width:0!important;min-height:58px!important;border:1px solid rgba(193,162,96,.24)!important;border-radius:var(--mobile-card-radius)!important;padding:7px 9px!important;background:#fff!important;box-shadow:var(--mobile-card-shadow);text-align:left!important}body .app-shell .summary-item{width:100%!important;min-width:0!important;min-height:58px!important;padding:7px 9px!important;text-align:left!important}.summary-item span{color:#5e8174!important;font-size:12px!important;font-weight:600}.summary-item strong{margin-top:4px;color:#172721!important;font-size:18px!important;line-height:1.1}.summary-item em{margin-top:4px;color:#b38d44!important;font-size:10px!important}.panel,.side-panel,.panel-table,.tx-card,.tx-page-head{border-radius:var(--mobile-card-radius)!important;box-shadow:var(--mobile-card-shadow)!important}.kpi-note{margin:-2px 2px 10px!important;color:#7c8782!important;font-size:11px!important;line-height:1.55;text-align:left!important}.page-alert{margin:8px 0!important;border-radius:var(--mobile-card-radius)}.module-grid,.report-dashboard,.admin-shell,.development-dashboard{width:100%;min-width:0;gap:10px!important;margin-top:0!important}.panel-title,.panel-title.compact{gap:8px!important;padding:10px!important}.panel-title h2{font-size:16px!important;line-height:1.3}.panel-title span{line-height:1.45}.section-actions,.row-actions,.solution-actions{display:flex;flex-wrap:wrap;gap:8px}.panel-table{width:100%!important;max-width:100%!important;margin:0!important;overflow:hidden!important;background:transparent!important;box-shadow:none!important}.project-list-title{border:1px solid rgba(193,162,96,.24);border-radius:var(--mobile-card-radius);background:#fff;box-shadow:var(--mobile-card-shadow)}.project-list-title>h2{margin-bottom:2px}.project-tools{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;width:100%;margin-top:8px}.project-tools .el-input{grid-column:1 / -1;width:100%!important}.project-tools .el-button,.project-tools .el-upload,.project-tools .el-upload .el-button{width:100%!important;margin:0!important}.batch-action-bar{flex-wrap:wrap;margin:8px 0;border-radius:var(--mobile-card-radius);padding:10px;font-size:12px}.search-result-note{margin:8px 0;border:0;border-radius:8px;padding:9px 10px;background:#eef5f1;font-size:12px}.mobile-project-list{display:grid!important;gap:8px!important;padding:8px 0 0!important;background:transparent!important}.mobile-project-item{gap:8px!important;border:1px solid rgba(193,162,96,.22)!important;border-radius:var(--mobile-card-radius)!important;padding:11px 12px!important;background:#fff!important;box-shadow:var(--mobile-card-shadow)}.mobile-project-item:active{border-color:#6197826b!important;background:#f2f7f4!important}.mobile-project-head strong{font-size:15px!important;line-height:1.45}.mobile-project-head>span{border:1px solid rgba(97,151,130,.18);border-radius:6px!important;background:#eaf4ee!important;font-size:11px!important}.mobile-project-meta{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px 10px!important;border-top:1px solid #edf1ee;border-bottom:1px solid #edf1ee;padding:8px 0;font-size:12px!important}.mobile-project-footer .el-button{min-width:70px;min-height:40px!important}.table-pagination{display:grid!important;justify-items:center;gap:8px!important;margin-top:8px;border:1px solid rgba(193,162,96,.2);border-radius:var(--mobile-card-radius);padding:10px!important;background:#fff}.table-pagination .el-pagination{max-width:100%;overflow-x:auto}.development-main{border:0!important;background:transparent!important;box-shadow:none!important}.development-main>.panel-title{margin-bottom:10px;border:1px solid rgba(193,162,96,.24);border-radius:var(--mobile-card-radius);background:#fff;box-shadow:var(--mobile-card-shadow)}.development-tool-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;padding:0!important}.development-tool-card{min-height:126px!important;gap:7px!important;border-width:1px!important;border-radius:var(--mobile-card-radius)!important;padding:9px!important;box-shadow:var(--mobile-card-shadow)!important}.development-tool-card-green,.development-tool-card-gold{border-top-width:2px!important}.development-tool-top h3{margin-top:3px!important;font-size:14px!important;line-height:1.3}.development-tool-top strong{min-width:38px!important;min-height:30px!important;font-size:11px!important}.development-tool-card p{display:-webkit-box;overflow:hidden;font-size:11px!important;line-height:1.4!important;-webkit-box-orient:vertical;-webkit-line-clamp:2}.development-tool-footer{display:grid!important;grid-template-columns:minmax(0,1fr);gap:7px!important}.development-tool-footer .el-tag{justify-self:start;max-width:100%}.development-tool-footer .el-button{width:100%}.solution-workspace{margin:10px 0 0!important;border-radius:var(--mobile-card-radius)!important;padding:12px!important}.solution-workspace .panel-title{display:grid;grid-template-columns:minmax(0,1fr);padding:0 0 12px!important}.solution-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.solution-actions .el-button{width:100%;margin:0!important}.solution-project-row,.solution-form,.solution-upload-grid{grid-template-columns:minmax(0,1fr)!important}.solution-project-row{gap:7px!important}.solution-upload-box,.solution-validation{border-radius:8px!important;padding:12px!important}.solution-history{overflow-x:auto;-webkit-overflow-scrolling:touch}.station-dashboard{grid-template-columns:minmax(0,1fr)!important}.station-visual-panel,.station-dashboard>.side-stack,.station-dashboard>.side-panel{width:100%;min-width:0}.station-kpi-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;padding:8px 10px!important}.station-kpi{min-height:58px!important;border-radius:8px!important;padding:7px 8px!important}.station-kpi strong{font-size:16px!important;overflow-wrap:anywhere}.station-focus{display:grid!important;grid-template-columns:minmax(0,1fr);margin:0 10px 8px!important;border-radius:8px!important}.station-focus .el-select{width:100%!important}.station-chart-grid{grid-template-columns:minmax(0,1fr)!important;gap:8px!important;padding:0 10px 10px!important}.station-chart-card{min-height:210px!important;border-radius:8px!important;padding:10px!important}.chart-head{align-items:flex-start!important;flex-direction:column}.chart-head .el-segmented{width:100%;overflow-x:auto}.station-list{max-height:48vh!important;padding:8px!important}.station-row{min-height:58px;border-radius:8px!important;padding:10px!important}.task-panel-head{display:grid!important;grid-template-columns:minmax(0,1fr);align-items:stretch!important}.task-tools{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;width:100%}.task-tools .el-input{grid-column:1 / -1}.task-tools .el-button{width:100%;margin:0}.mobile-task-list{gap:8px!important;padding:10px!important;padding-bottom:calc(62px + var(--mobile-dock-height) + env(safe-area-inset-bottom))!important}.mobile-task-card{min-height:104px!important;border-radius:var(--mobile-card-radius)!important;padding:13px!important;box-shadow:0 3px 12px #19372d0d}.mobile-task-card strong{line-height:1.4}.mobile-task-tabs{bottom:calc(var(--mobile-dock-height) + env(safe-area-inset-bottom))!important;z-index:850!important}.done-list,.mini-list,.report-task-list{padding:8px 10px!important}.report-dashboard{grid-template-columns:minmax(0,1fr)!important}.report-module{overflow:hidden}.report-module .panel-title{align-items:flex-start!important}.report-card-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;padding:10px!important}.report-metric-card{min-height:58px!important;border-radius:8px!important;padding:8px 9px!important;box-shadow:none!important}.report-metric-card strong{font-size:18px!important}.report-task-list p,.mini-list p{margin:0 0 7px!important;border-radius:8px!important;padding:10px!important}.report-risk-list{padding:0 12px 12px 28px!important}.admin-card-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;padding:0!important}.admin-module-card{min-height:104px!important;border-radius:var(--mobile-card-radius)!important;padding:9px!important;text-align:left}.admin-module-card strong{font-size:15px!important}.admin-module-card p{margin:5px 0!important;font-size:12px!important;line-height:1.35}.admin-module-icon{width:36px!important;height:36px!important;border-radius:8px!important}.admin-detail-head{position:sticky;top:58px;z-index:20;display:flex;align-items:center;gap:8px;margin-bottom:8px;border:1px solid rgba(193,162,96,.24);border-radius:var(--mobile-card-radius);padding:8px;background:#fffffff5}.admin-shell .el-table,.admin-config-panel .el-table,.wide-panel>.el-table{width:100%;min-width:680px}.admin-shell .side-panel{overflow-x:auto;-webkit-overflow-scrolling:touch}.website-admin-grid,.permission-grid,.permission-editor{grid-template-columns:minmax(0,1fr)!important}.manual-form,.edit-form{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0 8px!important}.manual-form>:has(textarea),.edit-form>:has(textarea),.manual-form>.el-upload,.edit-form>.el-upload{grid-column:1 / -1}.el-collapse-item__header{min-height:48px;padding:0 12px;font-size:13px;line-height:1.4}.el-collapse-item__content{padding:0 12px 12px}.el-popper{max-width:calc(100vw - 20px)!important}.detail-shell{padding-bottom:calc(82px + env(safe-area-inset-bottom))!important}.detail-shell .top-bar{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center!important;gap:8px!important;padding:8px 10px!important}.detail-shell .top-bar>div:first-child{min-width:0}.detail-shell .top-bar h1{display:-webkit-box;overflow:hidden;margin:2px 0 0;font-size:17px!important;line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:2}.detail-head-actions{display:grid!important;grid-template-columns:repeat(2,auto);gap:6px!important}.detail-head-actions .el-button{min-height:40px!important;margin:0!important;padding:0 10px!important}.detail-shell .detail-layout{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important;margin-top:10px!important}.detail-shell .timeline-toggle{display:none!important}.detail-shell .timeline-panel,.detail-shell .timeline-panel.is-collapsed{position:relative!important;inset:auto!important;visibility:visible!important;width:100%!important;min-width:0!important;max-width:100%!important;max-height:none!important;min-height:0!important;height:auto!important;margin:0!important;overflow:hidden!important;opacity:1!important;transform:none!important;pointer-events:auto!important}.detail-shell .timeline-panel .panel-heading{padding:11px 12px!important}.detail-shell .timeline-list{display:grid!important;grid-auto-flow:column!important;grid-auto-columns:minmax(168px,72vw);gap:8px!important;max-height:none!important;margin:0!important;overflow-x:auto!important;overflow-y:hidden!important;padding:10px!important;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.detail-shell .timeline-list li{min-height:92px;border:1px solid rgba(193,162,96,.2)!important;border-radius:9px!important;padding:10px!important;background:#fff;scroll-snap-align:start}.detail-shell .timeline-list li.active{border-color:#6197827a!important;background:#edf5f1!important}.detail-shell .detail-panel{width:100%!important;min-width:0!important;padding:0!important}.detail-panel>.phase-detail-workbench{order:1!important}.detail-panel>.panel-heading{order:2!important;margin-top:10px}.detail-panel>.archive-card-grid{order:3!important}.phase-detail-workbench,.detail-single-section{border-radius:var(--mobile-card-radius)!important;background:#fff;box-shadow:var(--mobile-card-shadow)}.phase-detail-head{display:grid!important;grid-template-columns:minmax(0,1fr);gap:10px!important;padding:12px!important}.phase-detail-head h2{font-size:18px!important;line-height:1.35}.phase-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px!important}.phase-actions .el-button{width:100%;min-height:42px!important;margin:0!important;padding:0 5px!important;white-space:normal}.phase-tabs .el-tabs__header{margin:0 10px 10px}.phase-tabs .el-tabs__nav-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.phase-tabs .el-tabs__nav-wrap:after{display:none}.phase-tabs .el-tabs__nav-scroll{overflow:visible}.phase-tabs .el-tabs__nav{float:none;width:max-content}.phase-tabs .el-tabs__content{padding:0 12px 12px}.phase-form-grid,.phase-field-grid,.decision-grid{grid-template-columns:minmax(0,1fr)!important}.archive-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}.archive-card,.archive-card-wide{min-width:0;border-radius:8px!important;padding:11px!important}.archive-card-wide{grid-column:1 / -1}.detail-panel>.el-table,.phase-tabs .el-table{width:100%!important;min-width:0!important;max-width:100%!important}.detail-panel .el-table__body-wrapper,.phase-tabs .el-table__body-wrapper{overflow-x:auto!important}.detail-single-section{margin-top:10px!important;padding:0 10px 10px}.phase-save-actions{right:10px!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;left:10px!important;border-radius:10px!important;padding:7px!important}.phase-save-actions .el-button{width:100%!important}.workbench-page,.approval-page,.compare-page,body .manager-page{width:100%!important;max-width:100%!important;padding:10px 10px calc(18px + env(safe-area-inset-bottom))!important;background:#f4f7f4!important}.workbench-page .page-head,.approval-page .page-head,.compare-page .page-head,.manager-page .tx-page-head{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;border-radius:var(--mobile-card-radius)!important;padding:15px!important;box-shadow:var(--mobile-card-shadow)!important}.workbench-page .page-head h1,.approval-page .page-head h1,.compare-page .page-head h1,.manager-page .tx-page-head h1{overflow-wrap:anywhere;font-size:20px!important;line-height:1.35}.workbench-page .head-actions,.approval-page .head-actions,.compare-page .head-actions,.manager-page .head-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;width:100%;margin-top:0!important}.workbench-page .head-actions .el-button,.approval-page .head-actions .el-button,.compare-page .head-actions .el-button,.manager-page .head-actions .el-button{width:100%;margin:0!important}.workbench-page .metric-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin:10px 0!important}.workbench-page .metric-grid article{min-height:76px;border-radius:var(--mobile-card-radius)!important;padding:10px!important;box-shadow:var(--mobile-card-shadow)!important}.workbench-page .metric-grid strong{margin-top:6px!important;font-size:22px!important}.workbench-page .dashboard-grid,.manager-page .manager-grid{grid-template-columns:minmax(0,1fr)!important;gap:10px!important}.workbench-page .panel,.manager-page .panel{border-radius:var(--mobile-card-radius)!important;padding:12px!important}.workbench-page .panel-title,.manager-page .panel-title{margin-bottom:10px!important;padding:0 0 10px!important}.workbench-page .panel .el-table{min-width:680px}.workbench-page .panel .el-table__body-wrapper{overflow-x:auto!important}.workbench-page .panel-wide>.el-table{display:none!important}.mobile-workbench-task-list{display:grid;gap:8px}.mobile-workbench-task-card{overflow:hidden;border:1px solid rgba(193,162,96,.22);border-radius:9px;background:#fff}.mobile-workbench-task-main{display:grid;gap:6px;width:100%;min-height:92px!important;border:0;padding:11px 12px;background:transparent;color:#26352f;text-align:left}.mobile-workbench-task-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.mobile-workbench-task-head strong{min-width:0;font-size:14px;line-height:1.4}.mobile-workbench-task-main>span:not(.mobile-workbench-task-head),.mobile-workbench-task-main small{color:#748079;font-size:12px}.mobile-workbench-task-card footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border-top:1px solid #edf1ee;padding:8px}.mobile-workbench-task-card footer .el-button{width:100%;min-height:40px!important;margin:0}.manager-metrics{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin:10px 0!important}.manager-metrics .metric-card{min-height:66px;border-radius:var(--mobile-card-radius)!important;padding:8px 9px!important;box-shadow:var(--mobile-card-shadow)!important}.manager-metrics .metric-card:last-child:nth-child(odd){grid-column:1 / -1}.manager-metrics .metric-card strong{font-size:18px!important}.manager-page .health-board{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;max-height:54vh}.manager-page .health-card,.manager-page .load-list button,.manager-page .stuck-list button{min-width:0;border-radius:8px!important;padding:10px!important}.approval-page .filter-bar{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important;margin:10px 0!important;border-radius:var(--mobile-card-radius)!important;padding:12px!important;box-shadow:var(--mobile-card-shadow)!important}.approval-page .filter-bar .el-radio-group{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;overflow-x:auto}.approval-page .filter-bar .el-radio-button__inner{width:100%;padding:10px 5px}.approval-page .approval-list{display:grid;gap:8px!important}.approval-page .approval-list>.el-empty{min-height:300px;border:1px solid rgba(193,162,96,.2);border-radius:var(--mobile-card-radius);background:#fff;box-shadow:var(--mobile-card-shadow)}.approval-page .approval-card{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important;border-radius:var(--mobile-card-radius)!important;padding:13px!important;box-shadow:var(--mobile-card-shadow)!important}.approval-page .approval-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.approval-page .approval-actions .el-button{width:100%;margin:0!important}.compare-page .selector-panel,.compare-page .analysis-panel,.compare-table{margin-top:10px!important;border-radius:var(--mobile-card-radius)!important;padding:12px!important;box-shadow:var(--mobile-card-shadow)!important}.compare-page .selector-panel .el-select{width:100%!important}.compare-table{max-width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch}.compare-table table{min-width:720px}.compare-page .analysis-panel h2{font-size:17px!important}.mobile-module-dock{position:fixed;right:0;bottom:0;left:0;z-index:900;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));min-height:var(--mobile-dock-height);border-top:1px solid rgba(193,162,96,.24);padding:7px 4px 6px;padding-bottom:max(8px,env(safe-area-inset-bottom));background:#fffffff5;box-shadow:0 -6px 18px #19372d14;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.mobile-module-dock__item{display:grid;place-items:center;align-content:center;gap:2px;min-width:0;min-height:48px!important;border:0;border-radius:8px;padding:3px 1px;background:transparent;color:#7a8580}.mobile-module-dock__item span{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:#eef3ef;color:#6f827a;font-size:12px;font-weight:700}.mobile-module-dock__item em{overflow:hidden;max-width:100%;font-size:10px;font-style:normal;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.mobile-module-dock__item.active{color:#4f8873}.mobile-module-dock__item.active span{background:#e3f0ea;color:#4f8873;box-shadow:inset 0 0 0 1px #61978242}.el-overlay-dialog{align-items:flex-end}.el-dialog,.task-phase-dialog .el-dialog{width:95%!important;max-width:95vw!important;max-height:calc(100dvh - 18px - env(safe-area-inset-top))!important;border-radius:14px 14px 8px 8px!important}.el-dialog__header{margin-right:0;border-bottom:1px solid rgba(193,162,96,.24);padding:16px 44px 12px 16px}.el-dialog__body,.task-phase-dialog .el-dialog__body{max-height:66dvh!important;overflow-y:auto!important;padding:14px 16px!important;-webkit-overflow-scrolling:touch}.el-dialog__footer{border-top:1px solid rgba(193,162,96,.2);padding:10px 16px calc(10px + env(safe-area-inset-bottom))}}@media(max-width:480px){.module-tab{font-size:12px!important}.summary-item strong{font-size:17px!important}}
