/* ========================================================================== 
   GEO-UX-108 — UI design system normalization
   One spacing/typography/card/form/list standard across the product.
   ========================================================================== */
.ui-092 {
    --ui-content-max: 1600px;
    --ui-page-pad: clamp(18px, 2vw, 30px);
    --ui-card-pad: 22px;
    --ui-section-gap: 18px;
    --ui-control-h: 42px;
    --ui-control-radius: 10px;
    --ui-card-radius: 14px;
    --ui-page-title-size: 21px;
    --ui-section-title-size: 20px;
    --ui-card-title-size: 15px;
    --ui-body-size: 13px;
    --ui-small-size: 11px;
}

/* ---------- Global spacing / typography contract ---------- */
.ui-092 .content {
    width: min(100%, var(--ui-content-max));
    max-width: var(--ui-content-max);
    margin-inline: auto;
    padding: 24px var(--ui-page-pad) 44px;
}
.ui-092 :where(.page-surface,.content-page-v83,.content-gap-page-v88,.geo-report-page-v87,.admin-page,.finance-page,.monitoring-v28-page) {
    gap: var(--ui-section-gap);
}
.ui-092 .panel,
.ui-092 .step-card {
    padding: var(--ui-card-pad);
    border-radius: var(--ui-card-radius);
}
.ui-092 .section-heading {
    gap: 18px;
    margin-bottom: 16px;
}
.ui-092 .section-heading h2,
.ui-092 .panel-head h2 {
    margin: 2px 0 0;
    font-size: var(--ui-section-title-size);
    line-height: 1.35;
}
.ui-092 .section-heading p,
.ui-092 .panel-head p {
    margin: 6px 0 0;
    color: var(--ui-muted);
    font-size: 12px;
    line-height: 1.65;
}
.ui-092 .eyebrow {
    margin-bottom: 6px;
    font-size: 10px;
    line-height: 1.3;
}
.ui-092 :where(.btn,button.btn) {
    min-height: var(--ui-control-h);
    padding-inline: 15px;
    border-radius: var(--ui-control-radius);
}
.ui-092 :where(input:not([type="checkbox"]):not([type="radio"]),select) {
    min-height: var(--ui-control-h);
}
.ui-092 textarea { line-height: 1.6; }
.ui-092 :where(.smart-form,.detail-form,.compact-form) { gap: 18px; }
.ui-092 .form-grid { gap: 16px 18px; }
.ui-092 :where(.smart-form,.detail-form,.compact-form,.form-grid) label > span {
    display: block;
    margin-bottom: 7px;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.45;
}
.ui-092 :where(.smart-form,.detail-form,.compact-form,.form-grid) label > small {
    display: block;
    margin-top: 6px;
    color: var(--ui-muted);
    font-size: 10px;
    line-height: 1.55;
}
.ui-092 .form-actions {
    gap: 10px;
    margin-top: 0;
    padding-top: 18px;
    border-top: 1px solid var(--ui-border);
}
.ui-092 :where(.status-badge,.keyword-chip,.count-chip) { line-height: 1.25; }

