﻿body {
    margin: 0;
    color: #111827;
    background: #f3f4f6;
    font-family: "Noto Sans KR", sans-serif;
}

.app-shell {
    display: flex;
    min-height: 100vh;
}

.app-sidebar {
    width: 260px;
    padding: 24px;
    box-sizing: border-box;
    background: #111827;
    color: #ffffff;
}

.app-brand {
    margin-bottom: 32px;
}

.app-brand strong,
.app-brand span {
    display: block;
}

.app-brand strong {
    font-size: 24px;
}

.app-brand span {
    margin-top: 4px;
    color: #cbd5e1;
}

.app-nav {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.app-nav-item {
    padding: 10px 12px;
    color: #d1d5db;
    text-decoration: none;
    border-radius: 8px;
}

.app-nav-item--active {
    background: #2563eb;
    color: #ffffff;
}

.app-main {
    flex: 1;
    min-width: 0;
}

.app-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    background: #ffffff;
    border-bottom: 1px solid #e5e7eb;
}

.app-header h1 {
    margin: 0;
    font-size: 24px;
}

.app-header span {
    color: #4b5563;
}

.app-content {
    padding: 24px;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
}

.dashboard-card {
    padding: 20px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
}

.card-title {
    margin: 0 0 12px;
    font-size: 18px;
}

.card-body p {
    margin: 0 0 8px;
    color: #4b5563;
}

/* Dashboard final consolidated layout (W3-UI-3-CSS-CLEANUP-FINAL)
   Dashboard-only CSS. Login/register CSS below .auth-page is intentionally preserved. */
:root {
    --dash-sidebar: 286px;
    --dash-blue: #0f6bff;
    --dash-blue-2: #075cff;
    --dash-text: #071433;
    --dash-muted: #536684;
    --dash-line: #dfe7f2;
    --dash-card-radius: 17px;
    --dash-card-shadow: 0 12px 28px rgba(17, 38, 84, 0.07);
}

@font-face {
    font-family: "Noto Sans KR";
    src: url("/static/fonts/NotoSansKR-VF.ttf") format("truetype");
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
}

body {
    color: var(--dash-text);
    background: #f4f8ff;
    font-family: "Noto Sans KR", sans-serif;
    -webkit-font-smoothing: antialiased;
}

input,
button,
select,
textarea,
table,
option,
optgroup,
[role="dialog"],
[role="tooltip"] {
    font-family: inherit;
}

