:root{--bg: #eef1f4;--surface: #ffffff;--text: #1a2332;--muted: #5c6b7a;--line: #e2e8f0;--primary: #69D84F;--primary-hover: #56c23a;--primary-dark: #3f9e2d;--primary-foreground: #173314;--primary-muted: color-mix(in srgb, var(--primary) 12%, white);--primary-border: color-mix(in srgb, var(--primary) 28%, white);--accent: var(--primary);--declared: #1e58a7;--final: var(--primary);--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow-md: 0 4px 16px rgba(16, 24, 40, .08);--radius: 10px;--radius-lg: 14px;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:var(--text);background:var(--bg);line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;overflow-x:hidden}button,input,select,textarea{font:inherit}.app-shell{height:100vh;min-height:100vh;display:flex;flex-direction:column;overflow:hidden;--app-chrome: 154px}.app-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.app-header{position:sticky;top:0;z-index:100;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm);overflow:visible}.app-header-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px;min-height:56px;border-bottom:1px solid #f0f2f5}.app-header-brand{display:flex;align-items:center;gap:24px;min-width:0}.brand-logos{display:flex;align-items:center;flex-shrink:0}.brand-logos-row{gap:4px}.brand-logos-stacked{flex-direction:column;align-items:center;gap:4px}.brand-logos-lg.brand-logos-stacked{gap:2px;margin-bottom:32px}.brand-logos-lg.brand-logos-stacked .brand-logo-aecom{margin-top:-6px}.brand-logo-carbon-smart{display:block;height:40px;width:auto;object-fit:contain}.brand-logo-aecom{display:block;height:14px;width:auto;object-fit:contain}.brand-logos-lg{margin-bottom:16px}.brand-logos-lg .brand-logo-carbon-smart{height:158px}.brand-logos-lg .brand-logo-aecom{height:10px}.brand-logos-lg.brand-logos-stacked .brand-logo-aecom{height:11px}.brand-text{min-width:0;flex:1;display:inline-flex;flex-direction:column;align-items:flex-start}.brand-title{font-size:13px;font-weight:700;line-height:1.3;white-space:nowrap}.brand-powered-by{font-size:10px;color:var(--muted);line-height:1.2;margin-top:4px;white-space:nowrap}.brand-text-hero{width:100%}.brand-text-hero .brand-title{font-size:26px;font-weight:700;margin-bottom:6px;letter-spacing:-.02em;line-height:1.3;white-space:normal;word-wrap:break-word;overflow-wrap:break-word}.brand-text-hero .brand-powered-by{font-size:13px;color:var(--muted);margin-bottom:28px}.app-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.header-action-group{position:relative}.header-action-btn{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:7px 14px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.header-action-btn:hover{background:#f8fafc;border-color:#cbd5e1}.header-user-btn{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--surface);padding:4px 12px 4px 4px;border-radius:999px;cursor:pointer;transition:background .15s,border-color .15s}.header-user-btn:hover{background:#f8fafc;border-color:#cbd5e1}.header-user-meta{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2;text-align:left}.user-role{font-size:11px;color:var(--muted)}.header-user-caret{font-size:10px;color:var(--muted);margin-left:2px}.header-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:160px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-md);padding:6px;z-index:200}.header-dropdown button{display:block;width:100%;text-align:left;border:none;background:transparent;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:13px}.header-dropdown button:hover{background:#f1f5f9}.header-dropdown-user{min-width:220px;padding:4px}.header-dropdown-info{padding:10px 12px 12px;border-bottom:1px solid var(--line);margin-bottom:4px}.header-dropdown-info strong{display:block;font-size:14px;margin-bottom:2px}.header-dropdown-info span{display:block;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-dropdown-divider{height:1px;background:var(--line);margin:4px 8px}.header-dropdown-logout{color:#c62828;font-weight:500;border:none;background:transparent;cursor:pointer;font-size:13px}.header-dropdown-logout:hover{background:#ffebee}.header-dropdown button.header-dropdown-messages,.header-dropdown button.header-dropdown-logout{display:block;width:100%;text-align:left;padding:9px 12px;border-radius:8px}.header-dropdown-messages{position:relative;border:none;background:none;font-size:13px;color:var(--text);cursor:pointer;transition:background .15s}.header-dropdown-messages:hover{background:#f1f5f9}.header-dropdown-messages-label{font-weight:500}.header-dropdown-unread-dot{position:absolute;left:2px;top:50%;transform:translateY(-50%);display:inline-block;width:8px;height:8px;border-radius:50%;background:#e53935;box-shadow:0 0 0 2px #e5393533;pointer-events:none}.feedback-textarea{width:100%;margin-bottom:16px;resize:vertical}.feedback-inbox-modal{width:min(720px,94vw);max-height:88vh;display:flex;flex-direction:column}.feedback-inbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.feedback-inbox-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--line)}.feedback-inbox-tab{padding:10px 16px;border:none;background:none;font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.feedback-inbox-tab:hover{color:var(--text)}.feedback-inbox-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.feedback-inbox-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:16px}.feedback-inbox-page-info{font-size:13px;color:var(--muted);min-width:100px;text-align:center}.feedback-inbox-read-at{display:inline-block;margin-top:8px;font-size:11px;color:var(--muted)}.feedback-inbox-meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.feedback-inbox-unread-pill{padding:2px 8px;border-radius:999px;background:#fff3e0;color:#e65100;font-size:12px}.feedback-inbox-list{flex:1;overflow-y:auto;max-height:52vh;display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.feedback-inbox-item{padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#fff}.feedback-inbox-item.unread{border-color:#90caf9;background:#f8fbff;cursor:pointer}.feedback-inbox-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:13px}.feedback-inbox-item-head strong{display:block;font-size:14px}.feedback-inbox-email{display:block;color:var(--muted);font-size:12px;margin-top:2px}.feedback-inbox-item-head time{color:var(--muted);font-size:12px;white-space:nowrap}.feedback-inbox-content{margin:0;font-size:14px;line-height:1.55;white-space:pre-wrap}.feedback-inbox-new{display:inline-block;margin-top:8px;padding:2px 8px;border-radius:4px;background:#e53935;color:#fff;font-size:11px;font-weight:600}.app-nav{display:flex;align-items:stretch;gap:4px;padding:0 24px;max-width:1280px;margin:0 auto;width:100%;overflow:visible;flex-wrap:wrap}.app-nav-link{display:flex;align-items:center;padding:14px 16px;text-decoration:none;color:var(--muted);font-size:14px;font-weight:500;font-family:inherit;line-height:inherit;white-space:nowrap;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;flex-shrink:0}.app-nav-link:hover{color:var(--text)}.app-nav-link.disabled{color:var(--muted);opacity:.45;cursor:not-allowed;pointer-events:none;border-bottom-color:transparent}.app-nav-link.disabled:hover{color:var(--muted)}.profile-required-banner{grid-column:1 / -1;margin-bottom:16px;padding:12px 16px;border-radius:8px;background:#fff8e6;border:1px solid #f0d78c;color:#7a5b00;font-size:14px;line-height:1.5}.app-nav-link.active,.app-nav-link-btn.active,.app-nav-category-btn.active{color:var(--text);font-weight:600;border-bottom-color:var(--primary)}.app-nav-category-btn.active{border-bottom-color:var(--cat-color, var(--primary))}.app-nav-link-btn{border:none;background:transparent;cursor:pointer}.app-nav-group{display:flex;align-items:stretch;gap:2px;margin:8px 4px;padding:3px;background:#f1f5f9;border-radius:10px;border:1px solid #e2e8f0;flex-shrink:0}.app-nav-cat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:72px;padding:8px 10px;border-radius:8px;text-decoration:none;color:var(--muted);transition:background .15s,color .15s}.app-nav-cat:hover{background:#ffffffb3;color:var(--text)}.app-nav-cat.active{background:#fff;color:var(--text);box-shadow:0 1px 3px #10182814}.app-nav-cat-char{font-size:16px;font-weight:800;color:var(--cat-color, var(--text));line-height:1}.app-nav-cat-sub{font-size:10px;color:var(--muted);white-space:nowrap}.app-nav-cat.active .app-nav-cat-sub{color:var(--text)}.app-nav-category{position:relative;flex-shrink:0}.app-nav-category.open{z-index:250}.app-nav-category-btn{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;cursor:pointer}.app-nav-category-label{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-nav-category-caret{font-size:10px;color:var(--muted)}.app-nav-category-menu{left:0;right:auto;min-width:240px;padding:6px;z-index:300}.header-dropdown .app-nav-category-item{display:flex;align-items:center;gap:10px}.app-nav-category-item{width:100%;text-align:left;border:none;background:transparent;padding:10px;border-radius:8px;cursor:pointer}.app-nav-category-item:hover{background:#f1f5f9}.app-nav-category-item.active{background:#eef6f1}.app-nav-category-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.app-nav-category-item-text{display:flex;flex-direction:column;gap:1px;line-height:1.2}.app-nav-category-item-text strong{font-size:14px;color:var(--text)}.app-nav-category-item-text span{font-size:11px;color:var(--muted)}.header-user-chip{display:flex;align-items:center;gap:10px;padding:4px 12px 4px 4px;border-radius:999px;border:1px solid var(--line);background:#f8fafc}.header-logout-btn{color:var(--muted)}.header-logout-btn:hover{color:#c62828;border-color:#ffcdd2;background:#ffebee}.read-only-banner{padding:10px 14px;margin-bottom:16px;background:#fff8e1;border:1px solid #ffe082;border-radius:8px;color:#8d6e00;font-size:13px}.basic-form-fieldset{border:none;padding:0;margin:0;min-width:0}.basic-form-fieldset:disabled{opacity:.85}.site-header{position:sticky;top:0;z-index:100;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm)}.header-top{display:flex;align-items:center;justify-content:space-between;padding:0 24px;min-height:56px;border-bottom:1px solid #f0f2f5}.header-nav{display:flex;align-items:stretch;gap:12px;padding:10px 24px 14px;max-width:1280px;margin:0 auto;width:100%}.nav-side-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:88px;padding:10px 16px;border-radius:10px;text-decoration:none;color:var(--muted);border:1px solid transparent;transition:background .15s,color .15s,border-color .15s,box-shadow .15s;flex-shrink:0}.nav-side-tab:hover{background:#f8fafc;color:var(--text)}.nav-side-tab.active{background:#fff;color:var(--text);border-color:var(--line);box-shadow:var(--shadow-sm);font-weight:600}.nav-side-tab.active.nav-side-report{border-color:#c5cdd8;background:#f8fafc}.nav-side-icon{font-size:18px;line-height:1}.nav-side-label{font-size:13px;font-weight:600;white-space:nowrap}.nav-4m1e-rail{flex:1;display:flex;align-items:stretch;gap:6px;padding:5px;background:#f1f5f9;border-radius:14px;border:1px solid #e2e8f0;min-width:0}.nav-cat-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 8px;border-radius:10px;text-decoration:none;color:var(--muted);border:1px solid transparent;border-top:3px solid transparent;transition:background .15s,color .15s,box-shadow .15s,border-color .15s;min-width:0}.nav-cat-tab:hover{background:#ffffffa6;color:var(--text)}.nav-cat-tab.active{background:#fff;color:var(--text);box-shadow:0 1px 4px #10182814;border-top-color:var(--cat-color, var(--primary));font-weight:600}.nav-cat-char{font-size:20px;font-weight:800;line-height:1.1;color:var(--cat-color, var(--text));letter-spacing:.02em}.nav-cat-tab.active .nav-cat-char{transform:scale(1.05)}.nav-cat-sub{font-size:10px;font-weight:500;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.2}.nav-cat-tab.active .nav-cat-sub{color:var(--text);font-weight:600}.top-nav-brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand-mark{width:36px;height:36px;border-radius:8px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;letter-spacing:-.5px}.brand-mark-lg{width:52px;height:52px;font-size:16px;border-radius:12px;margin-bottom:20px}.top-nav-links{display:none}.top-toolbar{display:flex;align-items:center;gap:8px;flex-shrink:0;padding-left:12px}.toolbar-btn{border:1px solid var(--line);background:var(--surface);padding:7px 12px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text);display:inline-flex;align-items:center;gap:6px;transition:background .15s}.toolbar-btn:hover{background:#f4f6f8}.toolbar-btn-ghost{border-color:transparent;color:var(--muted)}.toolbar-btn-ghost:hover{background:#f4f6f8;color:var(--text)}.toolbar-icon{font-size:14px}.toolbar-label{font-size:13px}.toolbar-btn-icon{padding:7px 10px}.user-chip{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border:1px solid var(--line);border-radius:999px;background:#fafbfc}.user-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.user-name{font-size:13px;font-weight:600;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lang-menu{position:relative}.lang-dropdown{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:140px;box-shadow:var(--shadow-md);z-index:50;overflow:hidden}.lang-dropdown button{display:block;width:100%;text-align:left;border:none;background:none;padding:10px 14px;cursor:pointer;font-size:13px}.lang-dropdown button:hover{background:#f4f6f8}.page-container{flex:1;min-height:0;overflow-y:auto;padding:28px 32px 40px;max-width:1200px;margin:0 auto;width:100%}.page-container-wide{max-width:1280px}.page-header{margin-bottom:24px}.page-title{font-size:26px;font-weight:700;letter-spacing:-.02em;margin-bottom:6px}.page-subtitle{font-size:14px;color:var(--muted);max-width:640px}.page-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px 32px;box-shadow:var(--shadow-sm)}.card-section-title{font-size:15px;font-weight:700;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--line)}.basic-layout{display:grid;grid-template-columns:1fr 300px;gap:24px;align-items:start}.basic-form-card{min-width:0}.basic-form-stack{display:flex;flex-direction:column;gap:16px;min-width:0}.input-readonly{background:#f5f5f5;color:#666;cursor:not-allowed}.project-map{width:100%;border-radius:8px;border:1px solid #e0e0e0;overflow:hidden;z-index:0}.dashboard-map-card{margin-bottom:0}.dashboard-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;margin-bottom:20px}.dashboard-map-aside{display:flex;flex-direction:column;gap:16px}.dashboard-side-card{padding:20px}.dashboard-side-card .card-section-title{margin-bottom:12px;font-size:15px}.dashboard-mini-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.dashboard-mini-list li{display:flex;align-items:flex-start;gap:10px}.dashboard-mini-list li div{display:flex;flex-direction:column;gap:2px;min-width:0}.dashboard-mini-list li span{font-size:12px;color:var(--muted)}.dashboard-region-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.dashboard-region-list li{display:grid;gap:2px;font-size:13px}.dashboard-region-list li span{color:var(--muted);font-size:12px}.contact-us-modal .contact-us-desc{margin:0 0 16px;color:var(--muted);font-size:14px}.contact-us-channels{display:grid;gap:12px;margin-bottom:8px}.contact-us-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:inherit;background:#fafbfc;transition:border-color .15s,background .15s}.contact-us-card:hover{border-color:var(--primary);background:#fff}.contact-us-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.contact-us-whatsapp strong{color:#128c7e}.contact-us-card-static{cursor:default}.contact-us-card-static:hover{border-color:var(--line);background:#fafbfc}.input-readonly{background:#f3f4f6;color:var(--muted);cursor:not-allowed}.field-hint{margin:6px 0 0;font-size:12px;color:var(--muted)}.report-summary-dual{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.report-page{display:flex;flex-direction:column;gap:32px}.report-dash-section,.report-measures-section{min-width:0}.report-dash-section .card-section-title,.report-measures-section .card-section-title{margin-bottom:12px}.report-dash-boards{display:grid;grid-template-columns:1fr 1fr;gap:16px}.report-dash-panel{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 1px 2px #0f172a0a;min-width:0}.report-dash-panel-declared{border-color:color-mix(in srgb,var(--declared) 22%,white)}.report-dash-panel-final{border-color:color-mix(in srgb,var(--final) 22%,white)}.report-dash-panel-header{padding:12px 16px;border-bottom:1px solid var(--line)}.report-dash-panel-declared .report-dash-panel-header{background:color-mix(in srgb,var(--declared) 5%,white);border-bottom-color:color-mix(in srgb,var(--declared) 12%,white)}.report-dash-panel-final .report-dash-panel-header{background:color-mix(in srgb,var(--final) 5%,white);border-bottom-color:color-mix(in srgb,var(--final) 12%,white)}.report-dash-panel-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;margin-bottom:6px}.report-dash-panel-declared .report-dash-panel-badge{color:var(--declared);background:color-mix(in srgb,var(--declared) 12%,white)}.report-dash-panel-final .report-dash-panel-badge{color:var(--final);background:color-mix(in srgb,var(--final) 12%,white)}.report-dash-panel-header p{margin:0;font-size:12px;line-height:1.5;color:#475569}.report-dash-panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.report-dash-kpi{background:#f8fafc;border:1px solid #e8edf3;border-radius:10px;padding:14px 12px;display:flex;flex-direction:column;gap:8px;min-height:100%}.report-dash-kpi-highlight{background:#fff}.report-dash-kpi-declared.report-dash-kpi-highlight{border-color:color-mix(in srgb,var(--declared) 28%,white);box-shadow:inset 3px 0 0 var(--declared)}.report-dash-kpi-final.report-dash-kpi-highlight{border-color:color-mix(in srgb,var(--final) 28%,white);box-shadow:inset 3px 0 0 var(--final)}.report-dash-kpi-label{margin:0;font-size:12px;font-weight:600;color:#64748b;line-height:1.4}.report-dash-kpi-value{font-size:26px;font-weight:700;line-height:1.1;letter-spacing:-.03em}.report-dash-kpi-declared .report-dash-kpi-value{color:var(--declared)}.report-dash-kpi-final .report-dash-kpi-value{color:var(--final)}.report-dash-kpi-final .report-score-empty{color:#94a3b8}.report-measures-legend{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0 0 14px;font-size:12px;line-height:1.5;color:var(--muted)}.report-measures-legend-item.declared:before,.report-measures-legend-item.final:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.report-measures-legend-item.declared:before{background:var(--declared)}.report-measures-legend-item.final:before{background:var(--final)}.report-dash-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.report-dash-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 18px 16px;box-shadow:0 1px 2px #0f172a0a;display:flex;flex-direction:column;gap:14px;min-height:100%}.report-dash-card-highlight{border-color:color-mix(in srgb,var(--final) 25%,white);box-shadow:0 1px 2px #0f172a0a,inset 3px 0 0 var(--final)}.report-dash-card-title{margin:0;font-size:13px;font-weight:600;color:#64748b;line-height:1.4}.report-dash-unit{margin-left:4px;font-size:12px;font-weight:600;color:var(--muted)}.report-dash-single-value{font-size:30px;font-weight:700;line-height:1.1;letter-spacing:-.03em;color:#0f172a}.report-table-panel{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 1px 2px #0f172a0a}.report-table-panel .table-wrap{overflow-x:auto}.report-table-panel .report-table{border:none;border-radius:0;table-layout:fixed;width:100%}.report-table-panel .report-table th,.report-table-panel .report-table td{vertical-align:middle}.report-th-score,.report-td-score{width:84px;min-width:84px;max-width:84px;text-align:center!important;padding-left:8px;padding-right:8px}.report-th-score{font-size:12px!important;font-weight:700;line-height:1.25;white-space:normal}.report-th-score.declared{background:color-mix(in srgb,var(--declared) 6%,white)!important;color:var(--declared)!important}.report-th-score.final{background:color-mix(in srgb,var(--final) 6%,white)!important;color:var(--final)!important}.report-col-score-divider{border-left:1px solid color-mix(in srgb,var(--final) 15%,white)}.report-th-kind{display:block;font-size:10px;font-weight:600;letter-spacing:.02em;opacity:.85;margin-bottom:2px;line-height:1.2}.report-td-score{text-align:center!important}.report-td-score .report-score-chip{margin:0 auto}.report-th-status,.report-td-status{width:108px;min-width:108px;text-align:center!important}.report-th-action,.report-td-action{width:92px;min-width:92px;text-align:center!important}.report-td-no{width:48px;min-width:48px;font-weight:600;color:#64748b;text-align:center!important}.report-table-panel .report-table th:first-child{width:48px;min-width:48px;text-align:center!important}.report-score-chip{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;padding:4px 10px;border-radius:8px;font-size:13px;font-weight:700;line-height:1.2}.report-score-chip.declared{background:color-mix(in srgb,var(--declared) 8%,white);color:var(--declared)}.report-score-chip.final{background:color-mix(in srgb,var(--final) 8%,white);color:var(--final)}.report-score-chip.final.pending{background:#f1f5f9;color:#94a3b8}.report-score-chip .report-score-empty{font-size:13px;font-weight:600;min-width:0}.report-score-empty{display:inline-block;min-width:1ch;font-size:26px;font-weight:600;line-height:1;letter-spacing:0;color:#94a3b8;text-align:center}.report-td-measure{min-width:200px;font-weight:500;word-break:break-word}.report-sort-btn{display:inline-flex;align-items:center;gap:4px;margin:0;padding:0;border:none;background:transparent;font:inherit;font-weight:inherit;color:inherit;cursor:pointer;text-align:inherit;max-width:100%}.report-sort-btn:hover,.report-sort-btn.active{color:#0f172a}.report-th-score .report-sort-btn:hover,.report-th-score .report-sort-btn.active{color:inherit;filter:brightness(.85)}.report-sort-btn-stack{flex-direction:column;align-items:center;gap:2px;width:100%}.report-sort-btn-stack .report-sort-btn-label{display:flex;flex-direction:column;align-items:center;line-height:1.25}.report-sort-btn-label{min-width:0}.report-sort-dir{flex-shrink:0;font-size:10px;line-height:1;opacity:.4}.report-sort-btn.active .report-sort-dir{opacity:1;color:#2563eb}.report-th-score .report-sort-btn.active .report-sort-dir{color:inherit;opacity:.9}.report-table-empty{text-align:center;color:var(--muted);padding:32px 16px!important}@media(max-width:960px){.report-dash-boards{grid-template-columns:1fr}.report-dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.report-dash-grid{grid-template-columns:1fr}.report-measures-legend{flex-direction:column;gap:6px}}.report-summary-block{border:1px solid var(--line);border-radius:var(--radius);padding:16px;background:#fafbfc}.report-summary-heading{margin:0 0 12px;font-size:15px;font-weight:700}.report-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:960px){.dashboard-map-layout,.report-summary-dual{grid-template-columns:1fr}}.competition-dates-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:16px 0}.competition-dates-block h3{margin:0 0 10px;font-size:14px;font-weight:600}.competition-dates-actions{margin-bottom:12px}.competition-phase-current{margin:12px 0;font-size:14px;color:var(--muted)}@media(max-width:768px){.competition-dates-grid{grid-template-columns:1fr}}.basic-aside{display:flex;flex-direction:column;gap:16px}.logo-card{padding:24px}.logo-dropzone{border:2px dashed var(--line);border-radius:var(--radius);padding:24px;text-align:center;cursor:pointer;background:#fafbfc;margin-bottom:12px;transition:border-color .15s,background .15s;min-height:160px;display:flex;align-items:center;justify-content:center}.logo-dropzone:hover{border-color:#aab4c0;background:#f4f6f8}.logo-preview-large{max-width:100%;max-height:120px;object-fit:contain}.logo-placeholder{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--muted);font-size:13px}.logo-placeholder-icon{font-size:36px;opacity:.6}.tip-card{background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 8%,white),#f8fafc);border:1px solid var(--primary-border);border-radius:var(--radius-lg);padding:20px}.tip-card-title{font-size:13px;font-weight:700;margin-bottom:12px;color:var(--primary-dark)}.tip-list{list-style:none;font-size:13px;color:var(--muted)}.tip-list li{padding:6px 0 6px 16px;position:relative}.tip-list li:before{content:"·";position:absolute;left:0;color:var(--primary);font-weight:700}.save-ok{color:var(--primary-dark);font-size:14px;font-weight:600}.workspace{display:flex;flex:1;min-height:0;width:100%;overflow:hidden;position:relative}.side-nav{position:fixed;top:var(--app-chrome, 154px);left:0;bottom:0;width:300px;background:var(--surface);border-right:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;transition:width .2s;z-index:40}.side-nav.collapsed{width:52px}.side-nav-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px;border-bottom:1px solid var(--line);flex-shrink:0;background:var(--surface);z-index:2}.side-nav-title{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14px;min-width:0;flex:1;line-height:1.3}.side-nav-cat{flex-shrink:0;min-width:28px;height:28px;padding:0 6px;border-radius:6px;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;white-space:nowrap}.side-nav-title-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-nav-toggle{border:1px solid var(--line);background:#fafbfc;border-radius:6px;cursor:pointer;font-size:14px;padding:4px 8px;color:var(--muted)}.side-nav-search{padding:12px 16px;border-bottom:1px solid var(--line);flex-shrink:0;background:var(--surface);z-index:2}.side-nav-search input{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-size:13px;background:#fafbfc}.side-nav-search input:focus{outline:none;border-color:var(--primary);background:#fff}.measure-list{list-style:none;padding:8px;margin:0;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.side-nav-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.measure-list li button{width:100%;text-align:left;border:none;background:none;padding:10px 12px;cursor:pointer;font-size:13px;border-radius:8px;display:flex;align-items:flex-start;gap:10px;transition:background .12s;margin-bottom:2px}.measure-list li button:hover{background:#f4f6f8}.measure-list li button.active{background:color-mix(in srgb,var(--cat-accent, var(--primary)) 12%,white);font-weight:600}.measure-no{flex-shrink:0;width:26px;height:26px;border-radius:6px;background:#eef1f4;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;color:var(--muted)}.measure-list li button.active .measure-no{background:var(--cat-accent, var(--primary));color:#fff}.measure-label{line-height:1.4;flex:1}.side-nav-empty{padding:20px;text-align:center;color:var(--muted);font-size:13px}.workspace-main{flex:1;min-height:0;min-width:0;margin-left:300px;padding:24px 28px 32px;overflow-y:auto;overflow-x:hidden;background:var(--bg);transition:margin-left .2s}.workspace:has(.side-nav.collapsed) .workspace-main{margin-left:52px}.category-banner{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-left-width:4px;border-radius:var(--radius);padding:16px 20px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.category-banner-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.category-banner-title{font-size:16px;font-weight:700}.category-banner-desc{font-size:13px;color:var(--muted);margin-top:2px}.category-banner-count{margin-left:auto;font-size:12px;font-weight:600;color:var(--muted);background:#f4f6f8;padding:6px 12px;border-radius:999px;white-space:nowrap}.measure-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px 32px 24px;box-shadow:var(--shadow-sm)}.measure-header{margin-bottom:28px}.measure-header-top{display:flex;gap:8px;margin-bottom:10px}.measure-code-pill,.measure-hkca-pill{font-size:11px;font-weight:700;padding:4px 10px;border-radius:6px;background:#f4f6f8;color:var(--muted);font-family:ui-monospace,monospace}.measure-header h2,.measure-title-wrap h2{font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.35;margin:0}.measure-title-wrap{margin-bottom:14px}.measure-title-row{display:inline-block;width:fit-content;max-width:100%;position:relative;vertical-align:top}.measure-title-row.has-desc-icon h2{padding-right:22px}.measure-desc-trigger{position:absolute;top:0;right:0;z-index:2;line-height:0}.measure-desc-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;border-radius:3px;background:transparent;color:#a0aec0;cursor:help;vertical-align:top;transition:color .15s ease,background .15s ease}.measure-desc-icon:before{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px}.measure-desc-icon:hover,.measure-desc-icon:focus-visible{color:var(--accent, var(--primary));background:#1e58a714;outline:none}.measure-desc-popover{visibility:hidden;opacity:0;pointer-events:none;position:absolute;z-index:50;top:calc(100% + 4px);left:calc(100% + 2px);right:auto;min-width:280px;max-width:min(480px,calc(100vw - 48px));max-height:min(360px,50vh);overflow-y:auto;padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 16px #0f172a1a,0 0 0 1px #0f172a0a;transition:opacity .15s ease,visibility .15s ease}.measure-desc-popover:before{content:"";position:absolute;top:-10px;left:0;width:24px;height:10px}.measure-desc-trigger:hover .measure-desc-popover,.measure-desc-trigger:focus-within .measure-desc-popover{visibility:visible;opacity:1;pointer-events:auto}.measure-desc-popover-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px}.measure-desc-popover-body{font-size:14px;line-height:1.65;color:var(--text-secondary);white-space:pre-line}.measure-description{display:none}.measure-description-text{margin:0;font-size:14px;line-height:1.6;color:var(--text-secondary);white-space:pre-line}.measure-description-expanded .measure-description-text{display:block;overflow:visible;white-space:pre-line}.measure-description-toggle{display:none}.measure-meta{display:flex;flex-wrap:wrap;gap:8px}.meta-badge{font-size:12px;padding:5px 12px;border-radius:999px;background:#fafbfc;border:1px solid var(--line)}.meta-badge.impact{border-color:#e8d5a8;background:#fffbf0}.meta-badge.quant{border-color:#a8d5d5;background:#f0faf9}.meta-badge.tokens{font-family:ui-monospace,monospace;font-size:11px}.empty-state{text-align:center;padding:80px 24px;color:var(--muted)}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.5}.form-grid{display:grid;gap:20px}.form-grid-2{grid-template-columns:1fr 1fr}.form-field-span-2,.form-field-full{grid-column:1 / -1}.form-field-narrow{max-width:280px;margin-bottom:24px}.form-grid-compact{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-start}.form-field-number,.form-field-date,.form-field-select{flex:0 0 auto;width:auto;max-width:100%}.form-field-number label,.form-field-date label,.form-field-select label{white-space:nowrap}.form-field-number input[type=number]{width:160px;max-width:100%}.form-field-date input[type=date]{width:200px;max-width:100%}.form-field-select select{width:100%;min-width:180px}.form-field-text-block{flex:1 1 100%;max-width:560px}.form-field label{display:block;font-size:13px;font-weight:600;margin-bottom:8px;color:var(--text)}.form-field input,.form-field textarea,.form-field select{width:100%;border:1px solid var(--line);border-radius:8px;padding:11px 14px;font-size:14px;background:#fafbfc;transition:border-color .15s,background .15s}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;border-color:var(--primary);background:#fff}.form-field textarea{min-height:120px;resize:vertical}.form-error{color:#c62828;font-size:13px;margin-bottom:12px}.btn-primary{background:var(--primary);color:var(--primary-foreground);border:none;padding:11px 24px;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:background .15s}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{background:var(--surface);border:1px solid var(--line);padding:11px 24px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:background .15s}.btn-secondary:hover{background:#f4f6f8}.btn-block{width:100%}.form-actions{display:flex;align-items:center;gap:14px}.form-actions-card{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.form-actions-sticky{position:sticky;bottom:0;background:linear-gradient(transparent,var(--surface) 24%);padding:20px 0 4px;margin-top:8px}.measure-note{background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius);padding:12px 16px;font-size:13px;margin-bottom:20px;color:#92400e}.token-section{border:1px solid var(--line);border-radius:var(--radius-lg);margin-bottom:20px;overflow:hidden;box-shadow:var(--shadow-sm)}.token-section-header{background:var(--accent, #ccc);color:#fff;padding:14px 20px;font-weight:700;font-size:14px;display:flex;justify-content:space-between;align-items:center}.token-section-header .badge{background:#ffffff38;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600}.token-section-body{padding:20px 24px}.token-section-disabled{opacity:.55}.token-section-disabled .token-section-body{pointer-events:none;-webkit-user-select:none;user-select:none}.token-section-disabled .token-section-header{opacity:1}.section-hint{font-size:13px;color:var(--muted);margin-bottom:16px;line-height:1.6}.evidence-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.evidence-table th,.evidence-table td{border-bottom:1px solid var(--line);padding:14px 16px;text-align:left;vertical-align:top}.evidence-table tr:last-child td{border-bottom:none}.evidence-table th{background:#f8fafc;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.evidence-table td:last-child{min-width:260px}.kpi-tiers{margin-top:20px;padding:16px 20px;background:#f8fafc;border-radius:var(--radius);border:1px solid var(--line)}.kpi-tiers-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:10px}.kpi-tiers ul{list-style:none;font-size:13px}.kpi-tiers li{padding:6px 0;border-bottom:1px dashed #e8ecf0}.kpi-tiers li:last-child{border-bottom:none}.kpi-tiers li.active-tier{color:var(--accent, var(--primary));font-weight:600}.kpi-preview{margin-top:12px;font-size:14px;font-weight:600;color:var(--accent, var(--final))}.perf-kpi-input-block{margin-top:20px;display:inline-block;width:fit-content;max-width:100%}.perf-kpi-input-block .form-field-number{flex:unset;width:fit-content;max-width:100%}.perf-kpi-input-block .form-field-number label{white-space:nowrap}.perf-kpi-input-block .form-field-number input[type=number]{width:100%;min-width:0;max-width:100%}@media(max-width:720px){.perf-kpi-input-block .form-field-number label{white-space:normal}}.perf-kpi-evidence-block{margin-top:20px}.perf-kpi-evidence-block .section-hint{margin-top:0;margin-bottom:16px}.other-input{margin-top:10px;width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13px}.field-hint{font-size:11px}.required-hint{color:#c62828;margin-top:6px}.token-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}.token-summary-card{text-align:center;padding:20px 16px;background:#f8fafc;border-radius:var(--radius);border:1px solid var(--line)}.token-summary-total{background:color-mix(in srgb,var(--accent, var(--final)) 8%,white);border-color:color-mix(in srgb,var(--accent, var(--final)) 25%,white)}.token-summary-label{display:block;font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.token-summary strong{display:block;font-size:32px;font-weight:700;margin-top:6px;letter-spacing:-.02em}.token-summary small{font-size:13px;color:var(--muted)}.upload-zone-wrap{margin-top:4px}.upload-zone-label{font-size:13px;font-weight:600;margin-bottom:8px}.required-mark{color:#e53935;margin-left:2px}.upload-zone{border:2px dashed #cbd5e1;border-radius:var(--radius);padding:24px 16px;text-align:center;cursor:pointer;background:#fafbfc;transition:border-color .15s,background .15s}.upload-zone:hover,.upload-zone.drag-over{border-color:#94a3b8;background:#f1f5f9}.upload-zone.disabled{opacity:.55;cursor:not-allowed}.upload-zone-icon{color:#94a3b8;margin-bottom:8px;display:flex;justify-content:center}.upload-zone-text{font-size:13px;color:var(--text);margin-bottom:4px}.upload-zone-limit{font-size:11px;color:var(--muted)}.upload-zone-status{font-size:12px;color:var(--muted);margin-top:8px}.upload-zone-input{display:none}.upload-zone-error{font-size:12px;color:#c62828;margin-top:8px}.upload-file-list{list-style:none;margin-top:10px}.upload-file-item{display:flex;align-items:center;gap:8px;font-size:12px;padding:8px 0;border-bottom:1px solid #eef1f4}.upload-file-item a{color:var(--primary);text-decoration:none;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-file-size{color:var(--muted);font-size:11px}.upload-file-remove{border:none;background:none;color:#c62828;cursor:pointer;font-size:18px;padding:0 4px}.report-card{padding:28px 32px}.report-card.report-page{gap:32px}.report-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px}.report-kpi{text-align:center;padding:24px 16px;border-radius:var(--radius-lg);background:#f8fafc;border:1px solid var(--line)}.report-kpi strong{font-size:36px;font-weight:700;display:block;margin-top:8px;letter-spacing:-.02em}.report-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.report-table th,.report-table td{border-bottom:1px solid var(--line);padding:12px 16px;text-align:left}.report-table tr:last-child td{border-bottom:none}.report-table th{background:#f8fafc;font-weight:600;font-size:12px;color:var(--muted)}.report-status{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.report-status-pending_review{background:#fff8e1;color:#f57f17}.report-status-submitted{background:#e8f5e9;color:#2e7d32}.report-status-rejected{background:#ffebee;color:#c62828}.quant-cell{max-width:280px;font-size:12px;line-height:1.5}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-hero{background:#fff;color:var(--text);display:flex;align-items:center;justify-content:center;padding:48px;border-right:1px solid var(--border)}.login-hero-inner{max-width:480px;width:100%;display:flex;flex-direction:column;align-items:flex-start}.login-hero-brand{margin-bottom:0}.login-hero-logos-row{--login-cs-h: 150px;display:flex;align-items:flex-start;gap:0;margin-left:-16px;margin-bottom:20px}.login-hero-cs-logo{display:block;height:var(--login-cs-h);width:auto;flex-shrink:0}.login-hero-aecom-logo{display:block;height:15px;width:auto;margin-top:calc(var(--login-cs-h) * .755);margin-left:-30px;flex-shrink:0}.login-hero-title-block{width:100%}.login-hero-title-line1,.login-hero-title-line2{font-size:28px;font-weight:700;letter-spacing:-.02em;color:var(--text);line-height:1.3;margin:0}.login-hero-title-line2{margin-bottom:6px}.login-hero-title-line1:last-of-type{margin-bottom:6px}.login-hero-powered{font-size:13px;color:var(--muted);margin:0 0 28px;line-height:1.6}.login-hero h1{font-size:28px;font-weight:700;margin-bottom:12px;letter-spacing:-.02em;color:var(--text)}.login-hero p{font-size:15px;color:var(--muted);line-height:1.6;margin-bottom:28px}.login-features{list-style:none;font-size:14px;color:var(--text)}.login-features li{padding:8px 0 8px 20px;position:relative}.login-features li:before{content:"✓";position:absolute;left:0;font-weight:700;color:var(--accent, var(--primary))}.login-panel{display:flex;align-items:center;justify-content:center;padding:48px;background:var(--bg)}.login-card{background:var(--surface);padding:40px;border-radius:var(--radius-lg);width:100%;max-width:400px;box-shadow:var(--shadow-md);border:1px solid var(--line)}.login-card h2{font-size:22px;font-weight:700;margin-bottom:6px}.login-card-sub{font-size:14px;color:var(--muted);margin-bottom:28px}.login-card .form-field{margin-bottom:18px}.demo-hints{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.demo-accounts{display:flex;flex-direction:column;gap:4px;margin-top:8px;font-family:ui-monospace,monospace;font-size:11px}.demo-account-btn{padding:0;border:none;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}.demo-account-btn:hover{color:var(--accent);text-decoration:underline}.admin-grid{display:grid;gap:4px}.admin-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.admin-swatch{width:14px;height:14px;border-radius:4px;flex-shrink:0}.admin-cat-label{flex:1;font-weight:600;font-size:14px}.admin-check{font-size:13px;display:flex;align-items:center;gap:8px;cursor:pointer}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--surface);border-radius:var(--radius-lg);padding:28px;width:440px;max-width:90vw;box-shadow:var(--shadow-md)}.modal-form{width:480px}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.modal-header h3{margin-bottom:4px;font-size:18px}.modal-subtitle{font-size:13px;color:var(--muted);line-height:1.5}.modal-close{border:none;background:transparent;color:var(--muted);font-size:24px;line-height:1;cursor:pointer;padding:0 4px;flex-shrink:0}.modal-close:hover{color:var(--text)}.modal-feedback{padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:16px}.modal-feedback-ok{background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7}.modal-feedback-err{background:#ffebee;color:#c62828;border:1px solid #ef9a9a}.modal h3{margin-bottom:16px;font-size:18px}.modal-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:20px}.modal-actions-buttons{display:flex;justify-content:flex-end;gap:10px}.modal-actions-feedback{margin-bottom:0;width:100%}.user-mgmt-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}.user-mgmt-title{margin-bottom:4px}.user-mgmt-hint{margin:0}.user-mgmt-meta{font-size:13px;color:var(--muted);margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}.table-wrap{overflow-x:auto}.user-mgmt-table .empty-cell{text-align:center;color:var(--muted);padding:32px 16px}.user-email-cell{font-family:ui-monospace,monospace;font-size:13px}.role-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.role-badge-super_admin{background:#fef3c7;color:#92400e}.role-badge-admin{background:#dbeafe;color:#1e40af}.role-badge-user{background:#dcfce7;color:#166534}@media(max-width:1024px){.basic-layout{grid-template-columns:1fr}.basic-aside{flex-direction:row;flex-wrap:wrap}.logo-card,.tip-card{flex:1;min-width:260px}.nav-cat-sub{display:none}.nav-side-label{font-size:12px}.header-nav{gap:8px;padding:8px 16px 12px}.nav-side-tab{min-width:64px;padding:8px 10px}}@media(max-width:768px){.login-page{grid-template-columns:1fr}.login-hero{display:none}.form-grid-2,.token-summary,.report-summary{grid-template-columns:1fr}.user-name,.toolbar-label{display:none}.page-container,.measure-panel{padding:20px 16px}.header-top{padding:0 16px}.header-nav{flex-wrap:wrap}.nav-4m1e-rail{order:3;flex-basis:100%}.nav-cat-char{font-size:16px}}.readonly-banner{background:#fff8e1;border:1px solid #ffe082;border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:14px;color:#6d4c00}.upload-meta-row{display:flex;gap:12px;margin-bottom:10px;flex-wrap:wrap}.form-field-inline{flex:1;min-width:140px}.form-field-inline label{font-size:12px}.form-field-inline select{width:100%;padding:6px 8px;font-size:13px}.upload-file-meta{font-size:11px;color:#666;margin-left:6px}.status-badge.submitted{background:#e8f5e9;color:#2e7d32;padding:6px 12px;border-radius:6px;font-size:13px}.status-badge.pending{background:#fff8e1;color:#f57f17;padding:6px 12px;border-radius:6px;font-size:13px}.status-badge.rejected{background:#ffebee;color:#c62828;padding:6px 12px;border-radius:6px;font-size:13px}.pending-review-banner{background:#fff8e1;border-color:#ffe082}.pending-review-editable-banner{background:#e3f2fd;border-color:#90caf9;color:#1565c0}.pending-review-editable-banner p{margin:0 0 6px}.pending-review-editable-banner p:last-child{margin-bottom:0}.rejected-banner{background:#ffebee;border-color:#ef9a9a}.review-card-head{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-bottom:6px}.review-card-meta{color:var(--muted);font-size:13px}.review-card-title{margin-bottom:8px;font-weight:600}.review-card-scores{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--muted);margin-bottom:12px}.mod-request-panel{margin-top:16px;padding:16px;border:1px solid #e0e0e0;border-radius:8px;background:#fafafa}.mod-request-panel textarea{width:100%;margin:8px 0}.form-error-block{margin-top:12px}.validation-error-panel{background:#ffebee;border:1px solid #ef9a9a;border-radius:8px;padding:12px 16px;margin-top:12px}.validation-error-title{margin:0 0 8px;font-weight:600;color:#c62828;font-size:14px}.validation-error-list{margin:0;padding-left:20px;color:#c62828;font-size:13px}.validation-error-list li{margin-bottom:4px}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap}.admin-tabs-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.review-queue-refresh-btn{flex-shrink:0;margin-left:auto}.admin-tab{display:inline-flex;align-items:center;padding:8px 16px;border:1px solid #ddd;border-radius:8px;background:#fff;cursor:pointer;font-size:14px}.admin-tab.active{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.mod-review-card{border:1px solid #e8e8e8;border-radius:8px;padding:14px;margin-top:12px}.review-workspace{display:grid;grid-template-columns:minmax(280px,340px) 1fr;gap:16px;align-items:start;min-height:520px}.review-workspace--stacked{grid-template-columns:1fr;gap:12px;min-height:auto}.review-detail-pane--full{width:100%;min-width:0}.review-assign-board--stats{padding-bottom:14px}.review-stats-dimensions{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:4px}.review-stats-dimension{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:16px 18px 18px;display:flex;flex-direction:column;gap:14px}.review-stats-dimension-head{padding-bottom:10px;border-bottom:1px solid #e2e8f0}.review-stats-dimension-title{margin:0 0 4px;font-size:15px;font-weight:650;color:#0f172a}.review-stats-dimension-hint{margin:0;font-size:12px;color:#64748b;line-height:1.4}.review-stats-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.review-stats-metric{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px 12px 10px;display:flex;flex-direction:column;gap:4px;min-height:72px}.review-stats-metric.tone-warn{border-color:#fcd34d;background:#fffbeb}.review-stats-metric.tone-ok{border-color:#86efac;background:#f0fdf4}.review-stats-metric.tone-info{border-color:#93c5fd;background:#eff6ff}.review-stats-metric-value{font-size:22px;font-weight:700;color:#0f172a;letter-spacing:-.02em;line-height:1.15}.review-stats-metric-label{font-size:12px;color:#64748b;line-height:1.35}.review-stats-dimension-chart{display:flex;justify-content:center;padding-top:4px}.review-assign-wait-banner{margin-top:12px;padding:12px 14px;border-radius:8px;background:#fffbeb;border:1px solid #fde68a;font-size:13px;color:#92400e;line-height:1.5}.review-assign-wait-banner p{margin:0}.review-assign-wait-banner--info{background:#eff6ff;border-color:#93c5fd;color:#1e40af}.review-assign-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;align-items:start}.review-assign-chart-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px}.review-assign-chart-title{margin:0 0 10px;font-size:13px;font-weight:600;color:#334155}.donut-chart{display:flex;flex-direction:column;align-items:center;gap:10px}.donut-chart--empty{display:flex;align-items:center;justify-content:center;border:1px dashed #cbd5e1;border-radius:50%;color:#94a3b8;font-size:13px}.donut-chart-canvas{position:relative;display:flex;align-items:center;justify-content:center}.donut-chart-canvas svg{display:block;overflow:visible}.donut-chart-arc{cursor:pointer;transition:opacity .18s ease,transform .18s ease}.donut-chart-arc path:not(.donut-chart-hit){transition:fill .18s ease,stroke-width .18s ease,filter .18s ease,d .18s ease}.donut-chart-arc.is-dimmed{opacity:.38}.donut-chart-arc.is-active{opacity:1}.donut-chart-hit{pointer-events:all}.donut-chart-tooltip{position:absolute;left:50%;bottom:2px;transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:#0f172aeb;color:#fff;font-size:12px;line-height:1;white-space:nowrap;pointer-events:none;box-shadow:0 6px 16px #0f172a2e;z-index:2}.donut-chart-tooltip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.donut-chart-tooltip-label{color:#e2e8f0}.donut-chart-tooltip-value{font-weight:700}.donut-chart-tooltip-pct{color:#94a3b8;font-variant-numeric:tabular-nums}.donut-chart-center-num{font-size:18px;font-weight:700;fill:#0f172a;transition:fill .15s ease}.donut-chart-center-label{font-size:10px;fill:#64748b;text-transform:uppercase;letter-spacing:.04em}.donut-chart-legend{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:6px}.donut-chart-legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#475569;padding:4px 6px;margin:0 -6px;border-radius:8px;cursor:pointer;transition:background .15s ease,opacity .15s ease,color .15s ease}.donut-chart-legend-item:hover,.donut-chart-legend-item.is-active{background:#f1f5f9;color:#0f172a}.donut-chart-legend-item.is-dimmed{opacity:.45}.donut-chart-legend-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.donut-chart-legend-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.donut-chart-legend-value{font-weight:600;color:#0f172a;font-variant-numeric:tabular-nums}.review-assign-kpi-strip{display:flex;flex-direction:column;gap:10px;justify-content:center}.review-assign-kpi{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}.review-assign-kpi--warn{border-color:#fde68a;background:#fffbeb}.review-assign-kpi--ok{border-color:#bbf7d0;background:#f0fdf4}.review-assign-kpi-value{font-size:24px;font-weight:700;color:#0f172a;line-height:1.1}.review-assign-kpi-label{font-size:12px;color:#64748b}.review-task-panel{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0f172a0a}.review-task-panel-head{padding:12px 20px 0;border-bottom:1px solid #f1f5f9}.review-task-panel-sub{margin:8px 0 0;padding-bottom:12px;font-size:12px;color:#94a3b8}.review-task-panel-hint{max-width:52rem;line-height:1.5;color:#64748b}.review-task-sort-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 20px;background:#fafbfc;border-bottom:1px solid #f1f5f9}.review-task-sort-label{font-size:12px;color:#94a3b8;margin-right:4px}.review-task-sort-chip{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;font-size:12px;color:#64748b;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.review-task-sort-chip:hover{border-color:#cbd5e1;color:#334155}.review-task-sort-chip.active{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8;font-weight:600}.review-task-sort-dir{font-size:11px;opacity:.85}.review-task-empty-state{padding:48px 20px;text-align:center;color:#94a3b8;font-size:14px}.review-task-groups{padding:8px 12px 16px;display:flex;flex-direction:column;gap:16px}.review-task-group{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.review-task-group-header{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:color-mix(in srgb,var(--contractor-accent, #64748b) 8%,#f8fafc);border:none;border-bottom:1px solid transparent;text-align:left;font:inherit;color:inherit;cursor:pointer}.review-task-group.is-expanded .review-task-group-header{border-bottom-color:#e2e8f0}.review-task-group-header:hover{background:color-mix(in srgb,var(--contractor-accent, #64748b) 14%,#f8fafc)}.review-task-group-toggle{width:16px;flex-shrink:0;font-size:10px;color:#64748b;text-align:center}.review-task-group-dot{width:10px;height:10px;border-radius:50%;background:var(--contractor-accent, #64748b);flex-shrink:0}.review-task-group-name{font-size:14px;font-weight:600;color:#0f172a;min-width:0;flex:1}.review-task-group-count{font-size:12px;color:#64748b;margin-left:auto}.review-task-group-release{font-size:12px;margin-left:8px}.review-task-group-list,.review-task-flat-list{display:flex;flex-direction:column}.review-task-flat-list{padding:8px 12px 16px;gap:8px}.review-task-item{display:flex;align-items:stretch;width:100%;text-align:left;border:none;background:#fff;cursor:pointer;font:inherit;color:inherit;position:relative;transition:background .12s}.review-task-group-list .review-task-item{border-bottom:1px solid #f1f5f9}.review-task-group-list .review-task-item:last-child{border-bottom:none}.review-task-flat-list .review-task-item{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.review-task-item:hover{background:#f8fafc}.review-task-item-accent{width:4px;flex-shrink:0;background:var(--contractor-accent, #cbd5e1)}.review-task-item-main{flex:1;min-width:0;padding:12px 14px}.review-task-item-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:4px}.review-task-item-contractor{font-size:12px;font-weight:600;color:var(--contractor-accent, #475569)}.review-task-item-title{margin:0 0 6px;font-size:14px;font-weight:500;color:#0f172a;line-height:1.4}.review-task-item-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:#64748b}.review-task-item-time{color:#94a3b8}.review-task-item-tail{display:flex;align-items:center;gap:8px;padding:0 14px;flex-shrink:0}.review-task-item-release{font-size:12px;color:#64748b;white-space:nowrap}.review-task-item-release:hover{color:#dc2626}.review-task-item-chevron{font-size:22px;line-height:1;color:#cbd5e1;font-weight:300}.review-task-item:hover .review-task-item-chevron{color:#94a3b8}.review-task-status{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.review-task-status.status-submitted{background:#dcfce7;color:#166534}.review-task-status.status-rejected{background:#fee2e2;color:#991b1b}.review-task-status.status-revision_requested{background:#fef3c7;color:#92400e}.review-contractor-detail{background:#fff;border:1px solid #e2e8f0;border-radius:12px;border-top:3px solid var(--contractor-accent, #3b82f6);padding:16px 18px 20px}.review-contractor-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f1f5f9}.review-contractor-detail-status{margin:0 0 4px;font-size:13px;font-weight:600;color:#1d4ed8}.review-contractor-detail-counts{display:flex;gap:8px;flex-wrap:wrap;font-size:12px;color:#64748b}.review-contractor-detail-counts span{background:#f1f5f9;border-radius:999px;padding:4px 10px}.review-detail-page-head{margin-bottom:16px}.review-back-link{display:inline-block;margin-bottom:8px;font-size:14px;color:#64748b;text-decoration:none}.review-back-link:hover{color:#1d4ed8}.review-detail-page-title{margin:0;font-size:22px}.sa-dashboard{display:flex;flex-direction:column;gap:20px}.sa-dashboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.sa-dashboard-head-text{max-width:640px}.sa-dashboard-title{margin:0 0 6px;font-size:20px;font-weight:700;color:#0f172a;letter-spacing:-.02em}.sa-dashboard-subtitle{margin:0;font-size:13px;line-height:1.5;color:#64748b}.sa-overview{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:16px 18px 18px;display:flex;flex-direction:column;gap:14px}.sa-overview-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.sa-overview-summary{display:flex;flex-wrap:wrap;gap:10px}.sa-overview-metric{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 16px 10px;display:flex;flex-direction:column;gap:4px;min-width:120px}.sa-overview-metric-value{font-size:22px;font-weight:700;color:#0f172a;letter-spacing:-.02em;line-height:1.15}.sa-overview-metric-label{font-size:12px;color:#64748b;line-height:1.35}.sa-overview-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.sa-overview-chart-card{border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px;align-items:center}.sa-overview-chart-title{margin:0;align-self:stretch;font-size:13px;font-weight:700;color:#0f172a}.sa-overview-chart-card .donut-chart{width:100%}.sa-assign-board{display:flex;flex-direction:column;gap:12px}.sa-assign-board-head{display:flex;flex-direction:column;gap:4px}.sa-assign-board-title{margin:0;font-size:16px;font-weight:700;color:#0f172a}.sa-assign-board-hint{margin:0;font-size:13px;line-height:1.45;color:#64748b}.sa-reviewer-table-wrap{border:1px solid #e2e8f0;border-radius:12px;overflow:auto;background:#fff}.sa-reviewer-table{width:100%;border-collapse:collapse;font-size:13px}.sa-reviewer-table th,.sa-reviewer-table td{padding:12px 14px;text-align:left;border-bottom:1px solid #f1f5f9;white-space:nowrap}.sa-reviewer-table th{font-size:12px;font-weight:600;color:#64748b;background:#f8fafc}.sa-reviewer-sort-btn{display:inline-flex;align-items:center;gap:4px;margin:0;padding:0;border:none;background:transparent;font:inherit;font-weight:600;color:inherit;cursor:pointer;white-space:nowrap}.sa-reviewer-sort-btn:hover,.sa-reviewer-sort-btn.active{color:#0f172a}.sa-reviewer-sort-dir{font-size:11px;color:#2563eb}.sa-reviewer-table tbody tr{cursor:pointer;transition:background .12s}.sa-reviewer-table tbody tr:hover{background:#f8fafc}.sa-reviewer-table tbody tr.is-idle{color:#64748b}.sa-reviewer-table tbody tr:last-child td{border-bottom:none}.sa-reviewer-name{font-weight:600;color:#0f172a;white-space:normal!important;min-width:140px}.sa-reviewer-chevron{color:#94a3b8;font-size:18px;font-weight:500;text-align:right;width:28px}.sa-reviewer-empty{text-align:center!important;color:#94a3b8;padding:28px 14px!important}.sa-status-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.sa-status-pill.idle{background:#f1f5f9;color:#64748b}.sa-status-pill.busy{background:#dbeafe;color:#1d4ed8}.sa-reviewer-detail{display:flex;flex-direction:column;gap:16px}.sa-reviewer-detail-stats{display:flex;align-items:stretch;flex-wrap:wrap;gap:0;padding:16px 18px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.sa-reviewer-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.sa-reviewer-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid #f1f5f9}.sa-reviewer-section-head h2{margin:0;font-size:14px;font-weight:700;color:#0f172a}.sa-reviewer-section-body{display:flex;flex-direction:column;gap:8px;padding:12px}.sa-assign-lane-count{flex-shrink:0;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:#e2e8f0;color:#0f172a;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.sa-assign-card{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;width:100%;padding:10px 12px;border:1px solid #e2e8f0;border-left:3px solid var(--contractor-accent, #94a3b8);border-radius:10px;background:#fff;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s}.sa-assign-card:hover{border-color:#cbd5e1;box-shadow:0 1px 2px #0f172a0f}.sa-assign-card-main{min-width:0;flex:1}.sa-assign-card-title{margin:0;font-size:13px;font-weight:600;color:#0f172a;line-height:1.35;word-break:break-word}.sa-assign-card-meta{margin:4px 0 0;font-size:11px;color:#64748b;line-height:1.35}.sa-assign-card-badge{flex-shrink:0;font-size:11px;font-weight:600;padding:3px 7px;border-radius:999px;white-space:nowrap}.sa-assign-card-badge.tone-warn{background:#fef3c7;color:#b45309}.sa-assign-card-badge.tone-info{background:#dbeafe;color:#1d4ed8}.sa-assign-card-badge.tone-ok{background:#dcfce7;color:#15803d}.sa-assign-empty{margin:0;padding:18px 8px;font-size:12px;color:#94a3b8;text-align:center}.review-super-panel{display:flex;flex-direction:column;gap:12px}.review-super-section-title{margin:0 0 10px;font-size:15px;font-weight:600;color:#0f172a}.review-super-reviewers{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px 16px}.review-super-reviewer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.review-super-reviewer-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;cursor:pointer;text-align:left;font:inherit;color:inherit;transition:border-color .15s,background .15s,box-shadow .15s}.review-super-reviewer-card:hover{border-color:#cbd5e1;background:#fff}.review-super-reviewer-card.active{border-color:#93c5fd;background:#eff6ff;box-shadow:0 1px 3px #2563eb1f}.review-super-reviewer-name{font-size:14px;font-weight:600;color:#0f172a}.review-super-reviewer-stats{font-size:12px;color:#64748b}.review-super-reviewer-slots{font-size:11px;color:#94a3b8;margin-top:2px}.review-super-task-panel{margin-top:0}.review-super-filter-bar{display:flex;flex-wrap:wrap;gap:8px;padding:10px 20px;background:#fafbfc;border-bottom:1px solid #f1f5f9}.review-super-filter-count{margin-left:4px;opacity:.7}.review-super-assignee{font-size:12px;color:#1d4ed8;background:#dbeafe;border-radius:999px;padding:2px 8px;font-weight:500}.review-super-assignee--pool{color:#92400e;background:#fef3c7}.review-assign-board{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 16px 16px}.review-assign-board-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.review-assign-board-toolbar--actions-only{justify-content:flex-end;align-items:center}.review-assign-board-title{margin:0 0 4px;font-size:15px;font-weight:600}.review-assign-board-stats{margin:0}.review-assign-board-actions{display:flex;gap:8px;flex-wrap:wrap}.review-assign-lanes{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px;max-height:200px}.review-assign-lane{flex:0 0 min(260px,85vw);min-width:200px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:8px}.review-assign-lane--pool{border-color:#cbd5e1}.review-assign-lane-title{margin:0;font-size:12px;font-weight:600;color:#475569;display:flex;flex-direction:column;gap:2px}.review-assign-lane-count{font-weight:500;color:#64748b}.review-assign-lane-cards{display:flex;flex-direction:column;gap:6px;overflow-y:auto;max-height:140px}.review-assign-lane-empty{margin:0;font-size:12px}.review-assign-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;text-align:left;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fafbfc;cursor:pointer;font:inherit}.review-assign-card:hover{border-color:#94a3b8;background:#fff}.review-assign-card.active{border-color:var(--final, #1a7f4b);background:#f0faf4;box-shadow:0 0 0 1px var(--final, #1a7f4b)}.review-assign-card-title{font-size:13px;font-weight:600;color:#1e293b;line-height:1.3}.review-assign-card-meta{font-size:11px;color:#64748b}.review-assign-release{font-size:11px;color:#dc2626;margin-top:2px}.review-assign-release:hover{text-decoration:underline}.review-assign-admin-chips{display:flex;flex-wrap:wrap;gap:8px}.review-assign-board--admin .review-assign-card{flex:0 1 auto;min-width:160px;max-width:280px}.review-measure-strip{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px 14px}.review-measure-strip-heading{margin:0 0 8px;font-size:13px;font-weight:600;color:#334155}.review-measure-strip-count{font-weight:500;color:#64748b;margin-left:6px}.review-measure-strip-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.review-measure-strip-tab{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;padding:6px 12px;border:1px solid #e2e8f0;border-radius:999px;background:#fafbfc;cursor:pointer;font:inherit;font-size:12px;max-width:280px}.review-measure-strip-tab.active{border-color:var(--final, #1a7f4b);background:#f0faf4}.review-measure-strip-tab-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-assign-modal{width:min(760px,94vw);max-height:70vh;overflow-y:auto}.review-assign-modal-list{list-style:none;margin:12px 0;padding:0;display:flex;flex-direction:column;gap:8px}.review-assign-modal-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer}.review-assign-modal-row.disabled{opacity:.5;cursor:not-allowed}.review-assign-modal-row-main{display:flex;flex-direction:column;gap:2px;font-size:13px}.review-assign-modal-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;margin-bottom:12px}.review-assign-modal-preview-title{margin:0;font-size:12px;font-weight:600}.review-assign-modal-preview ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.review-assign-modal-preview li{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.review-assign-modal-preview select{min-width:140px}.review-queue{background:#fff;border:1px solid #e8e8e8;border-radius:10px;padding:16px;max-height:calc(100vh - 220px);overflow:auto;position:sticky;top:16px}.review-queue-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:4px}.review-queue-head-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.btn-sm{font-size:12px;padding:4px 10px}.review-queue-more-hint{font-size:12px;color:var(--muted);margin-bottom:8px}.review-claim-badge{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:600}.review-claim-badge.mine{background:#e3f2fd;color:#1565c0}.review-claim-banner{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:13px}.review-claim-banner-ok{background:#e8f5e9;color:#2e7d32;border:1px solid #c8e6c9}.review-claim-banner-info{background:#fff3e0;color:#e65100;border:1px solid #ffcc80}.review-claim-banner-warn{background:#fff8e1;color:#f57f17;border:1px solid #ffe082}.review-claim-banner-lost{background:#fce4ec;color:#c62828;border:1px solid #f8bbd0}.review-claim-banner-title{font-weight:600;margin:0 0 6px}.review-queue-head h2{font-size:15px;font-weight:600;margin:0}.review-queue-count{font-size:12px;color:var(--muted)}.review-queue-hint{font-size:12px;margin-bottom:12px}.review-queue-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.review-queue-item{width:100%;text-align:left;border:1px solid #ececec;border-radius:8px;padding:12px;background:#fafafa;cursor:pointer;transition:border-color .15s,background .15s}.review-queue-item:hover{border-color:#ccc;background:#fff}.review-queue-item.active{border-color:#1a1a2e;background:#fff;box-shadow:0 0 0 1px #1a1a2e}.review-queue-item-top{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.review-queue-item-title{font-size:13px;font-weight:600;margin:0 0 4px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.review-queue-item-meta{font-size:12px;color:var(--muted);margin:0 0 6px}.review-queue-item-scores{display:flex;gap:10px;font-size:12px;font-weight:500;color:#333}.review-queue-item-time{display:block;margin-top:6px;font-size:11px;color:var(--muted)}.review-carbon-hint{margin-top:4px;font-size:12px}.btn-link{border:none;background:none;padding:0;color:var(--primary);font-size:12px;cursor:pointer;text-decoration:underline}.btn-link:hover{opacity:.85}.review-queue-claim-timer{display:block;margin-top:4px;font-size:11px;font-weight:600;color:var(--final);font-variant-numeric:tabular-nums}.review-queue-empty{padding:24px 0;text-align:center}.review-queue-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border, #e0e0e0)}.review-queue-page-info{font-size:12px;color:var(--muted);min-width:64px;text-align:center}.admin-tab-badge{display:inline-flex;min-width:18px;height:18px;align-items:center;justify-content:center;margin-left:6px;padding:0 5px;border-radius:9px;background:#e2e8f0;color:#475569;font-size:11px;font-weight:600}.admin-tab.active .admin-tab-badge{background:#ffffff40;color:inherit}.review-detail-pane{min-width:0}.review-detail-placeholder{background:#fff;border:1px dashed #ddd;border-radius:10px;padding:48px 24px;text-align:center;color:var(--muted)}.review-detail-empty{border-style:solid;border-color:#e8e8e8}.review-detail{background:#fff;border:1px solid #e8e8e8;border-radius:10px;overflow:visible}.review-detail-header{padding:20px 24px;border-left:4px solid var(--final);border-bottom:1px solid #eee;background:#fafafa}.review-detail-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;align-items:center}.review-queue-cat{font-size:12px;color:var(--muted)}.review-detail-title{font-size:18px;font-weight:600;margin:0 0 6px;line-height:1.35}.review-detail-sub{margin:0;font-size:13px;color:var(--muted)}.review-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px 24px;border-bottom:1px solid #eee}.review-detail-grid .review-collapsible-section{padding:0;border-bottom:none}.review-section{padding:12px 24px;border-bottom:1px solid #eee}.review-collapsible-section{padding:12px 24px}.review-section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#666;margin:0 0 12px}.review-dl{display:grid;gap:8px;margin:0}.review-dl>div{display:grid;grid-template-columns:100px 1fr;gap:8px;font-size:13px}.review-dl dt{color:var(--muted);margin:0}.review-dl dd{margin:0;font-weight:500}.review-validation-badge{display:inline-block;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;margin-bottom:10px}.review-validation-badge.pass{background:#e8f5e9;color:#2e7d32}.review-validation-badge.fail{background:#ffebee;color:#c62828}.review-validation-list{margin:0;padding-left:18px;font-size:13px;color:#c62828}.review-validation-list li{margin-bottom:4px}.review-score-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.review-score-card{background:#f5f5f5;border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:4px}.review-score-card span{font-size:12px;color:var(--muted)}.review-score-card strong{font-size:22px;font-weight:700}.review-score-card small{font-size:11px;color:var(--muted)}.review-score-card.highlight{background:#e8f5e9;border:1px solid #c8e6c9}.review-kpi-line{margin:12px 0 0;font-size:13px}.review-collapsible-panel{border:1px solid #e2e8f0;border-radius:10px;background:#fafbfc;overflow:hidden}.review-collapsible-panel-summary{display:list-item;padding:12px 16px;font-size:15px;font-weight:600;color:#1e293b;cursor:pointer;line-height:1.4;list-style-position:inside;-webkit-user-select:none;user-select:none}.review-collapsible-panel-summary::-webkit-details-marker{color:#64748b}.review-collapsible-panel[open] .review-collapsible-panel-summary{border-bottom:1px solid #e2e8f0}.review-collapsible-panel-body{padding:12px 16px 16px}.review-decl-grid{display:grid;grid-template-columns:1fr;gap:0;padding:0}.review-decl-block{padding:14px 0;border-bottom:1px solid #eef2f6}.review-decl-block:last-child{padding-bottom:0;border-bottom:none}.review-decl-grid h4{font-size:13px;margin:0 0 8px;font-weight:600}.review-check-list{margin:0;padding-left:18px;font-size:13px}.review-check-list li{margin-bottom:4px}.review-other-text{margin:8px 0 0;font-size:12px;color:var(--muted)}.review-evidence-table{font-size:13px;table-layout:auto;width:max-content;min-width:100%;overflow:visible;border:none;border-radius:0}.review-evidence-table-wrap{overflow-x:auto;overflow-y:visible;position:relative;max-width:100%;border:1px solid var(--line);border-radius:var(--radius);isolation:isolate}.review-evidence-table-wrap.has-check-col{--review-check-col-width: 88px;--review-action-col-width: 72px}.review-evidence-table-wrap:not(.has-check-col){--review-check-col-width: 0px;--review-action-col-width: 72px}.review-evidence-table .review-ev-col-sticky{position:sticky;z-index:4;background:#fff;background-clip:padding-box;box-shadow:-8px 0 12px -8px #0f172a2e}.review-evidence-table thead .review-ev-col-sticky{background:#f8fafc;z-index:5}.review-evidence-table .review-ev-col-sticky-check{right:0;min-width:var(--review-check-col-width);width:var(--review-check-col-width);max-width:var(--review-check-col-width)}.review-evidence-table .review-ev-col-sticky-action{right:var(--review-check-col-width);min-width:var(--review-action-col-width);width:var(--review-action-col-width);white-space:nowrap}.review-evidence-table .review-ev-col-nowrap{white-space:nowrap}.review-evidence-table .review-ev-col-filename{max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-evidence-table .review-ev-col-proof{min-width:180px;max-width:280px}.review-ev-measure-code{display:inline-block;font-family:ui-monospace,monospace;font-size:12px;font-weight:600;color:#1565c0;white-space:nowrap}.review-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;font:inherit;font-weight:600;color:inherit;cursor:pointer;white-space:nowrap}.review-sort-btn:hover,.review-sort-btn.active{color:var(--final)}.review-sort-icon{font-size:10px;line-height:1;opacity:.45}.review-sort-btn.active .review-sort-icon{opacity:1}.review-file-link{color:var(--final);font-weight:500;text-decoration:none}.review-file-link:hover{text-decoration:underline}.review-result-meta{margin-bottom:14px}.review-result-note-block{margin-top:14px}.review-result-note-block h4{margin:0 0 8px;font-size:14px;font-weight:600;color:#0f172a}.review-result-note-text{margin:0;padding:12px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;line-height:1.55;color:#334155;white-space:pre-wrap}.review-decision-section{padding:12px 24px 20px;background:#f8f9fa;border-top:2px solid #1a1a2e;border-bottom:none}.review-decision-section .review-collapsible-panel{background:#fff;border-color:#cbd5e1}.validation-warning-list{margin:8px 0 0;padding-left:20px;color:#e65100;font-size:13px}.revision-banner{background:#fff3e0;border-color:#ffcc80}.revision-file-group{margin:10px 0;padding:10px 12px;border-radius:6px;font-size:13px}.revision-file-group-accepted{background:#e8f5e9;border:1px solid #a5d6a7}.revision-file-group-rejected{background:#ffebee;border:1px solid #ef9a9a}.revision-file-group-title{margin:0 0 6px;font-weight:600}.revision-file-list{list-style:none;margin:0;padding:0}.revision-file-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:4px 0}.revision-file-name{font-weight:500}.revision-file-context{color:var(--muted);font-size:12px}.revision-file-note{color:#c62828;font-size:12px}.upload-file-badge{font-size:11px;padding:1px 6px;border-radius:4px;font-weight:600}.badge-accepted{background:#c8e6c9;color:#1b5e20}.badge-rejected{background:#ffcdd2;color:#b71c1c}.upload-file-item.file-accepted{background:#f1f8e9;border-color:#c5e1a5}.upload-file-item.file-rejected{background:#fff5f5;border-color:#ef9a9a}.upload-file-review-note{font-size:11px;color:#c62828;margin-left:4px}.upload-zone-locked-hint{font-size:12px;color:#666;margin-bottom:8px;padding:6px 10px;background:#f5f5f5;border-radius:4px}.option-locked-badge{margin-left:8px;font-size:11px;color:#1b5e20;background:#c8e6c9;padding:1px 6px;border-radius:4px}.review-records-list{display:flex;flex-direction:column;gap:16px}.review-record-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px 20px;border-left:4px solid #90a4ae}.review-record-card.action-approve{border-left-color:#2e7d32}.review-record-card.action-reject{border-left-color:#c62828}.review-record-card.action-request_revision{border-left-color:#ef6c00}.review-record-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px}.review-record-badges{display:flex;gap:8px;align-items:center}.review-action-badge{font-size:12px;font-weight:600;padding:2px 8px;border-radius:4px}.review-action-badge.action-approve{background:#e8f5e9;color:#1b5e20}.review-action-badge.action-reject{background:#ffebee;color:#b71c1c}.review-action-badge.action-request_revision{background:#fff3e0;color:#e65100}.review-record-time{font-size:12px;color:var(--muted)}.review-record-title{margin:0 0 4px;font-size:16px}.review-record-meta{margin:0 0 8px;font-size:13px;color:var(--muted)}.review-record-scores{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;margin-bottom:8px}.review-record-note{margin:6px 0;font-size:13px}.review-record-evidence-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}.review-record-evidence-table th,.review-record-evidence-table td{border:1px solid #e8e8e8;padding:6px 10px;text-align:left}.review-record-evidence-table th{background:#fafafa}.review-ev-token{display:inline-block;font-size:11px;color:#666;margin-right:6px}.review-ev-note{display:block;font-size:11px;color:#c62828;margin-top:2px}.review-record-fix-keys{margin-top:10px;padding:10px 12px;background:#fff8e1;border:1px solid #ffe082;border-radius:6px;font-size:13px}.review-record-fix-title{margin:0 0 4px;font-weight:600;color:#e65100}.review-fix-list{margin:8px 0 0;padding-left:20px}.review-fix-list li{margin:4px 0}.audit-filter-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.review-audit-section{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:18px 20px 20px}.review-audit-section-head{margin-bottom:14px}.review-audit-section-title{margin:0 0 4px;font-size:16px;font-weight:650;color:#0f172a}.review-audit-section-hint{margin:0;font-size:13px;color:#64748b;line-height:1.45}.audit-filter-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:13px;cursor:pointer}.audit-filter-tab.active{font-weight:600;border-color:#333;background:#f5f5f5}.audit-filter-tab.action-approve.active{border-color:#2e7d32;background:#e8f5e9;color:#1b5e20}.audit-filter-tab.action-request_revision.active{border-color:#ef6c00;background:#fff3e0;color:#e65100}.audit-filter-tab.action-reject.active{border-color:#c62828;background:#ffebee;color:#b71c1c}.audit-filter-count{font-size:11px;padding:1px 6px;border-radius:10px;background:#00000014}.competition-phase-banner{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:10px 24px;font-size:13px;border-bottom:1px solid #e0e0e0}.competition-phase-banner.phase-submission{background:#e8f5e9;color:#1b5e20}.competition-phase-banner.phase-review{background:#e3f2fd;color:#0d47a1}.competition-phase-note{opacity:.85}.review-warning-list{margin:8px 0 0;padding-left:18px;color:#e65100;font-size:13px}.review-score-adjust{margin:12px 0;padding:12px;background:#fff;border:1px solid #e0e0e0;border-radius:8px}.review-score-adjust h4{margin:0 0 10px;font-size:14px}.review-score-adjust-grid{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:12px}.review-carbon-auto{margin-top:16px;padding-top:16px;border-top:1px solid var(--line, #e8e8e8)}.review-carbon-auto-header{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.review-carbon-auto-header label{font-size:13px;font-weight:600;margin:0}.review-carbon-auto-value{font-size:20px;font-variant-numeric:tabular-nums;color:var(--final, #1a7f4b)}.review-carbon-breakdown-panel{margin-top:10px;padding:10px 12px;background:#f8faf9;border:1px solid #dce8e2;border-radius:8px;font-size:12px;line-height:1.55;color:#334155}.review-carbon-breakdown-panel summary{display:list-item;font-size:12px;font-weight:600;color:var(--muted, #64748b);cursor:pointer;margin:0 0 8px;line-height:1.4}.review-carbon-breakdown-panel[open] summary{margin-bottom:8px}.review-carbon-breakdown-panel .review-carbon-hint{margin:0 0 8px;font-size:11px;line-height:1.5}.review-carbon-breakdown-panel .review-carbon-formula{margin:0 0 8px;font-size:12px;line-height:1.5}.review-carbon-breakdown-panel .review-carbon-formula span{font-size:11px;margin-bottom:2px}.review-carbon-breakdown-panel .review-carbon-steps-title{margin:0 0 4px;font-size:11px}.review-carbon-breakdown-panel .review-carbon-steps{margin:0;padding-left:18px;font-size:12px;line-height:1.55}.review-carbon-breakdown-panel .review-carbon-steps li+li{margin-top:2px}.review-carbon-breakdown{margin-top:12px;padding:12px 14px;background:#f8faf9;border:1px solid #dce8e2;border-radius:8px;font-size:13px}.review-carbon-formula{margin:0 0 10px;line-height:1.5}.review-carbon-formula span{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px}.review-carbon-steps-title{margin:0 0 6px;font-size:12px;font-weight:600;color:var(--muted)}.review-carbon-steps{margin:0;padding-left:20px;line-height:1.6}.review-carbon-steps li+li{margin-top:4px}.evidence-check-btns{display:flex;gap:6px}.evidence-check-btn{width:32px;height:32px;border:1px solid #ccc;border-radius:6px;background:#fff;cursor:pointer;font-size:16px;line-height:1}.evidence-check-btn.accept.active{background:#e8f5e9;border-color:#2e7d32;color:#2e7d32}.evidence-check-btn.reject.active{background:#ffebee;border-color:#c62828;color:#c62828}.evidence-rejected td,.evidence-rejected td.review-ev-col-sticky{background:#fff8f8}.status-badge.revision{background:#fff3e0;color:#e65100}@media(max-width:960px){.review-workspace{grid-template-columns:1fr}.review-queue{max-height:280px;position:static}.review-detail-grid,.review-decl-grid,.review-score-cards{grid-template-columns:1fr}}.dashboard-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.dashboard-kpi-card{background:#fff;border-radius:10px;padding:20px;box-shadow:0 1px 4px #0000000f;display:flex;flex-direction:column;gap:4px}.dashboard-kpi-card span{font-size:13px;color:#666}.dashboard-kpi-card strong{font-size:28px}.dashboard-kpi-card.highlight{border-left:4px solid var(--final)}.rank-badge{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;background:#1a1a2e;color:#fff;border-radius:50%;font-size:13px;font-weight:600}.report-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.report-export-btns{display:flex;gap:8px}.report-kpi-carbon small{font-size:12px;color:#666}.login-managed-note{font-size:12px;color:#888;margin:-8px 0 16px;line-height:1.5}.login-organizer-note{font-size:13px;color:var(--muted);margin:-8px 0 16px;line-height:1.5;white-space:nowrap}.login-organizer-note a{color:var(--primary);text-decoration:none;font-weight:600}.login-organizer-note a:hover{text-decoration:underline}.submit-action-group{display:inline-flex;align-items:center;gap:14px}.submit-time-label{font-size:13px;color:var(--muted);white-space:nowrap}.admin-settings-tabs{margin-bottom:20px}.admin-tab-panel{margin-top:0}.admin-visibility-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.admin-visibility-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.admin-visibility-actions{display:flex;gap:10px;justify-content:flex-end}.role-badge-btn{border:none;background:none;padding:0;cursor:pointer;border-radius:6px}.role-badge-btn:hover .role-badge{outline:2px solid color-mix(in srgb,var(--primary) 35%,transparent);outline-offset:2px}.user-row-editing{background:#f8fafc}.modal-form-wide{width:min(640px,94vw);max-height:90vh;overflow-y:auto}.modal-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin-bottom:16px}@media(max-width:560px){.modal-form-grid{grid-template-columns:1fr}}.form-field-readonly{display:flex;align-items:center;min-height:38px}.user-edit-visibility-panel{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.user-visibility-editor{margin-top:8px}.user-visibility-editor.compact{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.user-visibility-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.user-visibility-title{font-size:14px;font-weight:600;margin:0 0 4px}.admin-user-form{margin-bottom:16px}.admin-settings-page .admin-page-header{margin-bottom:20px}.settings-phase-panel{background:linear-gradient(135deg,#f8fafc,#fff 55%);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px 28px;margin-bottom:24px;box-shadow:var(--shadow-sm)}.settings-phase-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.settings-phase-live{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.settings-phase-live-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.settings-phase-title{font-size:17px;font-weight:700;margin:0 0 6px;letter-spacing:-.01em}.settings-phase-desc{font-size:13px;color:var(--muted);margin:0;max-width:560px;line-height:1.55}.phase-pill{display:inline-flex;align-items:center;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:600;white-space:nowrap;flex-shrink:0}.phase-pill-submission{background:#e8f5e9;color:#2e7d32;border:1px solid #c8e6c9}.phase-pill-review{background:#e3f2fd;color:#1565c0;border:1px solid #bbdefb}.settings-phase-dates-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.settings-date-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.settings-date-card h3,.settings-date-card h4{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.phase-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}.phase-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;padding:18px 20px;border-radius:12px;border:2px solid var(--line);background:var(--surface);cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}.phase-card:hover:not(:disabled){border-color:#cbd5e1;box-shadow:var(--shadow-sm)}.phase-card.active{border-color:var(--primary);background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 6%,white),#fff);box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 12%,white);cursor:default}.phase-card-submission.active{border-color:var(--primary);background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 6%,white),#fff)}.phase-card-review.active{border-color:#1565c0;background:linear-gradient(180deg,#f5f9ff,#fff)}.phase-card:disabled:not(.active){opacity:.72}.phase-card-head{display:flex;align-items:center;gap:10px;width:100%}.phase-card-title{font-size:16px;font-weight:700}.phase-card-badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;background:#e8f5e9;color:#2e7d32}.phase-card-review.active .phase-card-badge{background:#e3f2fd;color:#1565c0}.phase-card-desc{margin:0;font-size:13px;color:var(--muted);line-height:1.5}.phase-card-range{margin:0;font-size:12px;font-weight:600;color:var(--text)}.phase-card-action{margin-top:4px;font-size:12px;font-weight:600;color:var(--primary-dark)}.phase-confirm-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px;padding:14px 16px;border-radius:10px;border:1px solid #ffe082;background:#fff8e1}.phase-confirm-bar strong{display:block;margin-bottom:4px;font-size:14px}.phase-confirm-bar p{margin:0;font-size:13px;color:var(--muted)}.phase-confirm-actions{display:flex;gap:8px}.settings-phase-dates-section{margin-bottom:16px}.settings-phase-dates-head{margin-bottom:12px}.settings-phase-dates-head h3{margin:0 0 4px;font-size:15px;font-weight:700}.settings-phase-dates-head p{margin:0;font-size:13px;color:var(--muted)}.settings-phase-actionbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 16px;border-radius:10px;border:1px solid var(--line);background:#f8fafc}.settings-phase-actionbar.dirty{border-color:#ffe082;background:#fffdf5}.settings-phase-actionbar-text{font-size:13px;color:var(--muted)}.settings-phase-actionbar.dirty .settings-phase-actionbar-text{color:#e65100;font-weight:600}.app-toast-host{position:fixed;right:24px;bottom:24px;z-index:500;max-width:min(420px,calc(100vw - 32px));animation:toast-in .22s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.app-toast{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border-radius:12px;box-shadow:0 10px 30px #10182829;border:1px solid transparent}.app-toast-ok{background:#edf7ed;border-color:#c8e6c9;color:#1b5e20}.app-toast-err{background:#ffebee;border-color:#ef9a9a;color:#b71c1c}.app-toast-info{background:#e3f2fd;border-color:#bbdefb;color:#0d47a1}.app-toast-icon{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;background:#ffffffa6}.app-toast-text{flex:1;font-size:14px;line-height:1.45;padding-top:1px}.app-toast-close{border:none;background:none;color:inherit;opacity:.55;font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.app-toast-close:hover{opacity:1}.settings-date-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.settings-phase-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:16px;border-top:1px solid var(--line)}.settings-phase-summary{font-size:13px;color:var(--muted);margin:0}.settings-phase-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.phase-segmented{display:inline-flex;padding:3px;background:#eef1f4;border-radius:10px;border:1px solid var(--line)}.phase-segment{padding:8px 16px;border:none;background:transparent;border-radius:8px;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}.phase-segment:hover:not(:disabled){color:var(--text)}.phase-segment.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);font-weight:600}.phase-segment:disabled{cursor:default;opacity:1}.settings-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;align-items:start}.settings-nav{display:flex;flex-direction:column;gap:4px;position:sticky;top:88px}.settings-nav-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:12px 14px;border:1px solid transparent;border-radius:var(--radius);background:transparent;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}.settings-nav-item:hover{background:#ffffffb3;border-color:var(--line)}.settings-nav-item.active{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-sm);border-left:3px solid var(--final);padding-left:12px}.settings-nav-label{font-size:14px;font-weight:600;color:var(--text)}.settings-nav-desc{font-size:11px;color:var(--muted);line-height:1.4}.settings-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;min-height:420px}.settings-panel-header{padding:22px 28px 18px;border-bottom:1px solid var(--line);background:#fafbfc}.settings-panel-header h2{font-size:18px;font-weight:700;margin:0 0 4px;letter-spacing:-.01em}.settings-panel-header p{font-size:13px;color:var(--muted);margin:0}.settings-panel-body{padding:24px 28px 28px}.settings-panel-body-flush{padding:0}.settings-panel-body-flush .settings-table-wrap{border:none;border-radius:0}.settings-toolbar{margin-bottom:20px}.settings-toolbar-split{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.settings-role-field{max-width:280px}.settings-meta-line{font-size:13px;color:var(--muted);margin-top:6px}.settings-visibility-group+.settings-visibility-group{margin-top:24px}.settings-group-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 8px}.settings-visibility-list{list-style:none;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.settings-visibility-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;background:var(--surface);border-bottom:1px solid var(--line)}.settings-visibility-row:last-child{border-bottom:none}.settings-visibility-label{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:500}.settings-switch{display:flex;align-items:center;gap:10px;cursor:pointer;flex-shrink:0}.settings-switch input{position:absolute;opacity:0;width:0;height:0}.settings-switch-track{position:relative;width:44px;height:24px;background:#cbd5e1;border-radius:999px;transition:background .2s}.settings-switch-track:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .2s}.settings-switch input:checked+.settings-switch-track{background:var(--final)}.settings-switch input:checked+.settings-switch-track:after{transform:translate(20px)}.settings-switch-text{font-size:12px;color:var(--muted);min-width:2em}.settings-panel-actions{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.settings-table-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow:auto}.admin-user-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px}.admin-user-page-info{font-size:13px;color:var(--muted);min-width:100px;text-align:center}.settings-note-field{max-width:480px;margin-bottom:16px}.settings-mod-list{display:flex;flex-direction:column;gap:12px}.settings-mod-card{border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;background:#fafbfc}.settings-mod-card-head{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px;color:var(--muted);margin-bottom:10px}.settings-mod-id{font-weight:700;color:var(--text)}.settings-mod-reason{font-size:14px;line-height:1.55;margin:0 0 14px}.settings-mod-actions{display:flex;gap:8px}.settings-audit-time{white-space:nowrap;font-size:13px}.settings-audit-code{font-size:12px;background:#f1f5f9;padding:2px 6px;border-radius:4px}.settings-audit-detail{font-size:13px;max-width:360px}@media(max-width:960px){.settings-layout{grid-template-columns:1fr}.settings-nav{position:static;flex-direction:row;flex-wrap:wrap;gap:8px}.settings-nav-item{flex:1 1 140px}.settings-nav-item.active{border-left:1px solid var(--line);border-bottom:3px solid var(--final);padding-left:14px}.settings-nav-desc{display:none}.phase-card-grid,.settings-phase-dates-grid{grid-template-columns:1fr}.settings-phase-footer,.settings-phase-controls{flex-direction:column;align-items:stretch}.phase-segmented{width:100%}.phase-segment{flex:1;text-align:center}}.action-flash{padding:10px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.action-flash-ok{background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7}.action-flash-err{background:#ffebee;color:#c62828;border:1px solid #ef9a9a}.btn-sm{padding:4px 10px;font-size:13px}.btn-danger{padding:8px 16px;border:1px solid #c62828;border-radius:8px;background:#fff;color:#c62828;cursor:pointer;font-size:14px}.btn-danger:hover{background:#ffebee}.btn-danger:disabled{opacity:.45;cursor:not-allowed}.table-input{width:100%;padding:4px 8px;border:1px solid #ddd;border-radius:4px;font-size:13px}.table-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.quant-rows-editor{display:flex;flex-direction:column;gap:12px}.quant-summation-panel{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.quant-summation-scheme{max-width:520px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.quant-edit-list{border:1px solid var(--line, #e2e8f0);border-radius:8px;background:#fff;overflow:hidden}.quant-edit-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#f8fafc;border-bottom:1px solid var(--line, #e2e8f0)}.quant-edit-list-title{margin:0;font-size:13px;font-weight:600;color:#0f172a;letter-spacing:.01em}.quant-edit-list-add{flex-shrink:0;padding:4px 10px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#047857;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.quant-edit-list-add:hover{background:#ecfdf5;border-color:#6ee7b7}.quant-edit-list-scroll{overflow-x:auto}.quant-edit-list-table{width:100%;border-collapse:collapse;font-size:12px;table-layout:auto}.quant-edit-list-table thead th{padding:8px 10px;text-align:left;font-weight:500;color:#64748b;background:#fafafa;border-bottom:1px solid var(--line, #e2e8f0);white-space:nowrap;vertical-align:bottom;line-height:1.35}.quant-edit-list-table tbody td{padding:4px 6px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.quant-edit-list-table tbody tr:last-child td{border-bottom:none}.quant-edit-list-table tbody tr:hover td{background:#f8fafc}.quant-edit-list-col-idx{width:36px;min-width:36px;text-align:center;color:#94a3b8;font-variant-numeric:tabular-nums;font-size:11px}.quant-edit-list-col-actions{width:40px;min-width:40px;text-align:center}.quant-edit-list-input{width:100%;min-width:88px;padding:6px 8px;border:1px solid transparent;border-radius:4px;background:transparent;font-size:12px;color:#0f172a;transition:border-color .15s,background .15s,box-shadow .15s}.quant-edit-list-input:hover:not(:disabled){background:#fff;border-color:#e2e8f0}.quant-edit-list-input:focus{outline:none;background:#fff;border-color:#10b981;box-shadow:0 0 0 2px #10b98126}.quant-edit-list-input:disabled{color:#94a3b8;cursor:not-allowed}.quant-ef-select-wrap{display:flex;flex-direction:column;gap:4px;min-width:140px}.quant-ef-other-input{background:#fff!important;border-color:#e2e8f0!important}.quant-edit-list-remove{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:4px;background:transparent;color:#94a3b8;font-size:18px;line-height:1;cursor:pointer;transition:color .15s,background .15s}.quant-edit-list-remove:hover{color:#dc2626;background:#fef2f2}.quant-edit-list-empty-row td{padding:20px 14px;text-align:center;color:#94a3b8;font-size:12px}.quant-edit-list--readonly .quant-edit-list-toolbar{margin-bottom:0}.quant-edit-list-readonly{display:block;font-size:13px;color:#1e293b;line-height:1.4;word-break:break-word}.quant-edit-list-readonly--empty{color:#94a3b8}.review-quant-content .quant-edit-list{margin-bottom:0}.review-quant-data-list--after-table{margin-top:12px}.review-quant-label{font-weight:600}.review-quant-value{margin-left:.15em}.quant-row-card{border:1px solid var(--border, #e0e0e0);border-radius:8px;padding:12px;background:#fafafa}.quant-row-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.quant-add-row{align-self:flex-start}.measure-quant-panel{display:grid;grid-template-columns:1fr;gap:16px 24px;margin-top:4px;padding:20px;border:1px solid var(--line);border-radius:10px;background:#fff}.measure-quant-panel--two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.measure-quant-panel .form-field{margin:0;min-width:0}.measure-quant-panel .form-field-number,.measure-quant-panel .form-field-date{flex:unset;width:auto;max-width:none}.measure-quant-scheme-field{grid-column:1 / -1;width:fit-content;max-width:100%}.measure-quant-scheme-stack{grid-column:1 / -1;display:flex;flex-direction:column;align-items:stretch;width:fit-content;max-width:100%;gap:16px}.measure-quant-scheme-stack .measure-quant-scheme-field{width:auto}.measure-quant-scheme-stack .measure-quant-scheme-width-field{width:100%}.measure-quant-scheme-stack .measure-quant-scheme-width-field input[type=number]{width:100%;min-width:0;box-sizing:border-box}.measure-quant-aligned-field,.measure-quant-inline-field{grid-column:1 / -1;width:fit-content;max-width:100%}.measure-quant-label-fit-field{display:inline-grid;grid-template-columns:max-content;grid-column:1 / -1;width:max-content;max-width:100%}.measure-quant-label-fit-field label{white-space:nowrap}.measure-quant-label-fit-field input[type=number],.measure-quant-label-fit-field input[type=date],.measure-quant-label-fit-field input[type=month]{width:100%;min-width:10ch;max-width:100%;box-sizing:border-box}.measure-quant-inline-field label{white-space:nowrap}.measure-quant-inline-field input[type=number],.measure-quant-inline-field input[type=date],.measure-quant-inline-field input[type=month]{width:100%;min-width:0}.measure-quant-panel--compact{grid-template-columns:1fr}.measure-quant-compact-row{grid-column:1 / -1;display:grid;grid-template-columns:repeat(var(--quant-cols, 2),minmax(0,1fr));gap:16px 20px;align-items:start}.measure-quant-compact-row--label-fit{grid-template-columns:max-content;width:max-content;max-width:100%}.measure-quant-panel--compact .measure-quant-compact-row .measure-quant-inline-field,.measure-quant-panel--compact .measure-quant-compact-row .measure-quant-compact-cell{grid-column:auto;width:auto;max-width:none}.measure-quant-panel--compact .measure-quant-compact-row .measure-quant-scheme-field{grid-column:auto;width:auto}.measure-quant-evidence-block{margin-top:24px}@media(max-width:720px){.measure-quant-inline-field label{white-space:normal}.measure-quant-label-fit-field{width:100%;grid-template-columns:minmax(0,1fr)}.measure-quant-label-fit-field label{white-space:normal}.measure-quant-compact-row--label-fit{width:100%;grid-template-columns:minmax(0,1fr)}.measure-quant-scheme-stack{width:100%}}.measure-quant-panel .form-field-text-block{grid-column:1 / -1}.measure-quant-panel .measure-quant-scheme-select,.measure-quant-panel .measure-quant-aligned-field input[type=number]{width:min(480px,100%);min-width:280px;max-width:100%}.measure-quant-panel input[type=number],.measure-quant-panel input[type=date],.measure-quant-panel input[type=month],.measure-quant-panel select,.measure-quant-panel textarea{min-height:42px;box-sizing:border-box}.measure-quant-panel .form-field-number:not(.measure-quant-aligned-field):not(.measure-quant-inline-field):not(.measure-quant-label-fit-field):not(.measure-quant-scheme-width-field) input[type=number],.measure-quant-panel .form-field-date input[type=date],.measure-quant-panel .form-field-date input[type=month],.measure-quant-panel select:not(.measure-quant-scheme-select),.measure-quant-panel textarea{width:100%}.measure-quant-panel textarea{min-height:96px}@media(max-width:720px){.measure-quant-panel,.measure-quant-panel--two-col{grid-template-columns:1fr}.measure-quant-scheme-field,.measure-quant-aligned-field{width:100%}.measure-quant-panel .measure-quant-scheme-select,.measure-quant-panel .measure-quant-aligned-field input[type=number]{width:100%;min-width:0}}.emission-factors-panel{margin-top:8px}.emission-factors-toggle{font-size:.9rem}.emission-factors-table-wrap{margin-top:8px;overflow-x:auto}@media print{html,body{height:auto!important;overflow:visible!important;background:#fff!important;color:#0f172a!important;font-family:Songti SC,STSong,Heiti SC,STHeiti,Microsoft YaHei,SimSun,sans-serif!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}@page{margin:12mm}.app-shell,.app-main,.page-container,.page-container-wide,.report-printable,.report-card,.report-page,.report-table-panel,.report-table-panel .table-wrap,.report-dash-panel{height:auto!important;max-height:none!important;min-height:0!important;overflow:visible!important}.app-shell,.app-main{display:block!important}.app-header,.competition-phase-banner,.site-header,.no-print,.form-actions,.feedback-modal{display:none!important}.page-container{padding:0!important;max-width:none!important;margin:0!important}.report-card{box-shadow:none!important;border:none!important}.report-dash-section{break-inside:avoid;page-break-inside:avoid}.report-measures-section{break-inside:auto;page-break-inside:auto;margin-top:16px}.report-sort-btn{display:contents!important}.report-table-panel .report-table{table-layout:auto!important;width:100%!important}.report-table th,.report-table td{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;color:#0f172a!important}.report-td-measure{min-width:12rem!important;max-width:none!important;word-break:break-word!important}.report-th-score,.report-td-score,.report-th-status,.report-td-status,.report-td-no{width:auto!important;min-width:0!important;max-width:none!important}.report-table tr{break-inside:avoid;page-break-inside:avoid}.report-score-chip,.report-status{border:1px solid #cbd5e1!important;background:#fff!important;color:#0f172a!important}.report-score-chip.declared{color:#1e58a7!important}.report-score-chip.final{color:#1a7f4b!important}}@media(max-width:900px){.dashboard-kpis{grid-template-columns:repeat(2,1fr)}}.measure-carbon-formula-panel,.measure-carbon-breakdown-panel{margin-bottom:12px;padding:10px 12px;border:1px solid var(--border, #e2e8f0);border-radius:8px;background:#f8fafc}.measure-quant-context{margin-bottom:12px;padding:10px 12px;border-left:3px solid #3b82f6;background:#eff6ff;border-radius:0 8px 8px 0;font-size:13px;line-height:1.5}.measure-quant-context-label{margin:0 0 4px;color:#334155}.measure-quant-context-value{margin:0 0 6px;font-weight:600;color:#0f172a}.measure-quant-context-link{font-size:13px}.measure-carbon-formula-text{white-space:pre-wrap;font-size:13px;line-height:1.5;margin:8px 0 0;font-family:inherit}.measure-carbon-defaults{margin-top:8px}.measure-carbon-breakdown-formula{margin:8px 0;font-size:13px}.measure-carbon-breakdown-steps{margin:8px 0 0;padding-left:1.25rem;font-size:13px;line-height:1.6}
