:root{font-family:Inter,Segoe UI,Arial,sans-serif}body{--portal-bg: #eef1f5;--portal-surface: #ffffff;--portal-surface-muted: #f7f9fc;--portal-border: #dfe5ee;--portal-border-strong: #d8e1ec;--portal-text: #172033;--portal-text-muted: #687386;--portal-accent-text: #1f4f7e;--portal-shadow: rgba(23, 32, 51, .08);margin:0;min-width:320px;background:var(--portal-bg)}body[data-portal-theme=dark]{--portal-bg: #111827;--portal-surface: #1f2937;--portal-surface-muted: #243244;--portal-border: #374151;--portal-border-strong: #4b5563;--portal-text: #f3f4f6;--portal-text-muted: #aeb8c7;--portal-accent-text: #8dbcf1;--portal-shadow: rgba(0, 0, 0, .24)}button,input,textarea,select{letter-spacing:0}.portal-root{min-height:100vh;color:var(--portal-text);background:var(--portal-bg)}.portal-pro-layout .ant-pro-sider-logo{min-height:56px;padding-inline:24px}.portal-pro-layout .ant-pro-sider-logo h1{font-size:18px;font-weight:600}.portal-brand-logo{width:30px;height:30px;object-fit:contain;flex:0 0 auto}.loading-screen,.login-screen{min-height:100vh;display:grid;place-items:center;background:var(--portal-bg)}.ant-pro-form-login-container{width:min(420px,calc(100vw - 32px));padding:32px 28px;background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:8px;box-shadow:0 12px 32px var(--portal-shadow)}.ant-pro-form-login-logo{display:none}.login-card{width:min(440px,calc(100vw - 32px));border:1px solid var(--portal-border);border-radius:8px;box-shadow:0 12px 32px var(--portal-shadow)}.login-brand{display:flex;align-items:center;margin-bottom:14px}.login-brand img{width:56px;height:56px;object-fit:contain}.login-form{display:grid;gap:14px;margin-top:18px}.login-form .ant-form-item{margin-bottom:0}.menu-link{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.page-stack{display:grid;gap:16px}.toolbar-band{padding:12px;background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:8px}.search-input{width:240px}.type-select{width:140px}.home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.flat-card{border:1px solid var(--portal-border);border-radius:8px}.stats-row .ant-pro-card{border-radius:8px}.latest-report,.report-title-cell,.release-title-cell,.release-number-cell{display:grid;gap:4px;min-width:0}.latest-report strong,.report-title-cell strong,.release-title-cell strong,.release-number-cell strong{overflow-wrap:anywhere}.latest-report span,.report-title-cell span,.release-title-cell span,.latest-report small,.report-title-cell small{color:var(--portal-text-muted)}.latest-report .ant-btn{width:fit-content;margin-top:8px}.empty-panel{color:var(--portal-text-muted)}.dashboard-home{gap:16px}.dashboard-title-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.dashboard-title-row h1{margin:0 0 4px;font-size:22px;line-height:30px}.dashboard-title-row p{margin:0;color:var(--portal-text-muted)}.dashboard-period-select{width:190px}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.dashboard-kpi-card .ant-pro-card-body{display:grid;gap:10px;min-height:176px;padding:18px 20px 14px}.dashboard-kpi-title,.dashboard-kpi-footer{display:flex;justify-content:space-between;gap:10px;align-items:center}.dashboard-kpi-title{color:var(--portal-text-muted)}.dashboard-kpi-main{display:flex;align-items:flex-end;gap:10px;min-height:40px}.dashboard-kpi-main strong{color:var(--portal-text);font-size:32px;line-height:38px;font-weight:650;font-variant-numeric:tabular-nums}.dashboard-kpi-main span,.dashboard-kpi-footer{color:var(--portal-text-muted)}.dashboard-kpi-footer{padding-top:9px;border-top:1px solid var(--portal-border);font-size:13px;flex-wrap:wrap}.trend-up{color:#cf1322}.trend-down{color:#0958d9}.trend-flat{color:var(--portal-text-muted)}.sparkline{width:100%;height:64px;display:block}.sparkline-empty{display:grid;place-items:center;height:64px;color:var(--portal-text-muted);background:var(--portal-surface-muted);border-radius:6px;font-size:12px}.history-chart{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.status-history-card{min-width:0;padding:14px 16px 12px;background:var(--portal-surface-muted);border:1px solid var(--portal-border);border-radius:8px}.status-history-card h3{margin:0 0 8px;color:var(--portal-text);font-size:16px;line-height:22px;font-weight:650}.dashboard-two-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.dashboard-report-title{display:grid;gap:3px;min-width:0}.dashboard-report-title strong{overflow-wrap:anywhere}.dashboard-report-title span,.dashboard-report-title small{color:var(--portal-text-muted)}.review-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.review-dashboard-grid .ant-statistic{padding:12px;background:var(--portal-surface-muted);border:1px solid var(--portal-border);border-radius:8px}.reports-table .ant-pro-card-body{padding:0}.metric-pair{display:grid;grid-template-columns:repeat(2,minmax(92px,1fr));gap:8px;min-width:210px}.metric-mini-card{display:grid;grid-template-rows:18px 18px 22px;align-items:center;min-height:70px;padding:8px 9px;border:1px solid var(--portal-border-strong);border-radius:6px;background:var(--portal-surface-muted);white-space:nowrap}.metric-mini-card span{color:var(--portal-text-muted);font-size:11px;line-height:1.2}.metric-mini-card span:first-child{color:var(--portal-text);font-weight:700}.metric-mini-card strong{color:var(--portal-accent-text);font-size:13px;line-height:1.2;font-variant-numeric:tabular-nums}.report-frame{width:100%;min-height:72vh;border:1px solid #dfe5ee;border-radius:8px;background:#fff}.review-workspace{display:grid;gap:14px}.review-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.review-toolbar{padding:10px 0}.review-reason-cell,.review-drawer-stack{width:100%}.review-reason-cell{display:grid;gap:4px}.review-reason-cell strong{overflow-wrap:anywhere}.review-reason-cell span{color:var(--portal-text-muted);font-size:12px}.review-text-cell,.review-link-cell{overflow-wrap:anywhere}.review-search{margin-bottom:12px}@media(max-width:900px){.home-grid,.history-chart,.dashboard-kpi-grid,.dashboard-two-columns{grid-template-columns:1fr}.dashboard-title-row{display:grid}.metric-pair{min-width:180px}.review-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.dashboard-title-row .ant-space,.toolbar-band .ant-space,.search-input,.type-select,.dashboard-period-select,.dashboard-title-row .ant-picker,.toolbar-band .ant-picker{width:100%}.review-summary-grid{grid-template-columns:1fr}}