.app-shell {
    display: flex;
    min-height: 100vh;
    overflow-x: hidden;
    background: linear-gradient(180deg, #fbfdff 0%, #f4f8ff 58%, #f7faff 100%);
}

.app-sidebar {
    position: sticky;
    top: 0;
    display: flex;
    flex: 0 0 var(--dash-sidebar);
    flex-direction: column;
    width: var(--dash-sidebar);
    height: 100vh;
    padding: 20px 18px 18px;
    box-sizing: border-box;
    color: #fff;
    background: linear-gradient(180deg, #061b48 0%, #04142f 55%, #031126 100%);
    box-shadow: 12px 0 30px rgba(6, 27, 72, 0.17);
}

.app-brand { display: flex; align-items: center; gap: 14px; min-height: 58px; margin-bottom: 34px; }
.app-brand-mark { display: grid; flex: 0 0 48px; width: 48px; height: 48px; place-items: center; border: 3px solid rgba(255,255,255,.92); border-radius: 15px; }
.app-brand-mark svg { width: 34px; height: 34px; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.app-brand strong { display: block; color: #fff; font-size: 16px; font-weight: 850; letter-spacing: -.035em; line-height: 1.2; white-space: nowrap; }
.app-brand span { display: block; margin-top: 5px; color: rgba(255,255,255,.82); font-size: 12px; font-weight: 700; }
.app-nav { display: flex; flex-direction: column; gap: 14px; }
.app-nav-item { position: relative; display: flex; align-items: center; gap: 15px; min-height: 52px; padding: 0 16px; color: rgba(255,255,255,.9); border-radius: 11px; font-size: 16px; font-weight: 800; text-decoration: none; }
.app-nav-item--active { color: #fff; background: linear-gradient(135deg, #0b73ff 0%, #075cff 100%); box-shadow: 0 12px 22px rgba(15,107,255,.38); }
.app-nav-item i { display: inline-flex; align-items: center; justify-content: center; width: 27px; height: 27px; margin-left: auto; color: #fff; background: #ff232d; border-radius: 50%; font-size: 14px; font-style: normal; font-weight: 900; }
.app-sidebar-footer { margin-top: auto; padding: 0 10px 10px; color: rgba(255,255,255,.86); font-size: 12px; font-weight: 650; line-height: 1.65; }

.nav-ico, .header-ico, .shortcut-ico, .dashboard-kpi-icon { position: relative; color: currentColor; }
.nav-ico { flex: 0 0 24px; width: 24px; height: 24px; }
.header-ico { width: 26px; height: 26px; }
.nav-ico::before, .nav-ico::after, .header-ico::before, .header-ico::after, .shortcut-ico::before, .shortcut-ico::after, .dashboard-kpi-icon::before, .dashboard-kpi-icon::after { content: ""; position: absolute; box-sizing: border-box; }
.nav-ico--home::before { inset: 5px 4px 3px; border: 2.2px solid currentColor; border-top: 0; border-radius: 3px; }
.nav-ico--home::after { left: 4px; top: 2px; width: 16px; height: 16px; border-left: 2.2px solid currentColor; border-top: 2.2px solid currentColor; transform: rotate(45deg); }
.nav-ico--doc::before, .nav-ico--report::before, .nav-ico--law::before { inset: 2px 5px; border: 2px solid currentColor; border-radius: 4px; }
.nav-ico--doc::after, .nav-ico--report::after, .nav-ico--law::after { left: 9px; right: 8px; top: 8px; height: 8px; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor; }
.nav-ico--history::before, .nav-ico--calendar::before { inset: 3px; border: 2px solid currentColor; border-radius: 6px; }
.nav-ico--history::after { left: 11px; top: 6px; width: 7px; height: 9px; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; }
.nav-ico--manage::before { inset: 4px 3px 3px; border: 2px solid currentColor; border-radius: 5px; transform: rotate(-14deg); }
.nav-ico--manage::after { left: 7px; top: 2px; width: 10px; height: 6px; border: 2px solid currentColor; border-bottom: 0; }
.nav-ico--bell::before { left: 5px; top: 4px; width: 14px; height: 14px; border: 2px solid currentColor; border-radius: 9px 9px 6px 6px; }
.nav-ico--bell::after { left: 9px; bottom: 2px; width: 6px; height: 3px; background: currentColor; }
.nav-ico--calendar::after { left: 6px; right: 6px; top: 9px; border-top: 2px solid currentColor; }
.nav-ico--setting::before { inset: 5px; border: 2px solid currentColor; border-radius: 50%; box-shadow: 0 -7px 0 -4px currentColor, 0 7px 0 -4px currentColor, 7px 0 0 -4px currentColor, -7px 0 0 -4px currentColor; }
.nav-ico--setting::after { inset: 9px; background: currentColor; border-radius: 50%; }

.dashboard-main { flex: 1 1 auto; width: calc(100vw - var(--dash-sidebar)); min-width: 0; background: transparent; }
.dashboard-header { display: flex; align-items: center; justify-content: space-between; min-height: 78px; padding: 18px clamp(24px, 2.1vw, 34px) 17px; box-sizing: border-box; background: rgba(255,255,255,.92); border-bottom: 1px solid rgba(219,226,238,.9); }
.dashboard-header h1 { margin: 0; color: #0f172a; font-size: 27px; font-weight: 900; letter-spacing: -.045em; }
.dashboard-header p { margin: 9px 0 0; color: var(--dash-muted); font-size: 14px; font-weight: 700; }
.dashboard-header-actions { display: flex; align-items: center; gap: 15px; }
.dashboard-mode-badge { display: inline-flex; align-items: center; height: 31px; padding: 0 16px; color: var(--dash-blue-2); background: #eaf2ff; border-radius: 999px; font-size: 12px; font-weight: 900; }
.dashboard-header-actions button { position: relative; display: grid; width: 31px; height: 31px; padding: 0; place-items: center; color: #17325d; background: transparent; border: 0; }
.dashboard-header-actions button i { position: absolute; top: -8px; right: -8px; min-width: 17px; height: 17px; color: #fff; background: #f20f24; border-radius: 999px; font-size: 10px; font-style: normal; font-weight: 900; line-height: 17px; text-align: center; }
.header-ico--bell::before { left: 6px; top: 4px; width: 14px; height: 15px; border: 2.2px solid currentColor; border-radius: 10px 10px 5px 5px; }
.header-ico--bell::after { left: 10px; bottom: 3px; width: 7px; height: 3px; background: currentColor; }
.header-ico--help::before { inset: 3px; border: 2.2px solid currentColor; border-radius: 50%; }
.header-ico--help::after { content: "?"; inset: 0; display: grid; place-items: center; font-size: 18px; font-weight: 900; }
.dashboard-user-chip { display: grid; grid-template-columns: 40px auto; grid-template-rows: auto auto; column-gap: 10px; align-items: center; }
.dashboard-user-chip span { grid-row: 1 / 3; width: 40px; height: 40px; background: radial-gradient(circle at 50% 32%, #a6b3c8 0 21%, transparent 22%), radial-gradient(circle at 50% 86%, #8da0bc 0 34%, transparent 35%), #e9eef7; border-radius: 50%; }
.dashboard-user-chip strong { font-size: 13px; font-weight: 900; }
.dashboard-user-chip em { color: #50617d; font-size: 12px; font-style: normal; font-weight: 800; }

.dashboard-content { display: flex; flex-direction: column; width: 100%; max-width: none; margin: 0; gap: 12px; padding: 16px clamp(18px, 1.35vw, 28px) 22px; box-sizing: border-box; }
.dashboard-user-summary { display: grid; grid-template-columns: minmax(320px,.9fr) minmax(520px,1.4fr); gap: 12px; min-width: 0; }
.dashboard-user-context-card, .dashboard-user-guide-card, .dashboard-stat-card { box-sizing: border-box; background: #fff; border: 1px solid var(--dash-line); border-radius: var(--dash-card-radius); box-shadow: var(--dash-card-shadow); }
.dashboard-user-context-card { display: flex; align-items: center; gap: 16px; min-height: 104px; padding: 18px 20px; }
.dashboard-user-context-card__icon { flex: 0 0 52px; width: 52px; height: 52px; background: radial-gradient(circle at 50% 32%, #9fb2d1 0 22%, transparent 23%), radial-gradient(circle at 50% 88%, #7894bf 0 34%, transparent 35%), #eaf2ff; border-radius: 50%; }
.dashboard-user-context-card__body { min-width: 0; }
.dashboard-user-kicker { display: block; color: var(--dash-blue-2); font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.dashboard-user-context-card h2 { margin: 5px 0 8px; color: var(--dash-text); font-size: 22px; font-weight: 950; letter-spacing: -.045em; }
.dashboard-user-context-card p { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0; color: var(--dash-muted); font-size: 13px; font-weight: 850; }
.dashboard-user-context-card p strong { color: #17325d; }
.dashboard-status-badge, .dashboard-role-badge { display: inline-flex; align-items: center; height: 23px; padding: 0 9px; border-radius: 999px; font-size: 11px; font-weight: 950; }
.dashboard-status-badge { color: #047857; background: #d1fae5; }
.dashboard-role-badge { color: #075cff; background: #eaf2ff; }
.dashboard-admin-stats { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: 12px; min-width: 0; }
.dashboard-stat-card { min-height: 104px; padding: 18px 18px 15px; }
.dashboard-stat-card span { display: block; color: var(--dash-muted); font-size: 13px; font-weight: 900; }
.dashboard-stat-card strong { display: block; margin-top: 13px; color: var(--dash-text); font-size: 34px; font-weight: 950; line-height: 1; letter-spacing: -.04em; }
.dashboard-stat-card--pending strong { color: #f59e0b; }
.dashboard-stat-card--approved strong { color: #16a34a; }
.dashboard-stat-card--admin strong { color: #075cff; }
.dashboard-user-guide-card { display: flex; flex-direction: column; justify-content: center; min-height: 104px; padding: 20px 22px; }
.dashboard-user-guide-card strong { color: var(--dash-text); font-size: 17px; font-weight: 950; }
.dashboard-user-guide-card p { margin: 8px 0 0; color: var(--dash-muted); font-size: 13px; font-weight: 750; line-height: 1.55; }
.dashboard-kpi-grid, .dashboard-panel-grid, .dashboard-bottom-grid, .dashboard-shortcut-grid, .dashboard-external-grid { min-width: 0; }
.dashboard-kpi-grid { display: grid; grid-template-columns: repeat(3, minmax(188px, 1fr)) minmax(520px, 2.25fr); gap: 12px; }
.dashboard-kpi-card, .dashboard-panel { min-width: 0; box-sizing: border-box; background: #fff; border: 1px solid var(--dash-line); border-radius: var(--dash-card-radius); box-shadow: var(--dash-card-shadow); }
.dashboard-kpi-card { display: flex; align-items: flex-start; gap: 19px; min-height: 154px; padding: 22px 22px 18px; }
.dashboard-kpi-card--status { padding: 18px 22px 16px; }
.dashboard-kpi-card--status .dashboard-kpi-icon { display: none; }
.dashboard-kpi-icon { flex: 0 0 56px; width: 56px; height: 56px; border-radius: 50%; font-size: 0; }
.dashboard-kpi-card--blue .dashboard-kpi-icon { color: #1267ff; background: #eaf2ff; }
.dashboard-kpi-card--green .dashboard-kpi-icon { color: #16a34a; background: #e7f8ee; }
.dashboard-kpi-card--orange .dashboard-kpi-icon, .dashboard-kpi-card--purple .dashboard-kpi-icon { color: #7c3aed; background: #f1e9ff; }
.dashboard-icon--monitor::before { left: 15px; top: 12px; width: 22px; height: 27px; border: 3px solid currentColor; border-radius: 4px; box-shadow: inset 0 7px 0 -4px currentColor, inset 0 14px 0 -11px currentColor; }
.dashboard-icon--monitor::after { right: 9px; bottom: 11px; width: 15px; height: 15px; border: 3px solid currentColor; border-radius: 50%; }
.dashboard-icon--newlaw::before { left: 15px; top: 11px; width: 24px; height: 30px; border: 3px solid currentColor; border-radius: 4px; }
.dashboard-icon--newlaw::after { right: 10px; bottom: 10px; width: 17px; height: 17px; border: 3px solid currentColor; border-radius: 50%; background: linear-gradient(currentColor,currentColor) center/9px 3px no-repeat, linear-gradient(currentColor,currentColor) center/3px 9px no-repeat, #e7f8ee; }
.dashboard-icon--clause::before { left: 15px; top: 12px; width: 16px; height: 16px; border: 3px solid currentColor; border-radius: 50%; }
.dashboard-icon--clause::after { left: 11px; bottom: 12px; width: 35px; height: 17px; border: 3px solid currentColor; border-top: 0; border-radius: 0 0 18px 18px; }
.dashboard-kpi-body { min-width: 0; flex: 1; }
.dashboard-kpi-body h2 { margin: 2px 0 17px; color: var(--dash-text); font-size: 16px; font-weight: 900; letter-spacing: -.04em; }
.dashboard-kpi-body strong { display: block; color: var(--dash-text); font-size: 42px; font-weight: 900; line-height: .95; letter-spacing: -.04em; }
.dashboard-kpi-body strong span { color: var(--dash-text); font-size: 17px; font-weight: 900; }
.dashboard-kpi-body p { display: inline-flex; align-items: center; min-height: 25px; margin: 17px 0 0; padding: 0 12px; color: #285ea8; background: #eef5ff; border-radius: 999px; font-size: 12px; font-weight: 850; }
.dashboard-kpi-card--blue .dashboard-kpi-body p { display: block; min-height: 0; margin-top: 9px; padding: 0; color: #64748b; background: transparent; }
.dashboard-kpi-progress { width: 100%; height: 7px; margin-top: 34px; overflow: hidden; background: #e2e7ef; border-radius: 999px; }
.dashboard-kpi-progress span { display: block; height: 100%; background: linear-gradient(90deg,#0b68ff,#1774ff); border-radius: inherit; }
.dashboard-kpi-title-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.dashboard-kpi-title-row h2 { margin: 0; color: var(--dash-text); font-size: 18px; font-weight: 900; letter-spacing: -.04em; }
.dashboard-kpi-title-row a, .dashboard-panel-header a, .dashboard-panel-more { color: var(--dash-blue-2); font-weight: 900; text-decoration: none; }

.dashboard-change-summary-table { width: 100%; border: 0; border-collapse: separate; border-spacing: 0; font-size: 13px; }
.dashboard-change-summary-table th, .dashboard-change-summary-table td { height: 27px; padding: 3px 6px; border: 0; color: var(--dash-text); font-weight: 900; text-align: center; white-space: nowrap; }
.dashboard-change-summary-table thead th { color: #0f172a; background: transparent; font-size: 12px; }
.dashboard-change-summary-table thead th:not(:first-child) { height: 24px; color: #166534; background: #dcfce7; border-radius: 999px; }
.dashboard-change-summary-table thead th:nth-child(3) { color: #1d4ed8; background: #dbeafe; }
.dashboard-change-summary-table thead th:nth-child(4) { color: #dc2626; background: #fee2e2; }
.dashboard-change-summary-table thead th:nth-child(5) { color: #ea580c; background: #ffedd5; }
.dashboard-change-summary-table thead th:nth-child(6) { color: #f97316; background: #fff3df; }
.dashboard-change-summary-table thead th:nth-child(7) { color: #6d28d9; background: #ede9fe; }
.dashboard-change-summary-table tbody th { width: 105px; background: transparent; font-size: 13px; text-align: left; }
.dashboard-change-summary-table td { background: transparent; font-size: 14px; }

.dashboard-panel { padding: 16px 18px; }
.dashboard-panel-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.dashboard-panel-header h2 { margin: 0; color: var(--dash-text); font-size: 18px; font-weight: 900; letter-spacing: -.04em; }
.dashboard-panel-more { display: flex; justify-content: center; margin-top: 10px; font-size: 13px; }
.dashboard-panel-grid { display: grid; gap: 12px; }
.dashboard-panel-grid--top { grid-template-columns: minmax(300px, .92fr) minmax(430px, 1.28fr) minmax(330px, .92fr); }
.dashboard-panel-grid--top .dashboard-panel { min-height: 324px; }
.dashboard-donut-wrap { display: grid; grid-template-columns: 158px minmax(108px, 1fr); gap: 18px; align-items: center; min-height: 224px; }
.dashboard-donut { position: relative; width: 150px; height: 150px; border-radius: 50%; background: conic-gradient(#0b62ff 0 66.7%, #ff950f 66.7% 91.7%, #7d8ca4 91.7% 100%, #263d66 100% 100%); }
.dashboard-donut::after { content: ""; position: absolute; inset: 38px; background: #fff; border-radius: 50%; }
.dashboard-legend { display: flex; flex-direction: column; gap: 17px; margin: 0; padding: 0; list-style: none; }
.dashboard-legend li { display: flex; align-items: center; gap: 13px; color: var(--dash-text); font-size: 14px; font-weight: 850; }
.dashboard-legend strong { margin-left: auto; }
.dashboard-dot { width: 14px; height: 14px; border-radius: 50%; }
.dashboard-dot--blue { background: #0b62ff; } .dashboard-dot--amber { background: #ff950f; } .dashboard-dot--gray { background: #7d8ca4; } .dashboard-dot--slate { background: #263d66; }

.dashboard-law-table, .dashboard-status-table { width: 100%; border-collapse: separate; border-spacing: 0; }
.dashboard-law-table { font-size: 12px; }
.dashboard-law-table th, .dashboard-law-table td { height: 26px; padding: 3px 8px; border-bottom: 0; vertical-align: middle; }
.dashboard-law-table th { color: #263a5e; background: #f1f5fb; font-size: 12px; font-weight: 900; text-align: left; }
.dashboard-law-table th:first-child, .dashboard-law-table td:first-child { width: 54px; text-align: center; }
.dashboard-law-table th:nth-child(3), .dashboard-law-table td:nth-child(3) { width: 86px; color: #64748b; white-space: nowrap; }
.dashboard-law-table th:nth-child(4), .dashboard-law-table td:nth-child(4) { width: 116px; text-align: right; white-space: nowrap; }
.dashboard-law-table td:nth-child(2) { max-width: 380px; overflow: hidden; color: var(--dash-text); font-size: 12px; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-law-table a { color: var(--dash-blue-2); font-size: 11px; font-weight: 900; text-decoration: none; }
.dashboard-law-table .dashboard-law-link-button,
.dashboard-law-table a[href^="https://www.law.go.kr"] { display: inline-flex; align-items: center; justify-content: center; gap: 4px; max-width: 100%; min-height: 23px; padding: 0 8px; color: #075cff; background: #fff; border: 1px solid #9dbdf5; border-radius: 6px; box-sizing: border-box; line-height: 1; text-decoration: none; white-space: nowrap; }
.dashboard-law-table .dashboard-law-link-button:hover,
.dashboard-law-table .dashboard-law-link-button:focus-visible,
.dashboard-law-table a[href^="https://www.law.go.kr"]:hover,
.dashboard-law-table a[href^="https://www.law.go.kr"]:focus-visible { color: #064fdc; background: #eef5ff; border-color: #5f92eb; outline: 2px solid rgba(7, 92, 255, .18); outline-offset: 1px; }
.dashboard-badge, .dashboard-category { display: inline-flex; align-items: center; justify-content: center; height: 22px; padding: 0 10px; border-radius: 999px; font-size: 11px; font-weight: 900; white-space: nowrap; }
.dashboard-badge--new { color: #159447; background: #e3f9eb; } .dashboard-badge--revise { color: #075cff; background: #e7f0ff; } .dashboard-badge--delete { color: #ff2b2b; background: #ffe8e8; } .dashboard-badge--supplement { color: #f47b00; background: #fff0da; } .dashboard-badge--change { color: #761ce3; background: #f0e5ff; } .dashboard-badge--enact { color: #f07900; background: #fff1df; }
.dashboard-change-bars { display: flex; flex-direction: column; gap: 23px; padding: 8px 10px 2px; }
.dashboard-change-row { display: grid; grid-template-columns: 52px minmax(0,1fr) 42px; gap: 18px; align-items: center; }
.dashboard-change-row div { height: 7px; overflow: hidden; background: #e8edf5; border-radius: 999px; }
.dashboard-change-row i { display: block; height: 100%; background: var(--dash-blue); border-radius: inherit; }
.dashboard-change-row:has(.dashboard-badge--new) i { background: #16a34a; } .dashboard-change-row:has(.dashboard-badge--delete) i { background: #ff2b2b; } .dashboard-change-row:has(.dashboard-badge--enact) i { background: #ff870f; } .dashboard-change-row:has(.dashboard-badge--supplement) i { background: #ff8c10; } .dashboard-change-row:has(.dashboard-badge--change) i { background: #8a20e6; }
.dashboard-change-row strong { color: var(--dash-text); font-size: 16px; font-weight: 900; text-align: right; }

.dashboard-panel-grid--bottom { grid-template-columns: minmax(560px, .96fr) minmax(540px, 1.04fr); }
.dashboard-panel-grid--bottom .dashboard-panel { min-height: 198px; }
.dashboard-status-table { table-layout: fixed; font-size: 13px; }
.dashboard-status-table th, .dashboard-status-table td { height: 26px; padding: 3px 8px; border-right: 1px solid #e8eef7; border-bottom: 1px solid #e8eef7; color: var(--dash-text); font-weight: 900; text-align: center; vertical-align: middle; }
.dashboard-status-table th { background: #f1f5fb; font-size: 12px; }
.dashboard-status-table th:first-child, .dashboard-status-table td:first-child { width: 22%; text-align: left; white-space: nowrap; }
.dashboard-status-table th:last-child, .dashboard-status-table td:last-child { border-right: 0; }
.dashboard-status-table tr:last-child td { border-bottom: 0; }

.dashboard-chemical-note { position: relative; min-height: 42px; margin-bottom: 6px; padding: 7px 12px 7px 42px; box-sizing: border-box; background: #eaf3ff; border: 1px solid #d5e6ff; border-radius: 9px; }
.dashboard-info-icon { position: absolute; left: 13px; top: 11px; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; color: var(--dash-blue-2); border: 3px solid var(--dash-blue-2); border-radius: 50%; font-size: 13px; font-weight: 900; line-height: 1; }
.dashboard-chemical-note p { margin: 0; overflow: hidden; color: var(--dash-blue-2); font-size: 12px; font-weight: 850; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-accident-list { display: flex; flex-direction: column; gap: 0; }
.dashboard-accident-list a { display: grid; grid-template-columns: minmax(72px, 90px) minmax(150px, 1fr) minmax(52px, 78px) 86px 18px; gap: 8px; align-items: center; min-width: 0; min-height: 25px; padding: 3px 0; color: inherit; text-decoration: none; }
.dashboard-accident-list span { display: inline-flex; justify-content: center; max-width: 100%; padding: 4px 9px; overflow: hidden; color: var(--dash-blue-2); background: #e7f0ff; border-radius: 999px; font-size: 11px; font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-accident-list a:nth-child(2) span { color: #1d4ed8; background: #dbeafe; } .dashboard-accident-list a:nth-child(3) span { color: #ef4444; background: #ffe8e8; } .dashboard-accident-list a:nth-child(4) span { color: #dc2626; background: #fee2e2; }
.dashboard-accident-list strong, .dashboard-accident-list em { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-accident-list strong { color: var(--dash-text); font-size: 12px; font-weight: 850; }
.dashboard-accident-list em, .dashboard-accident-list time { color: #314466; font-size: 11px; font-style: normal; font-weight: 850; }
.dashboard-accident-list time { justify-self: end; width: 86px; min-width: 86px; text-align: right; white-space: nowrap; }
.dashboard-accident-list b { justify-self: end; color: var(--dash-blue-2); font-size: 14px; white-space: nowrap; }

.dashboard-bottom-grid { display: grid; grid-template-columns: minmax(670px, 1.34fr) minmax(500px, .86fr); gap: 12px; align-items: stretch; }
.dashboard-bottom-grid .dashboard-panel { min-height: 128px; }
.dashboard-shortcuts, .dashboard-external-links { min-width: 0; overflow: hidden; }
.dashboard-shortcut-grid, .dashboard-external-grid { display: grid; gap: 9px; width: 100%; }
.dashboard-shortcut-grid { grid-template-columns: repeat(5, minmax(112px, 1fr)); }
.dashboard-shortcut-grid a, .dashboard-external-grid a { color: var(--dash-text); background: #fbfdff; border: 1px solid var(--dash-line); border-radius: 13px; text-decoration: none; }
.dashboard-shortcut-grid a { display: grid; grid-template-columns: 38px minmax(0,1fr); grid-template-rows: auto auto; column-gap: 8px; align-items: center; min-width: 0; min-height: 66px; padding: 9px 8px; box-sizing: border-box; text-align: left; }
.dashboard-shortcut-grid a span.shortcut-ico { grid-row: 1 / 3; align-self: center; width: 36px; height: 36px; color: var(--dash-blue); background: transparent; font-size: 0; }
.dashboard-shortcut-grid a strong, .dashboard-shortcut-grid a small { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-shortcut-grid a strong { align-self: end; color: var(--dash-text); font-size: 13px; font-weight: 900; letter-spacing: -.04em; }
.dashboard-shortcut-grid a small { align-self: start; color: var(--dash-muted); font-size: 10px; font-weight: 800; }
.dashboard-shortcut-grid a:hover, .dashboard-external-grid a:hover { border-color: #bfdbfe; box-shadow: 0 10px 22px rgba(37,99,235,.11); }
.shortcut-ico--monitor::before { left: 5px; top: 5px; width: 28px; height: 28px; border: 4px solid currentColor; border-radius: 50%; } .shortcut-ico--monitor::after { right: 2px; bottom: 3px; width: 16px; height: 4px; background: currentColor; border-radius: 6px; transform: rotate(45deg); }
.dashboard-qa-placeholder { display: grid; grid-template-columns: 38px minmax(0,1fr); grid-template-rows: auto auto auto; column-gap: 8px; align-items: center; min-width: 0; min-height: 66px; padding: 9px 8px; box-sizing: border-box; color: var(--dash-text); background: #fbfdff; border: 1px dashed #bfd3ee; border-radius: 13px; text-align: left; }
.dashboard-qa-placeholder span.shortcut-ico { grid-row: 1 / 4; align-self: center; width: 36px; height: 36px; color: #7c3aed; background: transparent; font-size: 0; }
.dashboard-qa-placeholder strong, .dashboard-qa-placeholder small, .dashboard-qa-placeholder em { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-qa-placeholder strong { align-self: end; color: var(--dash-text); font-size: 13px; font-weight: 900; letter-spacing: -.04em; }
.dashboard-qa-placeholder small { align-self: start; color: var(--dash-muted); font-size: 10px; font-weight: 800; }
.dashboard-qa-placeholder em { justify-self: start; margin-top: 4px; padding: 3px 8px; color: #7c3aed; background: #f3e8ff; border-radius: 999px; font-size: 10px; font-style: normal; font-weight: 900; }
.shortcut-ico--qa::before { left: 4px; top: 7px; width: 29px; height: 23px; border: 4px solid currentColor; border-radius: 10px; }
.shortcut-ico--qa::after { left: 13px; bottom: 4px; width: 10px; height: 10px; border-left: 4px solid currentColor; border-bottom: 4px solid currentColor; transform: rotate(-45deg); }
.shortcut-ico--history::before { inset: 5px; border: 4px solid currentColor; border-right-color: transparent; border-radius: 50%; } .shortcut-ico--history::after { left: 4px; top: 8px; width: 12px; height: 12px; border-left: 4px solid currentColor; border-bottom: 4px solid currentColor; transform: rotate(45deg); }
.shortcut-ico--manage::before { left: 8px; top: 7px; width: 28px; height: 32px; border: 4px solid currentColor; border-radius: 5px; } .shortcut-ico--manage::after { left: 16px; top: 2px; width: 12px; height: 9px; border: 4px solid currentColor; border-bottom: 0; }
.shortcut-ico--law { color: #7c1dff !important; } .shortcut-ico--law::before { left: 4px; top: 6px; width: 17px; height: 30px; border: 4px solid currentColor; border-radius: 5px 0 0 5px; } .shortcut-ico--law::after { right: 4px; top: 6px; width: 17px; height: 30px; border: 4px solid currentColor; border-radius: 0 5px 5px 0; }
.shortcut-ico--report { color: #16a34a !important; } .shortcut-ico--report::before { left: 4px; bottom: 5px; width: 5px; height: 14px; background: currentColor; box-shadow: 8px -6px 0 currentColor, 16px -12px 0 currentColor, 24px -20px 0 currentColor, 32px -26px 0 currentColor; } .shortcut-ico--report::after { left: 2px; right: 2px; bottom: 3px; height: 4px; background: currentColor; border-radius: 4px; }
.dashboard-external-grid { grid-template-columns: repeat(2, minmax(224px, 1fr)); gap: 12px; }
.dashboard-external-grid a { display: grid; grid-template-columns: 52px minmax(0,1fr) 30px; align-items: center; column-gap: 13px; min-width: 0; min-height: 82px; padding: 15px 14px 15px 15px; box-sizing: border-box; background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%); border-color: #d8e3f1; }
.dashboard-gov-badge { display: flex; grid-row: 1; align-self: center; justify-content: center; align-items: center; width: 52px; min-width: 52px; height: 52px; overflow: hidden; background: #ffffff; border: 1px solid #d7e1ee; border-radius: 15px; box-shadow: inset 0 0 0 3px #fff, 0 8px 16px rgba(15,35,75,.12); }
.dashboard-gov-badge img { display: block; width: 385%; height: 385%; object-fit: contain; object-position: center; transform: translateZ(0); }
.dashboard-external-copy { display: block; min-width: 0; overflow: hidden; padding-right: 2px; }
.dashboard-external-copy strong, .dashboard-external-copy small { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-external-copy strong { color: var(--dash-text); font-size: 15px; font-weight: 950; letter-spacing: -.04em; line-height: 1.25; }
.dashboard-external-copy small { margin-top: 7px; color: var(--dash-muted); font-size: 11.5px; font-weight: 800; line-height: 1.35; }
.dashboard-external-grid em { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; color: #163b73; background: #edf4ff; border: 1px solid #d6e5fb; border-radius: 10px; font-size: 14px; font-style: normal; font-weight: 900; white-space: nowrap; }

@media (min-width: 1700px) {
    :root { --dash-sidebar: 286px; }
    .dashboard-content { gap: 13px; padding-left: 24px; padding-right: 24px; }
    .dashboard-kpi-grid { grid-template-columns: repeat(3, minmax(220px,1fr)) minmax(600px,2.35fr); gap: 13px; }
    .dashboard-panel-grid--top { grid-template-columns: minmax(350px,.96fr) minmax(500px,1.28fr) minmax(390px,.98fr); }
    .dashboard-panel-grid--bottom { grid-template-columns: minmax(650px,.98fr) minmax(620px,1.02fr); }
    .dashboard-bottom-grid { grid-template-columns: minmax(760px,1.35fr) minmax(560px,.85fr); }
}
@media (min-width: 1440px) and (max-width: 1699px) {
    :root { --dash-sidebar: 268px; }
    .app-sidebar { padding-left: 16px; padding-right: 16px; }
    .app-nav-item { min-height: 48px; font-size: 15px; }
    .dashboard-kpi-grid { grid-template-columns: repeat(3, minmax(178px,1fr)) minmax(470px,2.12fr); }
    .dashboard-kpi-card { min-height: 150px; padding: 20px 20px 17px; }
    .dashboard-kpi-body strong { font-size: 38px; }
    .dashboard-panel-grid--top { grid-template-columns: minmax(292px,.9fr) minmax(405px,1.26fr) minmax(320px,.92fr); }
    .dashboard-panel-grid--bottom { grid-template-columns: minmax(500px,.92fr) minmax(535px,1.08fr); }
    .dashboard-bottom-grid { grid-template-columns: minmax(620px,1.28fr) minmax(485px,.92fr); }
}
@media (min-width: 1280px) and (max-width: 1439px) {
    :root { --dash-sidebar: 248px; }
    .app-sidebar { padding: 16px 12px; } .app-brand { margin-bottom: 22px; } .app-brand strong { font-size: 14px; } .app-brand span { font-size: 11px; } .app-nav { gap: 7px; } .app-nav-item { min-height: 40px; gap: 10px; padding: 0 11px; font-size: 13px; }
    .dashboard-header { min-height: 64px; padding: 12px 18px; } .dashboard-header h1 { font-size: 23px; } .dashboard-header p { margin-top: 5px; font-size: 12px; } .dashboard-content { gap: 9px; padding: 10px 12px 14px; }
    .dashboard-kpi-grid { grid-template-columns: repeat(3, minmax(150px,1fr)) minmax(390px,2.05fr); gap: 9px; } .dashboard-kpi-card { min-height: 126px; padding: 15px; gap: 12px; } .dashboard-kpi-icon { width: 44px; height: 44px; flex-basis: 44px; } .dashboard-kpi-body h2 { margin-bottom: 9px; font-size: 13px; } .dashboard-kpi-body strong { font-size: 31px; } .dashboard-kpi-body p { margin-top: 10px; font-size: 11px; } .dashboard-kpi-progress { margin-top: 18px; }
    .dashboard-panel { padding: 13px 14px; } .dashboard-panel-header { margin-bottom: 9px; } .dashboard-panel-header h2, .dashboard-kpi-title-row h2 { font-size: 16px; } .dashboard-panel-grid, .dashboard-bottom-grid { gap: 9px; }
    .dashboard-panel-grid--top { grid-template-columns: minmax(260px,.9fr) minmax(360px,1.24fr) minmax(285px,.9fr); } .dashboard-panel-grid--bottom { grid-template-columns: minmax(440px,.88fr) minmax(470px,1.12fr); } .dashboard-bottom-grid { grid-template-columns: minmax(560px,1.25fr) minmax(420px,.95fr); }
    .dashboard-panel-grid--top .dashboard-panel { min-height: 284px; } .dashboard-panel-grid--bottom .dashboard-panel { min-height: 174px; } .dashboard-bottom-grid .dashboard-panel { min-height: 112px; }
    .dashboard-donut-wrap { grid-template-columns: 134px minmax(94px,1fr); gap: 12px; min-height: 194px; } .dashboard-donut { width: 126px; height: 126px; } .dashboard-donut::after { inset: 32px; } .dashboard-legend { gap: 11px; }
    .dashboard-law-table th, .dashboard-law-table td, .dashboard-status-table th, .dashboard-status-table td { height: 22px; padding: 2px 5px; font-size: 11px; } .dashboard-law-table td:nth-child(2) { font-size: 11px; } .dashboard-law-table a { font-size: 10px; } .dashboard-badge, .dashboard-category { height: 20px; padding: 0 7px; font-size: 10px; } .dashboard-change-bars { gap: 15px; padding: 4px 6px 0; }
    .dashboard-chemical-note { min-height: 36px; padding: 6px 9px 6px 36px; } .dashboard-info-icon { left: 10px; top: 9px; width: 18px; height: 18px; border-width: 2px; font-size: 12px; } .dashboard-chemical-note p { font-size: 11px; line-height: 1.35; } .dashboard-accident-list a { grid-template-columns: minmax(64px,76px) minmax(120px,1fr) minmax(46px,62px) 80px 16px; gap: 6px; min-height: 22px; } .dashboard-accident-list span, .dashboard-accident-list strong, .dashboard-accident-list em, .dashboard-accident-list time { font-size: 10px; } .dashboard-accident-list time { width: 80px; min-width: 80px; }
    .dashboard-shortcut-grid { grid-template-columns: repeat(5, minmax(92px,1fr)); gap: 7px; } .dashboard-shortcut-grid a { grid-template-columns: 31px minmax(0,1fr); min-height: 56px; padding: 7px 6px; column-gap: 6px; } .dashboard-shortcut-grid a span.shortcut-ico { width: 30px; height: 30px; } .dashboard-shortcut-grid a strong { font-size: 11px; } .dashboard-shortcut-grid a small { font-size: 9px; }
    .dashboard-external-grid { grid-template-columns: repeat(2, minmax(180px,1fr)); gap: 8px; } .dashboard-external-grid a { grid-template-columns: 42px minmax(0,1fr) 25px; min-height: 66px; padding: 10px; column-gap: 9px; } .dashboard-gov-badge { width: 42px; min-width: 42px; height: 42px; border-radius: 13px; } .dashboard-gov-badge img { width: 345%; height: 345%; object-position: center; } .dashboard-external-copy strong { font-size: 12.5px; } .dashboard-external-copy small { margin-top: 4px; font-size: 10.3px; } .dashboard-external-grid em { width: 24px; height: 24px; font-size: 12px; border-radius: 8px; }
}
@media (min-width: 1100px) and (max-width: 1279px) {
    :root { --dash-sidebar: 206px; }
    .app-shell { flex-direction: row; }
    .app-sidebar { position: sticky; flex-basis: var(--dash-sidebar); width: var(--dash-sidebar); height: 100vh; padding: 14px 8px; }
    .app-brand { gap: 7px; margin-bottom: 18px; }
    .app-brand-mark { flex-basis: 36px; width: 36px; height: 36px; }
    .app-brand-mark svg { width: 27px; height: 27px; }
    .app-brand strong { font-size: 11.5px; }
    .app-brand span { font-size: 9.5px; }
    .app-nav { display: flex; gap: 6px; }
    .app-nav-item { min-height: 36px; gap: 7px; padding: 0 8px; font-size: 11.5px; }
    .nav-ico { flex-basis: 19px; width: 19px; height: 19px; }
    .app-nav-item i { width: 22px; height: 22px; font-size: 11px; }

    .dashboard-main { width: calc(100vw - var(--dash-sidebar)); }
    .dashboard-header { min-height: 58px; padding: 10px 14px; }
    .dashboard-header h1 { font-size: 21px; }
    .dashboard-header p { margin-top: 4px; font-size: 11px; }
    .dashboard-mode-badge { height: 26px; padding: 0 10px; font-size: 10px; }
    .dashboard-user-chip { grid-template-columns: 32px auto; column-gap: 7px; }
    .dashboard-user-chip span { width: 32px; height: 32px; }

    .dashboard-content { gap: 8px; padding: 9px 10px 12px; }
    .dashboard-kpi-grid { grid-template-columns: repeat(3, minmax(116px,1fr)) minmax(315px,1.95fr); gap: 7px; }
    .dashboard-kpi-card { min-height: 102px; padding: 11px; gap: 8px; }
    .dashboard-kpi-card--status { padding: 10px 12px; }
    .dashboard-kpi-icon { width: 36px; height: 36px; flex-basis: 36px; }
    .dashboard-kpi-body h2 { margin-bottom: 6px; font-size: 11.5px; }
    .dashboard-kpi-body strong { font-size: 25px; }
    .dashboard-kpi-body strong span { font-size: 11px; }
    .dashboard-kpi-body p { min-height: 18px; margin-top: 7px; padding: 0 7px; font-size: 9.5px; }
    .dashboard-kpi-progress { height: 5px; margin-top: 12px; }
    .dashboard-change-summary-table th, .dashboard-change-summary-table td { height: 20px; padding: 2px 4px; font-size: 10.5px; }
    .dashboard-change-summary-table tbody th { width: 76px; font-size: 10.5px; }

    .dashboard-panel { padding: 10px 11px; }
    .dashboard-panel-header { margin-bottom: 8px; }
    .dashboard-panel-header h2, .dashboard-kpi-title-row h2 { font-size: 15px; }
    .dashboard-panel-header a, .dashboard-kpi-title-row a { font-size: 10px; }
    .dashboard-panel-grid, .dashboard-bottom-grid { gap: 8px; }
    .dashboard-panel-grid--top { grid-template-columns: minmax(210px,.8fr) minmax(330px,1.34fr) minmax(222px,.82fr); }
    .dashboard-panel-grid--bottom { grid-template-columns: minmax(350px,.8fr) minmax(430px,1.2fr); }
    .dashboard-bottom-grid { grid-template-columns: minmax(465px,1.18fr) minmax(340px,1fr); }
    .dashboard-panel-grid--top .dashboard-panel { min-height: 250px; }
    .dashboard-panel-grid--bottom .dashboard-panel { min-height: 164px; }
    .dashboard-bottom-grid .dashboard-panel { min-height: 104px; }

    .dashboard-donut-wrap { grid-template-columns: 104px minmax(82px,1fr); gap: 8px; min-height: 168px; }
    .dashboard-donut { width: 98px; height: 98px; }
    .dashboard-donut::after { inset: 25px; }
    .dashboard-legend { gap: 8px; }
    .dashboard-legend li { gap: 7px; font-size: 11px; }
    .dashboard-dot { width: 10px; height: 10px; }

    .dashboard-law-table th, .dashboard-law-table td { height: 22px; padding: 2px 5px; font-size: 10.5px; line-height: 1.35; }
    .dashboard-law-table td:nth-child(2) { max-width: 270px; font-size: 10.5px; }
    .dashboard-law-table th:nth-child(3), .dashboard-law-table td:nth-child(3) { width: 76px; }
    .dashboard-law-table th:nth-child(4), .dashboard-law-table td:nth-child(4) { width: 96px; }
    .dashboard-law-table a { font-size: 9.5px; }
    .dashboard-status-table th, .dashboard-status-table td { height: 20px; padding: 1px 4px; font-size: 10px; }
    .dashboard-badge, .dashboard-category { height: 18px; padding: 0 6px; font-size: 9px; }
    .dashboard-panel-more { margin-top: 7px; font-size: 11px; }
    .dashboard-change-bars { gap: 11px; padding: 2px 4px 0; }
    .dashboard-change-row { grid-template-columns: 42px minmax(0,1fr) 32px; gap: 9px; }
    .dashboard-change-row div { height: 5px; }
    .dashboard-change-row strong { font-size: 12px; }

    .dashboard-chemical-note { min-height: 34px; margin-bottom: 5px; padding: 6px 8px 6px 32px; }
    .dashboard-info-icon { left: 9px; top: 8px; width: 16px; height: 16px; border-width: 2px; font-size: 10px; }
    .dashboard-chemical-note p { font-size: 10px; line-height: 1.3; }
    .dashboard-accident-list { gap: 1px; }
    .dashboard-accident-list a { grid-template-columns: minmax(58px,70px) minmax(112px,1fr) minmax(42px,58px) 78px 15px; gap: 6px; min-height: 23px; padding: 3px 0; }
    .dashboard-accident-list span { padding: 3px 6px; }
    .dashboard-accident-list span, .dashboard-accident-list strong, .dashboard-accident-list em, .dashboard-accident-list time { font-size: 9.5px; line-height: 1.35; }
    .dashboard-accident-list time { width: 78px; min-width: 78px; }
    .dashboard-accident-list b { font-size: 13px; }

    .dashboard-shortcut-grid { grid-template-columns: repeat(5, minmax(78px,1fr)); gap: 6px; }
    .dashboard-shortcut-grid a { grid-template-columns: 25px minmax(0,1fr); min-height: 50px; padding: 6px 5px; column-gap: 6px; }
    .dashboard-shortcut-grid a span.shortcut-ico { width: 24px; height: 24px; }
    .dashboard-shortcut-grid a strong { font-size: 10px; }
    .dashboard-shortcut-grid a small { font-size: 8.5px; }

    .dashboard-external-grid { grid-template-columns: repeat(2, minmax(158px,1fr)); gap: 7px; }
    .dashboard-external-grid a { grid-template-columns: 35px minmax(0,1fr) 23px; min-height: 60px; padding: 9px 8px; column-gap: 8px; }
    .dashboard-gov-badge { width: 36px; min-width: 36px; height: 36px; border-radius: 11px; }
    .dashboard-gov-badge img { width: 305%; height: 305%; object-position: center; }
    .dashboard-external-copy strong { font-size: 11.2px; line-height: 1.22; }
    .dashboard-external-copy small { margin-top: 3px; font-size: 9.5px; line-height: 1.28; }
    .dashboard-external-grid em { width: 22px; height: 22px; font-size: 11px; border-radius: 7px; }
}
@media (max-width: 1099px) {
    .app-shell { flex-direction: column; } .app-sidebar { position: relative; flex-basis: auto; width: 100%; height: auto; } .app-nav { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); } .app-sidebar-footer { display: none; } .dashboard-main { width: 100%; } .dashboard-header { align-items: flex-start; gap: 12px; } .dashboard-header-actions { flex-wrap: wrap; justify-content: flex-end; }
    .dashboard-kpi-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } .dashboard-kpi-card--status { grid-column: 1 / -1; } .dashboard-panel-grid--top, .dashboard-panel-grid--bottom, .dashboard-bottom-grid { grid-template-columns: 1fr; } .dashboard-panel-grid--top .dashboard-panel, .dashboard-panel-grid--bottom .dashboard-panel { min-height: auto; } .dashboard-donut-wrap { grid-template-columns: 180px minmax(0,1fr); } .dashboard-shortcut-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } .dashboard-external-grid { grid-template-columns: 1fr; }
}

.auth-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 24px;
    box-sizing: border-box;
}

.auth-card {
    width: min(100%, 480px);
    padding: 28px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
}

.auth-card h1 {
    margin: 0 0 8px;
    font-size: 24px;
}

.auth-description {
    margin: 0 0 20px;
    color: #4b5563;
}

.auth-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.auth-form label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-weight: 700;
}

.auth-form label span {
    color: #dc2626;
}

.auth-form input {
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font: inherit;
}

.auth-form button {
    margin-top: 8px;
    padding: 12px;
    color: #ffffff;
    background: #2563eb;
    border: 0;
    border-radius: 8px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.message {
    margin-bottom: 16px;
    padding: 12px;
    border-radius: 8px;
}

.message-error {
    color: #991b1b;
    background: #fee2e2;
}

.message-success {
    color: #065f46;
    background: #d1fae5;
}

.login-card {
    max-width: 420px;
}

.login-form button {
    width: 100%;
}

.auth-link-text {
    margin: 18px 0 0;
    text-align: center;
    color: #4b5563;
}

.auth-link-text a {
    color: #2563eb;
    font-weight: 700;
    text-decoration: none;
}

/* Login landing page redesign (W3-UI-1) */
.login-page {
    min-height: 100vh;
    padding: 24px;
    box-sizing: border-box;
    color: #0f172a;
    background:
        radial-gradient(circle at 18% 14%, rgba(37, 99, 235, 0.13), transparent 28%),
        linear-gradient(135deg, #f8fafc 0%, #eff6ff 50%, #f8fbff 100%);
    font-family: "Noto Sans KR", sans-serif;
}

.login-landing {
    display: flex;
    flex-direction: column;
    width: min(100%, 1480px);
    min-height: calc(100vh - 48px);
    margin: 0 auto;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.96) 0%, rgba(239, 246, 255, 0.82) 100%),
        linear-gradient(145deg, #ffffff 0%, #dbeafe 100%);
    border: 1px solid #dbe4f0;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.12);
}

.login-landing__content {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(390px, 480px);
    gap: 64px;
    flex: 1;
    align-items: center;
    padding: 42px 90px 46px;
}

.login-landing__content::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.42;
    background:
        repeating-radial-gradient(ellipse at 65% 5%, rgba(37, 99, 235, 0.18) 0 1px, transparent 1px 7px),
        radial-gradient(circle at 92% 50%, rgba(37, 99, 235, 0.16) 0 2px, transparent 3px),
        radial-gradient(circle at 52% 35%, rgba(37, 99, 235, 0.16) 0 2px, transparent 3px);
}

.login-brand-panel,
.login-card {
    position: relative;
    z-index: 1;
}

.login-brand-panel {
    min-height: 575px;
    padding: 0 0 34px;
}

.login-brand-header {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-bottom: 70px;
}

.login-brand-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 78px;
    color: #1455d9;
    font-size: 23px;
    font-weight: 800;
    letter-spacing: -0.04em;
    background: rgba(239, 246, 255, 0.8);
    border: 5px solid #2563eb;
    clip-path: polygon(50% 0, 94% 17%, 88% 75%, 50% 100%, 12% 75%, 6% 17%);
}

.login-brand-header strong {
    display: block;
    color: #0f172a;
    font-size: 24px;
    line-height: 1.2;
}

.login-brand-header span {
    display: block;
    margin-top: 8px;
    color: #334155;
    font-size: 15px;
}

.login-hero-copy {
    margin-left: 104px;
}

.login-hero-copy h1 {
    margin: 0;
    color: #071638;
    font-size: clamp(34px, 3vw, 45px);
    line-height: 1.28;
    letter-spacing: -0.06em;
}

.login-hero-copy p {
    margin: 24px 0 36px;
    color: #334155;
    font-size: 15px;
    line-height: 1.85;
}

.login-feature-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px;
    width: min(100%, 590px);
    margin-left: 104px;
}

.login-feature-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin-bottom: 18px;
    color: #2563eb;
    background: linear-gradient(145deg, #eaf2ff, #dbeafe);
    border-radius: 50%;
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.14);
    font-size: 24px;
}

.login-feature-item h2 {
    margin: 0 0 10px;
    color: #0f172a;
    font-size: 15px;
    line-height: 1.35;
}

.login-feature-item p {
    margin: 0;
    color: #475569;
    font-size: 13px;
    line-height: 1.7;
}

.login-illustration {
    position: absolute;
    right: 4%;
    bottom: 14px;
    left: 0;
    height: 270px;
    pointer-events: none;
    overflow: hidden;
}

.login-illustration__scale {
    position: absolute;
    left: 4px;
    bottom: 70px;
    color: rgba(37, 99, 235, 0.42);
    font-size: 108px;
    text-shadow: 0 18px 30px rgba(15, 23, 42, 0.14);
}

.login-illustration__book {
    position: absolute;
    left: 10px;
    width: 140px;
    height: 34px;
    padding-left: 18px;
    box-sizing: border-box;
    color: rgba(15, 23, 42, 0.34);
    background: linear-gradient(90deg, rgba(37, 99, 235, 0.24), rgba(255, 255, 255, 0.7));
    border: 1px solid rgba(148, 163, 184, 0.25);
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    line-height: 34px;
    box-shadow: 0 14px 24px rgba(15, 23, 42, 0.09);
}

.login-illustration__book--top {
    bottom: 46px;
    transform: rotate(2deg);
}

.login-illustration__book--bottom {
    bottom: 14px;
    transform: rotate(-1deg);
}

.login-illustration__building {
    position: absolute;
    right: 5%;
    bottom: 0;
    width: 210px;
    height: 255px;
    opacity: 0.38;
    background:
        linear-gradient(90deg, transparent 0 14%, rgba(37, 99, 235, 0.2) 14% 16%, transparent 16% 32%, rgba(37, 99, 235, 0.2) 32% 34%, transparent 34% 50%, rgba(37, 99, 235, 0.2) 50% 52%, transparent 52% 68%, rgba(37, 99, 235, 0.2) 68% 70%, transparent 70%),
        repeating-linear-gradient(0deg, rgba(37, 99, 235, 0.15) 0 2px, transparent 2px 38px),
        linear-gradient(180deg, rgba(191, 219, 254, 0.75), rgba(255, 255, 255, 0.15));
    border: 1px solid rgba(37, 99, 235, 0.14);
    clip-path: polygon(20% 20%, 48% 8%, 82% 20%, 82% 100%, 20% 100%);
}

.login-card {
    width: 100%;
    max-width: none;
    padding: 34px 38px 32px;
    box-sizing: border-box;
    text-align: center;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 16px;
    box-shadow: 0 22px 55px rgba(30, 64, 175, 0.16);
    backdrop-filter: blur(8px);
}

.login-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    margin-bottom: 18px;
    color: #2563eb;
    background: #eaf2ff;
    border-radius: 50%;
    font-size: 28px;
}

.login-card h2 {
    margin: 0;
    color: #071638;
    font-size: 29px;
    line-height: 1.2;
    letter-spacing: -0.04em;
}

.login-card__description {
    margin: 12px 0 0;
    color: #475569;
    font-size: 13px;
}

.login-card__divider {
    width: 34px;
    height: 3px;
    margin: 22px auto 26px;
    background: #2563eb;
    border-radius: 999px;
}

.login-card .login-form {
    gap: 16px;
    text-align: left;
}

.login-card .login-form label {
    gap: 9px;
    color: #0f172a;
    font-size: 14px;
    font-weight: 800;
}

.login-card .login-form input {
    height: 44px;
    padding: 0 14px;
    color: #0f172a;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    outline: none;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.03);
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.login-card .login-form input::placeholder {
    color: #94a3b8;
}

.login-card .login-form input:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.13);
}

.login-card .login-form button {
    width: 100%;
    height: 48px;
    margin-top: 4px;
    background: linear-gradient(180deg, #2563eb 0%, #0756df 100%);
    border-radius: 7px;
    box-shadow: 0 12px 22px rgba(37, 99, 235, 0.26);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.login-card .login-form button:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 26px rgba(37, 99, 235, 0.34);
}

.login-policy-notice {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    margin-top: 20px;
    padding: 14px 16px;
    color: #0756df;
    background: linear-gradient(90deg, #eff6ff, #e2edff);
    border-radius: 8px;
    font-size: 15px;
    font-weight: 800;
}

.login-register-link {
    margin-top: 26px;
    font-size: 15px;
}

.login-register-link a {
    color: #0756df;
}

.login-message {
    margin: 0 0 18px;
    text-align: left;
    border: 1px solid transparent;
    font-size: 14px;
    line-height: 1.5;
}

.login-card .message-error {
    color: #9f1239;
    background: #fff1f2;
    border-color: #fecdd3;
}

.login-card .message-success {
    color: #047857;
    background: #ecfdf5;
    border-color: #a7f3d0;
}

.login-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 16px 38px;
    color: #e5edf8;
    background: linear-gradient(90deg, #051a3d 0%, #08204a 100%);
}

.login-footer__brand {
    display: flex;
    align-items: center;
    gap: 14px;
}

.login-footer__badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 44px;
    color: #ffffff;
    border: 2px solid rgba(255, 255, 255, 0.82);
    clip-path: polygon(50% 0, 94% 17%, 88% 75%, 50% 100%, 12% 75%, 6% 17%);
    font-size: 12px;
    font-weight: 800;
}

.login-footer strong,
.login-footer span {
    display: block;
}

.login-footer strong {
    font-size: 13px;
}

.login-footer span,
.login-footer p {
    color: #cbd5e1;
    font-size: 12px;
}

.login-footer p {
    margin: 0;
}

@media (max-width: 1100px) {
    .login-landing__content {
        grid-template-columns: 1fr;
        gap: 36px;
        padding: 36px 28px 42px;
    }

    .login-brand-panel {
        min-height: auto;
    }

    .login-brand-header {
        margin-bottom: 42px;
    }

    .login-hero-copy,
    .login-feature-list {
        margin-left: 0;
    }

    .login-card {
        max-width: 520px;
        margin: 0 auto;
    }

    .login-illustration {
        opacity: 0.35;
    }
}

@media (max-width: 720px) {
    .login-page {
        padding: 12px;
    }

    .login-landing {
        min-height: calc(100vh - 24px);
    }

    .login-landing__content {
        padding: 28px 18px 32px;
    }

    .login-brand-header {
        align-items: flex-start;
        gap: 14px;
    }

    .login-brand-badge {
        width: 54px;
        height: 62px;
        font-size: 18px;
        border-width: 4px;
    }

    .login-feature-list {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .login-feature-item {
        display: grid;
        grid-template-columns: 52px 1fr;
        column-gap: 14px;
    }

    .login-feature-icon {
        grid-row: span 2;
        margin-bottom: 0;
    }

    .login-card {
        padding: 28px 20px;
    }

    .login-illustration {
        display: none;
    }

    .login-footer {
        flex-direction: column;
        align-items: flex-start;
        padding: 16px 20px;
    }
}

/* Register landing page redesign (W3-UI-2) */
.register-page {
    min-height: 100vh;
    padding: 24px;
    box-sizing: border-box;
    color: #0f172a;
    background:
        radial-gradient(circle at 20% 14%, rgba(37, 99, 235, 0.12), transparent 30%),
        radial-gradient(circle at 78% 10%, rgba(96, 165, 250, 0.13), transparent 28%),
        linear-gradient(135deg, #f8fafc 0%, #eff6ff 48%, #f8fbff 100%);
    font-family: "Noto Sans KR", sans-serif;
}

.register-landing {
    display: flex;
    flex-direction: column;
    width: min(100%, 1480px);
    min-height: calc(100vh - 48px);
    margin: 0 auto;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.97) 0%, rgba(239, 246, 255, 0.82) 100%),
        linear-gradient(145deg, #ffffff 0%, #dbeafe 100%);
    border: 1px solid #dbe4f0;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.12);
}

.register-landing__content {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(410px, 480px);
    gap: 58px;
    flex: 1;
    align-items: center;
    padding: 36px 90px 30px;
}

.register-landing__content::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.48;
    background:
        repeating-radial-gradient(ellipse at 67% 2%, rgba(37, 99, 235, 0.18) 0 1px, transparent 1px 7px),
        radial-gradient(circle at 95% 39%, rgba(37, 99, 235, 0.16) 0 2px, transparent 3px),
        radial-gradient(circle at 50% 32%, rgba(37, 99, 235, 0.16) 0 2px, transparent 3px);
}

.register-brand-panel,
.register-card {
    position: relative;
    z-index: 1;
}

.register-brand-panel {
    min-height: 610px;
    padding: 0 0 42px;
}

.register-brand-header {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-bottom: 62px;
}

.register-brand-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 78px;
    color: #1455d9;
    font-size: 23px;
    font-weight: 800;
    letter-spacing: -0.04em;
    background: rgba(239, 246, 255, 0.82);
    border: 5px solid #2563eb;
    clip-path: polygon(50% 0, 94% 17%, 88% 75%, 50% 100%, 12% 75%, 6% 17%);
}

.register-brand-header strong {
    display: block;
    color: #0f172a;
    font-size: 24px;
    line-height: 1.2;
}

.register-brand-header span {
    display: block;
    margin-top: 8px;
    color: #334155;
    font-size: 15px;
}

.register-hero-copy {
    margin-left: 104px;
}

.register-hero-copy h1 {
    margin: 0;
    color: #071638;
    font-size: clamp(34px, 3vw, 45px);
    line-height: 1.28;
    letter-spacing: -0.06em;
}

.register-hero-copy p {
    margin: 24px 0 36px;
    color: #334155;
    font-size: 15px;
    line-height: 1.85;
}

.register-feature-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px;
    width: min(100%, 610px);
    margin-left: 104px;
}

.register-feature-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin-bottom: 18px;
    color: #2563eb;
    background: linear-gradient(145deg, #eaf2ff, #dbeafe);
    border-radius: 50%;
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.14);
    font-size: 24px;
}

.register-feature-item h2 {
    margin: 0 0 10px;
    color: #0f172a;
    font-size: 15px;
    line-height: 1.35;
}

.register-feature-item p {
    margin: 0;
    color: #475569;
    font-size: 13px;
    line-height: 1.7;
}

.register-illustration {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 282px;
    pointer-events: none;
    overflow: hidden;
}

.register-illustration__scale {
    position: absolute;
    left: 10px;
    bottom: 72px;
    color: rgba(37, 99, 235, 0.42);
    font-size: 112px;
    text-shadow: 0 18px 30px rgba(15, 23, 42, 0.14);
}

.register-illustration__book {
    position: absolute;
    left: 10px;
    width: 150px;
    height: 35px;
    padding-left: 20px;
    box-sizing: border-box;
    color: rgba(15, 23, 42, 0.34);
    background: linear-gradient(90deg, rgba(37, 99, 235, 0.25), rgba(255, 255, 255, 0.72));
    border: 1px solid rgba(148, 163, 184, 0.25);
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    line-height: 35px;
    box-shadow: 0 14px 24px rgba(15, 23, 42, 0.09);
}

.register-illustration__book--top {
    bottom: 46px;
    transform: rotate(2deg);
}

.register-illustration__book--bottom {
    bottom: 14px;
    transform: rotate(-1deg);
}

.register-illustration__city {
    position: absolute;
    bottom: 0;
    opacity: 0.34;
    background:
        linear-gradient(90deg, transparent 0 14%, rgba(37, 99, 235, 0.22) 14% 16%, transparent 16% 32%, rgba(37, 99, 235, 0.22) 32% 34%, transparent 34% 50%, rgba(37, 99, 235, 0.22) 50% 52%, transparent 52% 68%, rgba(37, 99, 235, 0.22) 68% 70%, transparent 70%),
        repeating-linear-gradient(0deg, rgba(37, 99, 235, 0.15) 0 2px, transparent 2px 38px),
        linear-gradient(180deg, rgba(191, 219, 254, 0.78), rgba(255, 255, 255, 0.12));
    border: 1px solid rgba(37, 99, 235, 0.14);
}

.register-illustration__city--left {
    right: 2%;
    width: 210px;
    height: 245px;
    clip-path: polygon(20% 20%, 48% 8%, 82% 20%, 82% 100%, 20% 100%);
}

.register-illustration__city--right {
    right: -34%;
    width: 260px;
    height: 300px;
    clip-path: polygon(14% 32%, 38% 26%, 38% 12%, 74% 12%, 84% 100%, 14% 100%);
}

.register-card {
    width: 100%;
    padding: 28px 38px 26px;
    box-sizing: border-box;
    text-align: center;
    background: rgba(255, 255, 255, 0.97);
    border: 1px solid rgba(226, 232, 240, 0.96);
    border-radius: 16px;
    box-shadow: 0 22px 55px rgba(30, 64, 175, 0.16);
    backdrop-filter: blur(8px);
}

.register-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin-bottom: 16px;
    color: #2563eb;
    background: #eaf2ff;
    border-radius: 50%;
    font-size: 28px;
    font-weight: 800;
}

.register-card h2 {
    margin: 0;
    color: #071638;
    font-size: 29px;
    line-height: 1.2;
    letter-spacing: -0.04em;
}

.register-card__description {
    margin: 12px 0 0;
    color: #475569;
    font-size: 13px;
}

.register-card__divider {
    width: 34px;
    height: 3px;
    margin: 20px auto 22px;
    background: #2563eb;
    border-radius: 999px;
}

.register-card .register-form {
    gap: 12px;
    text-align: left;
}

.register-card .register-form label {
    gap: 7px;
    color: #0f172a;
    font-size: 13px;
    font-weight: 800;
}

.register-card .register-form label em {
    color: #64748b;
    font-size: 12px;
    font-style: normal;
    font-weight: 700;
}

.register-card .register-form input {
    height: 40px;
    padding: 0 14px;
    color: #0f172a;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    outline: none;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.03);
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.register-card .register-form input::placeholder {
    color: #94a3b8;
}

.register-card .register-form input:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.13);
}

.register-card .register-form button {
    width: 100%;
    height: 46px;
    margin-top: 2px;
    background: linear-gradient(180deg, #2563eb 0%, #0756df 100%);
    border-radius: 7px;
    box-shadow: 0 12px 22px rgba(37, 99, 235, 0.26);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.register-card .register-form button:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 26px rgba(37, 99, 235, 0.34);
}

.register-approval-notice {
    margin-top: 18px;
    padding: 15px 16px;
    color: #0f172a;
    background: linear-gradient(90deg, #eff6ff, #e2edff);
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.55;
}

.register-approval-notice strong {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #0756df;
    font-size: 14px;
    font-weight: 800;
}

.register-approval-notice p {
    margin: 6px 0 0;
    color: #334155;
}

.register-login-link {
    margin-top: 20px;
    font-size: 15px;
}

.register-login-link a {
    color: #0756df;
}

.register-message {
    margin: 0 0 16px;
    text-align: left;
    border: 1px solid transparent;
    font-size: 14px;
    line-height: 1.5;
}

.register-card .message-error {
    color: #9f1239;
    background: #fff1f2;
    border-color: #fecdd3;
}

.register-card .message-success {
    color: #047857;
    background: #ecfdf5;
    border-color: #a7f3d0;
}

.register-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 16px 38px;
    color: #e5edf8;
    background: linear-gradient(90deg, #051a3d 0%, #08204a 100%);
}

.register-footer__brand {
    display: flex;
    align-items: center;
    gap: 14px;
}

.register-footer__badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 44px;
    color: #ffffff;
    border: 2px solid rgba(255, 255, 255, 0.82);
    clip-path: polygon(50% 0, 94% 17%, 88% 75%, 50% 100%, 12% 75%, 6% 17%);
    font-size: 12px;
    font-weight: 800;
}

.register-footer strong,
.register-footer span {
    display: block;
}

.register-footer strong {
    font-size: 13px;
}

.register-footer span,
.register-footer p {
    color: #cbd5e1;
    font-size: 12px;
}

.register-footer p {
    margin: 0;
}

@media (max-width: 1100px) {
    .register-landing__content {
        grid-template-columns: 1fr;
        gap: 36px;
        padding: 36px 28px 42px;
    }

    .register-brand-panel {
        min-height: auto;
    }

    .register-brand-header {
        margin-bottom: 42px;
    }

    .register-hero-copy,
    .register-feature-list {
        margin-left: 0;
    }

    .register-card {
        max-width: 520px;
        margin: 0 auto;
    }

    .register-illustration {
        opacity: 0.35;
    }
}

@media (max-width: 720px) {
    .register-page {
        padding: 12px;
    }

    .register-landing {
        min-height: calc(100vh - 24px);
    }

    .register-landing__content {
        padding: 28px 18px 32px;
    }

    .register-brand-header {
        align-items: flex-start;
        gap: 14px;
    }

    .register-brand-badge {
        width: 54px;
        height: 62px;
        font-size: 18px;
        border-width: 4px;
    }

    .register-feature-list {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .register-feature-item {
        display: grid;
        grid-template-columns: 52px 1fr;
        column-gap: 14px;
    }

    .register-feature-icon {
        grid-row: span 2;
        margin-bottom: 0;
    }

    .register-card {
        padding: 28px 20px;
    }

    .register-illustration {
        display: none;
    }

    .register-footer {
        flex-direction: column;
        align-items: flex-start;
        padding: 16px 20px;
    }
}

/* W4-AUTH-2 administrator approval page styles.
   Kept separate from dashboard external link/government logo rules. */
.dashboard-admin-link {
    display: inline-flex;
    align-items: center;
    height: 31px;
    padding: 0 13px;
    color: #075cff;
    background: #eef5ff;
    border: 1px solid #cfe0ff;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
}

.dashboard-logout-link {
    display: inline-flex;
    align-items: center;
    height: 31px;
    padding: 0 13px;
    color: #334155;
    background: #ffffff;
    border: 1px solid #d8e3f1;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
}

.dashboard-auth-message {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    padding: 0 12px;
    color: #991b1b !important;
    background: #fee2e2;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
}

.admin-page-shell {
    min-height: 100vh;
    color: #071433;
    background: linear-gradient(180deg, #fbfdff 0%, #f4f8ff 100%);
}

.admin-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 28px clamp(24px, 4vw, 56px);
    background: rgba(255, 255, 255, .94);
    border-bottom: 1px solid #dfe7f2;
}

.admin-page-eyebrow {
    color: #075cff;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.admin-page-header h1 {
    margin: 8px 0;
    font-size: 28px;
    font-weight: 900;
    letter-spacing: -.04em;
}

.admin-page-header p {
    margin: 0;
    color: #536684;
    font-size: 14px;
    font-weight: 700;
}

.admin-page-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    white-space: nowrap;
}

.admin-page-actions span,
.admin-page-actions a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 13px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 850;
}

.admin-page-actions span {
    color: #17325d;
    background: #eef5ff;
}

.admin-page-actions a {
    color: #075cff;
    background: #fff;
    border: 1px solid #cfe0ff;
    text-decoration: none;
}

.admin-inline-form {
    margin: 0;
}

.admin-header-button {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 13px;
    color: #075cff;
    background: #fff;
    border: 1px solid #cfe0ff;
    border-radius: 999px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 850;
    text-decoration: none;
    cursor: pointer;
}

.admin-page-content {
    padding: 24px clamp(24px, 4vw, 56px) 48px;
}

.admin-message {
    max-width: 1280px;
    margin: 0 auto 16px;
}

.admin-panel {
    max-width: 1280px;
    margin: 0 auto;
    overflow: hidden;
    background: #fff;
    border: 1px solid #dfe7f2;
    border-radius: 17px;
    box-shadow: 0 12px 28px rgba(17, 38, 84, .07);
}

.admin-panel-header {
    padding: 20px 22px;
    border-bottom: 1px solid #e6edf7;
}

.admin-panel-header h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 900;
}

.admin-panel-header p {
    margin: 6px 0 0;
    color: #536684;
    font-size: 13px;
    font-weight: 750;
}

.admin-filter-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 16px 22px;
}

.admin-filter-input {
    flex: 1;
    min-width: 200px;
    height: 34px;
    padding: 0 12px;
    border: 1px solid #dfe7f2;
    border-radius: 8px;
    font-size: 13px;
}

.admin-filter-select {
    height: 34px;
    padding: 0 10px;
    border: 1px solid #dfe7f2;
    border-radius: 8px;
    font-size: 13px;
}

.admin-filter-submit {
    height: 34px;
    padding: 0 16px;
    color: #fff;
    background: linear-gradient(135deg, #0b73ff 0%, #075cff 100%);
    border: 0;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
}

.admin-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.admin-user-table {
    width: 100%;
    min-width: 1180px;
    border-collapse: collapse;
    font-size: 13px;
    table-layout: fixed;
}

.admin-user-table th,
.admin-user-table td {
    padding: 13px 14px;
    border-bottom: 1px solid #edf2f8;
    text-align: left;
    vertical-align: middle;
}

.admin-user-table th {
    color: #50617d;
    background: #f8fbff;
    font-size: 12px;
    font-weight: 900;
}

.admin-user-table td {
    color: #17325d;
    font-weight: 700;
}

.admin-user-table th,
.admin-user-table td,
.admin-status-badge,
.admin-cell-actions button,
.admin-self-note {
    white-space: nowrap;
}

.admin-user-table th:nth-child(1), .admin-user-table td:nth-child(1) { width: 58px; }
.admin-user-table th:nth-child(2), .admin-user-table td:nth-child(2) { width: 132px; }
.admin-user-table th:nth-child(3), .admin-user-table td:nth-child(3) { width: 132px; }
.admin-user-table th:nth-child(4), .admin-user-table td:nth-child(4) { width: 230px; }
.admin-user-table th:nth-child(5), .admin-user-table td:nth-child(5) { width: 132px; }
.admin-user-table th:nth-child(6), .admin-user-table td:nth-child(6),
.admin-user-table th:nth-child(7), .admin-user-table td:nth-child(7),
.admin-user-table th:nth-child(8), .admin-user-table td:nth-child(8) { width: 100px; }
.admin-user-table th:nth-child(9), .admin-user-table td:nth-child(9) { width: 230px; }

.admin-cell-username,
.admin-cell-name,
.admin-cell-email {
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-cell-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.admin-cell-actions form {
    margin: 0;
}

.admin-status-badge {
    display: inline-flex;
    align-items: center;
    height: 25px;
    padding: 0 10px;
    color: #9a5b00;
    background: #fff4dd;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
}

.admin-approve-button {
    min-width: 64px;
    height: 32px;
    color: #fff;
    background: linear-gradient(135deg, #0b73ff 0%, #075cff 100%);
    border: 0;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
}

.admin-action-button {
    min-width: 64px;
    height: 32px;
    color: #fff;
    border: 0;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
}

.admin-action-button--warning {
    background: linear-gradient(135deg, #ff9f43, #e0791a);
}

.admin-action-button--danger {
    background: linear-gradient(135deg, #ff6b6b, #e0392c);
}

.admin-action-button--success {
    background: linear-gradient(135deg, #2ecc71, #27ae60);
}

.admin-self-note {
    align-self: center;
    color: #8a97ac;
    font-size: 12px;
}

.admin-empty-state {
    padding: 44px 24px;
    text-align: center;
}

.admin-empty-state strong {
    display: block;
    font-size: 18px;
    font-weight: 900;
}

.admin-empty-state p {
    margin: 10px 0 0;
    color: #536684;
    font-size: 14px;
    font-weight: 700;
}


/* W5/W6 legal monitoring page styles.
   Prefixed to avoid dashboard/government logo/external-link CSS collisions. */
.legal-monitoring-content { display: flex; flex-direction: column; gap: 14px; padding: 18px clamp(18px, 1.5vw, 30px) 28px; box-sizing: border-box; }
.legal-monitoring-hero, .legal-monitoring-filters, .legal-monitoring-panel { box-sizing: border-box; background: #fff; border: 1px solid var(--dash-line); border-radius: var(--dash-card-radius); box-shadow: var(--dash-card-shadow); }
.legal-monitoring-hero { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 26px; }
.legal-monitoring-eyebrow { display: block; color: #075cff !important; font-size: 12px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.legal-monitoring-hero h2 { margin: 8px 0 9px; color: var(--dash-text); font-size: 28px; font-weight: 950; letter-spacing: -.05em; }
.legal-monitoring-hero p { max-width: 920px; margin: 0; color: var(--dash-muted); font-size: 14px; font-weight: 750; line-height: 1.65; }
.legal-monitoring-summary { flex: 0 0 190px; padding: 18px 20px; background: linear-gradient(145deg, #eff6ff, #fff); border: 1px solid #d6e5fb; border-radius: 16px; }
.legal-monitoring-summary span, .legal-monitoring-summary em { display: block; color: #536684; font-size: 12px; font-style: normal; font-weight: 850; }
.legal-monitoring-summary strong { display: block; margin: 7px 0; color: #075cff; font-size: 24px; font-weight: 950; letter-spacing: -.05em; }
.legal-monitoring-tabs { display: flex; gap: 8px; padding: 5px; width: max-content; background: #eaf2ff; border: 1px solid #d6e5fb; border-radius: 999px; }
.legal-monitoring-tabs a { display: inline-flex; align-items: center; justify-content: center; min-width: 128px; height: 40px; padding: 0 18px; color: #315071; border-radius: 999px; font-size: 14px; font-weight: 950; text-decoration: none; }
.legal-monitoring-tabs .legal-monitoring-tab--active { color: #fff; background: linear-gradient(135deg, #0b73ff 0%, #075cff 100%); box-shadow: 0 10px 18px rgba(15,107,255,.28); }
.legal-monitoring-filters { display: grid; grid-template-columns: minmax(260px, 1.3fr) minmax(180px, .8fr) minmax(160px, .7fr) 104px; gap: 12px; align-items: end; padding: 18px 20px; }
.legal-monitoring-filters label { display: flex; flex-direction: column; gap: 7px; min-width: 0; color: #17325d; font-size: 12px; font-weight: 950; }
.legal-monitoring-filters input, .legal-monitoring-filters select { width: 100%; height: 40px; padding: 0 12px; box-sizing: border-box; color: #0f172a; background: #fbfdff; border: 1px solid #cbd5e1; border-radius: 10px; font: inherit; outline: none; }
.legal-monitoring-filters button { height: 40px; color: #fff; background: linear-gradient(135deg, #0b73ff 0%, #075cff 100%); border: 0; border-radius: 10px; font-size: 14px; font-weight: 950; cursor: pointer; }
.legal-monitoring-panel { overflow: hidden; }
.legal-monitoring-panel-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px; border-bottom: 1px solid #e6edf7; }
.legal-monitoring-panel-header h2 { margin: 0; color: var(--dash-text); font-size: 20px; font-weight: 950; letter-spacing: -.04em; }
.legal-monitoring-panel-header p { margin: 7px 0 0; color: var(--dash-muted); font-size: 13px; font-weight: 750; }
.legal-monitoring-panel-header > span { display: inline-flex; align-items: center; min-height: 30px; padding: 0 12px; color: #075cff !important; background: #eaf2ff; border-radius: 999px; font-size: 12px; font-weight: 950; white-space: nowrap; }
.legal-monitoring-table-wrap { width: 100%; overflow-x: auto; }
.legal-monitoring-table { width: 100%; min-width: 1180px; border-collapse: collapse; table-layout: fixed; font-size: 13px; }
.legal-monitoring-table th, .legal-monitoring-table td { padding: 13px 12px; border-bottom: 1px solid #edf2f8; color: #17325d; font-weight: 750; text-align: left; vertical-align: middle; }
.legal-monitoring-table th { color: #50617d; background: #f8fbff; font-size: 12px; font-weight: 950; }
.legal-monitoring-table th:nth-child(1), .legal-monitoring-table td:nth-child(1) { width: 92px; text-align: center; }
.legal-monitoring-table th:nth-child(2), .legal-monitoring-table td:nth-child(2) { width: 30%; }
.legal-monitoring-table th:nth-child(3), .legal-monitoring-table td:nth-child(3) { width: 130px; text-align: center; }
.legal-monitoring-table th:nth-child(4), .legal-monitoring-table td:nth-child(4) { width: 190px; }
.legal-monitoring-table th:nth-child(5), .legal-monitoring-table td:nth-child(5) { width: 175px; white-space: nowrap; }
.legal-monitoring-table th:nth-child(6), .legal-monitoring-table td:nth-child(6) { width: 82px; text-align: center; }
.legal-monitoring-table th:nth-child(7), .legal-monitoring-table td:nth-child(7), .legal-monitoring-table th:nth-child(8), .legal-monitoring-table td:nth-child(8) { width: 96px; text-align: center; }
.legal-monitoring-title { color: var(--dash-text) !important; font-weight: 900 !important; line-height: 1.45; }
.legal-monitoring-center { text-align: center !important; }
.legal-source-badge, .legal-status-badge, .legal-action-link, .legal-attachment-link, .legal-attachment-empty { display: inline-flex; align-items: center; justify-content: center; min-height: 26px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 950; white-space: nowrap; text-decoration: none; }
.legal-source-badge { color: #075cff; background: #eaf2ff; }
.legal-status-badge { color: #047857; background: #d1fae5; }
.legal-action-link { color: #075cff; background: #eef5ff; border: 1px solid #cfe0ff; }
.legal-attachment-link { color: #7c3aed; background: #f3e8ff; border: 1px solid #ddd6fe; }
.legal-attachment-empty { color: #94a3b8; background: #f1f5f9; }
.legal-monitoring-empty { padding: 36px 16px !important; color: #64748b !important; text-align: center !important; }
@media (max-width: 1279px) { .legal-monitoring-hero { align-items: flex-start; flex-direction: column; } .legal-monitoring-summary { flex: none; width: 100%; } .legal-monitoring-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* W6-LEGAL-MONITORING-UI-REFINE additions.
   Legal monitoring only; dashboard government logo/external-link card styles are not touched. */
.legal-header-actions { flex-wrap: wrap; justify-content: flex-end; }
.legal-update-chip { display: inline-flex; align-items: center; min-height: 31px; padding: 0 12px; color: #475569; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 999px; font-size: 12px; font-weight: 850; white-space: nowrap; }
.legal-monitoring-content { gap: 16px; }
.legal-monitoring-hero { min-height: 132px; padding: 22px 26px; }
.legal-monitoring-hero h2 { font-size: 26px; }
.legal-monitoring-hero p { max-width: 980px; font-size: 13.5px; }
.legal-monitoring-tabs { display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: 12px; width: 100%; padding: 0; background: transparent; border: 0; border-radius: 0; }
.legal-monitoring-tabs .legal-monitoring-tab { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-height: 74px; padding: 0 22px; box-sizing: border-box; color: #17325d; background: #ffffff; border: 1px solid #dbe6f4; border-radius: 16px; box-shadow: 0 10px 22px rgba(17,38,84,.05); text-decoration: none; }
.legal-monitoring-tab strong { color: inherit; font-size: 18px; font-weight: 950; letter-spacing: -.04em; }
.legal-monitoring-tab span { margin-top: 7px; color: #64748b; font-size: 12px; font-weight: 850; }
.legal-monitoring-tabs .legal-monitoring-tab--active { color: #fff; background: linear-gradient(135deg, #0b73ff 0%, #075cff 100%); border-color: #075cff; box-shadow: 0 16px 28px rgba(15,107,255,.28); }
.legal-monitoring-tabs .legal-monitoring-tab--active span { color: rgba(255,255,255,.86); }
.legal-summary-grid { display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)); gap: 12px; }
.legal-summary-card { min-height: 106px; padding: 17px 18px; box-sizing: border-box; background: #fff; border: 1px solid var(--dash-line); border-radius: 16px; box-shadow: var(--dash-card-shadow); }
.legal-summary-card span, .legal-summary-card em { display: block; color: #64748b; font-size: 12px; font-style: normal; font-weight: 850; }
.legal-summary-card strong { display: block; margin: 10px 0 8px; color: #0f172a; font-size: 32px; font-weight: 950; line-height: 1; }
.legal-summary-card--active strong { color: #059669; }
.legal-summary-card--closed strong { color: #dc2626; }
.legal-summary-card--planned strong { color: #d97706; }
.legal-summary-card--today strong { color: #7c3aed; }
.legal-filter-card { box-sizing: border-box; padding: 18px 20px 16px; background: #fff; border: 1px solid var(--dash-line); border-radius: var(--dash-card-radius); box-shadow: var(--dash-card-shadow); }
.legal-filter-card__header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.legal-filter-card__header h2 { margin: 0; color: var(--dash-text); font-size: 18px; font-weight: 950; letter-spacing: -.04em; }
.legal-filter-card__header p { margin: 6px 0 0; color: var(--dash-muted); font-size: 12px; font-weight: 750; }
.legal-text-button, .legal-panel-actions button { height: 32px; padding: 0 12px; color: #64748b; background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 9px; font-size: 12px; font-weight: 900; }
.legal-filter-card .legal-monitoring-filters { grid-template-columns: minmax(320px, 1.25fr) minmax(180px, .7fr) minmax(150px, .55fr) 176px; padding: 0; border: 0; box-shadow: none; }
.legal-filter-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.legal-primary-button, .legal-reset-button { display: inline-flex; align-items: center; justify-content: center; height: 40px; box-sizing: border-box; border-radius: 10px; font-size: 14px; font-weight: 950; text-decoration: none; }
.legal-primary-button { color: #fff; background: linear-gradient(135deg, #0b73ff 0%, #075cff 100%); border: 0; cursor: pointer; }
.legal-reset-button { color: #334155; background: #f8fafc; border: 1px solid #cbd5e1; }
.legal-applied-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.legal-applied-filters__label { color: #64748b; font-size: 12px; font-weight: 900; }
.legal-filter-pill { display: inline-flex; align-items: center; gap: 6px; min-height: 27px; padding: 0 10px; color: #075cff; background: #eaf2ff; border: 1px solid #cfe0ff; border-radius: 999px; font-size: 12px; font-weight: 850; }
.legal-filter-pill b { color: #17325d; font-weight: 950; }
.legal-filter-pill--muted { color: #64748b; background: #f8fafc; border-color: #e2e8f0; }
.legal-monitoring-panel-header { align-items: flex-start; }
.legal-panel-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.legal-panel-actions > span { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; color: #075cff !important; background: #eaf2ff; border-radius: 999px; font-size: 12px; font-weight: 950; white-space: nowrap; }
.legal-monitoring-table { min-width: 1220px; font-size: 13px; }
.legal-monitoring-table th, .legal-monitoring-table td { padding: 14px 12px; line-height: 1.45; }
.legal-monitoring-table tbody tr:hover td { background: #fbfdff; }
.legal-monitoring-table th:nth-child(2), .legal-monitoring-table td:nth-child(2) { width: 34%; }
.legal-monitoring-table th:nth-child(3), .legal-monitoring-table td:nth-child(3), .legal-monitoring-table th:nth-child(6), .legal-monitoring-table td:nth-child(6), .legal-monitoring-table th:nth-child(7), .legal-monitoring-table td:nth-child(7), .legal-monitoring-table th:nth-child(8), .legal-monitoring-table td:nth-child(8) { text-align: center; }
.legal-monitoring-title { white-space: normal; word-break: keep-all; }
.legal-status-badge--active { color: #047857; background: #d1fae5; }
.legal-status-badge--closed { color: #b91c1c; background: #fee2e2; }
.legal-status-badge--planned { color: #b45309; background: #fef3c7; }
.legal-status-badge--default { color: #475569; background: #e2e8f0; }
.legal-action-link { min-width: 70px; color: #075cff; background: #f8fbff; border: 1px solid #bfdbfe; }
.legal-attachment-link { min-width: 70px; color: #7c3aed; background: #f7f2ff; border: 1px solid #ddd6fe; }
.legal-attachment-empty { min-width: 48px; color: #64748b; background: #f1f5f9; }
.legal-pagination { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 16px; background: #fbfdff; }
.legal-pagination button, .legal-pagination strong { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 9px; font-size: 13px; font-weight: 950; }
.legal-pagination button { color: #94a3b8; background: #fff; border: 1px solid #e2e8f0; }
.legal-pagination strong { color: #fff; background: #075cff; }
@media (max-width: 1279px) { .legal-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .legal-filter-card .legal-monitoring-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } .legal-filter-actions { grid-column: 1 / -1; } }
@media (max-width: 760px) { .legal-monitoring-tabs, .legal-summary-grid, .legal-filter-card .legal-monitoring-filters { grid-template-columns: 1fr; } .legal-panel-actions { justify-content: flex-start; } }

/* ---------------------------------------------------------------------- */
/* 법령 조회 (law lookup) screen                                           */
/* ---------------------------------------------------------------------- */

/* Safety net: several law-lookup components set an explicit `display` (flex)
   on the same class carrying the native `hidden` attribute. Author rules beat
   the UA `[hidden]{display:none}` rule on a specificity tie, which silently
   left hidden panels/overlays occupying layout and intercepting clicks (e.g.
   the closed modal overlay blocked every click on the page). This single
   higher-specificity rule guarantees `hidden` always wins on this page. */
.law-lookup-page [hidden] { display: none; }

.law-lookup-content { display: flex; flex-direction: column; gap: 14px; padding: 20px 24px 32px; }

.law-header-title h1 { margin: 0 0 6px; }
.law-header-title p { margin: 0; }
.law-header-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.law-header-controls { display: flex; align-items: center; gap: 12px; }
.law-page-badges { display: inline-flex; gap: 6px; }
.law-page-badges em { display: inline-flex; align-items: center; height: 22px; padding: 0 9px; color: #075cff; background: #eaf2ff; border: 1px solid #cfe0ff; border-radius: 999px; font-size: 11px; font-style: normal; font-weight: 850; white-space: nowrap; }

.law-search-box { display: flex; align-items: center; gap: 10px; padding: 10px 16px; background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; }
.law-search-box input { flex: 1; height: 38px; box-sizing: border-box; padding: 0 14px; border: 1px solid #cbd5e1; border-radius: 10px; font-size: 14px; }
.law-search-box input:focus { outline: 2px solid #bfdbfe; outline-offset: 1px; border-color: #93c5fd; }
.law-primary-button, .law-reset-button { display: inline-flex; align-items: center; justify-content: center; height: 38px; padding: 0 18px; box-sizing: border-box; border-radius: 10px; font-size: 14px; font-weight: 850; cursor: pointer; white-space: nowrap; transition: filter 0.15s ease; }
.law-primary-button { color: #fff; background: linear-gradient(135deg, #0b73ff 0%, #075cff 100%); border: 0; }
.law-primary-button:hover { filter: brightness(1.05); }
.law-reset-button { color: #334155; background: #f8fafc; border: 1px solid #cbd5e1; }
.law-reset-button:hover { background: #eef2f7; }

.law-results-box { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04); }
.law-results-header { display: flex; align-items: center; justify-content: space-between; padding: 13px 16px; border-bottom: 1px solid #e5e7eb; }
.law-results-header h2 { margin: 0; font-size: 15px; }
.law-results-count { margin-left: 6px; color: #075cff; font-size: 13px; font-weight: 900; }
.law-results-table-wrap { overflow-x: auto; }
.law-results-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 13px; }
.law-results-table th { padding: 9px 14px; color: #64748b; text-align: left; background: #f8fafc; border-bottom: 1px solid #e5e7eb; white-space: nowrap; }
.law-results-table td { padding: 11px 14px; border-bottom: 1px solid #f1f5f9; vertical-align: top; }
.law-results-table tbody tr { transition: background 0.12s ease; }
.law-results-table tbody tr:hover td { background: #f8fbff; }
.law-results-table tr.law-row--selected td { background: #eef5ff; }
.law-results-table tr.law-row--selected td:first-child { box-shadow: inset 3px 0 0 #075cff; }
.law-name-cell { max-width: 360px; font-weight: 750; color: #1e293b; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.law-toggle-button { min-width: 58px; height: 28px; padding: 0 12px; color: #075cff; background: #eaf2ff; border: 1px solid #cfe0ff; border-radius: 8px; font-size: 12px; font-weight: 850; cursor: pointer; transition: background 0.12s ease; }
.law-toggle-button:hover { background: #dcebff; }
.law-empty-row { padding: 26px 14px; color: #8492a6; text-align: center; font-size: 13px; }

.law-detail-empty-card { display: flex; align-items: center; justify-content: center; min-height: 160px; padding: 32px 24px; background: #fff; border: 1px dashed #cbd5e1; border-radius: 12px; }
.law-detail-empty-card p { margin: 0; color: #8492a6; font-size: 13px; text-align: center; max-width: 480px; line-height: 1.6; }

.law-detail-box { display: flex; flex-direction: column; gap: 14px; padding: 20px 22px; background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04); }
.law-detail-heading { display: flex; align-items: center; gap: 10px; }
.law-detail-header h2 { margin: 0; font-size: 20px; font-weight: 900; color: #0f172a; }
.law-status-pill { display: inline-flex; align-items: center; height: 22px; padding: 0 10px; color: #64748b; background: #f1f5f9; border-radius: 999px; font-size: 11px; font-weight: 850; }
.law-status-pill--current { color: #047857; background: #d1fae5; }
.law-detail-meta-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px; }
.law-meta-chip { display: inline-flex; align-items: center; gap: 5px; height: 26px; padding: 0 10px; color: #334155; background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 8px; font-size: 12px; white-space: nowrap; }
.law-meta-chip b { color: #64748b; font-weight: 850; }

.law-detail-tabs { display: flex; gap: 4px; border-bottom: 1px solid #e5e7eb; }
.law-detail-tab { padding: 10px 16px; color: #64748b; background: none; border: 0; border-bottom: 2px solid transparent; font-size: 14px; font-weight: 850; cursor: pointer; transition: color 0.12s ease; }
.law-detail-tab:hover { color: #075cff; }
.law-detail-tab--active { color: #075cff; border-bottom-color: #075cff; }

.law-detail-panel { display: none; }
.law-detail-panel--active { display: block; }

.law-article-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 10px; }
.law-article-toolbar input { flex: 1; min-width: 180px; height: 36px; box-sizing: border-box; padding: 0 12px; border: 1px solid #cbd5e1; border-radius: 8px; font-size: 13px; }
.law-article-find-count { min-width: 56px; color: #334155; font-size: 12px; font-weight: 850; text-align: center; }
.law-icon-button { height: 36px; padding: 0 12px; color: #334155; background: #f8fafc; border: 1px solid #cbd5e1; border-radius: 8px; font-size: 12px; font-weight: 850; cursor: pointer; white-space: nowrap; transition: background 0.12s ease; }
.law-icon-button:hover { background: #eef2f7; }

.law-article-scroll-box { max-height: 620px; overflow-y: auto; overflow-x: hidden; padding: 18px 20px; background: #fbfdff; border: 1px solid #e5e7eb; border-radius: 10px; box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.03); }
.law-article-unit { margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px dashed #e5e7eb; }
.law-article-unit:last-child { border-bottom: 0; margin-bottom: 0; }
.law-article-unit h3 { margin: 0 0 8px; font-size: 14px; font-weight: 900; color: #0b3d91; }
.law-article-unit h3 em { margin-left: 4px; color: #475569; font-size: 13px; font-style: normal; font-weight: 700; }
.law-article-chapter { margin: 22px 0 14px; padding-top: 14px; border-top: 2px solid #dbe4f3; font-size: 15px; font-weight: 900; color: #0f172a; text-align: center; }
.law-article-chapter:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.law-article-body { display: flex; flex-direction: column; gap: 4px; }
.law-article-body span { font-size: 13px; line-height: 1.75; color: #1f2937; white-space: pre-wrap; word-break: keep-all; overflow-wrap: anywhere; }
.law-line-hang { padding-left: 12px; }
.law-line-ho { padding-left: 24px; color: #334155; }
.law-line-mok { padding-left: 36px; color: #475569; }
.law-highlight { background: #fef08a; border-radius: 2px; }
.law-highlight--current { background: #f59e0b; color: #1f2937; box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.35); }

.law-history-table-wrap, .law-appendix-table-wrap, .law-subrules-table-wrap { overflow-x: auto; }
.law-history-table, .law-appendix-table, .law-subrules-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 13px; }
.law-history-table th, .law-appendix-table th, .law-subrules-table th { padding: 10px 12px; color: #64748b; text-align: left; background: #f8fafc; border-bottom: 1px solid #e5e7eb; white-space: nowrap; }
.law-history-table td, .law-appendix-table td, .law-subrules-table td { padding: 11px 12px; border-bottom: 1px solid #f1f5f9; vertical-align: top; }
.law-history-table tbody tr:hover td, .law-appendix-table tbody tr:hover td, .law-subrules-table tbody tr:hover td { background: #f8fbff; }
.law-subrules-table td:nth-child(2) { max-width: 320px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.law-appendix-table td:nth-child(2) { max-width: 380px; line-height: 1.4; white-space: normal; word-break: keep-all; }

.law-reason-box { max-height: 320px; overflow-y: auto; padding: 16px; background: #fbfdff; border: 1px solid #e5e7eb; border-radius: 10px; }
.law-reason-text { margin: 0; font-size: 13px; line-height: 1.75; color: #1f2937; white-space: pre-wrap; }

.law-download-link { display: inline-flex; align-items: center; height: 28px; padding: 0 12px; color: #075cff; background: #eaf2ff; border: 1px solid #cfe0ff; border-radius: 8px; font-size: 12px; font-weight: 850; text-decoration: none; white-space: nowrap; }
.law-download-link:hover { background: #dcebff; }
.law-action-link { color: #075cff; text-decoration: none; font-weight: 850; }
.law-download-missing { color: #94a3b8; font-size: 12px; }

.law-subrules-box { margin-top: 4px; padding-top: 16px; border-top: 1px solid #e5e7eb; }
.law-subrules-header h2 { margin: 0 0 2px; font-size: 16px; }
.law-subrules-header p { margin: 0 0 10px; color: #64748b; font-size: 13px; }

@media (max-width: 900px) {
    .law-detail-meta-chips { gap: 6px; }
    .law-meta-chip { font-size: 11px; }
}

@media (max-width: 760px) {
    .law-search-box { flex-wrap: wrap; }
    .law-search-box input { width: 100%; }
    .law-page-badges { display: none; }
    .law-name-cell, .law-subrules-table td:nth-child(2) { max-width: 220px; }
}

/* 하위 규정 상세보기 modal */
.law-modal-overlay[hidden] { display: none; }
.law-modal-overlay { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(15, 23, 42, 0.55); }
.law-modal { display: flex; flex-direction: column; width: 100%; max-width: 720px; max-height: min(85vh, 760px); background: #fff; border-radius: 14px; box-shadow: 0 20px 60px rgba(15, 23, 42, 0.35); overflow: hidden; }
.law-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid #e5e7eb; }
.law-modal-header h2 { margin: 0; font-size: 17px; }
.law-modal-close { width: 32px; height: 32px; color: #64748b; background: #f1f5f9; border: 0; border-radius: 8px; font-size: 18px; line-height: 1; cursor: pointer; }
.law-modal-summary { padding: 14px 20px; border-bottom: 1px solid #e5e7eb; background: #fbfdff; }
.law-modal-summary h3 { margin: 0 0 8px; font-size: 15px; font-weight: 900; color: #0f172a; }
.law-modal-body { flex: 1; overflow-y: auto; padding: 16px 20px; font-size: 13px; line-height: 1.7; color: #1f2937; }
.law-modal-body p { margin: 0 0 10px; white-space: pre-wrap; }
.law-modal-subheading { margin: 16px 0 8px; font-size: 13px; color: #17325d; }
.law-modal-footer { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 14px 20px; border-top: 1px solid #e5e7eb; }

@media (max-width: 760px) {
    .law-modal { max-width: 100%; max-height: 92vh; }
}

/* HOME-WEB-LAW-LOOKUP-UI-ACTUAL-RENDER-FIX-05B actual render layer */
.law-lookup-page {
    background: linear-gradient(180deg, #fbfdff 0%, #f4f8ff 62%, #f7faff 100%);
}

.law-lookup-page .dashboard-header {
    min-height: 106px;
    padding: 24px 28px 20px;
    background: rgba(255, 255, 255, 0.86);
    border-bottom: 0;
}

.law-lookup-page .dashboard-header h1 {
    font-size: 27px;
    line-height: 1.15;
}

.law-lookup-page .dashboard-header p {
    margin-top: 8px;
    color: #5e6f88;
    font-size: 14px;
    font-weight: 750;
}

.law-lookup-page .law-header-actions {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 15px;
}

.law-lookup-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 10px;
}

.law-lookup-badges span {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 9px;
    color: #075cff;
    background: #eaf2ff;
    border: 1px solid #cfe0ff;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
    white-space: nowrap;
}

.law-lookup-content {
    gap: 22px;
    padding: 0 28px 34px;
}

.law-lookup-card {
    box-sizing: border-box;
    width: 100%;
    background: #fff;
    border: 1px solid #e0e7f1;
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(17, 38, 84, 0.07);
}

.law-lookup-search-card {
    padding: 20px 22px 14px;
}

.law-lookup-searchbar {
    display: grid;
    grid-template-columns: minmax(320px, 1fr) 128px 154px;
    gap: 12px;
    align-items: center;
}

.law-search-input-wrap,
.law-article-find-wrap {
    position: relative;
    display: flex;
    align-items: center;
    min-width: 0;
}

.law-search-input-wrap input,
.law-article-find-wrap input {
    width: 100%;
    box-sizing: border-box;
    color: #10203d;
    background: #fff;
    border: 1px solid #ccd6e4;
    border-radius: 7px;
    font-weight: 750;
}

.law-search-input-wrap input {
    height: 46px;
    padding: 0 16px 0 44px;
    font-size: 14px;
}

.law-search-input-wrap input::placeholder,
.law-article-find-wrap input::placeholder {
    color: #8a99ad;
    font-weight: 750;
}

.law-search-input-wrap input:focus,
.law-article-find-wrap input:focus {
    outline: 2px solid #bfdbfe;
    outline-offset: 1px;
    border-color: #86b7ff;
}

.law-search-icon {
    position: absolute;
    left: 16px;
    width: 16px;
    height: 16px;
    color: #667892;
    pointer-events: none;
}

.law-search-icon::before {
    content: "";
    position: absolute;
    left: 1px;
    top: 1px;
    width: 9px;
    height: 9px;
    border: 2px solid currentColor;
    border-radius: 50%;
}

.law-search-icon::after {
    content: "";
    position: absolute;
    right: 1px;
    bottom: 1px;
    width: 7px;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
    transform: rotate(45deg);
    transform-origin: center;
}

.law-primary-button,
.law-reset-button,
.law-toggle-button,
.law-icon-button {
    border-radius: 7px;
    font-weight: 850;
}

.law-primary-button,
.law-reset-button {
    gap: 8px;
    height: 46px;
    padding: 0 20px;
    font-size: 14px;
}

.law-primary-button {
    color: #fff;
    background: #075cff;
    border: 1px solid #075cff;
    box-shadow: 0 8px 18px rgba(7, 92, 255, 0.22);
}

.law-reset-button {
    color: #17253e;
    background: #fff;
    border: 1px solid #ccd6e4;
}

.law-button-search-icon,
.law-button-reset-icon {
    position: relative;
    width: 16px;
    height: 16px;
    color: currentColor;
}

.law-button-search-icon::before {
    content: "";
    position: absolute;
    left: 1px;
    top: 1px;
    width: 9px;
    height: 9px;
    border: 2px solid currentColor;
    border-radius: 50%;
}

.law-button-search-icon::after {
    content: "";
    position: absolute;
    right: 1px;
    bottom: 1px;
    width: 7px;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
    transform: rotate(45deg);
}

.law-button-reset-icon::before {
    content: "";
    position: absolute;
    inset: 2px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
}

.law-button-reset-icon::after {
    content: "";
    position: absolute;
    right: 1px;
    top: 1px;
    width: 6px;
    height: 6px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(20deg);
}

.law-results-header {
    margin-top: 22px;
    padding: 0 0 12px;
    border-bottom: 0;
}

.law-results-header h2 {
    color: #0f172a;
    font-size: 18px;
    font-weight: 900;
}

.law-results-count {
    margin-left: 9px;
    color: #075cff;
    font-size: 13px;
}

.law-results-table-wrap {
    overflow-x: auto;
    border: 1px solid #edf1f7;
    border-radius: 0;
}

.law-results-table {
    min-width: 760px;
    table-layout: fixed;
}

.law-results-table th,
.law-results-table td {
    height: 50px;
    box-sizing: border-box;
    padding: 10px 16px;
    color: #101c34;
    font-size: 14px;
    vertical-align: middle;
}

.law-results-table th {
    color: #0f172a;
    background: #fbfcff;
    border-bottom: 1px solid #edf1f7;
    font-weight: 900;
}

.law-results-table td {
    border-bottom: 1px solid #edf1f7;
    font-weight: 750;
}

.law-results-table th:nth-child(1),
.law-results-table td:nth-child(1) { width: 32%; }
.law-results-table th:nth-child(2),
.law-results-table td:nth-child(2),
.law-results-table th:nth-child(3),
.law-results-table td:nth-child(3),
.law-results-table th:nth-child(4),
.law-results-table td:nth-child(4) { width: 18%; text-align: center; }
.law-results-table th:nth-child(5),
.law-results-table td:nth-child(5) { width: 14%; text-align: center; }

.law-results-table tbody tr:hover td {
    background: #f7fbff;
}

.law-results-table tr.law-row--selected td {
    background: #eef5ff;
}

.law-results-table tr.law-row--selected td:first-child {
    box-shadow: none;
}

.law-name-cell {
    display: table-cell;
    max-width: none;
    color: #0f172a;
    font-weight: 900;
    overflow: visible;
}

.law-title-button {
    display: inline;
    max-width: 100%;
    padding: 0;
    color: #0f172a;
    background: transparent;
    border: 0;
    font: inherit;
    font-weight: 900;
    text-align: left;
    cursor: pointer;
}

.law-title-button:hover,
.law-title-button:focus-visible {
    color: #075cff;
    text-decoration: underline;
    text-underline-offset: 3px;
    outline: none;
}

.law-toggle-button {
    min-width: 82px;
    height: 34px;
    color: #075cff;
    background: #fff;
    border: 1px solid #6ea0ff;
    font-size: 13px;
}

.law-toggle-button:hover {
    background: #edf5ff;
}

.law-empty-row {
    height: 84px;
    color: #7b8aa0;
    text-align: center !important;
}

.law-detail-empty-card {
    min-height: 190px;
    border-style: dashed;
    border-radius: 8px;
}

.law-detail-box {
    gap: 0;
    padding: 22px;
}

.law-detail-header {
    padding-bottom: 18px;
}

.law-detail-heading {
    flex-wrap: wrap;
    gap: 12px;
}

.law-detail-header h2 {
    font-size: 22px;
}

.law-status-pill {
    height: auto;
    padding: 0;
    color: #075cff;
    background: transparent;
    border-radius: 0;
    font-size: 13px;
    font-weight: 850;
}

.law-status-pill--current {
    color: #075cff;
    background: transparent;
}

.law-detail-meta-chips {
    gap: 6px;
    margin-top: 10px;
}

.law-meta-chip {
    height: 25px;
    background: #f7fbff;
    border-color: #dbe8ff;
    border-radius: 999px;
    font-size: 12px;
}

.law-detail-tabs {
    gap: 4px;
    margin-bottom: 20px;
    border-bottom: 1px solid #dbe2ec;
}

.law-detail-tab {
    min-width: 88px;
    padding: 12px 14px;
    color: #667892;
    font-size: 14px;
}

.law-detail-tab--active {
    color: #075cff;
    border-bottom-width: 3px;
}

.law-article-toolbar {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 62px 82px 82px minmax(132px, max-content);
    gap: 10px;
    margin-bottom: 18px;
}

.law-article-find-wrap input {
    height: 42px;
    padding: 0 42px 0 42px;
    font-size: 14px;
}

.law-article-find-wrap button {
    position: absolute;
    right: 11px;
    display: grid;
    width: 20px;
    height: 20px;
    padding: 0;
    place-items: center;
    color: #65758b;
    background: #f2f5f9;
    border: 1px solid #d8e0ea;
    border-radius: 50%;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
}

.law-article-find-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    color: #10203d;
    font-size: 14px;
}

.law-icon-button {
    height: 42px;
    padding: 0 16px;
    color: #17253e;
    background: #fff;
    border: 1px solid #ccd6e4;
    font-size: 14px;
}

.law-article-scroll-box {
    max-height: 405px;
    min-height: 360px;
    padding: 18px 20px;
    background: #fff;
    border: 1px solid #ccd6e4;
    border-radius: 7px;
    box-shadow: none;
}

.law-article-unit {
    margin-bottom: 22px;
    padding-bottom: 0;
    border-bottom: 0;
}

.law-article-unit h3,
.law-article-chapter {
    color: #0f172a;
    font-size: 15px;
}

.law-article-body span {
    color: #101c34;
    font-size: 15px;
    line-height: 1.85;
}

.law-highlight {
    background: #fff36d;
    border-radius: 2px;
}

.law-highlight--current {
    background: #facc15;
}

.law-history-table-wrap,
.law-appendix-table-wrap,
.law-subrules-table-wrap {
    border: 1px solid #e3e9f2;
    border-radius: 7px;
}

.law-appendix-header {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 0 0 14px;
}

.law-appendix-header h2 {
    margin: 0;
    color: #0f172a;
    font-size: 18px;
    font-weight: 900;
}

.law-appendix-count {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    margin-left: 8px;
    padding: 0 8px;
    color: #075cff;
    background: #eaf2ff;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
}

.law-appendix-table-wrap {
    max-height: 430px;
    overflow: auto;
}

/* PART HOME-WEB-LAW-LOOKUP-SUBRULES-ENHANCE 2-4: 하위 규정 결과를 건수 제한
   없이 전부 렌더링하므로, 페이지 전체가 비정상적으로 늘어나지 않도록 별표/
   별지 표와 동일한 카드 내부 세로 스크롤을 적용한다 (카드 크기·표 폭 등
   다른 스타일은 변경하지 않음). */
.law-subrules-table-wrap {
    max-height: 430px;
    overflow: auto;
}

.law-history-table,
.law-appendix-table,
.law-subrules-table {
    min-width: 760px;
    table-layout: fixed;
}

.law-appendix-table {
    min-width: 980px;
}

.law-history-table th,
.law-appendix-table th,
.law-subrules-table th,
.law-history-table td,
.law-appendix-table td,
.law-subrules-table td {
    height: 42px;
    box-sizing: border-box;
    padding: 9px 14px;
    font-size: 14px;
    text-align: center;
    vertical-align: middle;
    border-right: 1px solid #e8edf4;
}

.law-history-table th:last-child,
.law-appendix-table th:last-child,
.law-subrules-table th:last-child,
.law-history-table td:last-child,
.law-appendix-table td:last-child,
.law-subrules-table td:last-child {
    border-right: 0;
}

.law-history-table th,
.law-appendix-table th,
.law-subrules-table th {
    color: #0f172a;
    background: #fbfcff;
    font-weight: 900;
}

.law-subrules-table td:nth-child(2) {
    display: table-cell;
    max-width: none;
    text-align: left;
    overflow: visible;
}

.law-appendix-table th:nth-child(1),
.law-appendix-table td:nth-child(1) { width: 11%; }
.law-appendix-table th:nth-child(2),
.law-appendix-table td:nth-child(2) { width: 38%; text-align: left; }
.law-appendix-table th:nth-child(3),
.law-appendix-table td:nth-child(3) { width: 19%; }
.law-appendix-table th:nth-child(4),
.law-appendix-table td:nth-child(4) { width: 20%; }
.law-appendix-table th:nth-child(5),
.law-appendix-table td:nth-child(5) { width: 12%; }

.law-appendix-title-cell {
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: anywhere;
    line-height: 1.45;
}

.law-reason-box {
    max-height: 360px;
    background: #fff;
    border-color: #ccd6e4;
    border-radius: 7px;
}

.law-subrules-box {
    margin-top: 20px;
    padding-top: 20px;
}

.law-subrules-header {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 14px;
}

.law-subrules-header h2 {
    margin: 0;
    color: #0f172a;
    font-size: 18px;
    font-weight: 900;
}

.law-subrules-header p {
    margin: 0;
    color: #384962;
    font-size: 13px;
    font-weight: 750;
}

/* PART HOME-WEB-LAW-LOOKUP-SUBRULES-SORT-FILTER-ENHANCE: 제목 행 우측 여유
   공간에 필터를 배치한다 (.card-density-control 기존 select 스타일 재사용,
   새 디자인 없음). 카드 크기/제목 위치/표 구조는 변경하지 않는다. */
.law-subrules-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.law-subrules-count {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    margin-left: 8px;
    padding: 0 8px;
    color: #075cff;
    background: #eaf2ff;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
}

.law-download-link {
    height: 32px;
    background: #fff;
}

.law-modal {
    border-radius: 8px;
}

@media (min-width: 1440px) {
    .law-lookup-content {
        padding-right: 34px;
        padding-left: 34px;
    }
}

@media (max-width: 1279px) {
    .law-lookup-page .dashboard-header {
        min-height: 82px;
    }
    .law-lookup-badges {
        display: none;
    }
    .law-lookup-searchbar,
    .law-article-toolbar {
        grid-template-columns: 1fr;
    }
    .law-primary-button,
    .law-reset-button,
    .law-icon-button {
        width: 100%;
    }
}

@media (max-width: 760px) {
    .law-lookup-content {
        padding: 12px;
    }
    .law-lookup-search-card,
    .law-detail-box {
        padding: 14px;
    }
    .law-results-table,
    .law-history-table,
    .law-appendix-table,
    .law-subrules-table {
        min-width: 680px;
    }
}

/* HOME-WEB-NOTICE-MONITORING-UI-FINALIZE-02 actual render layer */
.notice-monitoring-page {
    background: linear-gradient(180deg, #fbfdff 0%, #f4f8ff 62%, #f7faff 100%);
}

.notice-monitoring-page .notice-topbar {
    min-height: 74px;
    padding: 18px 28px 10px;
    background: rgba(255,255,255,.86);
    border-bottom: 0;
}

.notice-content {
    gap: 16px;
    padding: 0 28px 28px;
}

.notice-hero-card,
.notice-filter-card,
.notice-list-card,
.notice-detail-card,
.notice-deadline-card,
.notice-ministry-card {
    box-sizing: border-box;
    background: #fff;
    border: 1px solid #dfe7f2;
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(17, 38, 84, 0.07);
}

.notice-hero-card {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 22px;
    padding: 22px 24px;
}

.notice-hero-card h1 {
    margin: 0;
    color: #071433;
    font-size: 30px;
    font-weight: 950;
    letter-spacing: -.04em;
    line-height: 1.15;
}

.notice-hero-card p {
    margin: 9px 0 0;
    color: #536684;
    font-size: 14px;
    font-weight: 750;
}

.notice-page-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 2px;
}

.notice-page-badges em {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 10px;
    color: #075cff;
    background: #eaf2ff;
    border: 1px solid #cfe0ff;
    border-radius: 999px;
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    white-space: nowrap;
}

.notice-filter-card {
    padding: 20px 24px 22px;
}

.notice-tabs {
    display: flex;
    gap: 28px;
    margin-bottom: 22px;
    padding: 0 0 0 2px;
    border-bottom: 1px solid #dbe2ec;
}

.notice-tab {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-width: 96px;
    height: 42px;
    padding: 0;
    color: #667892;
    background: transparent;
    border: 0;
    border-radius: 0;
    font-size: 15px;
    font-weight: 900;
    text-decoration: none;
}

.notice-tab--active {
    color: #075cff;
    background: transparent;
}

.notice-tab--active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 3px;
    background: #075cff;
    border-radius: 999px 999px 0 0;
}

.notice-search-form {
    display: grid;
    grid-template-columns: minmax(280px, 1.3fr) minmax(190px, .75fr) minmax(180px, .72fr) minmax(270px, .95fr);
    gap: 18px;
    align-items: end;
}

.notice-search-field {
    display: flex;
    flex-direction: column;
    gap: 9px;
    min-width: 0;
    color: #17253e;
    font-size: 13px;
    font-weight: 900;
}

.notice-search-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.notice-search-input-wrap i,
.notice-button-search-icon,
.notice-button-reset-icon {
    position: relative;
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    color: currentColor;
}

.notice-search-input-wrap i {
    position: absolute;
    left: 16px;
    color: #667892;
    pointer-events: none;
}

.notice-search-input-wrap i::before,
.notice-button-search-icon::before {
    content: "";
    position: absolute;
    left: 1px;
    top: 1px;
    width: 9px;
    height: 9px;
    border: 2px solid currentColor;
    border-radius: 50%;
}

.notice-search-input-wrap i::after,
.notice-button-search-icon::after {
    content: "";
    position: absolute;
    right: 1px;
    bottom: 1px;
    width: 7px;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
    transform: rotate(45deg);
}

.notice-button-reset-icon::before {
    content: "";
    position: absolute;
    inset: 2px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
}

.notice-button-reset-icon::after {
    content: "";
    position: absolute;
    right: 1px;
    top: 1px;
    width: 6px;
    height: 6px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(20deg);
}

.notice-search-field input,
.notice-search-field select {
    width: 100%;
    height: 46px;
    box-sizing: border-box;
    color: #10203d;
    background: #fff;
    border: 1px solid #ccd6e4;
    border-radius: 7px;
    font-size: 14px;
    font-weight: 750;
}

.notice-search-field input {
    padding: 0 16px 0 44px;
}

.notice-search-field select {
    padding: 0 14px;
}

.notice-search-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.notice-primary-button,
.notice-reset-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 46px;
    padding: 0 20px;
    box-sizing: border-box;
    border-radius: 7px;
    font-size: 14px;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

.notice-primary-button {
    color: #fff;
    background: #075cff;
    border: 1px solid #075cff;
    box-shadow: 0 8px 18px rgba(7, 92, 255, .22);
}

.notice-reset-button {
    color: #17253e;
    background: #fff;
    border: 1px solid #ccd6e4;
}

.notice-main-grid {
    display: grid;
    grid-template-columns: minmax(560px, 1.12fr) minmax(500px, .98fr);
    gap: 18px;
    align-items: stretch;
}

.notice-list-card,
.notice-detail-card,
.notice-deadline-card,
.notice-ministry-card {
    padding: 20px 22px;
}

.notice-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 15px;
}

.notice-card-header h2 {
    margin: 0;
    color: #0f172a;
    font-size: 20px;
    font-weight: 950;
}

.notice-card-header a {
    color: #075cff;
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
}

.notice-result-count {
    margin-left: 8px;
    color: #075cff;
    font-size: 13px;
    font-weight: 950;
}

.notice-table-wrap {
    overflow: auto;
    border: 1px solid #edf1f7;
    border-radius: 7px;
}

.notice-list-card .notice-table-wrap {
    max-height: 426px;
}

.notice-table,
.notice-ministry-table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
    table-layout: fixed;
}

.notice-table th,
.notice-ministry-table th,
.notice-table td,
.notice-ministry-table td {
    box-sizing: border-box;
    padding: 10px 12px;
    border-bottom: 1px solid #edf1f7;
    color: #10203d;
    font-size: 13px;
    font-weight: 760;
    vertical-align: middle;
}

.notice-table th,
.notice-ministry-table th {
    color: #243855;
    background: #fbfcff;
    font-weight: 950;
    white-space: nowrap;
}

.notice-table th:nth-child(1), .notice-table td:nth-child(1) { width: 62px; text-align: center; }
.notice-table th:nth-child(2), .notice-table td:nth-child(2) { width: 32%; }
.notice-table th:nth-child(3), .notice-table td:nth-child(3) { width: 120px; text-align: center; }
.notice-table th:nth-child(4), .notice-table td:nth-child(4) { width: 104px; text-align: center; }
.notice-table th:nth-child(5), .notice-table td:nth-child(5) { width: 92px; text-align: center; }
.notice-table th:nth-child(6), .notice-table td:nth-child(6) { width: 82px; text-align: center; }
.notice-table th:nth-child(7), .notice-table td:nth-child(7) { width: 76px; text-align: center; }

.notice-table tbody tr:hover td {
    background: #f7fbff;
}

.notice-table tr.notice-row--selected td {
    background: #eef5ff;
}

.notice-table tr.notice-row--selected td:first-child {
    box-shadow: inset 3px 0 0 #075cff;
}

.notice-title-link {
    color: inherit;
    font: inherit;
    font-weight: inherit;
    text-decoration: none;
}

.notice-title-link:hover,
.notice-title-link:focus-visible {
    color: #075cff;
    text-decoration: underline;
    text-underline-offset: 3px;
    outline: none;
}

.notice-title-cell {
    display: -webkit-box;
    max-width: none;
    overflow: hidden;
    color: #0f172a;
    font-weight: 900;
    line-height: 1.45;
    word-break: keep-all;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
}

.notice-source-badge,
.notice-status-badge,
.notice-dday-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: 0 9px;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.notice-source-badge {
    color: #075cff;
    background: #eef5ff;
    border: 1px solid #9dc2ff;
}

.notice-status-badge {
    color: #047857;
    background: #dcfce7;
    border: 1px solid #86efac;
}

.notice-status-badge--closed {
    color: #475569;
    background: #eef2f7;
    border-color: #d8e0ea;
}

.notice-status-badge--planned,
.notice-status-badge--default {
    color: #475569;
    background: #eef2f7;
    border-color: #d8e0ea;
}

.notice-dday-pill {
    color: #475569;
    background: #eef2f7;
}

.notice-dday-pill--urgent {
    color: #ff2b1f;
    background: transparent;
    font-weight: 950;
}

.notice-view-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 58px;
    height: 30px;
    padding: 0 12px;
    color: #075cff;
    background: #fff;
    border: 1px solid #9dc2ff;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
}

.notice-empty-row {
    padding: 28px 14px;
    color: #7b8aa0;
    text-align: center;
    font-size: 13px;
}

.notice-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    margin-top: 14px;
}

.notice-pagination-arrow,
.notice-pagination-page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    color: #10203d;
    background: #fff;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 900;
    text-decoration: none;
}

.notice-pagination-page--active {
    color: #075cff;
    background: #f2f7ff;
}

.notice-pagination-arrow--disabled {
    color: #c7d0dc;
    pointer-events: none;
}

.notice-detail-card {
    min-height: 516px;
}

.notice-detail-empty {
    display: flex;
    align-items: center;
    justify-content: center;
}

.notice-detail-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.notice-detail-header h2 {
    margin: 12px 0 0;
    color: #0f172a;
    font-size: 22px;
    font-weight: 950;
    line-height: 1.35;
}

.notice-favorite-star {
    color: #facc15;
    font-size: 28px;
    line-height: 1;
}

.notice-detail-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 18px;
    margin: 0 0 18px;
}

.notice-detail-meta div {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    padding: 0;
    background: transparent;
    border: 0;
}

.notice-detail-meta dt {
    color: #667892;
    font-size: 13px;
    font-weight: 900;
}

.notice-detail-meta dd {
    margin: 0;
    color: #10203d;
    font-size: 14px;
    font-weight: 900;
}

.notice-detail-link-button {
    align-self: flex-start;
    height: 34px;
    margin-bottom: 18px;
    padding: 0 16px;
    color: #16a34a;
    background: #f0fdf4;
    border: 1px solid #86efac;
    box-shadow: none;
}

.notice-detail-tabs {
    display: flex;
    gap: 28px;
    margin-top: 4px;
    border-bottom: 1px solid #dbe2ec;
}

.notice-detail-tab {
    position: relative;
    min-width: 86px;
    padding: 13px 0;
    color: #667892;
    background: none;
    border: 0;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.notice-detail-tab--active {
    color: #075cff;
}

.notice-detail-tab--active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 3px;
    background: #075cff;
}

.notice-detail-panel {
    display: none;
    padding-top: 18px;
}

.notice-detail-panel--active {
    display: block;
}

.notice-detail-panel h3 {
    margin: 0 0 10px;
    color: #0f172a;
    font-size: 17px;
    font-weight: 950;
}

.notice-detail-content {
    max-height: 260px;
    overflow-y: auto;
    padding: 0;
    color: #243855;
    background: transparent;
    border: 0;
    font-size: 14px;
    font-weight: 750;
    line-height: 1.7;
}

.notice-attachment-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.notice-attachment-list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 12px;
    background: #fbfdff;
    border: 1px solid #dfe7f2;
    border-radius: 7px;
}

.notice-attachment-name {
    min-width: 0;
    color: #10203d;
    font-size: 13px;
    font-weight: 850;
    overflow-wrap: anywhere;
}

.notice-download-button {
    display: inline-flex;
    align-items: center;
    height: 30px;
    padding: 0 12px;
    color: #075cff;
    background: #eef5ff;
    border: 1px solid #9dc2ff;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

.notice-download-missing {
    color: #94a3b8;
    font-size: 12px;
    font-weight: 850;
}

.notice-summary-grid {
    display: grid;
    grid-template-columns: minmax(440px, .88fr) minmax(520px, 1.12fr);
    gap: 18px;
}

.notice-api-footnote {
    grid-column: 1 / -1;
    margin: -2px 0 0;
    color: #536684;
    font-size: 14px;
    font-weight: 800;
    text-align: center;
}

.notice-deadline-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.notice-deadline-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 104px;
    padding: 18px 12px;
    background: linear-gradient(180deg, #fff7f7 0%, #fff 100%);
    border: 1px solid #fee2e2;
    border-radius: 7px;
    text-align: center;
}

.notice-deadline-box--d7 {
    background: linear-gradient(180deg, #fff9ed 0%, #fff 100%);
    border-color: #ffedd5;
}

.notice-deadline-box--d30 {
    background: linear-gradient(180deg, #f4f8ff 0%, #fff 100%);
    border-color: #dbeafe;
}

.notice-deadline-box span {
    color: #10203d;
    font-size: 13px;
    font-weight: 900;
}

.notice-deadline-box strong {
    margin-top: 8px;
    color: #ff1f2d;
    font-size: 32px;
    font-weight: 950;
    line-height: 1;
}

.notice-deadline-box--d7 strong {
    color: #f97316;
}

.notice-deadline-box--d30 strong {
    color: #075cff;
}

.notice-deadline-box em {
    margin-top: 10px;
    color: #536684;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
}

.notice-ministry-card {
    grid-column: 1 / -1;
}

.notice-ministry-card .notice-table-wrap {
    max-height: 360px;
}

.notice-ministry-table {
    min-width: 980px;
}

.notice-ministry-table th,
.notice-ministry-table td {
    text-align: center;
}

.notice-ministry-table td:first-child,
.notice-ministry-table th:first-child {
    text-align: center;
}

.notice-ministry-table strong {
    color: #075cff;
    font-weight: 950;
}

.notice-alert-banner {
    padding: 12px 16px;
    color: #92400e;
    background: #fef3c7;
    border: 1px solid #fde68a;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 850;
}

@media (max-width: 1279px) {
    .notice-content { padding: 0 16px 24px; }
    .notice-search-form,
    .notice-main-grid,
    .notice-summary-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .notice-monitoring-page .notice-topbar {
        min-height: auto;
        padding: 12px;
    }
    .notice-hero-card,
    .notice-filter-card,
    .notice-list-card,
    .notice-detail-card,
    .notice-deadline-card,
    .notice-ministry-card {
        padding: 14px;
    }
    .notice-hero-card {
        flex-direction: column;
    }
    .notice-page-badges {
        display: none;
    }
    .notice-search-actions,
    .notice-deadline-grid,
    .notice-detail-meta {
        grid-template-columns: 1fr;
    }
}

/* ---------------------------------------------------------------------- */
/* 예고 법령 모니터링 (notice monitoring) screen                            */
/* ---------------------------------------------------------------------- */

.notice-content { display: flex; flex-direction: column; gap: 14px; padding: 20px 24px 32px; }

.notice-header-title h1 { margin: 0 0 6px; }
.notice-header-title p { margin: 0 0 10px; }
.notice-page-badges { display: inline-flex; gap: 6px; }
.notice-page-badges em { display: inline-flex; align-items: center; height: 22px; padding: 0 9px; color: #075cff; background: #eaf2ff; border: 1px solid #cfe0ff; border-radius: 999px; font-size: 11px; font-style: normal; font-weight: 850; white-space: nowrap; }

.notice-alert-banner { padding: 12px 16px; color: #92400e; background: #fef3c7; border: 1px solid #fde68a; border-radius: 10px; font-size: 13px; }

.notice-tabs { display: flex; gap: 8px; }
.notice-tab { display: inline-flex; align-items: center; height: 40px; padding: 0 20px; color: #334155; background: #fff; border: 1px solid #e2e8f0; border-radius: 10px 10px 0 0; font-size: 14px; font-weight: 850; text-decoration: none; }
.notice-tab--active { color: #075cff; background: #eaf2ff; border-color: #cfe0ff; border-bottom-color: #eaf2ff; }

.notice-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04); padding: 18px 20px; }
.notice-card-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.notice-card-header h2 { margin: 0; font-size: 16px; }
.notice-result-count { margin-left: 6px; color: #075cff; font-size: 13px; font-weight: 900; }

.notice-search-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px; }
.notice-search-field { display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: #64748b; font-weight: 850; }
.notice-search-field--keyword { flex: 1; min-width: 220px; }
.notice-search-field input, .notice-search-field select { height: 40px; box-sizing: border-box; padding: 0 12px; border: 1px solid #cbd5e1; border-radius: 10px; font-size: 14px; color: #1f2937; min-width: 160px; }
.notice-search-actions { display: flex; gap: 8px; }
.notice-primary-button, .notice-reset-button { display: inline-flex; align-items: center; justify-content: center; height: 40px; padding: 0 20px; box-sizing: border-box; border-radius: 10px; font-size: 14px; font-weight: 850; cursor: pointer; white-space: nowrap; text-decoration: none; }
.notice-primary-button { color: #fff; background: linear-gradient(135deg, #0b73ff 0%, #075cff 100%); border: 0; }
.notice-reset-button { color: #334155; background: #f8fafc; border: 1px solid #cbd5e1; }

.notice-columns { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 14px; align-items: start; }

.notice-table-wrap { overflow-x: auto; }
.notice-table, .notice-ministry-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 13px; }
.notice-table th, .notice-ministry-table th { padding: 10px 12px; color: #64748b; text-align: left; background: #f8fafc; border-bottom: 1px solid #e5e7eb; white-space: nowrap; }
.notice-table td, .notice-ministry-table td { padding: 11px 12px; border-bottom: 1px solid #f1f5f9; vertical-align: top; }
.notice-table tbody tr:hover td { background: #f8fbff; }
.notice-table tr.notice-row--selected td { background: #eef5ff; }
.notice-table tr.notice-row--selected td:first-child { box-shadow: inset 3px 0 0 #075cff; }
.notice-title-cell { max-width: 320px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.notice-source-badge { display: inline-flex; align-items: center; height: 22px; padding: 0 9px; color: #075cff; background: #eaf2ff; border-radius: 999px; font-size: 11px; font-weight: 850; white-space: nowrap; }
.notice-status-badge { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 850; white-space: nowrap; }
.notice-status-badge--active { color: #047857; background: #d1fae5; }
.notice-status-badge--closed { color: #b91c1c; background: #fee2e2; }
.notice-status-badge--planned { color: #b45309; background: #fef3c7; }
.notice-status-badge--default { color: #475569; background: #e2e8f0; }
.notice-view-button { display: inline-flex; align-items: center; justify-content: center; min-width: 52px; height: 28px; padding: 0 12px; color: #075cff; background: #eaf2ff; border: 1px solid #cfe0ff; border-radius: 8px; font-size: 12px; font-weight: 850; text-decoration: none; }
.notice-empty-row { padding: 26px 14px; color: #8492a6; text-align: center; font-size: 13px; }

.notice-detail-card { display: flex; flex-direction: column; gap: 14px; }
.notice-detail-empty { align-items: center; justify-content: center; min-height: 160px; }
.notice-detail-header { display: flex; flex-direction: column; gap: 8px; }
.notice-detail-header h2 { margin: 0; font-size: 17px; font-weight: 900; color: #0f172a; line-height: 1.4; }
.notice-detail-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; margin: 0; }
.notice-detail-meta div { display: flex; justify-content: space-between; gap: 8px; padding: 8px 10px; background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 8px; }
.notice-detail-meta dt { margin: 0; color: #64748b; font-size: 12px; font-weight: 850; }
.notice-detail-meta dd { margin: 0; color: #1f2937; font-size: 12px; text-align: right; }
.notice-detail-link-button { align-self: flex-start; }

.notice-detail-tabs { display: flex; gap: 4px; border-bottom: 1px solid #e5e7eb; }
.notice-detail-tab { padding: 10px 14px; color: #64748b; background: none; border: 0; border-bottom: 2px solid transparent; font-size: 13px; font-weight: 850; cursor: pointer; }
.notice-detail-tab--active { color: #075cff; border-bottom-color: #075cff; }
.notice-detail-panel { display: none; }
.notice-detail-panel--active { display: block; }
.notice-detail-content { max-height: 420px; overflow-y: auto; padding: 14px; background: #fbfdff; border: 1px solid #e5e7eb; border-radius: 10px; font-size: 13px; line-height: 1.7; color: #1f2937; }
.notice-attachment-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.notice-attachment-list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 8px; font-size: 13px; }
.notice-attachment-name { flex: 1; word-break: break-all; }
.notice-download-button { display: inline-flex; align-items: center; height: 28px; padding: 0 12px; color: #075cff; background: #eaf2ff; border: 1px solid #cfe0ff; border-radius: 8px; font-size: 12px; font-weight: 850; text-decoration: none; white-space: nowrap; }
.notice-download-missing { color: #94a3b8; font-size: 12px; }

.notice-deadline-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.notice-deadline-box { display: flex; flex-direction: column; gap: 6px; padding: 16px; background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 10px; text-align: center; }
.notice-deadline-box span { color: #64748b; font-size: 12px; font-weight: 850; }
.notice-deadline-box strong { font-size: 26px; color: #0f172a; }
.notice-deadline-box--d3 strong { color: #b91c1c; }
.notice-deadline-box--d7 strong { color: #b45309; }
.notice-deadline-box--d30 strong { color: #075cff; }

.notice-pagination { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 14px; }
.notice-pagination-arrow, .notice-pagination-page { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; padding: 0 6px; color: #334155; background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; font-size: 13px; font-weight: 850; text-decoration: none; }
.notice-pagination-page--active { color: #fff; background: #075cff; border-color: #075cff; }
.notice-pagination-arrow--disabled { color: #cbd5e1; pointer-events: none; }

@media (max-width: 1100px) {
    .notice-columns { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .notice-search-form { flex-direction: column; align-items: stretch; }
    .notice-search-field input, .notice-search-field select { width: 100%; }
    .notice-page-badges { display: none; }
    .notice-detail-meta { grid-template-columns: 1fr; }
    .notice-deadline-grid { grid-template-columns: 1fr; }
}

/* HOME-WEB-NOTICE-MONITORING-UI-TUNE-03 final polish */
.notice-monitoring-page .notice-table {
    min-width: 984px;
    table-layout: fixed;
}

.notice-monitoring-page .notice-table th:nth-child(1),
.notice-monitoring-page .notice-table td:nth-child(1) { width: 58px; text-align: center; }
.notice-monitoring-page .notice-table th:nth-child(2),
.notice-monitoring-page .notice-table td:nth-child(2) { width: auto; min-width: 360px; }
.notice-monitoring-page .notice-table th.notice-th-center { text-align: center; }
.notice-monitoring-page .notice-table th:nth-child(3),
.notice-monitoring-page .notice-table td:nth-child(3) { width: 172px; text-align: center; }
.notice-monitoring-page .notice-table th:nth-child(4),
.notice-monitoring-page .notice-table td:nth-child(4) { width: 96px; text-align: center; }
.notice-monitoring-page .notice-table th:nth-child(5),
.notice-monitoring-page .notice-table td:nth-child(5) { width: 86px; text-align: center; }
.notice-monitoring-page .notice-table th:nth-child(6),
.notice-monitoring-page .notice-table td:nth-child(6) { width: 74px; text-align: center; }
.notice-monitoring-page .notice-table th:nth-child(7),
.notice-monitoring-page .notice-table td:nth-child(7) { width: 68px; text-align: center; }

.notice-monitoring-page .notice-ministry-cell {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.notice-monitoring-page .notice-title-cell {
    display: -webkit-box;
    max-width: none;
    overflow: hidden;
    color: #0f172a;
    font-weight: 900;
    line-height: 1.42;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: break-word;
    text-overflow: ellipsis;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
}

.notice-monitoring-page .notice-search-input-wrap i {
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
}

.notice-monitoring-page .notice-search-field input[type="search"] {
    height: 46px;
    padding-left: 52px;
    padding-right: 16px;
}

.notice-monitoring-page .notice-search-field input[type="search"]::placeholder {
    color: #8a99ad;
}

.notice-monitoring-page .notice-deadline-layout {
    display: grid;
    grid-template-columns: minmax(420px, 1.05fr) minmax(360px, .95fr);
    gap: 16px;
    align-items: stretch;
}

.notice-monitoring-page .notice-deadline-card {
    grid-column: 1 / -1;
}

.notice-monitoring-page .notice-deadline-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.notice-monitoring-page .notice-deadline-box {
    min-height: 148px;
    justify-content: center;
}

.notice-law-guide {
    min-height: 148px;
    padding: 16px 16px 14px;
    box-sizing: border-box;
    background: linear-gradient(180deg, #fbfdff 0%, #f7fbff 100%);
    border: 1px solid #dbe7f6;
    border-radius: 10px;
}

.notice-law-guide h3 {
    margin: 0 0 12px;
    color: #0f172a;
    font-size: 16px;
    font-weight: 950;
}

.notice-law-guide dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 10px;
    margin: 0;
}

.notice-law-guide div {
    min-width: 0;
    padding: 9px 10px;
    background: #fff;
    border: 1px solid #e4ebf5;
    border-radius: 8px;
}

.notice-law-guide dt {
    display: inline-flex;
    align-items: center;
    min-height: 21px;
    padding: 0 8px;
    color: #075cff;
    background: #eaf2ff;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 950;
}

.notice-law-guide dd {
    margin: 6px 0 0;
    color: #42526b;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.42;
    word-break: keep-all;
}

@media (max-width: 1279px) {
    .notice-monitoring-page .notice-deadline-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .notice-monitoring-page .notice-table {
        min-width: 820px;
    }

    .notice-law-guide dl {
        grid-template-columns: 1fr;
    }
}

/* HOME-WEB-NOTICE-MONITORING-UI-TUNE-03B list column polish */
.notice-monitoring-page .notice-table {
    min-width: 1080px;
}

.notice-monitoring-page .notice-table th.notice-th-center {
    text-align: center;
}

.notice-monitoring-page .notice-table th:nth-child(2) {
    text-align: center;
}

.notice-monitoring-page .notice-table td:nth-child(2) {
    text-align: left;
}

.notice-monitoring-page .notice-table th:nth-child(3),
.notice-monitoring-page .notice-table td:nth-child(3) {
    width: 194px;
    min-width: 194px;
    max-width: 194px;
    text-align: center;
}

.notice-monitoring-page .notice-ministry-cell {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.notice-monitoring-page .notice-title-cell {
    min-width: 420px;
}

@media (max-width: 760px) {
    .notice-monitoring-page .notice-table {
        min-width: 980px;
    }

    .notice-monitoring-page .notice-table th:nth-child(3),
    .notice-monitoring-page .notice-table td:nth-child(3) {
        width: 184px;
        min-width: 184px;
        max-width: 184px;
    }
}

/* HOME-WEB-REVISION-MANAGEMENT-UI-FUNCTION-01 */
.revision-management-page {
    background: #f6f9fd;
}

.revision-management-page .revision-header {
    align-items: flex-start;
    padding-bottom: 8px;
}

.revision-title-block h1 {
    margin: 0 0 8px;
    color: #0b1736;
    font-size: 32px;
    font-weight: 950;
    letter-spacing: 0;
}

.revision-title-block p {
    margin: 0;
    color: #31415f;
    font-size: 15px;
    font-weight: 750;
}

.revision-header-actions {
    align-items: flex-start;
}

.revision-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 0 13px;
    color: #075cff;
    background: #eaf2ff;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 950;
    white-space: nowrap;
}

.revision-status-badge--green {
    color: #047857;
    background: #dff7e8;
}

.revision-content {
    padding-top: 8px;
}

.revision-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 18px;
}

.revision-primary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 44px;
    padding: 0 22px;
    color: #fff;
    background: #075cff;
    border: 1px solid #075cff;
    border-radius: 6px;
    box-shadow: 0 10px 18px rgba(7, 92, 255, .18);
    font-size: 14px;
    font-weight: 950;
    cursor: pointer;
}

.revision-page-grid {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 14px;
    align-items: stretch;
}

.revision-list-card,
.revision-info-card,
.revision-navigator-card,
.revision-report-card {
    background: #fff;
    border: 1px solid #e4ebf5;
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(20, 35, 64, .07);
}

.revision-list-card {
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    min-height: 0;
    height: 100%;
    max-height: none;
    padding: 18px;
    overflow: hidden;
}

.revision-list-card h2,
.revision-section-header h2,
.revision-report-card h2 {
    margin: 0;
    color: #0b1736;
    font-size: 18px;
    font-weight: 950;
}

.revision-law-search-field {
    position: relative;
    display: flex;
    align-items: center;
    margin-top: 14px;
}

.revision-law-search-field span {
    position: absolute;
    left: 14px;
    width: 15px;
    height: 15px;
    border: 2px solid #94a3b8;
    border-radius: 50%;
    pointer-events: none;
}

.revision-law-search-field span::after {
    content: "";
    position: absolute;
    top: 12px;
    left: 11px;
    width: 7px;
    height: 2px;
    background: #94a3b8;
    transform: rotate(45deg);
}

.revision-law-search-field input {
    width: 100%;
    min-height: 44px;
    padding: 0 14px 0 40px;
    color: #0b1736;
    background: #f7faff;
    border: 1px solid #dbe4f0;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
}

.revision-law-search-field input:focus {
    outline: none;
    border-color: #b9d2ff;
    box-shadow: 0 0 0 3px rgba(120, 170, 255, .25);
}

.revision-list-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-top: 16px;
}

.revision-list-heading strong {
    color: #0b1736;
    font-size: 14px;
    font-weight: 950;
}

.revision-list-heading em {
    color: #64748b;
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
}

.revision-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1 1 auto;
    margin-top: 10px;
    min-height: 0;
    overflow-y: auto;
    padding-right: 4px;
}

.revision-list-item-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.revision-list-tag {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    min-height: 20px;
    padding: 0 8px;
    border-radius: 999px;
    color: #075cff;
    background: #eaf2ff;
    font-size: 11px;
    font-style: normal;
    font-weight: 950;
}

.revision-list-tag--etc {
    color: #64748b;
    background: #edf2f7;
}

.revision-list-item {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
    min-height: 80px;
    padding: 16px 18px;
    color: #0b1736;
    background: #fff;
    border: 1px solid #e4ebf5;
    border-radius: 7px;
    text-align: left;
    cursor: pointer;
}

.revision-list-item--active {
    background: #f9fbff;
    border-color: #b9d2ff;
    box-shadow: inset 0 0 0 1px #cfe0ff;
}

.revision-list-item strong {
    font-size: 15px;
    font-weight: 950;
}

.revision-list-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.revision-list-status {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 12px;
    font-style: normal;
    font-weight: 950;
}

.revision-list-status--in-progress { color: #047857; background: #dff7e8; }
.revision-list-status--review { color: #475569; background: #edf2f7; }
.revision-list-status--action { color: #075cff; background: #eaf2ff; }
.revision-list-status--urgent { color: #dc2626; background: #ffe4e6; }

.revision-list-meta time {
    color: #183158;
    font-size: 13px;
    font-weight: 800;
}

.revision-more-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 46px;
    margin-top: 14px;
    color: #183158;
    background: #fff;
    border: 1px solid #dbe4f0;
    border-radius: 6px;
    font-weight: 900;
}

.revision-main-stack {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
}

.revision-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.revision-info-card {
    min-height: 132px;
    padding: 22px 26px;
}

.revision-info-card > span,
.revision-info-card dt,
.revision-stage-card button {
    color: #33415f;
    font-size: 13px;
    font-weight: 800;
}

.revision-info-card > strong {
    display: block;
    margin: 12px 0 16px;
    color: #0b1736;
    font-size: 18px;
    font-weight: 950;
}

.revision-info-card dl {
    display: grid;
    gap: 8px;
    margin: 0;
}

.revision-info-card dl div {
    display: flex;
    gap: 8px;
}

.revision-info-card dt,
.revision-info-card dd {
    margin: 0;
}

.revision-info-card dd {
    color: #183158;
    font-size: 13px;
    font-weight: 900;
}

.revision-stage-card > div:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.revision-stage-card button {
    padding: 0;
    background: none;
    border: 0;
    cursor: pointer;
}

.revision-stage-track {
    position: relative;
    height: 26px;
    margin-top: 22px;
    overflow: hidden;
    background: #e9ddff;
    border-radius: 999px;
}

.revision-stage-track i {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #c8b2ff, #dfcaff);
}

.revision-stage-track em {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #6500e8;
    font-style: normal;
    font-weight: 950;
}

.revision-navigator-card {
    padding: 20px 18px 18px;
}

.revision-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.revision-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
}

.revision-legend label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #1f365d;
    font-size: 12px;
    font-weight: 850;
    white-space: nowrap;
}

.revision-legend input {
    width: 16px;
    height: 16px;
    accent-color: #075cff;
}

.revision-search-field {
    position: relative;
    display: block;
    max-width: 390px;
    margin-bottom: 10px;
}

.revision-search-field span {
    position: absolute;
    left: 13px;
    top: 50%;
    width: 14px;
    height: 14px;
    border: 2px solid #64748b;
    border-radius: 999px;
    transform: translateY(-50%);
}

.revision-search-field span::after {
    content: "";
    position: absolute;
    right: -6px;
    bottom: -5px;
    width: 7px;
    height: 2px;
    background: #64748b;
    border-radius: 999px;
    transform: rotate(45deg);
}

.revision-search-field input {
    width: 100%;
    height: 38px;
    padding: 0 14px 0 42px;
    border: 1px solid #cfd9e8;
    border-radius: 6px;
    color: #0b1736;
    font-size: 13px;
    font-weight: 800;
}

.revision-change-grid {
    display: grid;
    grid-template-columns: minmax(310px, .9fr) minmax(300px, 1fr) minmax(300px, 1fr);
    gap: 12px;
}

.revision-tree-panel,
.revision-compare-panel {
    min-height: 420px;
    padding: 18px 16px;
    background: #fff;
    border: 1px solid #e4ebf5;
    border-radius: 7px;
}

.revision-tree-panel h3,
.revision-compare-panel h3 {
    margin: 0 0 14px;
    color: #0b1736;
    font-size: 15px;
    font-weight: 950;
}

.revision-tree-panel h3 em {
    color: #64748b;
    font-style: normal;
    font-size: 12px;
}

.revision-count-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 14px;
}

.revision-count-chips button {
    appearance: none;
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 10px;
    color: #334155;
    background: #f1f5f9;
    border: 0;
    border-radius: 999px;
    font-size: 12px;
    font-family: inherit;
    font-weight: 900;
    cursor: pointer;
}

.revision-count-chips button:hover,
.revision-count-chips button:focus-visible,
.revision-count-chips button[aria-pressed="true"] {
    box-shadow: inset 0 0 0 2px currentColor, 0 0 0 2px rgba(7, 92, 255, .10);
    outline: none;
}

.revision-count-chips .revision-chip--blue { color: #075cff; background: #eaf2ff; }
.revision-count-chips .revision-chip--green { color: #047857; background: #dff7e8; }
.revision-count-chips .revision-chip--red { color: #dc2626; background: #ffe4e6; }
.revision-count-chips .revision-chip--purple { color: #6500e8; background: #eee6ff; }
.revision-count-chips .revision-chip--gray { color: #475569; background: #edf2f7; }

.revision-tree {
    max-height: 340px;
    overflow-y: auto;
    padding-right: 4px;
}

.revision-tree-chapter {
    margin-bottom: 12px;
}

.revision-tree-chapter h4 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 8px;
    color: #0b1736;
    font-size: 13px;
    font-weight: 950;
}

.revision-tree-chapter > div {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-left: 20px;
}

.revision-tree-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    min-height: 32px;
    padding: 4px 0;
    color: #075cff;
    background: transparent;
    border: 0;
    text-align: left;
    cursor: pointer;
}

.revision-tree-item--active span {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.revision-tree-item span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 900;
}

.revision-change-badge {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    min-height: 28px;
    border-radius: 8px;
    font-size: 12px;
    font-style: normal;
    font-weight: 950;
}

.revision-change-badge--revision { color: #075cff; background: #eaf2ff; }
.revision-change-badge--enactment,
.revision-change-badge--new { color: #047857; background: #dff7e8; }
.revision-change-badge--deletion { color: #dc2626; background: #ffe4e6; }
.revision-change-badge--maintain { color: #475569; background: #edf2f7; }

.revision-compare-text {
    max-height: 250px;
    min-height: 210px;
    overflow-y: auto;
    padding-right: 6px;
    color: #1f365d;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.75;
    word-break: keep-all;
}

.revision-compare-text p {
    display: block;
    margin: 0;
}

.revision-compare-text p span {
    flex: 0 0 auto;
    color: #334155;
}

.revision-compare-text p .revision-diff-segment--before {
    color: #dc2626;
}

.revision-compare-text p .revision-diff-segment--after {
    color: #075cff;
}

.revision-compare-text--before.revision-compare-text--revision,
.revision-compare-text--before.revision-compare-text--deletion {
    color: #0b1736;
    font-weight: 900;
}

.revision-compare-text--after.revision-compare-text--revision {
    color: #075cff;
    font-weight: 950;
}

.revision-compare-text--after.revision-compare-text--enactment,
.revision-compare-text--after.revision-compare-text--new {
    color: #047857;
    font-weight: 950;
}

.revision-compare-text--after.revision-compare-text--deletion {
    color: #dc2626;
    font-weight: 950;
}

.revision-compare-text--after.revision-compare-text--deletion p {
    text-decoration: line-through;
    text-decoration-thickness: 2px;
    text-decoration-color: #dc2626;
}

.revision-compare-text--maintain {
    color: #1f365d;
    font-weight: 850;
}

.revision-sanction-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}

.revision-sanction-card {
    min-height: 118px;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid #e4ebf5;
    border-left-width: 5px;
    border-radius: 8px;
    box-shadow: 0 8px 22px rgba(20, 35, 64, .06);
}

.revision-sanction-card--penalty {
    border-left-color: #dc2626;
    background: linear-gradient(180deg, #fff 0%, #fff7f7 100%);
}

.revision-sanction-card--admin {
    border-left-color: #075cff;
    background: linear-gradient(180deg, #fff 0%, #f7fbff 100%);
}

.revision-sanction-card h3 {
    margin: 0;
    color: #0b1736;
    font-size: 15px;
    font-weight: 950;
}

.revision-sanction-card .revision-sanction-divider {
    height: 1px;
    margin: 11px 0 12px;
    background: #e4ebf5;
}

.revision-sanction-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.revision-sanction-list li {
    position: relative;
    padding-left: 14px;
    color: #1f365d;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.65;
    word-break: keep-all;
}

.revision-sanction-list li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 10px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    opacity: .55;
}

.revision-sanction-list li.revision-sanction-empty {
    color: #94a3b8;
    font-weight: 800;
    font-style: italic;
    padding-left: 0;
}

.revision-sanction-list li.revision-sanction-empty::before {
    content: none;
}

.revision-empty {
    margin: 0;
    color: #94a3b8;
    font-size: 13px;
    font-weight: 800;
}

.revision-report-card {
    margin-top: 16px;
    padding: 22px 24px 26px;
}

.revision-report-grid {
    display: grid;
    grid-template-columns: minmax(250px, .75fr) minmax(360px, 1fr) minmax(480px, 1.1fr);
    gap: 28px;
    align-items: center;
    margin-top: 18px;
}

.revision-report-meta {
    display: grid;
    gap: 16px;
    margin: 0;
}

.revision-report-meta div {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 12px;
}

.revision-report-meta dt,
.revision-report-summary h3 {
    margin: 0;
    color: #33415f;
    font-size: 13px;
    font-weight: 850;
}

.revision-report-meta dd {
    margin: 0;
    color: #0b1736;
    font-size: 14px;
    font-weight: 950;
}

.revision-report-summary ul {
    margin: 12px 0 0;
    padding-left: 20px;
    color: #183158;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.8;
}

.revision-report-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(190px, 1fr));
    gap: 18px;
}

.revision-export-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 72px;
    padding: 0 24px;
    background: #fff;
    border-radius: 7px;
    font-size: 15px;
    font-weight: 950;
    cursor: pointer;
}

.revision-export-button--excel {
    color: #048241;
    border: 1px solid #55bf82;
}

.revision-export-button--ppt {
    color: #ef321b;
    border: 1px solid #ff8c80;
}

.revision-export-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    flex: 0 0 auto;
}

.revision-export-icon svg {
    width: 30px;
    height: 30px;
    display: block;
}

.revision-report-actions span {
    grid-column: 1 / -1;
    min-height: 18px;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    text-align: right;
}

@media (max-width: 1420px) {
    .revision-page-grid {
        grid-template-columns: 300px minmax(0, 1fr);
    }

    .revision-change-grid {
        grid-template-columns: 1fr;
    }

    .revision-tree-panel,
    .revision-compare-panel {
        min-height: auto;
    }

    .revision-report-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 960px) {
    .revision-page-grid,
    .revision-summary-grid {
        grid-template-columns: 1fr;
    }

    .revision-list-card {
        min-height: auto;
        max-height: none;
    }

    .revision-list {
        max-height: 360px;
    }

    .revision-section-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .revision-report-actions {
        grid-template-columns: 1fr;
    }

    .revision-sanction-grid {
        grid-template-columns: 1fr;
    }
}

/* Dashboard and Revision final alignment. Existing page primitives are reused. */
.dashboard-page { --dash-sidebar: 240px; }
.dashboard-page .app-sidebar { flex-basis: var(--dash-sidebar); width: var(--dash-sidebar); padding-left: 14px; padding-right: 14px; }
.dashboard-page .dashboard-main { width: calc(100vw - var(--dash-sidebar)); }
.dashboard-page .dashboard-header { min-height: 78px; padding: 15px 28px; }
.dashboard-page .dashboard-header h1 { font-size: 25px; }
.dashboard-page .dashboard-header p { margin-top: 7px; font-size: 13px; }
.dashboard-page .dashboard-panel { padding: 18px 20px; border-radius: 8px; }
.dashboard-page .dashboard-panel-header { margin-bottom: 13px; }
.dashboard-page .dashboard-panel-header h2 { font-size: 17px; }
.dashboard-page .dashboard-panel-header a, .dashboard-page .dashboard-panel-more { font-size: 12px; }
.dashboard-final-page *, .revision-management-page * { letter-spacing: 0; }
.dashboard-logout-form { margin: 0; }
.dashboard-logout-link { justify-content: center; min-width: 76px; white-space: nowrap; word-break: keep-all; cursor: pointer; }
.dashboard-logout-link:hover, .dashboard-logout-link:focus-visible { color: #075cff; background: #eef5ff; border-color: #9dbdf5; outline: 2px solid rgba(7,92,255,.16); outline-offset: 1px; }
.app-nav-item--disabled { opacity: .55; cursor: default; }
.card-density-control { display: inline-flex; align-items: center; gap: 6px; color: #536684; font-size: 11px; font-weight: 900; white-space: nowrap; }
.card-density-control select { height: 30px; padding: 0 25px 0 9px; color: #17325d; background: #fff; border: 1px solid #d8e3f1; border-radius: 7px; font: inherit; }
.card-density-control button { display: inline-grid; width: 30px; height: 30px; padding: 0; place-items: center; color: #536684; background: #fff; border: 1px solid #d8e3f1; border-radius: 7px; cursor: pointer; }
.card-density-control button:hover, .card-density-control button:focus-visible { color: #075cff; background: #eef5ff; border-color: #9dbdf5; outline: 2px solid rgba(7,92,255,.14); }
.dashboard-source-chip { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border-radius: 999px; font-size: 11px; font-weight: 950; white-space: nowrap; }
.dashboard-source-chip--normal { color: #047857; background: #dff7e8; }
.dashboard-source-chip--checking { color: #075cff; background: #eaf2ff; }
.dashboard-source-chip--error { color: #b91c1c; background: #fee2e2; }
.dashboard-final-content { gap: 14px; padding-top: 18px; }
.dashboard-final-kpis { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; }
.dashboard-final-kpi { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-width: 0; min-height: 128px; padding: 20px 24px; box-sizing: border-box; background: #fff; border: 1px solid var(--dash-line); border-radius: 8px; box-shadow: var(--dash-card-shadow); }
.dashboard-final-kpi > div { min-width: 0; }
.dashboard-final-kpi > div > span, .dashboard-final-links-card > span { display: block; color: #17325d; font-size: 14px; font-weight: 950; white-space: nowrap; }
.dashboard-final-kpi > div > strong { display: block; margin: 14px 0 8px; color: #075cff; font-size: 32px; line-height: 1; }
.dashboard-final-kpi--purple > div > strong { color: #7138e8; }
.dashboard-final-kpi--orange > div > strong { color: #d9580b; }
.dashboard-final-kpi > div > strong em { margin-left: 2px; font-size: 16px; font-style: normal; }
.dashboard-final-kpi > div > small { color: #64748b; font-size: 11px; font-weight: 800; }
.dashboard-final-kpi > i { display: grid; flex: 0 0 58px; width: 58px; height: 58px; place-items: center; color: #075cff; background: #eaf2ff; border-radius: 12px; font-style: normal; }
.dashboard-final-kpi > i svg { width: 29px; height: 29px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-final-kpi--purple > i { color: #7138e8; background: #f1e9ff; }
.dashboard-final-kpi--orange > i { color: #d9580b; background: #fff0e8; }
.dashboard-final-links-card { display: block; padding: 17px 19px; }
.dashboard-final-links-card > div { display: grid; gap: 7px; margin-top: 10px; }
.dashboard-final-links-card a { display: grid; grid-template-columns: minmax(0,1fr) auto 18px; gap: 8px; align-items: center; min-height: 34px; padding: 0 10px; color: #17325d; background: #fbfdff; border: 1px solid #d8e3f1; border-radius: 7px; text-decoration: none; }
.dashboard-final-links-card a strong { overflow: hidden; font-size: 11px; font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-final-links-card a em { color: #075cff; font-style: normal; }
.dashboard-final-links-card a em svg { display: block; width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.system-state { font-size: 11px; font-style: normal; font-weight: 950; white-space: nowrap; }
.system-state--normal { color: #059669; } .system-state--checking { color: #075cff; } .system-state--error { color: #dc2626; } .system-state--unsupported { color: #64748b; }
.dashboard-final-two-column { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.dashboard-final-primary-row .dashboard-panel { min-height: 270px; }
.dashboard-final-secondary-row .dashboard-panel { min-height: 190px; }
.dashboard-final-tertiary-row .dashboard-panel { min-height: 158px; }
.dashboard-table-scroll { overflow-x: auto; }
.dashboard-page .dashboard-law-table { font-size: 12px; }
.dashboard-page .dashboard-law-table th, .dashboard-page .dashboard-law-table td { height: 30px; padding: 4px 8px; font-size: 12px; }
.dashboard-page .dashboard-law-table th:first-child, .dashboard-page .dashboard-law-table td:first-child { width: auto; text-align: left; }
.dashboard-page .dashboard-law-table th:nth-child(2), .dashboard-page .dashboard-law-table td:nth-child(2) { width: 96px; text-align: center; }
.dashboard-page .dashboard-law-table td:nth-child(2) { max-width: none; font-size: 12px; }
.dashboard-page .dashboard-law-table th:nth-child(3), .dashboard-page .dashboard-law-table td:nth-child(3) { width: 98px; text-align: center; }
.dashboard-page .dashboard-law-table th:nth-child(4), .dashboard-page .dashboard-law-table td:nth-child(4) { width: 128px; text-align: right; }
.dashboard-page .dashboard-law-table .dashboard-recent-law-title,
.dashboard-page .dashboard-law-table .dashboard-recent-law-date { font-weight: 900; }
.dashboard-page .dashboard-law-link-button--disabled { opacity: .55; cursor: not-allowed; }
.dashboard-page .dashboard-panel-more { margin-top: 11px; padding-top: 9px; border-top: 1px solid #edf2f7; }
.dashboard-page button.dashboard-panel-more { width: 100%; border-right: 0; border-bottom: 0; border-left: 0; cursor: pointer; }
.dashboard-panel-more--toggle { align-items: center; gap: 5px; color: var(--dash-blue-2); background: transparent; font: inherit; font-weight: 900; }
.dashboard-panel-more--toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .18s ease; }
.dashboard-panel-more--toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.dashboard-panel-more--toggle:hover, .dashboard-panel-more--toggle:focus-visible { color: #064fdc; background: #f7faff; outline: 2px solid rgba(7,92,255,.16); outline-offset: 1px; }
.dashboard-law-table [data-recent-law-extra][hidden] { display: none; }
.dashboard-deadline-table [data-deadline-notice-extra][hidden], [data-deadline-notice-guide][hidden] { display: none; }
.dashboard-deadline-guide { color: #64748b; font-size: 10px; font-weight: 800; line-height: 1.4; text-align: center; overflow-wrap: anywhere; }
.dashboard-deadline-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 12px; }
.dashboard-deadline-table th, .dashboard-deadline-table td { height: 30px; padding: 4px 9px; border-bottom: 1px solid #edf2f7; color: #17325d; text-align: left; }
.dashboard-deadline-table th { color: #50617d; background: #f6f8fb; font-weight: 950; }
.dashboard-deadline-table th:nth-child(2), .dashboard-deadline-table td:nth-child(2) { width: 96px; white-space: nowrap; }
.dashboard-deadline-table th:nth-child(3), .dashboard-deadline-table td:nth-child(3) { width: 70px; white-space: nowrap; }
.dashboard-deadline-table th:nth-child(4), .dashboard-deadline-table td:nth-child(4) { width: 82px; white-space: nowrap; }
.dashboard-deadline-table td:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-deadline-table a { color: #17325d; font-weight: 850; text-decoration: none; }
.dashboard-deadline-status { color: #d9580b; font-weight: 900; }
.dashboard-empty-cell { height: 110px !important; color: #64748b !important; text-align: center !important; }
.dashboard-quick-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; }
.dashboard-quick-grid > a, .dashboard-quick-disabled { position: relative; display: grid; grid-template-columns: 42px minmax(0,1fr); grid-template-rows: auto auto; gap: 4px 9px; align-items: center; min-width: 0; min-height: 112px; padding: 16px 13px; box-sizing: border-box; color: #17325d; background: #fff; border: 1px solid #dbe4f0; border-radius: 7px; text-decoration: none; }
.dashboard-quick-icon { display: grid; grid-row: 1 / 3; width: 38px; height: 38px; place-items: center; color: #075cff; }
.dashboard-quick-icon svg { width: 29px; height: 29px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-quick-grid strong, .dashboard-quick-grid small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-quick-grid strong { align-self: end; font-size: 12px; font-weight: 950; }
.dashboard-quick-grid small { align-self: start; color: #64748b; font-size: 10px; font-weight: 800; }
.dashboard-quick-grid em { position: absolute; right: 11px; bottom: 9px; color: #075cff; font-size: 12px; font-style: normal; font-weight: 900; }
.dashboard-quick-disabled { opacity: .55; background: #f8fafc; }
.dashboard-category-layout { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: 34px; align-items: center; }
.dashboard-category-donut { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 156px; height: 156px; background: var(--category-gradient); border-radius: 50%; }
.dashboard-category-donut::after { content: ""; position: absolute; inset: 37px; background: #fff; border-radius: 50%; }
.dashboard-category-donut strong, .dashboard-category-donut span { position: relative; z-index: 1; }
.dashboard-category-donut strong { color: #17325d; font-size: 14px; }
.dashboard-category-donut span { margin-top: 5px; color: #64748b; font-size: 10px; }
.dashboard-category-layout ul { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; }
.dashboard-category-layout li { display: grid; grid-template-columns: 10px minmax(0,1fr) 58px 40px; gap: 9px; align-items: center; color: #17325d; font-size: 12px; }
.dashboard-category-layout li i { width: 9px; height: 9px; border-radius: 50%; }
.dashboard-category-color--1 { background: #2878f0; } .dashboard-category-color--2 { background: #35c3ae; } .dashboard-category-color--3 { background: #8b6be8; } .dashboard-category-color--4 { background: #f28b32; }
.dashboard-category-layout li strong, .dashboard-category-layout li em { text-align: right; font-style: normal; }
.dashboard-she-links-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.dashboard-she-links-grid a { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 9px; align-items: center; min-width: 0; min-height: 62px; padding: 10px 11px; box-sizing: border-box; color: #17325d; background: #fbfdff; border: 1px solid #dbe4f0; border-radius: 7px; text-decoration: none; }
.dashboard-she-links-grid a:hover, .dashboard-she-links-grid a:focus-visible { color: #064fdc; background: #f3f8ff; border-color: #9dbdf5; outline: 2px solid rgba(7,92,255,.16); outline-offset: 1px; }
.dashboard-she-link-icon { display: grid; width: 32px; height: 32px; place-items: center; color: #075cff; background: #eaf2ff; border-radius: 8px; }
.dashboard-she-link-icon svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-she-links-grid a > span:nth-child(2) { min-width: 0; }
.dashboard-she-links-grid strong, .dashboard-she-links-grid small { display: block; overflow-wrap: anywhere; word-break: keep-all; }
.dashboard-she-links-grid strong { font-size: 11px; font-weight: 950; line-height: 1.35; }
.dashboard-she-links-grid small { margin-top: 4px; color: #64748b; font-size: 9px; font-weight: 800; line-height: 1.35; }
.dashboard-she-links-grid em { color: #075cff; font-size: 9px; font-style: normal; font-weight: 900; white-space: nowrap; }
.dashboard-source-empty { display: flex; flex-direction: column; justify-content: center; min-height: 92px; padding: 12px 18px; color: #64748b; background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 7px; }
.dashboard-source-empty strong { color: #334155; font-size: 13px; }
.dashboard-source-empty p { margin: 8px 0 0; font-size: 11px; line-height: 1.5; }
.dashboard-accident-card .dashboard-panel-header { flex-wrap: wrap; }
.dashboard-naver-openapi-bi { display: block; flex: 0 1 150px; width: 150px; max-width: 100%; line-height: 0; }
.dashboard-naver-openapi-bi img { display: block; width: 100%; height: auto; max-width: 100%; }
.dashboard-system-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.dashboard-system-grid > div { display: grid; grid-template-columns: 32px minmax(0,1fr); grid-template-rows: auto auto auto; column-gap: 8px; min-width: 0; min-height: 88px; padding: 13px; box-sizing: border-box; background: #fbfdff; border: 1px solid #dbe4f0; border-radius: 7px; }
.dashboard-system-grid > div > i { display: grid; grid-row: 1 / 4; width: 30px; height: 30px; place-items: center; color: #075cff; background: #eef5ff; border-radius: 8px; }
.dashboard-system-grid > div > i svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-system-grid span, .dashboard-system-grid strong, .dashboard-system-grid small { display: block; }
.dashboard-system-grid span { color: #17325d; font-size: 11px; font-weight: 900; white-space: nowrap; }
.dashboard-system-grid strong { margin-top: 7px; }
.dashboard-system-grid small { margin-top: 6px; overflow: hidden; color: #64748b; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }

.revision-final-bottom-grid { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,3fr); gap: 14px; margin-top: 0; align-items: stretch; }
.revision-final-bottom-grid > .revision-sanction-card, .revision-final-bottom-grid > .revision-report-card { min-width: 0; min-height: 154px; margin-top: 0; box-sizing: border-box; }
.revision-final-bottom-grid .revision-sanction-card { padding: 14px 16px; }
.revision-final-bottom-grid .revision-report-card { padding: 14px 16px; border-left: 5px solid #075cff; }
.revision-final-bottom-grid .revision-sanction-card > h3, .revision-final-bottom-grid .revision-report-card > header { display: flex; align-items: center; min-height: 42px; margin: -14px -16px 0; padding: 0 16px; box-sizing: border-box; border-bottom: 1px solid #e5eaf2; border-radius: 7px 7px 0 0; }
.revision-final-bottom-grid .revision-sanction-card > h3 { color: #9f2020; background: #fff1f2; border-bottom-color: #f4cdd2; }
.revision-final-bottom-grid .revision-report-card > header { background: #eef5ff; border-bottom-color: #d2e2fa; }
.revision-final-bottom-grid .revision-sanction-divider { height: 10px; margin: 0 0 10px; background: transparent; }
.revision-final-bottom-grid .revision-report-grid { grid-template-columns: minmax(0,1fr) minmax(300px,320px); gap: 10px 16px; margin-top: 12px; align-items: start; }
.revision-final-bottom-grid .revision-report-meta { grid-column: 1 / -1; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.revision-final-bottom-grid .revision-report-meta div { display: block; min-width: 0; }
.revision-final-bottom-grid .revision-report-meta dt, .revision-final-bottom-grid .revision-report-meta dd { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; }
.revision-final-bottom-grid .revision-report-meta dd { margin-top: 7px; font-size: 12px; }
.revision-final-bottom-grid .revision-report-summary { min-width: 0; }
.revision-final-bottom-grid .revision-report-summary ul { max-height: 58px; margin-top: 6px; overflow-y: auto; line-height: 1.5; white-space: normal; word-break: keep-all; overflow-wrap: anywhere; }
.revision-final-bottom-grid .revision-report-actions { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; justify-self: end; width: 100%; }
.revision-final-bottom-grid .revision-export-button { min-width: 0; min-height: 44px; padding: 0 12px; gap: 8px; font-size: 12px; white-space: nowrap; word-break: keep-all; }
.revision-final-bottom-grid .revision-export-icon, .revision-final-bottom-grid .revision-export-icon svg { width: 22px; height: 22px; }

body[data-card-density="compact"] .dashboard-final-kpi { min-height: 108px; padding: 15px 18px; }
body[data-card-density="compact"] .dashboard-panel, body[data-card-density="compact"] .revision-info-card, body[data-card-density="compact"] .revision-navigator-card, body[data-card-density="compact"] .revision-list-card { padding: 13px 14px; }
body[data-card-density="comfortable"] .dashboard-final-kpi { min-height: 148px; padding: 26px 28px; }
body[data-card-density="comfortable"] .dashboard-panel, body[data-card-density="comfortable"] .revision-info-card, body[data-card-density="comfortable"] .revision-navigator-card, body[data-card-density="comfortable"] .revision-list-card { padding: 24px 26px; }

@media (max-width: 1439px) {
    .dashboard-page { --dash-sidebar: 220px; }
    .dashboard-page .dashboard-header { padding: 12px 18px; }
    .dashboard-page .dashboard-content { padding: 12px 14px 16px; }
    .dashboard-page .dashboard-panel { padding: 15px 16px; }
    .dashboard-header-actions { gap: 8px; }
    .dashboard-final-kpis { gap: 9px; }
    .dashboard-final-kpi { min-height: 108px; padding: 14px 15px; }
    .dashboard-final-kpi > i { flex-basis: 45px; width: 45px; height: 45px; }
    .dashboard-final-kpi > div > strong { margin: 10px 0 6px; font-size: 26px; }
    .dashboard-quick-grid { gap: 7px; }
    .dashboard-quick-grid > a, .dashboard-quick-disabled { min-height: 95px; padding: 11px 9px; }
    .dashboard-she-links-grid { gap: 7px; }
    .dashboard-she-links-grid a { grid-template-columns: 30px minmax(0,1fr); min-height: 58px; padding: 8px 9px; }
    .dashboard-she-links-grid em { display: none; }
    .dashboard-she-link-icon { width: 28px; height: 28px; }
    .revision-final-bottom-grid .revision-report-grid { grid-template-columns: minmax(0,1fr) 170px; }
    .revision-final-bottom-grid .revision-report-meta { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .revision-final-bottom-grid .revision-report-actions { grid-template-columns: 1fr; gap: 8px; }
    .revision-final-bottom-grid .revision-export-button { min-width: 0; }
}
@media (max-width: 1099px) {
    .dashboard-page { --dash-sidebar: 206px; }
    .dashboard-final-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .dashboard-final-two-column, .revision-final-bottom-grid { grid-template-columns: 1fr; }
    .dashboard-header-actions { flex-wrap: wrap; justify-content: flex-end; }
}
@media (max-width: 760px) {
    .dashboard-page .dashboard-main { width: 100%; }
    .dashboard-final-kpis, .dashboard-final-two-column, .dashboard-quick-grid, .dashboard-system-grid { grid-template-columns: 1fr; }
    .dashboard-she-links-grid { grid-template-columns: 1fr; }
    .card-density-control { order: 5; }
    .revision-final-bottom-grid .revision-report-meta { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .revision-final-bottom-grid .revision-report-grid { grid-template-columns: 1fr; }
    .revision-final-bottom-grid .revision-report-actions { grid-column: 1; }
}

/* PHASE2 chemical regulation search UI. All selectors are page-scoped. */
.chemical-search-page { --chemical-accent: #6d3ed6; --chemical-soft: #f2ecff; }
.chemical-search-page.chemical-theme--orange { --chemical-accent: #e68108; --chemical-soft: #fff4df; }
.chemical-search-page.chemical-theme--red { --chemical-accent: #e02d2d; --chemical-soft: #fff0f0; }
.chemical-search-page.chemical-theme--blue { --chemical-accent: #246de8; --chemical-soft: #edf4ff; }
.chemical-search-page.chemical-theme--cyan { --chemical-accent: #159fc5; --chemical-soft: #eafaff; }
.chemical-search-page.chemical-theme--green { --chemical-accent: #1b9a50; --chemical-soft: #ebf9f0; }
.chemical-search-page .dashboard-header h1 #chemical-header-law-name { color: #0f172a; }
.chemical-search-topbar { min-height: 84px; }
.chemical-search-content { width: 100%; padding: 22px clamp(18px, 2vw, 34px) 32px; box-sizing: border-box; }
.chemical-breadcrumb { display: flex; align-items: center; gap: 8px; margin: 0 0 18px; color: #73829a; font-size: 12px; font-weight: 750; }
.chemical-breadcrumb a { color: #62738e; text-decoration: none; }
.chemical-breadcrumb a:hover, .chemical-breadcrumb a:focus-visible { color: #075cff; text-decoration: underline; }
.chemical-breadcrumb strong { color: #17325d; }
.chemical-home, .chemical-results { width: 100%; }
.chemical-page-heading h2, .chemical-results-heading h2 { margin: 0; color: #0f2145; font-size: 25px; font-weight: 950; letter-spacing: 0; }
.chemical-page-heading p { margin: 10px 0 0; color: #61708a; font-size: 14px; font-weight: 700; }
.chemical-law-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 26px; }
.chemical-law-card { --card-accent: #6d3ed6; --card-soft: #f2ecff; display: grid; grid-template-columns: 66px minmax(0,1fr); gap: 18px; min-height: 188px; padding: 25px 26px; box-sizing: border-box; color: #17325d; background: #fff; border: 1px solid #dbe4f0; border-radius: 8px; box-shadow: 0 8px 22px rgba(27,50,91,.055); text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.chemical-law-card--orange { --card-accent: #eb8a08; --card-soft: #fff3df; }
.chemical-law-card--red { --card-accent: #e52b2b; --card-soft: #ffeded; }
.chemical-law-card--blue { --card-accent: #286fe4; --card-soft: #edf4ff; }
.chemical-law-card--cyan { --card-accent: #1ba4c8; --card-soft: #e9faff; }
.chemical-law-card--green { --card-accent: #1c9a4f; --card-soft: #eaf9ef; }
.chemical-law-card:hover, .chemical-law-card:focus-visible { border-color: color-mix(in srgb, var(--card-accent) 45%, #dbe4f0); box-shadow: 0 13px 28px rgba(27,50,91,.11); transform: translateY(-2px); outline: 3px solid color-mix(in srgb, var(--card-accent) 15%, transparent); outline-offset: 2px; }
.chemical-law-icon { display: grid; width: 62px; height: 62px; place-items: center; color: var(--card-accent); background: var(--card-soft); border-radius: 8px; }
.chemical-law-icon svg { width: 39px; height: 39px; fill: none; stroke: currentColor; stroke-width: 2.1; stroke-linecap: round; stroke-linejoin: round; }
.chemical-law-card > span:last-child { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; }
.chemical-law-card strong { color: #14264a; font-size: 18px; font-weight: 950; line-height: 1.35; }
.chemical-law-card small { display: block; min-height: 48px; margin-top: 8px; color: #63728a; font-size: 12px; font-weight: 700; line-height: 1.55; word-break: keep-all; }
.chemical-law-card em { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; margin-top: auto; padding: 0 15px; color: #fff; background: var(--card-accent); border-radius: 6px; font-size: 12px; font-style: normal; font-weight: 900; }
.chemical-law-card em b { font-size: 16px; line-height: 1; }
.chemical-guide { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 13px; margin-top: 22px; padding: 19px 22px; color: #40516e; background: #f8fbff; border: 1px solid #dce6f2; border-radius: 8px; }
.chemical-guide > span { display: grid; width: 28px; height: 28px; place-items: center; color: #075cff; background: #e7f0ff; border-radius: 50%; font-family: Georgia, serif; font-size: 15px; font-weight: 900; }
.chemical-guide h3 { margin: 3px 0 8px; color: #17325d; font-size: 14px; font-weight: 950; }
.chemical-guide ul { display: grid; gap: 5px; margin: 0; padding-left: 17px; font-size: 11px; font-weight: 700; line-height: 1.5; }
.chemical-guide-body { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.chemical-guide-body > ul { flex: 1 1 480px; }
.chemical-integrated-link-card { display: grid; flex: 0 1 290px; grid-template-columns: minmax(0,1fr) auto; gap: 4px 12px; min-width: 220px; padding: 11px 13px; box-sizing: border-box; color: #17325d; background: #fff; border: 1px solid #dbe4f0; border-radius: 8px; text-decoration: none; }
.chemical-integrated-link-card strong { align-self: end; color: #6d3ed6; font-size: 12px; font-weight: 950; line-height: 1.35; }
.chemical-integrated-link-card small { grid-column: 1 / -1; color: #63728a; font-size: 10px; font-weight: 700; line-height: 1.45; word-break: keep-all; }
.chemical-integrated-link-card em { grid-column: 2; grid-row: 1; align-self: end; color: #6d3ed6; font-size: 10px; font-style: normal; font-weight: 900; white-space: nowrap; }
.chemical-integrated-link-card:hover, .chemical-integrated-link-card:focus-visible { background: #faf7ff; border-color: color-mix(in srgb, #6d3ed6 38%, #dbe4f0); outline: 2px solid color-mix(in srgb, #6d3ed6 12%, transparent); outline-offset: 1px; }
.chemical-results-heading { margin-bottom: 18px; }
.chemical-results-heading > div { display: flex; align-items: center; gap: 11px; }
.chemical-title-icon { display: grid; width: 38px; height: 38px; place-items: center; color: var(--chemical-accent); background: var(--chemical-soft); border-radius: 8px; }
.chemical-title-icon::before { content: ""; width: 17px; height: 21px; border: 2px solid currentColor; border-radius: 8px 8px 5px 5px; transform: rotate(18deg); }
.chemical-search-panel, .chemical-table-card { background: #fff; border: 1px solid #dbe4f0; border-radius: 8px; box-shadow: 0 7px 20px rgba(27,50,91,.045); }
.chemical-search-panel { padding: 17px 20px; }
.chemical-search-form { display: grid; grid-template-columns: auto minmax(260px,1fr) auto auto minmax(150px,auto) minmax(170px,auto); gap: 9px; align-items: end; }
.chemical-search-form > label:first-child { align-self: center; color: #41516d; font-size: 12px; font-weight: 900; white-space: nowrap; }
.chemical-query-wrap { position: relative; min-width: 0; }
.chemical-query-wrap > span { position: absolute; left: 13px; top: 50%; width: 12px; height: 12px; border: 2px solid #71809a; border-radius: 50%; transform: translateY(-58%); pointer-events: none; }
.chemical-query-wrap > span::after { content: ""; position: absolute; right: -5px; bottom: -3px; width: 6px; border-top: 2px solid #71809a; transform: rotate(45deg); }
.chemical-query-wrap input, .chemical-select-field select { width: 100%; height: 38px; box-sizing: border-box; color: #17325d; background: #fff; border: 1px solid #cad7e7; border-radius: 6px; font: inherit; font-size: 12px; outline: none; }
.chemical-query-wrap input { padding: 0 13px 0 38px; }
.chemical-query-wrap input:focus, .chemical-select-field select:focus { border-color: var(--chemical-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--chemical-accent) 14%, transparent); }
.chemical-select-field { display: grid; gap: 5px; min-width: 0; color: #61708a; font-size: 10px; font-weight: 850; }
.chemical-select-field select { padding: 0 28px 0 10px; }
.chemical-primary-button, .chemical-secondary-button, .chemical-detail-button { display: inline-flex; align-items: center; justify-content: center; height: 38px; padding: 0 15px; box-sizing: border-box; border-radius: 6px; font: inherit; font-size: 12px; font-weight: 900; white-space: nowrap; cursor: pointer; }
.chemical-primary-button { gap: 7px; color: #fff; background: var(--chemical-accent); border: 1px solid var(--chemical-accent); }
.chemical-primary-button > span { position: relative; width: 12px; height: 12px; border: 2px solid currentColor; border-radius: 50%; }
.chemical-primary-button > span::after { content: ""; position: absolute; right: -5px; bottom: -3px; width: 6px; border-top: 2px solid currentColor; transform: rotate(45deg); }
.chemical-secondary-button { color: #41516d; background: #fff; border: 1px solid #cad7e7; }
.chemical-primary-button:hover, .chemical-primary-button:focus-visible { filter: brightness(.94); outline: 3px solid color-mix(in srgb, var(--chemical-accent) 18%, transparent); outline-offset: 2px; }
.chemical-secondary-button:hover, .chemical-secondary-button:focus-visible { color: #075cff; border-color: #8eb5f6; background: #f4f8ff; outline: 2px solid rgba(7,92,255,.13); }
.chemical-primary-button:disabled, .chemical-secondary-button:disabled { opacity: .58; cursor: wait; }
.chemical-primary-button--loading > span { border-top-color: transparent; animation: chemical-spin .7s linear infinite; }
@keyframes chemical-spin { to { transform: rotate(360deg); } }
.chemical-summary-section { margin-top: 18px; }
.chemical-summary-section > header, .chemical-table-card > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.chemical-summary-section > header { margin-bottom: 9px; }
.chemical-summary-section h3, .chemical-table-card h3 { margin: 0; color: #17325d; font-size: 13px; font-weight: 950; }
.chemical-summary-section > header span, .chemical-table-card > header > span { color: #77859a; font-size: 10px; font-weight: 750; }
.chemical-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.chemical-summary-card { display: flex; align-items: center; justify-content: center; gap: 18px; min-height: 45px; padding: 0 16px; color: #6d3ed6; background: #f3edff; border: 1px solid transparent; border-radius: 7px; font: inherit; cursor: pointer; }
.chemical-summary-card span { font-size: 11px; font-weight: 900; white-space: nowrap; }
.chemical-summary-card strong { font-size: 13px; font-weight: 950; white-space: nowrap; }
.chemical-summary-card--non-target { color: #52627b; background: #f1f4f7; }
.chemical-summary-card--review { color: #c96100; background: #fff2e2; }
.chemical-summary-card--unregistered { color: #21804a; background: #edf8f1; }
.chemical-summary-card:hover, .chemical-summary-card:focus-visible, .chemical-summary-card--active { border-color: currentColor; outline: 2px solid color-mix(in srgb, currentColor 14%, transparent); outline-offset: 1px; }
.chemical-table-card { margin-top: 18px; padding: 18px 20px 14px; }
.chemical-table-card > header { padding-bottom: 11px; border-bottom: 1px solid #e6ebf2; }
.chemical-table-card h3 span { margin-left: 5px; color: #075cff; font-size: 11px; }
.chemical-table-scroll { overflow-x: auto; }
.chemical-results-table { width: 100%; min-width: 1020px; border-collapse: collapse; table-layout: auto; }
.chemical-results-table th, .chemical-results-table td { padding: 9px 8px; border-bottom: 1px solid #e8edf4; color: #263a5c; font-size: 11px; text-align: center; vertical-align: middle; }
.chemical-results-table th { color: #35517f; background: #f4f7fb; font-size: 10px; font-weight: 950; white-space: nowrap; }
.chemical-results-table td:nth-child(2), .chemical-results-table td:nth-child(3) { text-align: left; }
.chemical-results-table tbody tr:hover { background: #fafcff; }
.chemical-cell--cas, .chemical-cell--threshold { white-space: nowrap; }
.chemical-status-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; min-height: 24px; padding: 0 8px; box-sizing: border-box; color: #6d3ed6; background: #f0e9ff; border-radius: 999px; font-size: 10px; font-weight: 950; white-space: nowrap; }
.chemical-status-badge--non-target { color: #53637a; background: #edf1f5; }
.chemical-status-badge--review-required { color: #c15a00; background: #fff0df; }
.chemical-status-badge--not-registered { color: #277a49; background: #e9f7ee; }
.chemical-detail-button { height: 28px; padding: 0 10px; color: var(--chemical-accent); background: #fff; border: 1px solid color-mix(in srgb, var(--chemical-accent) 45%, #dbe4f0); }
.chemical-detail-button:hover, .chemical-detail-button:focus-visible { color: #fff; background: var(--chemical-accent); outline: 2px solid color-mix(in srgb, var(--chemical-accent) 15%, transparent); }
.chemical-feedback { margin: 12px 0 0; padding: 14px 16px; color: #53637a; background: #f7f9fc; border: 1px solid #dfe6ef; border-radius: 6px; font-size: 12px; font-weight: 750; text-align: center; }
.chemical-feedback--error { color: #a82828; background: #fff3f3; border-color: #f1c5c5; }
.chemical-feedback--loading { color: #335b96; background: #f1f6ff; border-color: #ceddf5; }
.chemical-pagination { display: flex; justify-content: flex-end; gap: 5px; margin-top: 14px; }
.chemical-pagination button { min-width: 30px; height: 30px; padding: 0 9px; color: #53637a; background: #fff; border: 1px solid #d7e0eb; border-radius: 5px; font: inherit; font-size: 11px; font-weight: 850; cursor: pointer; }
.chemical-pagination button:hover:not(:disabled), .chemical-pagination button:focus-visible, .chemical-pagination .chemical-page-button--active { color: #fff; background: var(--chemical-accent); border-color: var(--chemical-accent); outline: none; }
.chemical-pagination button:disabled { opacity: .45; cursor: default; }
.chemical-modal-open { overflow: hidden; }
.chemical-modal-overlay { position: fixed; z-index: 3000; inset: 0; display: grid; padding: 24px; place-items: center; background: rgba(4,17,38,.58); }
.chemical-modal-overlay[hidden] { display: none; }
.chemical-modal { width: min(820px,100%); max-height: min(760px,calc(100vh - 48px)); overflow: auto; background: #fff; border: 1px solid #d7e0eb; border-radius: 8px; box-shadow: 0 28px 70px rgba(4,17,38,.28); }
.chemical-modal > header { position: sticky; z-index: 1; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 22px; background: #fff; border-bottom: 1px solid #e3e9f1; }
.chemical-modal > header span { display: block; color: var(--chemical-accent); font-size: 10px; font-weight: 950; }
.chemical-modal > header h2 { margin: 5px 0 0; color: #17325d; font-size: 20px; font-weight: 950; letter-spacing: 0; }
.chemical-modal > header button { width: 34px; height: 34px; padding: 0; color: #53637a; background: #f5f7fa; border: 1px solid #dfe5ed; border-radius: 50%; font: inherit; font-size: 22px; cursor: pointer; }
.chemical-modal-body { padding: 20px 22px; }
.chemical-modal-status { margin-bottom: 14px; }
.chemical-modal-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin: 0; overflow: hidden; background: #dfe6ef; border: 1px solid #dfe6ef; border-radius: 6px; }
.chemical-modal-fields > div { min-width: 0; padding: 12px 14px; background: #fff; }
.chemical-modal-fields .chemical-modal-field--wide { grid-column: 1 / -1; }
.chemical-modal-fields dt { color: #62718a; font-size: 10px; font-weight: 900; }
.chemical-modal-fields dd { margin: 6px 0 0; color: #17325d; font-size: 12px; font-weight: 750; line-height: 1.55; overflow-wrap: anywhere; }
.chemical-review-note { margin-top: 16px; padding: 14px 16px; color: #95500b; background: #fff5e8; border: 1px solid #f1d3a8; border-radius: 6px; }
.chemical-review-note strong { font-size: 12px; font-weight: 950; }
.chemical-review-note p { margin: 7px 0 0; font-size: 11px; font-weight: 700; line-height: 1.55; }
.chemical-threshold-details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 16px; }
.chemical-threshold-details h3 { grid-column: 1 / -1; margin: 0 0 2px; color: #17325d; font-size: 13px; font-weight: 950; }
.chemical-threshold-details > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px 10px; align-items: center; min-width: 0; padding: 13px 14px; background: #fafcff; border: 1px solid #dfe6ef; border-radius: 6px; }
.chemical-threshold-details strong { min-width: 0; color: #344966; font-size: 11px; font-weight: 900; word-break: keep-all; }
.chemical-threshold-details span { padding: 3px 7px; border-radius: 999px; font-size: 9px; font-weight: 950; white-space: nowrap; }
.chemical-threshold-applicable { color: #24673e; background: #e8f6ed; }
.chemical-threshold-not-applicable { color: #66758a; background: #edf1f5; }
.chemical-threshold-details em { grid-column: 1 / -1; color: var(--chemical-accent); font-size: 13px; font-style: normal; font-weight: 950; white-space: nowrap; }
.chemical-threshold-details p { grid-column: 1 / -1; margin: 0; color: #66758a; font-size: 10px; font-weight: 700; line-height: 1.5; }
.chemical-modal > footer { display: flex; justify-content: flex-end; padding: 13px 22px 18px; }

/* PART HOME-WEB-CHEMICAL-INTEGRATED-REGULATION-MSDS-CHECK: 통합 규제 조회
   / MSDS 규제 확인 -- 새 디자인 없이 기존 chemical-* 컴포넌트(패널/버튼/
   피드백/표/배지/모달) 값만 재사용한다. 카드 크기·표 구조·모달 크기는
   변경하지 않는다. */
.chemical-msds-panel { margin-top: 18px; }
.chemical-msds-title { margin: 0; color: #17325d; font-size: 13px; font-weight: 950; }
.chemical-msds-desc { margin: 8px 0 14px; color: #61708a; font-size: 11px; font-weight: 700; line-height: 1.6; }
.chemical-msds-upload-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.chemical-msds-upload-row input[type="file"] { flex: 1 1 260px; min-width: 0; height: 38px; padding: 8px 10px; box-sizing: border-box; color: #17325d; background: #fff; border: 1px solid #cad7e7; border-radius: 6px; font: inherit; font-size: 11px; }
.chemical-msds-components-wrap { margin-top: 14px; }
.chemical-msds-components-hint { margin: 0 0 8px; color: #61708a; font-size: 11px; font-weight: 700; }
.chemical-msds-components-table { min-width: 0; }
.chemical-msds-inline-input { width: 100%; height: 30px; box-sizing: border-box; padding: 0 8px; color: #17325d; background: #fff; border: 1px solid #cad7e7; border-radius: 5px; font: inherit; font-size: 11px; }
.chemical-law-badge-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.chemical-law-badge-item { display: inline-flex; align-items: center; gap: 5px; }
.chemical-law-badge-item small { color: #61708a; font-size: 9px; font-weight: 800; white-space: nowrap; }
.chemical-modal-law-table { margin-top: 14px; min-width: 0; }
.chemical-modal-back-button { margin-bottom: 14px; }

/* PART HOME-WEB-CHEMICAL-INTEGRATED-REGULATION-MSDS-DETAIL-PARSER-FIX:
   상세 표시를 모달에서 결과 행 바로 아래 인라인 카드로 변경 -- 기존
   .chemical-modal-fields/.chemical-modal-status/.chemical-review-note 등
   모달 "내용" 클래스는 그대로 재사용하고, 카드/표/사이드바/폰트는
   전혀 건드리지 않는다. */
.chemical-inline-name-toggle { padding: 0; color: #17325d; background: none; border: none; font: inherit; font-size: 11px; font-weight: 800; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.chemical-inline-name-toggle:hover, .chemical-inline-name-toggle:focus-visible { color: var(--chemical-accent); }
.chemical-inline-detail-row td { padding: 0; border-bottom: 1px solid #e8edf4; }
.chemical-inline-detail { padding: 16px 18px; background: #fafcff; border-top: 1px dashed #dfe6ef; text-align: left; }
.chemical-inline-detail-title { margin: 0 0 10px; color: #17325d; font-size: 13px; font-weight: 950; }
.chemical-inline-detail .chemical-modal-fields { margin-bottom: 0; }
.chemical-regulation-matrix-scroll { max-width: 100%; overflow-x: auto; }
.chemical-regulation-matrix { min-width: 980px; table-layout: fixed; }
.chemical-regulation-matrix th:first-child { width: 82px; }
.chemical-regulation-matrix th, .chemical-regulation-matrix td { padding: 10px 8px; border-right: 1px solid #e8edf4; white-space: normal; overflow-wrap: anywhere; text-align: center; vertical-align: middle; }
.chemical-regulation-matrix th:last-child, .chemical-regulation-matrix td:last-child { border-right: 0; }
.chemical-regulation-matrix .chemical-regulation-matrix-heading, .chemical-regulation-matrix thead th { color: #35517f; background: #f4f7fb; font-weight: 900; }
.chemical-regulation-matrix-law { font-size: 11px; line-height: 1.45; }
.chemical-regulation-matrix-target { text-align: center; vertical-align: middle; }
.chemical-regulation-matrix-list { display: inline-flex; flex-direction: column; align-items: center; margin: 0; padding: 0; list-style: none; text-align: center; }
.chemical-regulation-matrix-list li { margin: 0 0 4px; line-height: 1.45; text-align: center; }
.chemical-regulation-matrix-list li:last-child { margin-bottom: 0; }
.chemical-regulation-matrix .chemical-inline-name-toggle { color: inherit; white-space: normal; overflow-wrap: anywhere; text-align: center; text-decoration: none; }
.chemical-regulation-matrix-law .chemical-inline-name-toggle { font-weight: 900; }
.chemical-regulation-matrix .chemical-inline-name-toggle:hover, .chemical-regulation-matrix .chemical-inline-name-toggle:focus-visible { color: var(--chemical-accent); text-decoration: underline; }

.chemical-msds-selected-file { color: #61708a; font-size: 11px; font-weight: 750; }
.chemical-msds-upload-row--dragover { outline: 2px dashed var(--chemical-accent); outline-offset: 4px; background: color-mix(in srgb, var(--chemical-accent) 6%, transparent); border-radius: 8px; }

@media (max-width: 1260px) {
    .chemical-law-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .chemical-search-form { grid-template-columns: auto minmax(220px,1fr) auto auto; }
    .chemical-select-field { margin-top: 4px; }
}
@media (max-width: 900px) {
    .chemical-search-page .app-sidebar { position: relative; flex-basis: 206px; width: 206px; }
    .chemical-law-grid { grid-template-columns: 1fr; }
    .chemical-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .chemical-search-form { grid-template-columns: 1fr 1fr; }
    .chemical-search-form > label:first-child, .chemical-query-wrap { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
    .chemical-search-page { display: block; overflow-x: visible; }
    .chemical-search-page .app-sidebar { position: relative; width: 100%; height: auto; }
    .chemical-search-page .dashboard-main { width: 100%; }
    .chemical-search-topbar { align-items: flex-start; gap: 12px; }
    .chemical-search-topbar .dashboard-header-actions { display: none; }
    .chemical-search-content { padding: 18px 12px 28px; }
    .chemical-law-card { grid-template-columns: 50px minmax(0,1fr); min-height: 172px; padding: 20px 18px; }
    .chemical-law-icon { width: 48px; height: 48px; }
    .chemical-law-icon svg { width: 31px; height: 31px; }
    .chemical-search-form, .chemical-summary-grid { grid-template-columns: 1fr; }
    .chemical-search-form > * { grid-column: 1; }
    .chemical-modal-overlay { padding: 10px; }
    .chemical-modal { max-height: calc(100vh - 20px); }
    .chemical-modal-fields { grid-template-columns: 1fr; }
    .chemical-modal-fields .chemical-modal-field--wide { grid-column: 1; }
    .chemical-threshold-details { grid-template-columns: 1fr; }
    .chemical-threshold-details h3 { grid-column: 1; }
}