/* ---------- Project detail: isolate legacy status-line and make hero deterministic ---------- */
.ui-092.page-project-detail .project-detail-surface { gap: 18px; }
.ui-092.page-project-detail .back-link { margin: 0; }
.ui-092.page-project-detail .project-detail-hero {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    gap: 24px;
    min-height: 164px;
    padding: 24px 26px;
    border-radius: 16px;
}
.ui-092.page-project-detail .project-detail-identity {
    display: grid;
    grid-template-columns: 64px minmax(0,1fr);
    gap: 16px;
    align-items: center;
}
.ui-092.page-project-detail .project-detail-copy-v108 { min-width: 0; }
.ui-092.page-project-detail .project-detail-status-v108 {
    width: auto;
    height: auto;
    min-height: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin: 0 0 8px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.ui-092.page-project-detail .project-detail-identity .eyebrow { margin: 0 0 7px; }
.ui-092.page-project-detail .project-detail-hero h2 {
    margin: 0;
    max-width: 980px;
    font-size: clamp(22px, 2vw, 29px);
    line-height: 1.3;
    overflow-wrap: anywhere;
}
.ui-092.page-project-detail .project-detail-hero p {
    margin: 8px 0 0;
    max-width: 980px;
    font-size: 13px;
    line-height: 1.55;
}
.ui-092.page-project-detail .project-detail-actions {
    min-width: 160px;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}
.ui-092.page-project-detail .project-detail-actions form { margin: 0; }
.ui-092.page-project-detail .project-kpi-grid {
    grid-template-columns: repeat(6,minmax(145px,1fr));
    gap: 12px;
}
.ui-092.page-project-detail .project-kpi-grid article {
    min-height: 112px;
    padding: 16px 17px;
    align-content: center;
    gap: 6px;
    border-radius: 13px;
}
.ui-092.page-project-detail .project-kpi-grid span { font-size: 11px; }
.ui-092.page-project-detail .project-kpi-grid strong { font-size: 27px; }
.ui-092.page-project-detail .project-kpi-grid small { font-size: 10px; line-height: 1.45; }

/* ---------- Content gaps: KPI section is a real grid, not a nested page canvas ---------- */
.ui-092.page-content-gaps .content-gap-page-v88 { gap: 18px; }
.ui-092.page-content-gaps .content-gap-hero-v88 {
    min-height: 160px;
    padding: 24px;
    gap: 24px;
}
.ui-092.page-content-gaps .content-gap-hero-v88 h2 {
    margin: 4px 0 8px;
    font-size: 24px;
    line-height: 1.35;
}
.ui-092.page-content-gaps .content-gap-hero-v88 p { max-width: 900px; font-size: 12px; line-height: 1.65; }
.ui-092.page-content-gaps .content-gap-kpis-v108 {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    background: transparent;
}
.ui-092.page-content-gaps .content-gap-kpis-v108 article {
    min-width: 0;
    min-height: 112px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 16px 18px;
    border: 1px solid var(--ui-border);
    border-radius: 13px;
    background: var(--ui-surface);
    box-shadow: none;
}
.ui-092.page-content-gaps .content-gap-kpis-v108 span,
.ui-092.page-content-gaps .content-gap-kpis-v108 small { display: block; }
.ui-092.page-content-gaps .content-gap-kpis-v108 span {
    color: var(--ui-muted);
    font-size: 11px;
    font-weight: 650;
}
.ui-092.page-content-gaps .content-gap-kpis-v108 strong {
    display: block;
    margin: 7px 0 5px;
    color: var(--ui-text);
    font-size: 28px;
    line-height: 1;
}
.ui-092.page-content-gaps .content-gap-kpis-v108 small {
    min-height: 32px;
    color: var(--ui-faint);
    font-size: 10px;
    line-height: 1.55;
}
.ui-092.page-content-gaps .content-gap-kpis-v108 .risk strong { color: var(--ui-warning); }
.ui-092.page-content-gaps .content-gap-kpis-v108 .danger strong { color: var(--ui-danger); }
.ui-092.page-content-gaps .source-gap-panel-v88,
.ui-092.page-content-gaps .content-gap-list-panel-v88,
.ui-092.page-content-gaps .optimization-task-panel-v88 { padding: 22px; }
.ui-092.page-content-gaps .content-gap-filter-v88 { gap: 8px; margin: 0 0 14px; }

/* ---------- Settings: stable form rhythm and card boundaries ---------- */
.ui-092.page-settings .page-surface-settings { gap: 18px; }
.ui-092.page-settings .settings-layout {
    grid-template-columns: minmax(0,1fr) 300px;
    gap: 18px;
    align-items: start;
}
.ui-092.page-settings .form-panel { padding: 22px; }
.ui-092.page-settings .form-panel > .section-heading { margin-bottom: 18px; }
.ui-092.page-settings .smart-form { display: grid; gap: 18px; }
.ui-092.page-settings .settings-group {
    display: grid;
    gap: 16px;
    margin: 0;
    padding: 20px;
    border: 1px solid var(--ui-border);
    border-radius: 13px;
    background: var(--ui-surface-subtle);
}
.ui-092.page-settings .settings-group h3 {
    margin: 0 0 2px;
    font-size: 17px;
    line-height: 1.4;
}
.ui-092.page-settings .settings-group label,
.ui-092.page-settings .smart-form > label { margin: 0; }
.ui-092.page-settings .settings-group .form-grid { margin: 0; }
.ui-092.page-settings .switch-row {
    min-height: 64px;
    margin: 0;
    padding: 12px 14px;
    border: 1px solid var(--ui-border);
    border-radius: 12px;
    background: var(--ui-surface);
}
.ui-092.page-settings .settings-save-actions-v107 { justify-content: flex-end; }
.ui-092.page-settings .side-stack { gap: 14px; }
.ui-092.page-settings .export-panel,
.ui-092.page-settings .tip-panel { padding: 20px; }
.ui-092.page-settings .export-panel h3,
.ui-092.page-settings .tip-panel h3 { margin: 2px 0 7px; font-size: 15px; }
.ui-092.page-settings .export-panel p,
.ui-092.page-settings .tip-panel p { margin: 0 0 14px; font-size: 11px; line-height: 1.6; }

/* ---------- Content center: compact article cards and predictable actions ---------- */
.ui-092.page-content .content-page-v83 { gap: 18px; }
.ui-092.page-content .content-generation-panel-v83,
.ui-092.page-content .content-list-panel-v83 { padding: 22px; }
.ui-092.page-content .content-workflow-v106 { gap: 12px; }
.ui-092.page-content .content-workflow-v106 article { min-height: 96px; padding: 15px; }
.ui-092.page-content .stage-overview-v83 > div { min-height: 86px; padding: 14px 16px; }
.ui-092.page-content .content-filter-panel-v83 { padding: 14px; }
.ui-092.page-content .content-filter-panel-v83 .filter-row {
    display: grid;
    grid-template-columns: minmax(260px,1.25fr) minmax(180px,.55fr) auto auto auto;
    gap: 10px;
    align-items: end;
}
.ui-092.page-content .content-filter-panel-v83 label { margin: 0; }
.ui-092.page-content .article-list-v83 { gap: 12px; }
.ui-092.page-content .article-row-v83 {
    grid-template-columns: 58px minmax(0,1fr) 150px;
    gap: 16px;
    align-items: start;
    padding: 17px;
    border-radius: 13px;
}
.ui-092.page-content .article-main-v83 { min-width: 0; padding-top: 1px; }
.ui-092.page-content .article-badges-v83 { gap: 7px; margin-bottom: 5px; }
.ui-092.page-content .article-row-v83 h3 { margin: 4px 0 5px; font-size: 14px; line-height: 1.45; }
.ui-092.page-content .article-summary-v83 { margin: 0 0 7px; }
.ui-092.page-content .article-meta-v83 { gap: 12px; }
.ui-092.page-content .article-row-v83 .inline-warning {
    margin: 9px 0 0;
    padding: 9px 11px;
    border-radius: 9px;
    font-size: 10px;
    line-height: 1.55;
}
.ui-092.page-content .article-actions-v83 {
    width: 150px;
    min-width: 150px;
    display: grid;
    gap: 7px;
    align-content: start;
}
.ui-092.page-content .article-actions-v83 .btn { min-height: 38px; }
.ui-092.page-content .article-actions-v83 details { width: 100%; }

/* ---------- Review center: one grid, one action column, one spacing rhythm ---------- */
.ui-092.page-review .page-surface-review { gap: 18px; }
.ui-092.page-review .review-metrics { gap: 12px; margin: 0; }
.ui-092.page-review .review-metrics > div { min-height: 98px; padding: 15px 16px; }
.ui-092.page-review .review-guide { margin: 0; padding: 20px 22px; }
.ui-092.page-review .review-toolbar {
    min-height: 58px;
    gap: 10px;
    margin: 0 0 14px;
    padding: 10px 12px;
}
.ui-092.page-review .review-list { gap: 12px; }
.ui-092.page-review .review-card {
    grid-template-columns: 24px 58px minmax(0,1fr) 126px;
    gap: 14px;
    align-items: start;
    padding: 16px;
    border-radius: 13px;
}
.ui-092.page-review .review-check { padding-top: 4px; }
.ui-092.page-review .review-card .quality-score { width: 56px; height: 56px; }
.ui-092.page-review .review-card-main { min-width: 0; }
.ui-092.page-review .review-card-main .article-title-line { gap: 7px; margin-bottom: 4px; }
.ui-092.page-review .review-card-main h3 { margin: 3px 0 5px; font-size: 14px; line-height: 1.45; }
.ui-092.page-review .review-card-main > p { margin: 0 0 7px; }
.ui-092.page-review .review-meta { gap: 11px; flex-wrap: wrap; }
.ui-092.page-review .review-warning { margin-top: 9px; padding: 9px 11px; }
.ui-092.page-review .review-card-actions {
    width: 126px;
    min-width: 126px;
    gap: 7px;
}
.ui-092.page-review .review-card-actions .btn { min-height: 38px; }

/* ---------- User menu ---------- */
.ui-092 .top-user-dropdown { width: 260px; padding: 8px; }
.ui-092 .top-user-dropdown a { padding: 10px 11px; }
.ui-092 .top-user-dropdown form { margin-top: 7px; padding-top: 7px; }

@media (max-width: 1280px) {
    .ui-092.page-project-detail .project-kpi-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .ui-092.page-content-gaps .content-gap-kpis-v108 { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .ui-092.page-content .content-filter-panel-v83 .filter-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .ui-092.page-content .content-filter-panel-v83 .filter-row > :nth-last-child(-n+3) { width: 100%; }
}
@media (max-width: 1024px) {
    .ui-092.page-project-detail .project-detail-hero { grid-template-columns: 1fr; align-items: start; }
    .ui-092.page-project-detail .project-detail-actions { justify-content: flex-start; }
    .ui-092.page-settings .settings-layout { grid-template-columns: 1fr; }
    .ui-092.page-settings .side-stack { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .ui-092.page-content .article-row-v83,
    .ui-092.page-review .review-card { grid-template-columns: 24px 58px minmax(0,1fr); }
    .ui-092.page-content .article-row-v83 { grid-template-columns: 58px minmax(0,1fr); }
    .ui-092.page-content .article-actions-v83 { grid-column: 2; width: auto; min-width: 0; grid-template-columns: repeat(3,minmax(0,1fr)); }
    .ui-092.page-review .review-card-actions { grid-column: 2 / -1; width: auto; min-width: 0; flex-direction: row; }
}
@media (max-width: 760px) {
    .ui-092 { --ui-card-pad: 18px; }
    .ui-092 .content { padding: 18px 14px 34px; }
    .ui-092.page-project-detail .project-detail-identity { grid-template-columns: 52px minmax(0,1fr); align-items: start; }
    .ui-092.page-project-detail .brand-project-monogram.large { width: 52px; height: 52px; border-radius: 14px; font-size: 22px; }
    .ui-092.page-project-detail .project-kpi-grid,
    .ui-092.page-content-gaps .content-gap-kpis-v108 { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .ui-092.page-settings .side-stack { grid-template-columns: 1fr; }
    .ui-092.page-content .content-filter-panel-v83 .filter-row { grid-template-columns: 1fr; }
    .ui-092.page-content .article-row-v83,
    .ui-092.page-review .review-card { grid-template-columns: 1fr; }
    .ui-092.page-content .article-actions-v83,
    .ui-092.page-review .review-card-actions { grid-column: auto; width: 100%; grid-template-columns: 1fr; }
    .ui-092.page-review .review-check { position: absolute; top: 14px; right: 14px; }
}
@media (max-width: 480px) {
    .ui-092.page-project-detail .project-kpi-grid,
    .ui-092.page-content-gaps .content-gap-kpis-v108 { grid-template-columns: 1fr; }
}
