﻿.section {
    padding-block: var(--s12);
}
 :root {
     --brand: #1a6bff;
     --brand-600: #2563eb;
     --brand-700: #1d4ed8;
     --brand-800: #1e40af;
     --brand-900: #0c2254;
     --brand-50: #eff6ff;
     --brand-100: #dbeafe;
     --brand-200: #bfdbfe;
     --accent-teal: #1a6bff;
     --accent-purple: #1a6bff;
     --accent-green: #1a6bff;
     --accent-amber: #f59e0b;
     --accent-rose: #ef4444;
     --bg: #f8fafc;
     --bg-alt: #f1f5f9;
     --card: #fff;
     --border: #e2e8f0;
     --border-strong: #cbd5e1;
     --divider: #f1f5f9;
     --text: #0f172a;
     --text-2: #334155;
     --muted: #64748b;
     --dim: #94a3b8;
     --faint: #cbd5e1;
     --focus: #3b82f6;
     --font: "SUIT", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
     --font-icon: "Material Symbols Outlined";
     --fs-display: clamp(38px, 5.5vw, 64px);
     --fs-h1: 32px;
     --fs-h2: 26px;
     --fs-h3: 20px;
     --fs-h4: 17px;
     --fs-body: 16px;
     --fs-base: 16px;
     --fs-lg: 20px;
     --fs-sm: 14.5px;
     --fs-xs: 12px;
     --fs-2xs: 11px;
     --tracking-tight: -0.8px;
     --tracking-hero: -2px;
     --tracking-eyebrow: 2.5px;
     --s1: 4px;
     --s2: 8px;
     --s3: 12px;
     --s4: 16px;
     --s5: 20px;
     --s6: 24px;
     --s8: 32px;
     --s10: 40px;
     --s12: 48px;
     --s16: 64px;
     --s20: 80px;
     --r-xs: 4px;
     --r-sm: 8px;
     --r-md: 12px;
     --r-lg: 16px;
     --r-xl: 20px;
     --r-pill: 999px;
     --sh-1: 0 1px 2px rgba(15, 23, 42, 0.04);
     --sh-2: 0 4px 12px rgba(15, 23, 42, 0.06);
     --sh-3: 0 12px 32px rgba(15, 23, 42, 0.08);
     --sh-glow: 0 0 24px rgba(26, 107, 255, 0.25);
     --sh-glow-brand: 0 4px 14px rgba(37, 99, 235, 0.28), 0 0 22px rgba(26, 107, 255, 0.18);
     --ease: cubic-bezier(0.22, 1, 0.36, 1);
     --d-fast: 160ms;
     --d-base: 240ms;
     --d-slow: 420ms;
     --t-hover: 0.15s;
     --ease-hover: ease;
     --container: 1400px;
     --container-px: 48px;
     --gnb: 64px;
     --z-sticky: 100;
     --z-toast: 700;
     --nav-menu-fs: calc(14px * 1.1);
}
 *, *::before, *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
}
 html {
     scroll-behavior: smooth;
     -webkit-text-size-adjust: 100%;
}
 @media (prefers-reduced-motion: reduce) {
     html {
         scroll-behavior: auto !important;
    }
}
 body {
     font-family: var(--font);
     font-size: var(--fs-body);
     line-height: 1.6;
     color: var(--text);
     background: var(--bg);
     -webkit-font-smoothing: antialiased;
     text-rendering: optimizeLegibility;
}
 img, svg, video {
     max-width: 100%;
     display: block;
}
 button {
     font: inherit;
     color: inherit;
     background: none;
     border: none;
     cursor: pointer;
}
 * {
     transition: all 0.2s ease;
}
 a {
     color: inherit;
     text-decoration: none;
}
 :where(a, button, [tabindex]):focus-visible {
     outline: 2px solid var(--focus);
     outline-offset: 2px;
     border-radius: var(--r-xs);
}
 .skip {
     position: absolute;
     top: -100px;
     left: 16px;
     padding: 8px 16px;
     background: var(--brand);
     color: #fff;
     border-radius: var(--r-sm);
     z-index: var(--z-toast);
}
 .skip:focus {
     top: 16px;
}
 .icon {
     font-family: var(--font-icon);
     font-weight: normal;
     display: inline-block;
     line-height: 1;
     font-feature-settings: "liga";
     -webkit-font-smoothing: antialiased;
     font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
     user-select: none;
     vertical-align: middle;
}
 .icon--line {
     font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}
 .container {
     max-width: var(--container);
     margin-inline: auto;
     padding-inline: var(--container-px);
     width: 100%;
     box-sizing: border-box;
}
 .section--alt {
     background: var(--bg-alt);
}
 .nav {
     position: fixed;
     top: 0;
     left: 0;
     right: 0;
     z-index: var(--z-sticky);
     height: var(--gnb);
     display: flex;
     align-items: center;
     gap: var(--s8);
     padding-inline: var(--container-px);
     background: transparent;
     border-bottom: 1px solid transparent;
     transition: background var(--d-base), border-color var(--d-base), backdrop-filter var(--d-base);
}
 .nav.is-scrolled {
     background: rgba(255, 255, 255, 1);
     -webkit-backdrop-filter: blur(16px);
     backdrop-filter: blur(16px);
     border-bottom-color: var(--border);
}
 .nav__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
     flex-shrink: 0;
}
 .nav__mark {
     width: 36px;
     height: 36px;
     border-radius: var(--r-sm);
     background: linear-gradient(135deg, var(--brand), #3b82f6);
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: 0 0 16px rgba(26, 107, 255, 0.35);
}
 .nav__title {
     font-size: var(--fs-body);
     font-weight: 700;
     letter-spacing: -0.3px;
     line-height: 1;
     color: #fff;
     transition: color var(--d-base);
}
 .nav__subtitle {
     font-size: var(--fs-2xs);
     margin-top: 3px;
     line-height: 1;
     color: rgba(255, 255, 255, 0.7);
     transition: color var(--d-base);
}
 .nav.is-scrolled .nav__title {
     color: var(--text);
}
 .nav.is-scrolled .nav__subtitle {
     color: var(--muted);
}
 .nav__menu {
     display: flex;
     align-items: center;
     gap: var(--s1);
     margin-left: var(--s4);
}
 .nav__menu a {
     font-size: var(--nav-menu-fs, calc(14px * 1.1));
     font-weight: 500;
     color: rgba(255, 255, 255, 0.8);
     padding: 6px 14px;
     border-radius: var(--r-sm);
     transition: color var(--d-base), background var(--d-base);
}
 .nav__menu a:hover {
     color: #fff;
     background: rgba(255, 255, 255, 0.1);
}
 .nav.is-scrolled .nav__menu a {
     color: var(--muted);
}
 .nav.is-scrolled .nav__menu a:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .nav.is-scrolled .nav__menu a[aria-current="page"] {
     color: var(--brand);
     background: var(--brand-50);
     font-weight: 600;
}
 .nav__actions {
     margin-left: auto;
     display: flex;
     align-items: center;
     gap: var(--s2);
}
 .btn {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: var(--s2);
     font-family: var(--font);
     font-weight: 600;
     line-height: 1;
     padding: 10px 18px;
     border-radius: var(--r-md);
     border: 1px solid transparent;
     cursor: pointer;
     white-space: nowrap;
     transition: all var(--d-base) var(--ease);
     text-decoration: none;
}
 .btn--xs {
     font-size: 11px;
     padding: 4px 10px;
     border-radius: var(--r-sm);
     font-weight: 600;
     gap: 4px;
}
 .btn--sm {
     font-size: var(--fs-sm);
     padding: 7px 14px;
     border-radius: var(--r-sm);
}
 .btn--md {
     font-size: var(--fs-md);
     padding: 10px 18px;
     border-radius: var(--r-md);
}
 .btn--lg {
     font-size: 15px;
     padding: 13px 24px;
     font-weight: 700;
     border-radius: var(--r-md);
}
 .btn--xl {
     font-size: 16px;
     padding: 16px 32px;
     font-weight: 700;
}
 .btn--xxl {
     font-size: 18px;
     padding: 20px 40px;
     font-weight: 800;
     border-radius: var(--r-lg);
     gap: 10px;
}
 .btn--block { width: 100%; }
 .btn--icon {
     padding: 8px;
     gap: 0;
     min-width: 36px;
     min-height: 36px;
}
 .btn--icon.btn--sm { padding: 6px; min-width: 30px; min-height: 30px; }
 .btn--icon.btn--lg { padding: 10px; min-width: 44px; min-height: 44px; }
 .btn[disabled], .btn.is-disabled {
     opacity: 0.5;
     cursor: not-allowed;
     pointer-events: none;
}
 .btn--primary {
     color: #fff;
     background: linear-gradient(135deg, var(--brand), var(--brand-600));
     box-shadow: var(--sh-glow-brand);
}
 .btn--primary:hover {
     transform: translateY(-1px);
     box-shadow: 0 6px 20px rgba(29, 78, 216, 0.32), 0 0 36px rgba(26, 107, 255, 0.22);
}
 .btn--secondary {
     color: var(--text-2);
     background: var(--card);
     border-color: var(--border-strong);
     box-shadow: var(--sh-1);
}
 .btn--secondary:hover {
     border-color: var(--brand);
     color: var(--brand);
     box-shadow: var(--sh-2);
}
 .btn--outline {
     color: var(--brand);
     background: var(--brand-50);
     border-color: var(--brand-200);
}
 .btn--outline:hover {
     background: var(--brand-100);
     border-color: var(--brand);
}
 .btn--ghost {
     color: var(--muted);
     background: transparent;
     font-weight: 500;
}
 .btn--ghost:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .nav:not(.is-scrolled) .btn--ghost {
     color: rgba(255, 255, 255, 0.85);
}
 .nav:not(.is-scrolled) .btn--ghost:hover {
     color: #fff;
     background: rgba(255, 255, 255, 0.1);
}
 .nav:not(.is-scrolled) .btn--outline {
     color: #fff;
     background: rgba(255, 255, 255, 0.08);
     border-color: rgba(255, 255, 255, 0.25);
}
 .nav:not(.is-scrolled) .btn--outline:hover {
     background: rgba(255, 255, 255, 0.15);
     border-color: rgba(255, 255, 255, 0.5);
}
 .eyebrow {
     font-size: var(--fs-2xs);
     font-weight: 700;
     letter-spacing: var(--tracking-eyebrow);
     color: var(--brand);
     text-transform: uppercase;
}
 .u-grid-2 {
     display: grid;
     grid-template-columns: repeat(2, 1fr);
     gap: var(--s4);
}
 .u-grid-3 {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: var(--s4);
}
 .u-grid-4 {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: var(--s4);
}
 @media (max-width: 960px) {
     .u-grid-4, .u-grid-3 {
         grid-template-columns: repeat(2, 1fr);
    }
}
 @media (max-width: 600px) {
     :root {
         --container-px: 20px;
    }
     .u-grid-4, .u-grid-3, .u-grid-2 {
         grid-template-columns: 1fr;
    }
}
 .u-stack-sm {
     display: flex;
     flex-direction: column;
     gap: 3px;
}
 .u-cluster {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s2);
     align-items: center;
}
 .hero {
     position: relative;
     min-height: 39vh;
     display: flex;
     align-items: center;
     justify-content: center;
     text-align: center;
     padding: clamp(22.5px, 3.9375vh, 40.5px) var(--container-px) clamp(18px, 2.8125vh, 29.25px);
     overflow: hidden;
     isolation: isolate;
     color: #f8fafc;
}
 .hero__bg {
     position: absolute;
     inset: 0;
     z-index: -2;
     background: #0b1e3d;
}
 .hero__dots {
     position: absolute;
     inset: 0;
     z-index: -1;
     pointer-events: auto;
     width: 100%;
     height: 100%;
     display: block;
}
 .hero__glow {
     position: absolute;
     top: 8%;
     left: 50%;
     transform: translateX(-50%);
     width: min(720px, 90vw);
     height: min(360px, 45vh);
     background: none;
     z-index: -1;
     pointer-events: none;
}
 .hero__aurora {
     position: absolute;
     inset: 0;
     z-index: -1;
     pointer-events: none;
     overflow: hidden;
     filter: blur(40px);
     opacity: 0.85;
     animation: auroraFade 4s ease-in-out infinite;
}
 .hero__aurora span {
     position: absolute;
     border-radius: 50%;
     mix-blend-mode: screen;
     transition: none;
}
 .hero__aurora span:nth-child(1) {
     left: -10%;
     top: 20%;
     width: 46vw;
     height: 46vw;
     background: radial-gradient( circle, rgba(59, 130, 246, 0.38), transparent 68% );
     animation: auroraA 14s ease-in-out infinite;
}
 .hero__aurora span:nth-child(2) {
     right: -8%;
     top: 30%;
     width: 42vw;
     height: 42vw;
     background: radial-gradient( circle, rgba(59, 130, 246, 0.34), transparent 68% );
     animation: auroraB 16s ease-in-out infinite;
}
 .hero__aurora span:nth-child(3) {
     left: 28%;
     bottom: -14%;
     width: 52vw;
     height: 52vw;
     background: radial-gradient( circle, rgba(96, 165, 250, 0.32), transparent 68% );
     animation: auroraC 18s ease-in-out infinite;
}
 @keyframes auroraA {
     0%, 100% {
         transform: translate(0, 0) scale(1);
         opacity: 0.4;
    }
     33% {
         transform: translate(8vw, -4vh) scale(1.08);
         opacity: 0.52;
    }
     66% {
         transform: translate(3vw, 5vh) scale(1.04);
         opacity: 0.44;
    }
}
 @keyframes auroraB {
     0%, 100% {
         transform: translate(0, 0) scale(1);
         opacity: 0.38;
    }
     33% {
         transform: translate(-7vw, 3vh) scale(1.07);
         opacity: 0.5;
    }
     66% {
         transform: translate(-2vw, -5vh) scale(1.04);
         opacity: 0.42;
    }
}
 @keyframes auroraC {
     0%, 100% {
         transform: translate(-50%, 0) scale(1);
         opacity: 0.36;
    }
     33% {
         transform: translate(calc(-50% + 6vw), -4vh) scale(1.06);
         opacity: 0.48;
    }
     66% {
         transform: translate(calc(-50% - 4vw), 3vh) scale(1.03);
         opacity: 0.4;
    }
}
 @keyframes auroraFade {
     0%, 100% {
         opacity: 0.85;
    }
     50% {
         opacity: 0.25;
    }
}
 @media (prefers-reduced-motion: reduce) {
     .hero__aurora, .hero__aurora span {
         animation: none;
    }
}
 @keyframes pulse-soft {
     0%, 100% {
         opacity: 0.9;
         transform: scale(1);
    }
     50% {
         opacity: 0.55;
         transform: scale(0.92);
    }
}
 .hero__content {
     position: relative;
     z-index: 1;
     width: min(660px, 100%);
     max-width: min(660px, 94vw);
     margin-inline: auto;
     padding: clamp(21px, 3.75vw, 39px) clamp(22px, 5.5vw, 64px);
}
 .hero__eyebrow {
     display: inline-flex;
     align-items: center;
     gap: var(--s2);
     font-size: var(--fs-2xs);
     font-weight: 600;
     letter-spacing: var(--tracking-eyebrow);
     color: #93c5fd;
     background: rgba(59, 130, 246, 0.1);
     border: 1px solid rgba(59, 130, 246, 0.28);
     padding: 4px 12px;
     border-radius: var(--r-pill);
     margin-bottom: var(--s5);
     text-transform: uppercase;
}
 .hero__dot {
     width: 5px;
     height: 5px;
     border-radius: 50%;
     background: #93c5fd;
     box-shadow: 0 0 5px #93c5fd;
     animation: pulse-soft 10s ease-in-out infinite;
}
 .hero__title {
     font-size: clamp(20px, 2.75vw, 34px);
     font-weight: 800;
     line-height: 1.15;
     letter-spacing: calc(var(--tracking-hero) * 0.5);
     color: #fff;
     margin-bottom: var(--s4);
}
 .hero__title-br {
     display: none;
}
 @media (max-width: 640px) {
     .hero__title-br {
         display: inline;
    }
}
 @media (max-width: 767px) {
     .hero__title {
         line-height: calc(1.15 * 1.15);
    }
}
 .hero__title em {
     color: #93bcff;
     font-style: normal;
}
 .hero__desc {
     font-size: clamp(14px, 1.35vw, 16px);
     line-height: 1.65;
     color: rgba(241, 245, 249, 0.78);
     margin-bottom: var(--s6);
}
 .hero__actions {
     display: flex;
     gap: var(--s3);
     justify-content: center;
     flex-wrap: wrap;
}
 .hero__alt-landing {
     flex: 1 1 100%;
     text-align: center;
     margin-top: var(--s1);
     font-size: 13px;
     font-weight: 600;
     color: rgba(255, 255, 255, 0.78);
     text-decoration: underline;
     text-underline-offset: 3px;
}
 .hero__alt-landing:hover {
     color: #fff;
}
 .hero .btn--xl {
     padding: 12px 22px;
     font-size: var(--fs-body);
     min-height: 44px;
}
 .hero .btn.btn--secondary.btn--hero-light {
     background: #fff;
     color: var(--text);
     border-color: var(--border-strong);
     box-shadow: 0 2px 14px rgba(15, 23, 42, 0.1);
     text-shadow: none;
}
 .hero .btn.btn--secondary.btn--hero-light:hover {
     color: var(--brand);
     background: var(--brand-50);
     border-color: var(--brand-200);
     box-shadow: var(--sh-2);
}
 .sh {
     margin-bottom: var(--s10);
     text-align: center;
}
 .sh__tag {
     display: inline-block;
     margin-bottom: var(--s2);
}
 .sh__title {
     font-size: 32px;
     font-weight: 800;
     letter-spacing: var(--tracking-tight);
     color: var(--text);
     margin-bottom: var(--s3);
}
 .sh__desc {
     font-size: 16px;
     color: var(--muted);
     line-height: 1.75;
     max-width: 640px;
     margin: 0 auto;
}
 .svc {
     position: relative;
     display: flex;
     flex-direction: column;
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-xl);
     padding: var(--s6);
     perspective: 880px;
     transition: transform var(--d-slow) var(--ease-transform), border-color var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease);
     text-decoration: none;
     color: inherit;
     overflow: hidden;
}
 .svc::before {
     content: "";
     position: absolute;
     top: 0;
     left: 0;
     right: 0;
     height: 3px;
     background: var(--brand);
     opacity: 0.8;
}
 .svc--teal::before {
     background: var(--accent-teal);
}
 .svc--purple::before {
     background: var(--accent-purple);
}
 .svc--green::before {
     background: var(--accent-green);
}
 .svc:hover {
     transform: translateY(-1px);
     border-color: var(--border-strong);
     box-shadow: var(--sh-3);
}
 @media (hover: hover) {
     @media (prefers-reduced-motion: no-preference) {
         .svc:hover .svc__icon {
             transform: translateZ(0) rotateY(360deg);
        }
    }
     @media (prefers-reduced-motion: reduce) {
         .svc:hover .svc__icon {
             transform: translateZ(0) scale(1.03) translateY(-1px);
        }
    }
}
 .svc__eyebrow {
     font-size: var(--fs-2xs);
     font-weight: 700;
     letter-spacing: var(--tracking-eyebrow);
     color: var(--dim);
     text-transform: uppercase;
     margin-bottom: var(--s5);
}
 .svc__icon {
     width: 52px;
     height: 52px;
     border-radius: var(--r-md);
     display: inline-flex;
     align-items: center;
     justify-content: center;
     font-size: 28px;
     margin-bottom: var(--s5);
     background: var(--brand-50);
     color: var(--brand);
     transform: translateZ(0) rotateY(0deg);
     transform-style: preserve-3d;
     backface-visibility: hidden;
     transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1), background var(--d-base) var(--ease), color var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease);
}
 .svc--teal .svc__icon, .svc--purple .svc__icon, .svc--green .svc__icon {
     background: var(--brand-50);
     color: var(--brand);
}
 .svc__title {
     font-size: var(--fs-h4);
     font-weight: 700;
     color: var(--text);
     line-height: 1.4;
     margin-bottom: var(--s2);
}
 .svc__desc {
     font-size: var(--fs-sm);
     color: var(--muted);
     line-height: 1.75;
     flex: 1;
}
 .svc__footer {
     display: flex;
     align-items: center;
     justify-content: space-between;
     margin-top: var(--s6);
     padding-top: var(--s4);
     border-top: 1px solid var(--divider);
}
 .badge {
     display: inline-flex;
     align-items: center;
     gap: var(--s1);
     font-size: var(--fs-2xs);
     font-weight: 600;
     padding: 3px 10px;
     border-radius: var(--r-pill);
     color: var(--brand);
     background: var(--brand-50);
     border: 1px solid var(--brand-100);
}
 .badge--teal, .badge--purple, .badge--green {
     color: var(--brand);
     background: var(--brand-50);
     border-color: var(--brand-200);
}
 .svc__arrow {
     color: var(--faint);
     transition: color var(--d-base) var(--ease), transform var(--d-slow) var(--ease-transform);
     font-size: 18px;
}
 .svc:hover .svc__arrow {
     color: var(--brand);
     transform: translateX(2px);
}
 html[data-page="portal_landing"] #services .svc-carousel__track > .svc {
     isolation: isolate;
}
 html[data-page="portal_landing"] #services .svc-carousel__track > .svc::before {
     z-index: 2;
}
 html[data-page="portal_landing"] #services .svc-carousel__track > .svc > *:not(.svc__bg-icon) {
     position: relative;
     z-index: 1;
}
 html[data-page="portal_landing"] #services .svc-carousel__track > .svc > .svc__bg-icon {
     position: absolute;
     z-index: 0;
     top: 15px;
     right: 12px;
     left: auto;
     margin: 0;
     line-height: 1;
     font-size: clamp(64px, 11vw, 96px);
     opacity: 0.1;
     color: var(--brand);
     pointer-events: none;
     font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
     transition: opacity 0.25s var(--ease), color 0.25s var(--ease);
}
 html[data-page="portal_landing"] #services .svc-carousel__track > .svc:hover > .svc__bg-icon, html[data-page="portal_landing"] #services .svc-carousel__track > .svc:focus-visible > .svc__bg-icon {
     opacity: 0.25;
     color: #fff;
}
 .feat {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     padding: var(--s6);
     perspective: 880px;
     transition: background var(--d-base) var(--ease), border-color var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease), transform var(--d-slow) var(--ease-transform);
}
 .feat__icon {
     width: 44px;
     height: 44px;
     border-radius: var(--r-md);
     background: var(--brand-50);
     color: var(--brand);
     display: inline-flex;
     align-items: center;
     justify-content: center;
     font-size: 24px;
     margin-bottom: var(--s4);
     transform: translateZ(0) rotateY(0deg);
     transform-style: preserve-3d;
     backface-visibility: hidden;
     transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1), background var(--d-base) var(--ease), color var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease);
}
 .feat__title {
     font-size: var(--fs-h4);
     font-weight: 700;
     color: var(--text);
     margin-bottom: var(--s2);
     transition: color var(--d-base) var(--ease);
}
 .feat__desc {
     font-size: var(--fs-sm);
     color: var(--muted);
     line-height: 1.75;
     transition: color var(--d-base) var(--ease);
}
 #about .feat {
     min-width: 0;
}
 #about .feat__desc {
     white-space: nowrap;
     line-height: 1.45;
     font-size: clamp(11px, 1.15vw, 13px);
     letter-spacing: -0.015em;
}
 @media (max-width: 600px) {
     #about .feat__desc {
         white-space: normal;
         font-size: var(--fs-sm);
         letter-spacing: 0;
    }
}
 @media (max-width: 767px) {
     html[data-page="portal_landing"] #about .feat-carousel {
         margin-inline: calc(50% - 50vw);
         padding-inline: var(--container-px);
         max-width: none;
    }
     html[data-page="portal_landing"] #about .feat-carousel__track.u-grid-3 {
         display: flex !important;
         flex-direction: row;
         flex-wrap: nowrap;
         align-items: stretch;
         gap: var(--s4);
         overflow-x: auto;
         overflow-y: hidden;
         -webkit-overflow-scrolling: touch;
         overscroll-behavior-x: contain;
         scroll-snap-type: x mandatory;
         scroll-padding-inline: var(--container-px);
         padding-block: var(--s2) 12px;
         scrollbar-width: thin;
    }
     html[data-page="portal_landing"] #about .feat-carousel__track .feat {
         flex: 0 0 min(100%, calc(100vw - (var(--container-px) * 2)));
         scroll-snap-align: start;
         scroll-snap-stop: always;
         max-width: 400px;
    }
     html[data-page="portal_landing"] #about .feat-carousel__track::after {
         content: "";
         flex: 0 0 max(0px, calc(var(--container-px) - var(--s4)));
    }
}
 @media (max-width: 767px) {
     html[data-page="portal_landing"] #services .svc-carousel {
         margin-inline: calc(50% - 50vw);
         padding-inline: var(--container-px);
         max-width: none;
    }
     html[data-page="portal_landing"] #services .svc-carousel__track.u-grid-4 {
         display: flex !important;
         flex-direction: row;
         flex-wrap: nowrap;
         align-items: stretch;
         gap: var(--s4);
         overflow-x: auto;
         overflow-y: hidden;
         -webkit-overflow-scrolling: touch;
         overscroll-behavior-x: contain;
         scroll-snap-type: x mandatory;
         scroll-padding-inline: var(--container-px);
         padding-block: var(--s2) 12px;
         scrollbar-width: thin;
    }
     html[data-page="portal_landing"] #services .svc-carousel__track .svc {
         flex: 0 0 min(100%, calc(100vw - (var(--container-px) * 2)));
         scroll-snap-align: start;
         scroll-snap-stop: always;
         min-width: 0;
         max-width: 520px;
    }
     html[data-page="portal_landing"] #services .svc-carousel__track::after {
         content: "";
         flex: 0 0 max(0px, calc(var(--container-px) - var(--s4)));
    }
}
 @media (hover: hover) {
     .feat:hover {
         background: linear-gradient( 155deg, var(--brand-700, #1d4ed8) 0%, var(--brand, #2563eb) 55%, #3b82f6 100% );
         border-color: rgba(255, 255, 255, 0.25);
         box-shadow: 0 16px 40px rgba(26, 107, 255, 0.35);
         transform: translateY(-1px);
    }
     @media (prefers-reduced-motion: no-preference) {
         .feat:hover .feat__icon {
             transform: translateZ(0) rotateY(360deg);
        }
    }
     .feat:hover .feat__icon {
         background: linear-gradient(145deg, var(--brand), var(--brand-600));
         color: #fff;
         box-shadow: 0 6px 20px rgba(37, 99, 235, 0.45);
    }
     .feat:hover .feat__title {
         color: #fff;
    }
     .feat:hover .feat__desc {
         color: rgba(255, 255, 255, 0.88);
    }
}
 @media (prefers-reduced-motion: reduce) {
     .feat, .feat__icon, .feat__title, .feat__desc {
         transition-duration: 0.01ms !important;
    }
     @media (hover: hover) {
         .feat:hover {
             transform: none;
        }
    }
}
 .chip {
     display: inline-flex;
     align-items: center;
     gap: var(--s2);
     font-size: var(--fs-sm);
     font-weight: 500;
     color: var(--text-2);
     background: var(--card);
     border: 1px solid var(--border);
     padding: 8px 16px;
     border-radius: var(--r-pill);
     transition: all var(--d-base);
}
 .chip:hover {
     color: var(--brand);
     background: var(--brand-50);
     border-color: var(--brand-200);
}
 .chip-strip {
     padding-block: var(--s8);
     border-top: 1px solid var(--border);
     background: var(--bg-alt);
}
 .chip-strip__inner {
     max-width: var(--container);
     margin: 0 auto;
     display: flex;
     flex-direction: column;
     gap: var(--s3);
     align-items: flex-start;
}
 .chip-strip__label {
     display: flex;
     align-items: center;
     gap: var(--s2);
     font-size: var(--fs-xs);
     color: var(--dim);
     margin: 0;
     line-height: 1.35;
}
 .footer {
     background: var(--card);
     border-top: 1px solid var(--border);
     padding: 48px var(--container-px) 32px;
}
 .footer__top {
     max-width: var(--container);
     margin: 0 auto;
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
     padding-bottom: 28px;
     border-bottom: 1px solid var(--divider);
     gap: var(--s6);
     flex-wrap: wrap;
}
 .footer__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
}
 .footer__brand-main {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text-2);
}
 .footer__brand-sub {
     font-size: var(--fs-xs);
     color: var(--dim);
     margin-top: 3px;
}
 .footer__links {
     display: flex;
     gap: var(--s5);
}
 .footer__links a {
     font-size: var(--fs-xs);
     color: var(--muted);
     transition: color var(--d-base);
}
 .footer__links a:hover {
     color: var(--brand);
}
 .footer__copy {
     max-width: var(--container);
     margin: var(--s6) auto 0;
     font-size: var(--fs-xs);
     color: var(--dim);
     display: flex;
     justify-content: space-between;
     gap: var(--s4);
     flex-wrap: wrap;
}
 [data-reveal] {
     opacity: 0;
     transform: translateY(18px);
     transition: opacity 720ms var(--ease), transform 720ms var(--ease);
}
 [data-reveal].is-in {
     opacity: 1;
     transform: translateY(0);
}
 [data-reveal][data-delay="1"] {
     transition-delay: 80ms;
}
 [data-reveal][data-delay="2"] {
     transition-delay: 160ms;
}
 [data-reveal][data-delay="3"] {
     transition-delay: 240ms;
}
 @media (prefers-reduced-motion: reduce) {
     [data-reveal] {
         opacity: 1;
         transform: none;
         transition: none;
    }
}
 :root {
     --brand: #1a6bff;
     --brand-600: #2563eb;
     --brand-700: #1d4ed8;
     --brand-800: #1e40af;
     --brand-900: #0c2254;
     --brand-50: #eff6ff;
     --brand-100: #dbeafe;
     --brand-200: #bfdbfe;
     --accent-teal: #1a6bff;
     --accent-purple: #1a6bff;
     --accent-green: #1a6bff;
     --accent-amber: #f59e0b;
     --bg: #f8fafc;
     --bg-alt: #f1f5f9;
     --card: #fff;
     --border: #e2e8f0;
     --border-strong: #cbd5e1;
     --divider: #f1f5f9;
     --text: #0f172a;
     --text-2: #334155;
     --muted: #64748b;
     --dim: #94a3b8;
     --faint: #cbd5e1;
     --focus: #3b82f6;
     --font: "SUIT", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
     --font-icon: "Material Symbols Outlined";
     --fs-h2: 26px;
     --fs-h3: 20px;
     --fs-h4: 17px;
     --fs-body: 16px;
     --fs-base: 16px;
     --fs-lg: 20px;
     --fs-sm: 14.5px;
     --fs-xs: 12px;
     --fs-2xs: 11px;
     --tracking-tight: -0.8px;
     --tracking-eyebrow: 2.5px;
     --s1: 4px;
     --s2: 8px;
     --s3: 12px;
     --s4: 16px;
     --s5: 20px;
     --s6: 24px;
     --s8: 32px;
     --s10: 40px;
     --s12: 48px;
     --s16: 64px;
     --s20: 80px;
     --r-xs: 4px;
     --r-sm: 8px;
     --r-md: 12px;
     --r-lg: 16px;
     --r-xl: 20px;
     --r-pill: 999px;
     --sh-1: 0 1px 2px rgba(15, 23, 42, 0.04);
     --sh-2: 0 4px 12px rgba(15, 23, 42, 0.06);
     --sh-3: 0 12px 32px rgba(15, 23, 42, 0.08);
     --sh-glow: 0 0 24px rgba(26, 107, 255, 0.25);
     --ease: cubic-bezier(0.22, 1, 0.36, 1);
     --d-base: 240ms;
     --container: 1400px;
     --container-px: 48px;
     --gnb: 64px;
     --z-sticky: 100;
     --z-toast: 700;
     --accent: var(--brand);
     --accent-bg: var(--brand-50);
     --accent-border: var(--brand-200);
}
 *, *::before, *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
}
 html {
     scroll-behavior: smooth;
     -webkit-text-size-adjust: 100%;
}
 body {
     font-family: var(--font);
     font-size: var(--fs-body);
     line-height: 1.6;
     color: var(--text);
     background: var(--bg);
     -webkit-font-smoothing: antialiased;
}
 button {
     font: inherit;
     color: inherit;
     background: none;
     border: none;
     cursor: pointer;
}
 a {
     color: inherit;
     text-decoration: none;
}
 :where(a, button, [tabindex]):focus-visible {
     outline: 2px solid var(--focus);
     outline-offset: 2px;
     border-radius: var(--r-xs);
}
 .skip {
     position: absolute;
     top: -100px;
     left: 16px;
     padding: 8px 16px;
     background: var(--brand);
     color: #fff;
     border-radius: var(--r-sm);
     z-index: var(--z-toast);
}
 .skip:focus {
     top: 16px;
}
 .icon {
     font-family: var(--font-icon);
     font-weight: normal;
     display: inline-block;
     line-height: 1;
     font-feature-settings: "liga";
     -webkit-font-smoothing: antialiased;
     font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
     user-select: none;
     vertical-align: middle;
}
 .container {
     max-width: var(--container);
     margin-inline: auto;
     padding-inline: var(--container-px);
     width: 100%;
     box-sizing: border-box;
}
 .u-stack-sm {
     display: flex;
     flex-direction: column;
     gap: 3px;
}
 .u-cluster {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s2);
     align-items: center;
}
 .u-grid-2 {
     display: grid;
     grid-template-columns: repeat(2, 1fr);
     gap: var(--s4);
}
 .u-grid-3 {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: var(--s4);
}
 .u-grid-4 {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: var(--s4);
}
 @media (max-width: 960px) {
     .u-grid-4, .u-grid-3 {
         grid-template-columns: repeat(2, 1fr);
    }
}
 @media (max-width: 600px) {
     :root {
         --container-px: 20px;
    }
     .u-grid-4, .u-grid-3, .u-grid-2 {
         grid-template-columns: 1fr;
    }
}
 .eyebrow {
     font-size: var(--fs-2xs);
     font-weight: 700;
     letter-spacing: var(--tracking-eyebrow);
     color: var(--accent);
     text-transform: uppercase;
}
 .btn {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: var(--s2);
     font-family: var(--font);
     font-weight: 600;
     line-height: 1;
     padding: 10px 18px;
     border-radius: var(--r-md);
     border: 1px solid transparent;
     cursor: pointer;
     white-space: nowrap;
     transition: all var(--d-base) var(--ease);
     text-decoration: none;
}
 .btn--xs {
     font-size: 11px;
     padding: 4px 10px;
     border-radius: var(--r-sm);
     font-weight: 600;
     gap: 4px;
}
 .btn--sm {
     font-size: var(--fs-sm);
     padding: 7px 14px;
     border-radius: var(--r-sm);
}
 .btn--md {
     font-size: var(--fs-md);
     padding: 10px 18px;
     border-radius: var(--r-md);
}
 .btn--lg {
     font-size: 15px;
     padding: 13px 24px;
     font-weight: 700;
     border-radius: var(--r-md);
}
 .btn--xl {
     font-size: 16px;
     padding: 16px 32px;
     font-weight: 700;
}
 .btn--xxl {
     font-size: 18px;
     padding: 20px 40px;
     font-weight: 800;
     border-radius: var(--r-lg);
     gap: 10px;
}
 .btn--block { width: 100%; }
 .btn--icon {
     padding: 8px;
     gap: 0;
     min-width: 36px;
     min-height: 36px;
}
 .btn--icon.btn--sm { padding: 6px; min-width: 30px; min-height: 30px; }
 .btn--icon.btn--lg { padding: 10px; min-width: 44px; min-height: 44px; }
 .btn[disabled], .btn.is-disabled {
     opacity: 0.5;
     cursor: not-allowed;
     pointer-events: none;
}
 .btn--primary {
     color: #fff;
     background: linear-gradient(135deg, var(--brand), var(--brand-600));
     box-shadow: var(--sh-glow-brand);
}
 .btn--primary:hover {
     transform: translateY(-1px);
     box-shadow: 0 6px 20px rgba(29, 78, 216, 0.32), 0 0 36px rgba(26, 107, 255, 0.22);
}
 .btn--secondary {
     color: var(--text-2);
     background: var(--card);
     border-color: var(--border-strong);
     box-shadow: var(--sh-1);
}
 .btn--secondary:hover {
     border-color: var(--brand);
     color: var(--brand);
     box-shadow: var(--sh-2);
}
 .btn--outline {
     color: var(--brand);
     background: var(--brand-50);
     border-color: var(--brand-200);
}
 .btn--outline:hover {
     background: var(--brand-100);
}
 .btn--ghost {
     color: var(--muted);
     background: transparent;
     font-weight: 500;
}
 .btn--ghost:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .nav {
     position: sticky;
     top: 0;
     z-index: var(--z-sticky);
     height: var(--gnb);
     display: flex;
     align-items: center;
     gap: var(--s8);
     padding-inline: var(--container-px);
     background: rgba(255, 255, 255, 1);
     -webkit-backdrop-filter: blur(16px);
     backdrop-filter: blur(16px);
     border-bottom: 1px solid var(--border);
}
 .nav__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
     flex-shrink: 0;
}
 .nav__mark {
     width: 36px;
     height: 36px;
     border-radius: var(--r-sm);
     background: linear-gradient(135deg, var(--brand), #3b82f6);
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: 0 0 16px rgba(26, 107, 255, 0.25);
}
 .nav__title {
     font-size: var(--fs-body);
     font-weight: 700;
     letter-spacing: -0.3px;
     line-height: 1;
     color: var(--text);
}
 .nav__subtitle {
     font-size: var(--fs-2xs);
     margin-top: 3px;
     line-height: 1;
     color: var(--muted);
}
 .nav__menu {
     display: flex;
     align-items: center;
     gap: var(--s1);
     margin-left: var(--s4);
}
 .nav__menu a {
     font-size: var(--nav-menu-fs, calc(14px * 1.1));
     font-weight: 500;
     color: var(--muted);
     padding: 6px 14px;
     border-radius: var(--r-sm);
     transition: color var(--d-base), background var(--d-base);
}
 .nav__menu a:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .nav__menu a[aria-current="page"] {
     color: var(--accent);
     background: var(--accent-bg);
     font-weight: 600;
}
 .nav__actions {
     margin-left: auto;
     display: flex;
     align-items: center;
     gap: var(--s2);
}
 .page-hero {
     padding: var(--s6) 0 var(--s3);
     background: linear-gradient(180deg, var(--bg-alt) 0%, var(--bg) 100%);
     border-bottom: 1px solid var(--border);
}
 .page-hero__title {
     font-size: clamp(22px, 2.8vw, 28px);
     font-weight: 800;
     line-height: 1.25;
     letter-spacing: var(--tracking-tight);
     color: var(--text);
     margin: 0 0 var(--s2);
}
 .page-hero__desc {
     font-size: var(--fs-sm);
     color: var(--muted);
     line-height: 1.45;
     margin: 0;
     max-width: 100%;
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
}
 .step-head {
     display: flex;
     align-items: flex-end;
     justify-content: space-between;
     gap: var(--s4);
     margin-bottom: var(--s8);
     flex-wrap: wrap;
}
 .step-head__picked-type {
     margin: 0 0 var(--s5);
     font-size: clamp(18px, 2.4vw, 24px);
     font-weight: 800;
     color: var(--text);
     line-height: 1.35;
     letter-spacing: var(--tracking-tight);
}
 .step-head__picked-type strong {
     font-weight: 800;
     color: var(--brand);
}
 .step-head__title {
     font-size: var(--fs-h2);
     font-weight: 800;
     color: var(--text);
     margin: var(--s2) 0 var(--s1);
     letter-spacing: var(--tracking-tight);
}
 .step-head__desc {
     color: var(--muted);
     font-size: var(--fs-sm);
}
 .radio-card {
     position: relative;
     display: flex;
     flex-direction: column;
     min-height: clamp(128px, 16.6vw, 158px);
     padding: var(--s6);
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     cursor: pointer;
     perspective: 880px;
     transition: border-color var(--d-base), transform var(--d-base), box-shadow var(--d-base);
}
 .radio-card:hover {
     border-color: var(--border-strong);
     transform: translateY(-1px);
     box-shadow: var(--sh-2);
}
 .radio-card input {
     position: absolute;
     opacity: 0;
     pointer-events: none;
}
 .radio-card__indicator {
     position: absolute;
     top: var(--s5);
     right: var(--s5);
     width: 20px;
     height: 20px;
     border: 2px solid var(--border-strong);
     border-radius: 50%;
     transition: all var(--d-base);
     background: #fff;
}
 .radio-card input:checked ~ .radio-card__indicator {
     border-color: var(--accent);
     background: var(--accent);
     box-shadow: inset 0 0 0 4px #fff;
}
 .radio-card:has(input:checked) {
     border-color: var(--accent);
     background: var(--accent-bg);
     box-shadow: 0 0 0 3px rgba(26, 107, 255, 0.08), var(--sh-2);
}
 .radio-card:has(input:checked) .radio-card__icon {
     background: var(--accent);
     color: #fff;
}
 .radio-card__icon {
     width: 44px;
     height: 44px;
     border-radius: var(--r-md);
     background: var(--accent-bg);
     color: var(--accent);
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 24px;
     margin-bottom: var(--s4);
     transform: translateZ(0) rotateY(0deg);
     transform-style: preserve-3d;
     backface-visibility: hidden;
     transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1), background var(--d-base), color var(--d-base);
}
 @media (hover: hover) {
     @media (prefers-reduced-motion: no-preference) {
         .radio-card:hover:not(:has(input:checked)) .radio-card__icon {
             transform: translateZ(0) rotateY(360deg);
        }
    }
}
 .radio-card__title {
     display: block;
     font-size: var(--fs-h4);
     font-weight: 700;
     color: var(--text);
     margin-bottom: var(--s1);
}
 .radio-card__desc {
     display: block;
     flex: 1 1 auto;
     min-height: 0;
     font-size: var(--fs-sm);
     color: var(--muted);
     line-height: 1.75;
}
 .action-row {
     display: flex;
     justify-content: space-between;
     align-items: center;
     gap: var(--s4);
     flex-wrap: wrap;
     margin-top: var(--s10);
     padding-top: var(--s6);
     border-top: 1px solid var(--border);
}
 .action-row__end {
     display: flex;
     align-items: center;
     gap: var(--s3);
     flex-wrap: wrap;
     margin-left: auto;
}
 #btn-start-verify.btn--primary.is-muted {
     opacity: 0.58;
     filter: saturate(0.9);
     box-shadow: none;
     cursor: pointer;
}
 #btn-start-verify.btn--primary.is-muted:hover {
     opacity: 0.68;
     transform: none;
     box-shadow: 0 4px 14px rgba(26, 107, 255, 0.22);
}
 .sel-meta {
     display: flex;
     align-items: center;
     gap: var(--s3);
}
.sel-meta__label {
    font-size: calc(var(--fs-xs) * 1.15);
    color: var(--dim);
}
.sel-meta__value {
    font-size: calc(var(--fs-sm) * 1.15);
    font-weight: 700;
    color: var(--accent);
}
 .info-note {
     display: flex;
     align-items: flex-start;
     gap: var(--s3);
     padding: var(--s4) var(--s5);
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     font-size: calc(var(--fs-sm) * 0.9);
     color: var(--text-2);
     line-height: 1.75;
}
 .info-note__icon {
     font-size: calc(20px * 0.9);
     flex-shrink: 0;
     margin-top: 2px;
     color: var(--accent);
}
 .info-note__icon--teal {
     color: var(--accent-teal);
}
 .info-note__icon--amber {
     color: var(--accent-amber);
}
 .info-note strong {
     color: var(--text);
     display: block;
     margin-bottom: 2px;
     font-weight: 700;
}
 .info-note span {
     color: var(--muted);
}
 .footer {
     background: var(--card);
     border-top: 1px solid var(--border);
     padding: 48px var(--container-px) 32px;
}
 .footer__top {
     max-width: var(--container);
     margin: 0 auto;
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
     padding-bottom: 28px;
     border-bottom: 1px solid var(--divider);
     gap: var(--s6);
     flex-wrap: wrap;
}
 .footer__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
}
 .footer__brand-main {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text-2);
}
 .footer__brand-sub {
     font-size: var(--fs-xs);
     color: var(--dim);
     margin-top: 3px;
}
 .footer__links {
     display: flex;
     gap: var(--s5);
}
 .footer__links a {
     font-size: var(--fs-xs);
     color: var(--muted);
     transition: color var(--d-base);
}
 .footer__links a:hover {
     color: var(--brand);
}
 .footer__copy {
     max-width: var(--container);
     margin: var(--s6) auto 0;
     font-size: var(--fs-xs);
     color: var(--dim);
     display: flex;
     justify-content: space-between;
     gap: var(--s4);
     flex-wrap: wrap;
}
 [data-reveal] {
     opacity: 0;
     transform: translateY(18px);
     transition: opacity 720ms var(--ease), transform 720ms var(--ease);
}
 [data-reveal].is-in {
     opacity: 1;
     transform: translateY(0);
}
 [data-reveal][data-delay="1"] {
     transition-delay: 80ms;
}
 [data-reveal][data-delay="2"] {
     transition-delay: 160ms;
}
 [data-reveal][data-delay="3"] {
     transition-delay: 240ms;
}
 @media (prefers-reduced-motion: reduce) {
     [data-reveal] {
         opacity: 1;
         transform: none;
         transition: none;
    }
}
 .wizard-stepper {
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
     gap: var(--s2);
     margin-bottom: var(--s10);
     padding: var(--s5) var(--s6);
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-xl);
     box-shadow: var(--sh-2);
}
 .wizard-stepper__item {
     flex: 1;
     text-align: center;
     position: relative;
     min-width: 0;
}
 .wizard-stepper__item:not(:last-child)::after {
     content: "";
     position: absolute;
     top: 16px;
     left: calc(50% + 28px);
     right: calc(-50% + 28px);
     height: 3px;
     background: var(--border);
     border-radius: 2px;
     z-index: 0;
}
 .wizard-stepper__item.is-done:not(:last-child)::after {
     background: linear-gradient(90deg, var(--brand), var(--brand-600));
}
 .wizard-stepper__circle {
     width: 32px;
     height: 32px;
     margin: 0 auto var(--s2);
     border-radius: 50%;
     background: var(--card);
     border: 2px solid var(--border-strong);
     color: var(--dim);
     font-size: var(--fs-xs);
     font-weight: 800;
     display: flex;
     align-items: center;
     justify-content: center;
     position: relative;
     z-index: 1;
     transition: background var(--d-base) var(--ease), border-color var(--d-base) var(--ease), color var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease);
}
 .wizard-stepper__item[data-ws="1"]:not(.is-done):not(.is-active) .wizard-stepper__circle {
     background: #2563eb;
     border-color: #3b82f6;
     color: #fff;
     box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
}
 .wizard-stepper__item[data-ws="2"]:not(.is-done):not(.is-active) .wizard-stepper__circle {
     background: #1d4ed8;
     border-color: #2563eb;
     color: #fff;
     box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
 .wizard-stepper__item[data-ws="3"]:not(.is-done):not(.is-active) .wizard-stepper__circle {
     background: #1e40af;
     border-color: #1d4ed8;
     color: #fff;
     box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
 .wizard-stepper__item[data-ws="4"]:not(.is-done):not(.is-active) .wizard-stepper__circle {
     background: #1e3a8a;
     border-color: #1e40af;
     color: #fff;
     box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
 .wizard-stepper__item[data-ws="5"]:not(.is-done):not(.is-active) .wizard-stepper__circle {
     background: #172554;
     border-color: #1e3a8a;
     color: #fff;
     box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
 .wizard-stepper__item.is-done[data-ws="1"] .wizard-stepper__circle {
     background: #1d4ed8;
     border-color: #2563eb;
     color: #fff;
     box-shadow: 0 2px 10px rgba(29, 78, 216, 0.28);
}
 .wizard-stepper__item.is-done[data-ws="2"] .wizard-stepper__circle {
     background: #1e40af;
     border-color: #1d4ed8;
     color: #fff;
     box-shadow: 0 2px 10px rgba(30, 64, 175, 0.3);
}
 .wizard-stepper__item.is-done[data-ws="3"] .wizard-stepper__circle {
     background: #1e3a8a;
     border-color: #1e40af;
     color: #fff;
     box-shadow: 0 2px 12px rgba(30, 58, 138, 0.32);
}
 .wizard-stepper__item.is-done[data-ws="4"] .wizard-stepper__circle {
     background: #172554;
     border-color: #1e3a8a;
     color: #fff;
     box-shadow: 0 2px 12px rgba(23, 37, 84, 0.34);
}
 .wizard-stepper__item.is-done[data-ws="5"] .wizard-stepper__circle {
     background: #0f172a;
     border-color: #172554;
     color: #fff;
     box-shadow: 0 2px 14px rgba(15, 23, 42, 0.4);
}
 .wizard-stepper__item.is-active .wizard-stepper__circle {
     background: linear-gradient(145deg, var(--brand), var(--brand-600));
     border-color: var(--brand);
     color: #fff;
     box-shadow: 0 0 0 1px rgba(26, 107, 255, 0.22), 0 4px 16px rgba(26, 107, 255, 0.32), 0 0 24px rgba(37, 99, 235, 0.24);
}
 .wizard-stepper__item.is-done .wizard-stepper__circle .icon {
     font-size: 16px;
}
 .wizard-stepper__label {
     font-size: var(--fs-2xs);
     font-weight: 700;
     color: var(--muted);
     line-height: 1.35;
}
 .wizard-stepper__item.is-active .wizard-stepper__label {
     color: var(--brand);
     font-weight: 800;
}
 @media (max-width: 640px) {
     .wizard-stepper {
         display: grid;
         grid-template-columns: repeat(5, minmax(0, 1fr));
         gap: var(--s2) 2px;
         padding: var(--s4) var(--s3);
         margin-bottom: var(--s8);
         align-items: start;
    }
     .wizard-stepper__item {
         min-width: 0;
    }
     .wizard-stepper__item:not(:last-child)::after {
         display: none;
    }
     .wizard-stepper__circle {
         width: 28px;
         height: 28px;
         font-size: 10px;
         margin-bottom: 6px;
    }
     .wizard-stepper__label {
         font-size: 9px;
         line-height: 1.25;
         word-break: keep-all;
    }
}
 .step-panel {
     display: none;
}
 .step-panel.is-active {
     display: block;
}
 .dropzone {
     margin-top: var(--s6);
     padding: var(--s10) var(--s6);
     border: 2px dashed var(--border-strong);
     border-radius: var(--r-xl);
     background: var(--bg-alt);
     text-align: center;
     transition: border-color var(--d-base), background var(--d-base);
}
 .dropzone.is-drag {
     border-color: var(--brand);
     background: var(--brand-50);
}
.dropzone__icon {
    color: var(--brand);
    margin-bottom: var(--s3);
}
.dropzone__icon .icon {
    font-size: 60px;
}
 .dropzone__title {
     font-size: var(--fs-h4);
     font-weight: 800;
     margin-bottom: var(--s2);
}
 .dropzone__meta {
     font-size: calc(var(--fs-xs) * 0.9);
     color: var(--muted);
}
.file-pill {
    display: flex;
    align-items: center;
    gap: var(--s2);
    max-width: 100%;
    padding: var(--s2) var(--s2) var(--s2) var(--s3);
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--r-xs);
    font-size: calc(var(--fs-sm) * 0.86);
    font-weight: 600;
    text-align: left;
}
 .file-pill__name {
     flex: 1 1 auto;
     min-width: 0;
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap;
}
 .file-pill__remove {
     flex: 0 0 auto;
     display: inline-flex;
     align-items: center;
     justify-content: center;
     margin-left: auto;
     padding: 4px;
     border: 0;
     border-radius: var(--r-sm);
     background: transparent;
     color: var(--muted);
     cursor: pointer;
}
 .file-pill__remove:hover {
     background: var(--bg-alt);
     color: var(--text);
}
#file-pill-wrap:not(:empty) {
    margin-top: var(--s8);
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--s3);
    align-items: stretch;
    max-width: 100%;
}
@media (max-width: 768px) {
    #file-pill-wrap:not(:empty) {
        grid-template-columns: 1fr;
    }
}
 .modal-backdrop {
     position: fixed;
     inset: 0;
     background: transparent;
     z-index: 800;
     display: none;
     align-items: center;
     justify-content: center;
     padding: var(--s5);
}
 .modal-backdrop.is-open {
     display: flex;
     overflow-y: auto;
     -webkit-overflow-scrolling: touch;
     overscroll-behavior: contain;
     isolation: isolate;
}
 .modal-backdrop.is-open::before {
     content: "";
     position: fixed;
     inset: 0;
     background: rgba(15, 23, 42, 0.45);
     -webkit-backdrop-filter: blur(6px);
     backdrop-filter: blur(6px);
     z-index: 0;
     pointer-events: none;
}
 .modal-backdrop.is-open > .modal-card {
     position: relative;
     z-index: 1;
}
 .modal-card {
     position: relative;
     width: 100%;
     max-width: 520px;
     background: var(--card);
     border-radius: var(--r-xl);
     box-shadow: 0 24px 64px rgba(15, 23, 42, 0.2);
     padding: var(--s8) var(--s6);
     max-height: 90vh;
     overflow-y: auto;
}
 .modal-card--wide {
     max-width: 640px;
}
 .modal-card--info-initial {
     max-width: min(1120px, 98vw);
     width: 100%;
     max-height: min(92vh, 900px);
     padding: 0;
     display: flex;
     flex-direction: column;
     text-align: left;
     overflow: hidden;
}
 .modal-card--info-initial .modal-card__close {
     z-index: 3;
}
 .modal-info-initial__inner {
     flex: 1;
     min-height: 0;
     overflow-y: auto;
     -webkit-overflow-scrolling: touch;
}
 .page-hero--modal {
     padding: var(--s6) 0 var(--s3);
     background: linear-gradient(180deg, var(--bg-alt) 0%, var(--bg) 100%);
     border-bottom: 1px solid var(--border);
}
 .section--modal-info {
     padding-bottom: var(--s8);
}
 html[data-page="portal_02_info_initial"] #info-initial-scope #lginfo-info-flow-chat.info-initial-inline-chat {
     margin-top: var(--s6);
     border: 1px solid var(--border);
     border-radius: var(--r-xl);
     background: var(--card);
     box-shadow: 0 4px 24px rgba(15, 23, 42, 0.08);
     display: flex;
     flex-direction: column;
     min-height: min(72vh, 780px);
     max-height: min(92vh, 900px);
     overflow: hidden;
}
 html[data-page="portal_02_info_initial"] #info-initial-scope #lginfo-info-flow-chat.info-initial-inline-chat .chat-area {
     flex: 1;
     min-height: 0;
     overflow-y: auto;
     -webkit-overflow-scrolling: touch;
     overscroll-behavior-y: contain;
}
 html[data-page="portal_02_info_initial"] #info-initial-scope #lginfo-info-flow-chat.info-initial-inline-chat .chat-scroll {
     flex: 1;
     min-height: 360px;
     max-height: none;
}
 html[data-page="portal_02_info_initial"] #info-initial-scope #lginfo-info-flow-chat.info-initial-inline-chat .chat-grid > * {
     min-height: 0;
}
 html[data-page="portal_02_info_initial"] #info-initial-scope .info-init-main #lginfo-info-flow-chat.info-initial-inline-chat--in-main {
     margin-top: var(--s8);
     min-height: min(48vh, 520px);
     max-height: min(78vh, 820px);
}
 html[data-page="portal_02_info_initial"] .info-init-chat-head {
     display: flex;
     align-items: center;
     gap: var(--s3);
     padding: var(--s5) var(--s6) var(--s4);
     border-bottom: 1px solid var(--border);
     flex-shrink: 0;
}
 html[data-page="portal_02_info_initial"] .info-init-chat-head__icon {
     width: 44px;
     height: 44px;
     border-radius: var(--r-md);
     background: var(--accent-bg);
     color: var(--accent);
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 24px;
     flex-shrink: 0;
}
 html[data-page="portal_02_info_initial"] .info-init-chat-head__title {
     font-size: var(--fs-h4);
     font-weight: 800;
     letter-spacing: var(--tracking-tight);
     line-height: 1.2;
     margin: 0;
     color: var(--text);
}
 html[data-page="portal_02_info_initial"] .info-init-chat-head__spacer {
     margin-left: auto;
}
 html[data-page="portal_02_info_initial"] #lginfo-info-flow-chat.info-initial-inline-chat--in-main .chat-area {
     padding: var(--s4) var(--s6) var(--s3);
     flex: 1;
     min-height: 0;
}
 html[data-page="portal_02_info_initial"] .info-init-chat-foot {
     margin: 0;
     padding: var(--s3) var(--s6) var(--s5);
     font-size: var(--fs-xs);
     color: var(--dim);
     display: flex;
     align-items: center;
     gap: var(--s2);
     border-top: 1px solid var(--divider);
     flex-shrink: 0;
}
 .modal-card__close {
     position: absolute;
     top: var(--s3);
     right: var(--s3);
     z-index: 2;
     width: 40px;
     height: 40px;
     border-radius: var(--r-md);
     border: 0;
     background: rgba(255, 255, 255, 0.92);
     color: var(--text-2);
     cursor: pointer;
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: 0 2px 14px rgba(15, 23, 42, 0.12);
     transition: background var(--d-base), color var(--d-base), box-shadow var(--d-base);
}
 .modal-card__close:hover {
     background: var(--bg-alt);
     color: var(--text);
}
 .modal-card__close .icon {
     font-size: 22px;
}
 .modal-card__close:focus-visible {
     outline: 2px solid var(--focus);
     outline-offset: 2px;
}
 .modal-card--progress {
     padding: var(--s4) var(--s5) var(--s4);
     max-height: none;
     overflow: visible;
}
 .modal-card--progress .modal-card__head {
     margin-bottom: var(--s3);
}
 .modal-card--progress .modal-card__icon {
     width: 44px;
     height: 44px;
     margin: 0 auto var(--s2);
     font-size: 22px;
}
 .modal-card--progress .modal-card__title {
     margin-bottom: var(--s1);
}
 .modal-card--progress .modal-card__sub--progress {
     font-size: calc(var(--fs-xs) * 0.9);
     line-height: 1.38;
     color: var(--muted);
}
 .modal-card--progress .vstep {
     margin-top: var(--s3);
     gap: var(--vstep-gap);
}
 .modal-card--progress .vstep__list {
     gap: var(--s2);
}
 .modal-card--progress .vstep__row {
     padding: var(--s2) var(--s4);
     margin-left: calc(-1 * var(--s4));
     margin-right: calc(-1 * var(--s3));
}
 .modal-card--progress .vstep__row small {
     margin-top: 1px;
     line-height: 1.35;
}
 .modal-card--progress .vstep__row--after-prog {
     margin-top: var(--s1);
}
 .modal-card--progress .vstep__row::before {
     top: 10px;
}
 .modal-card--progress .prog {
     margin-top: var(--s2);
     height: 6px;
}
 .modal-card__prog-meta {
     text-align: center;
     font-size: calc(var(--fs-xs) * 0.9);
     color: var(--dim);
     margin-top: var(--s2);
     line-height: 1.35;
}
 .modal-card--progress .modal-footnote.modal-footnote--progress-emph {
     margin-top: var(--s4);
     padding: var(--s5) var(--s5) var(--s5) calc(var(--s5) + 4px);
     line-height: 1.55;
     font-size: var(--fs-sm);
     font-weight: 600;
     color: var(--text);
     background: linear-gradient(90deg, var(--brand-50) 0%, var(--bg-alt) 72%);
     border: 1px solid var(--brand-200);
     border-left: 4px solid var(--brand);
     border-radius: var(--r-md);
}
 .modal-card--progress .modal-footnote--progress-emph .modal-footnote__lead {
     font-weight: 800;
     color: var(--text);
}
 .modal-card--progress .modal-footnote--progress-emph a {
     font-weight: 800;
     font-size: calc(var(--fs-sm) * 1.05);
}
 .modal-card--progress .modal-footnote--progress-emph .modal-footnote__mark {
     color: var(--brand);
}
 html[data-page="portal_01_selfverify"] #modal-progress .modal-card--progress-live, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .modal-card--progress-live {
     max-width: min(920px, 96vw);
     position: relative;
     padding: calc(var(--s5) + 4px) var(--s6) var(--s5);
     border: 1px solid var(--border);
     border-radius: clamp(20px, 2.4vw, 26px);
     box-shadow: var(--sh-3), 0 0 0 1px rgba(26, 107, 255, 0.05);
     overflow: hidden;
     background: var(--card);
}
 html[data-page="portal_01_selfverify"] #modal-progress .modal-card--progress-live::before, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .modal-card--progress-live::before {
     content: "";
     position: absolute;
     top: 0;
     left: 0;
     right: 0;
     height: 4px;
     background: linear-gradient(90deg, #003e89, var(--brand), #0051c3);
     pointer-events: none;
}
 .modal-card--progress-live {
     padding-top: var(--s5);
}
.prog-flow-type {
    margin: 0 0 25px;
    font-size: 13px;
    font-weight: 500;
    color: var(--muted);
    line-height: 1.45;
    border-bottom: 1px solid var(--border);
    padding-bottom: 15px;
}
 .prog-flow-type strong {
     font-size: inherit;
     font-weight: 700;
     color: var(--accent-rose);
}
 .prog-live {
     display: grid;
     grid-template-columns: 1fr minmax(148px, 188px);
     gap: var(--s5);
     align-items: start;
     margin-top: var(--s2);
}
 .modal-card__head--prog-live {
     margin-bottom: var(--s3);
}
.prog-dash {
    margin-top: var(--s3);
    height: 8px;
    border-radius: var(--r-pill);
    background: repeating-linear-gradient( 90deg, var(--brand-100) 0, var(--brand-100) 6px, transparent 6px, transparent 10px );
    overflow: hidden;
    box-shadow: inset 0 0 0 1px rgba(26, 107, 255, 0.12);
}
.prog-dash.is-running {
    box-shadow: inset 0 0 0 1px rgba(26, 107, 255, 0.18), 0 2px 10px rgba(26, 107, 255, 0.1);
}
.prog-dash__fill {
    height: 100%;
    width: 0;
    border-radius: var(--r-pill);
}
/* ── sv-step 모달 (4단계 자가검증 진행) ── */
.modal-card--sv-steps {
    max-width: 580px;
    width: 100%;
    padding: 32px 36px 32px;
    max-height: 90vh;
    overflow-y: auto;
    box-sizing: border-box;
}
.sv-step__title {
    font-size: 20px;
    font-weight: 800;
    color: var(--text);
    margin-top: 25px;
    margin-bottom: 5px;
    text-align: center;
    line-height: 1.3;
}
.sv-step__title--done {
    color: var(--accent);
}
.sv-step__sub {
    font-size: 16px;
    color: var(--muted);
    text-align: center;
    margin-bottom: 20px;
    line-height: 1.6;
}
.sv-step__bar {
    height: 10px;
    border-radius: var(--r-pill);
    background: repeating-linear-gradient(90deg, var(--brand-100) 0, var(--brand-100) 6px, transparent 6px, transparent 10px);
    overflow: hidden;
    box-shadow: inset 0 0 0 1px rgba(26, 107, 255, 0.12);
    margin-bottom: 24px;
}
.sv-step__bar.is-running {
    box-shadow: inset 0 0 0 1px rgba(26, 107, 255, 0.18), 0 2px 10px rgba(26, 107, 255, 0.1);
}
.sv-step__bar-fill {
    height: 100%;
    width: 0;
    border-radius: var(--r-pill);
    background: linear-gradient(90deg, var(--accent) 0%, #60a5fa 100%);
    transition: width 0.9s cubic-bezier(0.4, 0, 0.2, 1);
}
.sv-step__bar-fill.is-shimmer {
    background: linear-gradient(90deg, var(--accent) 0%, #93c5fd 50%, var(--accent) 100%);
    background-size: 200% 100%;
    animation: sv-shimmer 1.6s linear infinite;
}
@keyframes sv-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
.sv-step__notes {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 14px;
    color: var(--muted);
    line-height: 1.6;
}
.sv-step__notes strong {
    color: var(--text-2);
}
.sv-step__notes li::before {
    content: '※ ';
    color: var(--dim);
}
.sv-step__eta {
    font-size: 14px;
    color: var(--text);
    border-top: 1px solid var(--border);
    padding-top: 15px;
    margin-top: 4px;
    font-weight: 700;
    margin-bottom: 10px;
    line-height: 1.6;
}
.sv-step__eta-note {
    display: block;
    margin-top: 4px;
    font-size: 13px;
    font-weight: 400;
    color: var(--text-2);
}
.sv-step__foot {
    display: flex;
    justify-content: flex-end;
    padding-top: 8px;
}
/* 완료 패널 */
.sv-step__result {
    margin: 20px 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    overflow: hidden;
}
.sv-step__result-row {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--border);
}
.sv-step__result-row:last-child {
    border-bottom: none;
}
.sv-step__result-row dt {
    flex: 0 0 140px;
    padding: 12px 16px;
    background: var(--bg-alt);
    font-size: 14px;
    font-weight: 600;
    color: var(--text-2);
    border-right: 1px solid var(--border);
}
.sv-step__result-row dd {
    flex: 1 1 auto;
    padding: 12px 16px;
    font-size: 14px;
    font-weight: 700;
    color: var(--text);
    margin: 0;
}
.sv-step__complete-desc {
    font-size: 14px;
    color: var(--muted);
    margin-bottom: 20px;
    line-height: 1.7;
}
.sv-step__complete-desc strong {
    color: var(--text-2);
}
 .prog-live__canvas {
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     gap: var(--s4);
     margin-top: var(--s4);
     padding: var(--s3) 0 0;
     border-top: 1px dashed var(--brand-200);
}
 .prog-gears {
     display: flex;
     align-items: center;
     gap: 0;
     flex-shrink: 0;
}
 .prog-gear {
     position: relative;
     width: 52px;
     height: 52px;
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 10px;
     font-weight: 800;
     color: #fff;
     box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12);
     margin-left: -10px;
     border: 2px solid #fff;
}
 .prog-gear:first-child {
     margin-left: 0;
}
 .prog-gear--fmt {
     background: linear-gradient(145deg, #fb923c, #ea580c);
     z-index: 3;
}
 .prog-gear--unstr {
     background: linear-gradient(145deg, #60a5fa, #1a6bff);
     z-index: 2;
}
 .prog-gear--docs {
     background: linear-gradient(145deg, #a78bfa, #7c3aed);
     z-index: 1;
}
 .prog-live__hint {
     flex: 1;
     min-width: min(100%, 220px);
     margin: 0;
     font-size: var(--fs-sm);
     color: var(--muted);
     line-height: 1.55;
}
 .prog-term {
     margin: var(--s3) 0 0;
     padding: var(--s3) var(--s4);
     background: #0f172a;
     color: #e2e8f0;
     font-family: var( --font, "SUIT", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif );
     font-size: var(--fs-xs, 12px);
     font-weight: 500;
     line-height: 1.55;
     letter-spacing: -0.01em;
     border-radius: var(--r-md);
     max-height: min(220px, 30vh);
     overflow-y: auto;
     white-space: pre-wrap;
     word-break: break-word;
     -webkit-font-smoothing: antialiased;
}
 .prog-rail {
     list-style: none;
     margin: 0;
     padding: 0;
     display: flex;
     flex-direction: column;
     gap: 0;
}
 .prog-rail__step {
     position: relative;
     padding: var(--s3) var(--s2);
     border-radius: var(--r-md);
     text-align: center;
     font-size: calc(var(--fs-2xs) * 1.05);
     font-weight: 700;
     line-height: 1.25;
     color: var(--text);
     background: var(--brand-50);
     border: 1px solid var(--brand-200);
     transition: background var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease), border-color var(--d-base) var(--ease), opacity var(--d-base) var(--ease);
}
 .prog-rail__step + .prog-rail__step {
     margin-top: 6px;
}
 .prog-rail__step + .prog-rail__step::before {
     content: "\25BC";
     display: block;
     text-align: center;
     font-size: 8px;
     line-height: 10px;
     color: var(--brand-600);
     margin-bottom: 6px;
     margin-top: -2px;
}
 .prog-rail__txt {
     display: block;
}
 .prog-rail__step.is-pending {
     opacity: 0.72;
}
 .prog-rail__step.is-done {
     opacity: 0.88;
     background: linear-gradient( 180deg, rgba(219, 234, 254, 0.9), var(--brand-50) );
     border-color: var(--brand-200);
}
 .prog-rail__step.is-active {
     opacity: 1;
     background: #fff;
     border-color: var(--brand);
     box-shadow: 0 0 0 2px rgba(26, 107, 255, 0.18), 0 6px 18px rgba(26, 107, 255, 0.12);
     font-weight: 800;
}
 html[data-page="portal_01_selfverify"] #modal-progress .prog-flow-type, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .prog-flow-type {
     margin: 0 0 var(--s4);
}
 html[data-page="portal_01_selfverify"] #modal-progress .prog-live__main, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .prog-live__main {
     background: linear-gradient( 165deg, #fff 0%, var(--brand-50) 42%, var(--bg) 100% );
     border: 1px solid var(--brand-200);
     border-radius: var(--r-lg);
     padding: var(--s6) var(--s5);
     box-shadow: var(--sh-1);
}
 html[data-page="portal_01_selfverify"] #modal-progress .modal-card__head--prog-live .modal-card__title, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .modal-card__head--prog-live .modal-card__title {
     font-size: clamp(var(--fs-h4), 2.6vw, var(--fs-h3));
     letter-spacing: var(--tracking-tight);
     color: var(--text);
}
 html[data-page="portal_01_selfverify"] #modal-progress .modal-card__head--prog-live .modal-card__sub--progress, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .modal-card__head--prog-live .modal-card__sub--progress {
     max-width: 36em;
     margin-left: auto;
     margin-right: auto;
}
 html[data-page="portal_01_selfverify"] #modal-progress .modal-card__head--prog-live .modal-card__icon, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .modal-card__head--prog-live .modal-card__icon {
     width: 56px;
     height: 56px;
     border-radius: var(--r-lg);
     background: linear-gradient(145deg, var(--brand-50), #fff);
     color: var(--brand);
     box-shadow: 0 0 0 1px var(--brand-200), var(--sh-2);
}
 html[data-page="portal_01_selfverify"] #modal-progress .prog-hourglass, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .prog-hourglass {
     position: relative;
     overflow: visible;
}
 html[data-page="portal_01_selfverify"] #modal-progress .prog-hourglass__axis, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .prog-hourglass__axis {
     position: relative;
     display: flex;
     align-items: center;
     justify-content: center;
     width: 100%;
     height: 100%;
     transform-origin: 50% 53%;
     animation: prog-hourglass-flip 2.8s cubic-bezier(0.42, 0, 0.58, 1) infinite;
}
 html[data-page="portal_01_selfverify"] #modal-progress .prog-hourglass__glyph, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .prog-hourglass__glyph {
     position: relative;
     z-index: 1;
}
 html[data-page="portal_01_selfverify"] #modal-progress .prog-hourglass__stream, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .prog-hourglass__stream {
     position: absolute;
     left: 50%;
     top: 42%;
     width: 3px;
     height: 16px;
     margin-left: -1.5px;
     border-radius: 3px;
     background: linear-gradient( 180deg, rgba(26, 107, 255, 0.92), rgba(37, 99, 235, 0.35), rgba(26, 107, 255, 0) );
     opacity: 0;
     z-index: 2;
     pointer-events: none;
     animation: prog-hourglass-stream 2.8s ease-in-out infinite;
}
 @keyframes prog-hourglass-flip {
     0% {
         transform: rotate(0deg);
    }
     22% {
         transform: rotate(0deg);
    }
     34% {
         transform: rotate(180deg);
    }
     46% {
         transform: rotate(180deg);
    }
     58% {
         transform: rotate(360deg);
    }
     100% {
         transform: rotate(360deg);
    }
}
 @keyframes prog-hourglass-stream {
     0%, 6% {
         opacity: 0;
         transform: translateY(-2px) scaleY(0.4);
    }
     10%, 20% {
         opacity: 1;
         transform: translateY(4px) scaleY(1);
    }
     24% {
         opacity: 0;
         transform: translateY(12px) scaleY(0.6);
    }
     25%, 52% {
         opacity: 0;
         transform: translateY(-2px) scaleY(0.4);
    }
     56%, 66% {
         opacity: 1;
         transform: translateY(5px) scaleY(1);
    }
     70% {
         opacity: 0;
         transform: translateY(12px) scaleY(0.6);
    }
     71%, 100% {
         opacity: 0;
         transform: translateY(-2px) scaleY(0.4);
    }
}
 @media (prefers-reduced-motion: reduce) {
     html[data-page="portal_01_selfverify"] #modal-progress .prog-hourglass__axis, html[data-page="portal_01_selfverify"] #modal-progress .prog-hourglass__stream, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .prog-hourglass__axis, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .prog-hourglass__stream {
         animation: none !important;
    }
     html[data-page="portal_01_selfverify"] #modal-progress .prog-hourglass__axis, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .prog-hourglass__axis {
         transform: none;
    }
     html[data-page="portal_01_selfverify"] #modal-progress .prog-hourglass__stream, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .prog-hourglass__stream {
         opacity: 0;
         display: none;
    }
}
 html[data-page="portal_01_selfverify"] #modal-progress .prog-rail, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .prog-rail {
     padding: var(--s2);
     background: var(--bg-alt);
     border-radius: var(--r-lg);
     border: 1px solid var(--border);
}
 html[data-page="portal_01_selfverify"] .prog-rail__step.is-active, html[data-page="portal_01b_review_editor"] #rev-modal-sv-progress .prog-rail__step.is-active {
     border-width: 2px;
     box-shadow: 0 0 0 3px rgba(26, 107, 255, 0.1), 0 8px 22px rgba(26, 107, 255, 0.14);
}
 html[data-page="portal_01_selfverify"] #modal-result.is-open > .modal-card--sv-result, html[data-page="portal_01b_review_editor"] #rev-modal-sv-result.is-open > .modal-card--sv-result {
     max-width: min(920px, 96vw);
     padding: var(--s6) var(--s6) var(--s5);
     text-align: left;
}
 html[data-page="portal_01_selfverify"] .modal-card--sv-result .modal-card__title--sv-result, html[data-page="portal_01b_review_editor"] #rev-modal-sv-result .modal-card--sv-result .modal-card__title--sv-result {
     margin: 0 0 var(--s4);
     padding-right: 52px;
     font-size: clamp(18px, 2.4vw, 22px);
     font-weight: 800;
     text-align: left;
     letter-spacing: var(--tracking-tight);
     color: var(--text);
}
 html[data-page="portal_01_selfverify"] .modal-card__body--sv-result, html[data-page="portal_01b_review_editor"] #rev-modal-sv-result .modal-card__body--sv-result {
     max-height: min(58vh, 600px);
     overflow-y: auto;
     -webkit-overflow-scrolling: touch;
     margin: 0 0 var(--s4);
     padding-right: 2px;
}
 html[data-page="portal_01_selfverify"] .modal-card--sv-result .verify-report--selfverify-final, html[data-page="portal_01b_review_editor"] #rev-modal-sv-result .modal-card--sv-result .verify-report--selfverify-final {
     margin: 0;
}
 html[data-page="portal_01_selfverify"] .modal-actions--sv-result, html[data-page="portal_01b_review_editor"] #rev-modal-sv-result .modal-actions--sv-result {
     flex-wrap: wrap;
     justify-content: flex-start;
     align-items: center;
     gap: var(--s2);
     margin-top: 0;
     padding-top: var(--s4);
     border-top: 1px solid var(--border);
}
 html[data-page="portal_01_selfverify"] .modal-actions--sv-result #btn-dl-result, html[data-page="portal_01b_review_editor"] #rev-modal-sv-result .modal-actions--sv-result #rev-btn-dl-result {
     margin-left: auto;
}
 @media (max-width: 720px) {
     .prog-live {
         grid-template-columns: 1fr;
    }
     .prog-rail {
         flex-direction: row;
         flex-wrap: wrap;
         justify-content: center;
         gap: var(--s2);
    }
     .prog-rail__step {
         flex: 1 1 42%;
         min-width: 120px;
    }
     .prog-rail__step + .prog-rail__step {
         margin-top: 0;
    }
     .prog-rail__step + .prog-rail__step::before {
         display: none;
    }
}
 .modal-card__head {
     text-align: center;
     margin-bottom: var(--s6);
}
 .modal-card__icon {
     width: 56px;
     height: 56px;
     margin: 0 auto var(--s4);
     border-radius: 50%;
     background: var(--brand-50);
     color: var(--brand);
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 28px;
}
 .modal-card__title {
     font-size: var(--fs-h4);
     font-weight: 800;
     margin-bottom: var(--s2);
}
 .modal-card__sub {
     font-size: var(--fs-sm);
     color: var(--muted);
     line-height: 1.65;
}
 .vstep {
     --vstep-rail: 14px;
     --vstep-gap: 20px;
     --vstep-dot-nudge: 4px;
     display: flex;
     gap: var(--vstep-gap);
     margin-top: var(--s6);
}
 .vstep__rail {
     width: var(--vstep-rail);
     flex-shrink: 0;
     position: relative;
     align-self: stretch;
     background: transparent;
}
 .vstep__rail::before {
     content: "";
     position: absolute;
     left: calc(var(--vstep-rail) / 2 - 1px);
     top: 12px;
     bottom: 12px;
     width: 2px;
     background: var(--border);
     border-radius: 2px;
}
 .vstep[aria-busy="true"] .vstep__rail::before {
     background: linear-gradient(180deg, var(--brand), var(--brand-600));
}
 .vstep__list {
     flex: 1;
     display: flex;
     flex-direction: column;
     gap: var(--s5);
     min-width: 0;
}
 .vstep__row {
     display: flex;
     justify-content: space-between;
     gap: var(--s3);
     align-items: flex-start;
     position: relative;
}
 .vstep__row::before {
     content: "";
     position: absolute;
     width: 10px;
     height: 10px;
     border-radius: 50%;
     left: calc( -1 * var(--vstep-gap) - var(--vstep-rail) / 2 + var(--s4) + var(--vstep-dot-nudge) );
     top: 13px;
     transform: translateX(-50%);
     box-sizing: border-box;
     background: var(--card);
     border: 2px solid var(--border-strong);
     z-index: 1;
     box-shadow: 0 0 0 1px var(--card);
}
 .vstep__row.is-active::before {
     background: var(--brand);
     border-color: var(--brand);
     box-shadow: 0 0 0 2px rgba(26, 107, 255, 0.15);
}
 .vstep[aria-busy="true"] .vstep__row::before {
     background: var(--brand);
     border-color: var(--brand);
}
 .vstep__row small {
     display: block;
     font-size: calc(var(--fs-xs) * 0.9);
     color: var(--muted);
     margin-top: 4px;
}
 .vstep__status {
     font-size: var(--fs-2xs);
     font-weight: 800;
     text-transform: uppercase;
     color: var(--brand);
}
 .vstep__status--wait {
     color: var(--dim);
}
 .vstep__status--done {
     color: #15803d;
}
 .vstep__status--run {
     color: #b91c1c;
     animation: vstep-run-pulse 1.15s ease-in-out infinite;
}
 @keyframes vstep-run-pulse {
     0%, 100% {
         opacity: 1;
    }
     50% {
         opacity: 0.45;
    }
}
 @media (prefers-reduced-motion: reduce) {
     .vstep__status--run {
         animation: none;
         opacity: 1;
    }
}
 .vstep__row {
     border-radius: var(--r-md);
     padding: var(--s3) var(--s4);
     margin-inline: calc(-1 * var(--s4));
     transition: background var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease);
}
 .vstep__row.is-active {
     background: linear-gradient(90deg, rgba(26, 107, 255, 0.08), transparent);
     box-shadow: inset 0 0 0 1px rgba(26, 107, 255, 0.12);
}
 .modal-card__icon.is-pulse {
     animation: modal-icon-pulse 2s ease-in-out infinite;
}
 @keyframes modal-icon-pulse {
     0%, 100% {
         transform: scale(1);
         box-shadow: 0 0 0 0 rgba(26, 107, 255, 0.25);
    }
     50% {
         transform: scale(1.04);
         box-shadow: 0 0 0 12px rgba(26, 107, 255, 0);
    }
}
 @media (prefers-reduced-motion: reduce) {
     .modal-card__icon.is-pulse {
         animation: none;
    }
}
 .prog {
     height: 8px;
     background: var(--border);
     border-radius: var(--r-pill);
     margin-top: var(--s4);
     overflow: hidden;
     position: relative;
     transition: box-shadow 0.35s var(--ease);
}
 .prog.is-running {
     box-shadow: 0 0 0 1px rgba(26, 107, 255, 0.15), 0 4px 14px rgba(26, 107, 255, 0.12);
}
 .prog.is-running:not(:has(.is-shimmer)) {
     background: linear-gradient( 90deg, var(--bg-alt), var(--border), var(--bg-alt) );
     background-size: 200% 100%;
     animation: prog-track-flow 1.8s linear infinite;
}
 @keyframes prog-track-flow {
     0% {
         background-position: 0% 0;
    }
     100% {
         background-position: 200% 0;
    }
}
 @media (prefers-reduced-motion: reduce) {
     .prog.is-running:not(:has(.is-shimmer)) {
         animation: none;
         background: var(--border);
    }
}
 .prog__bar {
     height: 100%;
     width: 0%;
     background: linear-gradient(90deg, var(--brand), #3b82f6);
     border-radius: var(--r-pill);
     transition: width 0.85s cubic-bezier(0.22, 1, 0.36, 1), filter 0.35s ease;
     position: relative;
     overflow: hidden;
}
 .prog__bar.is-shimmer {
     background: linear-gradient(90deg, var(--brand), #3b82f6, var(--brand-600));
     background-size: 200% 100%;
     animation: prog-bar-hue 2.4s ease-in-out infinite;
     will-change: width, background-position;
}
 .prog__bar.is-shimmer::after {
     content: "";
     position: absolute;
     inset: 0;
     background: linear-gradient( 105deg, transparent 0%, rgba(255, 255, 255, 0.5) 45%, transparent 90% );
     width: 55%;
     animation: prog-sheen 1.35s ease-in-out infinite;
}
 @keyframes prog-bar-hue {
     0%, 100% {
         background-position: 0% 50%;
    }
     50% {
         background-position: 100% 50%;
    }
}
 @keyframes prog-sheen {
     0% {
         transform: translateX(-100%);
    }
     100% {
         transform: translateX(220%);
    }
}
 @media (prefers-reduced-motion: reduce) {
     .prog__bar {
         transition-duration: 0.01ms;
    }
     .prog__bar.is-shimmer {
         background: linear-gradient(90deg, var(--brand), #3b82f6);
         animation: none;
         will-change: auto;
    }
     .prog__bar.is-shimmer::after {
         display: none;
    }
}
 .stat-row {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: var(--s4);
     margin-top: var(--s6);
}
 .stat-tile {
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: center;
     gap: var(--s3);
     min-height: 128px;
     padding: var(--s6) var(--s4);
     border-radius: var(--r-lg);
     border: 1px solid var(--border);
     text-align: center;
     background: var(--card);
     box-shadow: var(--sh-1);
}
 .stat-tile--ok {
     border-bottom: 4px solid #22c55e;
}
 .stat-tile--bad {
     border-bottom: 4px solid #ef4444;
}
 .stat-tile--warn {
     border-bottom: 4px solid #f59e0b;
}
 .stat-tile__n {
     font-size: clamp(36px, 7.5vw, 52px);
     font-weight: 800;
     line-height: 1.05;
     letter-spacing: -0.04em;
     color: var(--text);
}
 .stat-tile__l {
     font-size: clamp(15px, 2.4vw, 17px);
     font-weight: 700;
     line-height: 1.35;
     letter-spacing: -0.02em;
}
 .stat-tile--ok .stat-tile__l {
     color: #166534;
}
 .stat-tile--bad .stat-tile__l {
     color: #b91c1c;
}
 .stat-tile--warn .stat-tile__l {
     color: #b45309;
}
 @media (max-width: 600px) {
     .stat-row {
         grid-template-columns: repeat(3, minmax(0, 1fr));
         gap: var(--s2);
         margin-top: var(--s4);
    }
     .stat-tile {
         min-height: 0;
         padding: var(--s4) var(--s2);
         gap: var(--s2);
    }
     .stat-tile__n {
         font-size: clamp(22px, 6.5vw, 34px);
    }
     .stat-tile__l {
         font-size: clamp(11px, 2.6vw, 14px);
         word-break: keep-all;
    }
}
 .modal-actions {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s3);
     margin-top: var(--s8);
     justify-content: flex-end;
}
 :root {
     --brand: #1a6bff;
     --brand-600: #2563eb;
     --brand-50: #eff6ff;
     --brand-100: #dbeafe;
     --bg: #f1f5f9;
     --card: #fff;
     --border: #e2e8f0;
     --text: #0f172a;
     --text-2: #334155;
     --muted: #64748b;
     --dim: #888;
     --bad: #ef4444;
     --ok: #22c55e;
     --ok-ink: #166534;
     --ok-bg: #dcfce7;
     --warn: #f59e0b;
     --font: "SUIT", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
     --icon: "Material Symbols Outlined";
     --r: 12px;
     --sh: 0 4px 24px rgba(15, 23, 42, 0.08);
     --gnb: 64px;
     --container: 1120px;
     --container-px: 32px;
}
 *, *::before, *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
}
 body {
     font-family: var(--font);
     font-size: 15px;
     color: var(--text);
     background: linear-gradient(180deg, #e8eef5, #f8fafc);
     min-height: 100vh;
     line-height: 1.55;
}
 a {
     color: inherit;
     text-decoration: none;
}
 button {
     font: inherit;
     cursor: pointer;
     border: 0;
     background: none;
}
 .icon {
     font-family: var(--icon);
     font-variation-settings: "FILL" 1;
     font-size: 20px;
     vertical-align: middle;
}
 .skip {
     position: absolute;
     left: -9999px;
}
 .skip:focus {
     left: 16px;
     top: 16px;
     z-index: 999;
     background: var(--brand);
     color: #fff;
     padding: 8px 16px;
     border-radius: 8px;
}
 .nav {
     position: sticky;
     top: 0;
     z-index: 100;
     height: var(--gnb);
     display: flex;
     align-items: center;
     gap: 32px;
     padding: 0 48px;
     background: rgba(255, 255, 255, 0.94);
     backdrop-filter: blur(12px);
     border-bottom: 1px solid var(--border);
}
 .nav__brand {
     display: flex;
     align-items: center;
     gap: 12px;
}
 .nav__mark {
     width: 36px;
     height: 36px;
     border-radius: 8px;
     background: linear-gradient(135deg, var(--brand), #3b82f6);
     display: flex;
     align-items: center;
     justify-content: center;
}
 .nav__title {
     font-weight: 700;
     font-size: 15px;
}
 .nav__sub {
     font-size: 11px;
     color: var(--muted);
}
 .nav__subtitle {
     font-size: 11px;
     color: var(--muted);
     margin-top: 3px;
     line-height: 1;
}
 .nav__menu {
     display: flex;
     gap: 4px;
     margin-left: 16px;
     flex-wrap: wrap;
}
 .nav__menu a {
     font-size: var(--nav-menu-fs, calc(14px * 1.1));
     color: var(--muted);
     padding: 6px 14px;
     border-radius: 8px;
     font-weight: 500;
}
 .nav__menu a:hover {
     background: #f1f5f9;
     color: var(--text);
}
 .nav__menu a[aria-current="page"] {
     background: var(--brand-50);
     color: var(--brand);
     font-weight: 600;
}
 .nav__actions {
     margin-left: auto;
}
 .btn {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     padding: 10px 18px;
     border-radius: 10px;
     font-weight: 600;
     font-size: 14px;
}
 .btn--primary {
     background: linear-gradient(135deg, var(--brand), var(--brand-600));
     color: #fff;
     box-shadow: 0 4px 14px rgba(26, 107, 255, 0.35);
}
 .btn--primary:hover {
     transform: translateY(-1px);
}
 .btn--line {
     background: var(--card);
     border: 1px solid var(--border);
     color: var(--text);
}
 .btn--line:hover {
     border-color: var(--brand);
     color: var(--brand);
}
 .container {
     max-width: var(--container);
     margin: 0 auto;
     padding: 28px var(--container-px) 48px;
     width: 100%;
     box-sizing: border-box;
}
 @media (max-width: 900px) {
     .container {
         padding: 20px;
    }
     .layout {
         grid-template-columns: 1fr !important;
    }
     .detail {
         position: static !important;
         max-height: none !important;
    }
}
 .page-head {
     display: flex;
     flex-wrap: wrap;
     align-items: flex-end;
     justify-content: space-between;
     gap: 16px;
     margin-bottom: 24px;
}
 .toolbar .btn--primary, .toolbar .btn--primary .icon {
     color: #fff;
}
 .page-head h1 {
     font-size: 28px;
     font-weight: 800;
     letter-spacing: -0.5px;
}
 .page-head p {
     color: var(--muted);
     font-size: 14px;
     margin-top: 6px;
     max-width: 560px;
}
.toolbar {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 16px 20px;
    box-shadow: var(--sh);
    margin-bottom: 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}
.toolbar-search {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1 1 260px;
    min-width: min(100%, 200px);
}
.toolbar-search__icon {
    color: var(--muted);
    flex-shrink: 0;
}
.toolbar-search input {
    flex: 1;
    min-width: 0;
    width: 100%;
}
.toolbar input, .toolbar select {
    padding: 10px 14px;
    border: 1px solid var(--border-strong, #cbd5e1);
    border-radius: 10px;
    font: inherit;
    min-width: 160px;
    color: var(--text);
    background: var(--card, #fff);
    transition: border-color var(--d-base, 0.24s) var(--ease, cubic-bezier(0.22, 1, 0.36, 1)), box-shadow var(--d-base, 0.24s) var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
}
.toolbar select {
    cursor: pointer;
    min-height: 44px;
    color-scheme: light;
}
.toolbar input:focus, .toolbar select:focus {
    outline: 0;
    border-color: var(--accent, var(--brand));
    box-shadow: 0 0 0 3px rgba(26, 107, 255, 0.12);
}
.toolbar .toolbar-search input {
    min-width: 0;
}
.toolbar__refresh {
    margin-left: auto;
}
.toolbar__cta {
    flex-shrink: 0;
    white-space: nowrap;
}
 @media (max-width: 720px) {
    .toolbar {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        padding: 14px 16px;
    }
    .toolbar-search {
        flex: 1 1 auto;
        min-width: 0;
    }
    .toolbar select {
        min-width: 0;
        width: 100%;
    }
    .toolbar__refresh {
        margin-left: 0;
        width: 100%;
        justify-content: center;
    }
    .toolbar__cta {
        margin-left: 0;
         width: 100%;
         justify-content: center;
    }
     .page-head {
         flex-direction: column;
         align-items: stretch;
         gap: 14px;
    }
}
 .layout {
     display: grid;
     grid-template-columns: 1fr;
     gap: 20px;
     align-items: start;
}
 aside#detail.verify-detail-source {
     display: none !important;
}
 .panel {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: 16px;
     box-shadow: var(--sh);
     overflow: hidden;
}
 table {
     width: 100%;
     border-collapse: collapse;
     font-size: 13px;
}
 th {
     text-align: left;
     padding: 12px 16px;
     background: #f8fafc;
     color: var(--muted);
     font-weight: 700;
     font-size: 11px;
     text-transform: uppercase;
     letter-spacing: 0.04em;
     border-bottom: 1px solid var(--border);
}
 td {
     padding: 14px 16px;
     border-bottom: 1px solid #f1f5f9;
     vertical-align: middle;
}
 tr {
     cursor: pointer;
     transition: background var(--d-fast) var(--ease);
}
 tr:hover {
     background: #f8fafc;
}
 tr.is-selected {
     background: var(--brand-50);
     outline: 2px solid var(--brand);
     outline-offset: -2px;
}
 .fname {
     font-weight: 600;
     color: var(--text);
     display: flex;
     align-items: center;
     gap: 8px;
     flex-wrap: wrap;
}
 .fname__name {
     min-width: 0;
     word-break: break-word;
     overflow-wrap: anywhere;
}
 .u-td-date {
     color: var(--muted);
     white-space: nowrap;
}
 .bar {
     height: 6px;
     background: #e2e8f0;
     border-radius: 99px;
     overflow: hidden;
     margin-top: 6px;
     max-width: 140px;
}
 .bar > span {
     display: block;
     height: 100%;
     border-radius: 99px;
     background: linear-gradient(90deg, var(--brand), #3b82f6);
}
 .bar--low > span {
     background: linear-gradient(90deg, #f87171, #ef4444);
}
 .chip {
     display: inline-flex;
     padding: 4px 10px;
     border-radius: 99px;
     font-size: 11px;
     font-weight: 700;
}
 .chip--ok {
     background: var(--ok-bg, #dcfce7);
     color: var(--ok-ink, #166534);
     border: 1px solid rgba(34, 197, 94, 0.28);
}
 .chip--run {
     background: #dbeafe;
     color: #1d4ed8;
     border: 1px solid rgba(59, 130, 246, 0.35);
}
 .chip--bad {
     background: #fee2e2;
     color: #b91c1c;
}
 .chip--neutral {
     background: var(--bg-alt);
     color: var(--text-2);
     border: 1px solid var(--border);
}
 .detail {
     padding: 22px;
     position: sticky;
     top: calc(var(--gnb) + 16px);
     max-height: calc(100vh - 100px);
     overflow-y: auto;
}
 .detail__head {
     display: flex;
     justify-content: space-between;
     align-items: flex-start;
     margin-bottom: 16px;
     gap: 12px;
}
 .detail__head h2 {
     font-size: 17px;
     font-weight: 800;
}
 .detail__file-line {
     font-size: 12px;
     color: var(--muted);
     margin-top: 4px;
     line-height: 1.45;
     word-break: break-word;
}
 .detail-verify-root {
     margin-top: 4px;
}
 .detail-verify-root .verify-report__banner {
     border-radius: var(--r-md);
}
 .detail-verify-root .verify-report__score-num {
     font-size: clamp(22px, 3.8vw, 32px);
}
 .verify-report--compact .verify-report__compact-head {
     background: var(--brand-50, #eff6ff);
     border: 1px solid var(--brand-200, #bfdbfe);
     border-radius: var(--r-md, 12px);
     padding: 12px 14px;
     margin-bottom: 12px;
}
 .verify-report--compact .verify-report__compact-lead {
     margin: 0;
     font-size: 13px;
     line-height: 1.55;
     color: #1e3a5f;
}
 .verify-rv-table__more td, .verify-rv-table__more-cell {
     text-align: center;
     font-size: 12px;
     color: var(--muted, #64748b);
     background: #f8fafc;
     padding: 12px 10px !important;
     vertical-align: middle;
}
 .verify-report__compact-skip {
     margin: 10px 0 0;
     font-size: 12px;
     color: var(--muted, #64748b);
     line-height: 1.5;
}
 .verify-report__timeline-more {
     font-size: 12px;
     color: var(--muted, #64748b);
     padding-top: 4px;
}
 .verify-report__foot-notice--compact {
     font-size: 12px;
     margin-top: 8px;
     line-height: 1.5;
}
 .detail__foot-actions {
     display: flex;
     flex-wrap: wrap;
     gap: 10px;
     margin-top: var(--s5);
     padding-top: var(--s4);
     border-top: 1px solid var(--border);
}
 .detail__foot-actions .btn .icon {
     margin-right: 6px;
     font-size: 18px;
     vertical-align: -3px;
}
 .detail .score {
     font-size: 36px;
     font-weight: 800;
     letter-spacing: -1px;
}
 .detail .score.low {
     color: var(--bad);
}
 .alert {
     margin-top: 14px;
     padding: 14px;
     border-radius: 12px;
     background: #fef2f2;
     border: 1px solid #fecaca;
     font-size: 13px;
     color: #991b1b;
}
 .alert--none {
     display: none;
}
 .guide {
     margin-top: 18px;
}
 .guide h3 {
     font-size: 12px;
     color: var(--muted);
     text-transform: uppercase;
     margin-bottom: 10px;
     letter-spacing: 0.05em;
}
 .g-item {
     padding: 14px;
     border-radius: 12px;
     border: 1px solid var(--border);
     margin-bottom: 10px;
     font-size: 13px;
}
 .g-item.critical {
     border-color: #fecaca;
     background: #fff7ed;
}
 .g-item.caution {
     border-color: #fde68a;
     background: #fffbeb;
}
 .g-item strong {
     display: block;
     margin-bottom: 4px;
     font-size: 13px;
}
 .empty {
     padding: 48px 24px;
     text-align: center;
     color: var(--dim);
     font-size: 14px;
}
 .pipe {
     margin-top: 16px;
     padding-top: 16px;
     border-top: 1px solid var(--border);
}
 .pipe li {
     display: flex;
     justify-content: space-between;
     font-size: 12px;
     padding: 6px 0;
     color: var(--muted);
}
 .pipe li b {
     color: var(--text);
}
 .footer {
     padding: 20px 48px;
     border-top: 1px solid var(--border);
     background: var(--card);
     font-size: 12px;
     color: var(--dim);
}
 .btn--outline {
     color: var(--brand);
     background: #eff6ff;
     border: 1px solid #bfdbfe;
}
 .btn--outline:hover {
     background: #dbeafe;
     border-color: var(--brand);
}
 .modal-card--verify-report {
     max-width: min(940px, 96vw);
     text-align: left;
     padding-top: 44px;
     padding-bottom: 14px;
     max-height: min(94vh, 900px);
}
 .modal-card--verify-report #verify-report-root {
     padding: 0 2px;
}
 .verify-report {
     color: var(--text);
     font-size: 13px;
     line-height: 1.45;
}
 .verify-report__banner {
     background: linear-gradient(90deg, #1e3a8a, #1a6bff);
     color: #fff;
     font-size: 15px;
     font-weight: 800;
     padding: 12px 14px;
     border-radius: var(--r-md);
     margin: 0 0 12px;
     letter-spacing: -0.02em;
     line-height: 1.35;
}
 .verify-report__intro {
     font-size: 13px;
     font-weight: 700;
     color: var(--text);
     margin: 0 0 8px;
     line-height: 1.5;
}
 .verify-report__ratio-row {
     display: flex;
     flex-wrap: wrap;
     align-items: flex-end;
     justify-content: space-between;
     gap: 10px;
     margin: 6px 0 12px;
}
 .verify-report__ratio-row .verify-report__meta--tight {
     flex: 1;
     min-width: min(100%, 220px);
     margin: 0;
     font-size: 1.2em;
}
 .verify-report__meta--one {
     margin: 0 0 10px;
}
 .verify-report__title {
     font-size: 18px;
     font-weight: 800;
     letter-spacing: -0.35px;
     margin-bottom: 6px;
     line-height: 1.2;
}
 .verify-report__meta {
     font-size: 12px;
     color: var(--muted);
     line-height: 1.45;
     margin-bottom: 4px;
}
 .verify-report__meta--tight {
     margin-top: 0;
     margin-bottom: 0;
}
 .verify-report__meta--files {
     margin: -2px 0 10px;
}
 .verify-report__file-item {
     display: block;
     max-width: min(100%, 720px);
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
     vertical-align: bottom;
}
 .verify-report__file-more {
     color: var(--muted);
}
 @media (max-width: 768px) {
     .verify-report__file-item {
         max-width: 90vw;
    }
}
 .verify-report__meta strong {
     color: var(--text);
}
 .verify-report__highlight {
     display: flex;
     flex-direction: column;
     gap: 12px;
     margin: 10px 0 12px;
}
 .verify-report__highlight .verify-report__score, .verify-report__highlight .verify-report__stats {
     margin: 0;
}
 @media (min-width: 560px) {
     .verify-report__highlight {
         display: grid;
         grid-template-columns: minmax(200px, 320px) minmax(0, 1fr);
         gap: 16px 28px;
         align-items: center;
    }
}
 .verify-report__score {
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     gap: 10px;
     margin: 10px 0 12px;
}
 .verify-report__score-num {
     font-size: clamp(30px, 5.5vw, 42px);
     font-weight: 800;
     letter-spacing: -1.5px;
     color: var(--text);
     line-height: 1;
}
 .verify-report__score-num.is-low {
     color: #dc2626;
}
 .verify-report__score-den {
     font-size: 15px;
     color: var(--muted);
}
 .verify-report__bar {
     flex: 1;
     min-width: 120px;
     height: 8px;
     background: #e2e8f0;
     border-radius: 99px;
     overflow: hidden;
     border: 1px solid var(--border);
}
 .verify-report__bar > span {
     display: block;
     height: 100%;
     border-radius: 99px;
     background: linear-gradient(90deg, var(--brand), #3b82f6);
}
 .verify-report__bar.is-low > span {
     background: linear-gradient(90deg, #f87171, #dc2626);
}
 .verify-report__stats {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 8px;
     margin: 12px 0;
}
 .verify-report__stat {
     text-align: center;
     padding: 10px 10px;
     border-radius: 12px;
     border: 1px solid var(--border);
     background: var(--card);
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 4px;
     min-height: 0;
}
 .verify-report__stat strong {
     display: block;
     font-size: clamp(20px, 3.8vw, 28px);
     font-weight: 800;
     line-height: 1;
     color: var(--text);
}
 .verify-report__stat span {
     font-size: 12px;
     font-weight: 700;
     color: var(--muted);
}
 .verify-report__stat--ok {
     border-bottom: 2px solid var(--ok, #22c55e);
}
 .verify-report__stat--ok span {
     color: var(--ok-ink, #166534);
}
 .verify-report__stat--bad span {
     color: #b91c1c;
}
 .verify-report__stat--bad {
     border-bottom: 2px solid #dc2626;
}
 .verify-report__stat--warn span {
     color: #b45309;
}
 .verify-report__stat--warn {
     border-bottom: 2px solid #f59e0b;
}
 @media (max-width: 520px) {
     .verify-report__stats {
         grid-template-columns: repeat(3, minmax(0, 1fr));
         gap: 6px;
    }
     .verify-report__stat {
         padding: 8px 4px;
    }
     .verify-report__stat strong {
         font-size: clamp(16px, 5.5vw, 24px);
    }
     .verify-report__stat span {
         font-size: clamp(10px, 2.4vw, 11px);
         word-break: keep-all;
    }
}
 .verify-report__sum {
     padding: 10px 12px;
     border-radius: 10px;
     background: #f8fafc;
     border: 1px solid var(--border);
     font-size: 13px;
     margin-bottom: 10px;
     line-height: 1.45;
}
 .verify-report__sum.is-low {
     background: #fef2f2;
     border-color: #fecaca;
     color: #7f1d1d;
}
 .verify-report__warn {
     font-size: 11.5px;
     color: #92400e;
     background: #fffbeb;
     border: 1px solid #fde68a;
     border-radius: 10px;
     padding: 10px 12px;
     margin-bottom: 10px;
     line-height: 1.45;
}
 .verify-report__foot-notice {
     font-size: 12.5px;
     font-weight: 700;
     color: #b91c1c;
     margin: 10px 0 12px;
     line-height: 1.55;
}
 .verify-rv-table-wrap {
     margin: 12px 0;
     overflow: auto;
     -webkit-overflow-scrolling: touch;
     border: 1px solid var(--border);
     border-radius: 0;
     background: var(--card);
}
 .verify-rv-table {
     width: 100%;
     min-width: 560px;
     border-collapse: collapse;
     font-size: 12px;
}
 .verify-rv-table--slim {
     min-width: min(100%, 720px);
}
 .verify-rv-table thead th {
     text-align: left;
     padding: 10px 8px;
     background: #1a6bff;
     color: #fff;
     font-weight: 700;
     font-size: 11px;
     border-bottom: 1px solid rgba(255, 255, 255, 0.2);
     white-space: nowrap;
}
 .verify-rv-table thead th:nth-child(1), .verify-rv-table thead th:nth-child(2), .verify-rv-table thead th:nth-child(4), .verify-rv-table thead th:nth-child(5) {
     text-align: center;
}
 .verify-rv-table tbody td {
     padding: 10px 8px;
     border-bottom: 1px solid var(--border);
     vertical-align: top;
     line-height: 1.45;
}
 .verify-rv-table tbody td:nth-child(1), .verify-rv-table tbody td:nth-child(2), .verify-rv-table tbody td:nth-child(4), .verify-rv-table tbody td:nth-child(5) {
     text-align: center;
}
 .verify-rv-table tbody tr:last-child td {
     border-bottom: 0;
}
 .verify-rv-table tbody tr.is-ok {
     background: #fff;
}
 .verify-rv-table tbody tr.is-warn {
     background: #fffbeb;
}
 .verify-rv-table tbody tr.is-bad {
     background: #fef2f2;
}
 .verify-rv-table__empty {
     text-align: center;
     color: var(--muted);
     padding: 16px 12px !important;
}
 .verify-report__guide.is-info {
     border-color: #bfdbfe;
     background: #eff6ff;
}
 .verify-report__guide-ref, .verify-report__guide-act {
     margin-top: 6px;
     font-size: 11px;
     color: var(--muted);
}
 .verify-report__guide-act {
     color: var(--brand);
     font-weight: 700;
}
 .verify-report__lower {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 12px 16px;
     align-items: start;
     margin-top: 4px;
}
 @media (max-width: 600px) {
     .verify-report__lower {
         grid-template-columns: 1fr;
    }
}
 .verify-report__col .verify-report__h {
     margin: 0 0 6px;
}
 .verify-report__h {
     font-size: 10px;
     font-weight: 700;
     color: var(--muted);
     text-transform: uppercase;
     letter-spacing: 0.06em;
}
 .verify-report__guide {
     padding: 10px 12px;
     border-radius: 10px;
     border: 1px solid var(--border);
     margin-bottom: 6px;
     font-size: 12px;
     line-height: 1.45;
}
 .verify-report__guide.is-critical {
     border-color: #fed7aa;
     background: #fff7ed;
}
 .verify-report__guide.is-caution {
     border-color: #fde68a;
     background: #fffbeb;
}
 .verify-report__guide strong {
     display: block;
     margin-bottom: 4px;
     font-size: 12px;
}
 .verify-report__guide-body {
     line-height: 1.45;
}
 .verify-report__timeline {
     border-left: 2px solid var(--brand);
     padding-left: 14px;
     margin: 4px 0 0;
}
 .verify-report__timeline li {
     margin-bottom: 5px;
     font-size: 12px;
     color: var(--muted);
     list-style: none;
     position: relative;
     line-height: 1.4;
}
 .verify-report__timeline li::before {
     content: "";
     position: absolute;
     left: -21px;
     top: 4px;
     width: 8px;
     height: 8px;
     border-radius: 50%;
     background: var(--brand);
}
 .verify-report__timeline strong {
     color: var(--text);
}
 .verify-report__actions {
     width: 100%;
     align-items: center;
     margin-top: 14px;
     padding-top: 12px;
     border-top: 1px solid var(--border);
     justify-content: flex-start;
}
 .verify-report__actions > .btn--primary, .verify-report__actions > a.btn--primary {
     margin-left: auto;
}
 html[data-page="portal_01b_review_editor"] .u-sr-only {
     position: absolute;
     width: 1px;
     height: 1px;
     padding: 0;
     margin: -1px;
     overflow: hidden;
     clip: rect(0, 0, 0, 0);
     white-space: nowrap;
     border: 0;
}
 html[data-page="portal_01b_review_editor"] .rev-body {
     background: var(--bg);
     display: flex;
     flex-direction: column;
     min-height: 100vh;
}
 html[data-page="portal_01b_review_editor"] body.rev-body > header.nav {
     flex-shrink: 0;
}
 html[data-page="portal_01b_review_editor"] body.rev-body > footer.footer {
     display: none !important;
}
 html[data-page="portal_01b_review_editor"] .badge--save {
     color: var(--ok-ink, #166534);
     background: var(--ok-bg, #dcfce7);
     border-color: rgba(34, 197, 94, 0.28);
     font-weight: 700;
}
 html[data-page="portal_01b_review_editor"] #rev-save-badge.badge--save {
     display: inline-flex;
     align-items: center;
     gap: 6px;
}
 html[data-page="portal_01b_review_editor"] .rev-status-card .chip {
     cursor: default;
}
 html[data-page="portal_01b_review_editor"] .rev-status-card .chip--ok:hover {
     color: var(--ok-ink, #166534);
     background: var(--ok-bg, #dcfce7);
     border-color: rgba(34, 197, 94, 0.28);
}
 html[data-page="portal_01b_review_editor"] .rev-status-card .chip--bad:hover {
     color: #b91c1c;
     background: #fee2e2;
     border-color: rgba(248, 113, 113, 0.35);
}
 html[data-page="portal_01b_review_editor"] .rev-main {
     flex: 1;
     display: flex;
     flex-direction: column;
     min-height: 0;
     width: 100%;
     max-width: none;
     margin: 0;
     padding: 0;
     box-sizing: border-box;
     overflow-x: hidden;
}
 .rev-topbar {
     flex-shrink: 0;
     display: flex;
     flex-direction: column;
     background: transparent;
     border: 0;
     border-radius: 0;
     padding: 0;
     margin: 0;
     box-shadow: none;
}
 .rev-meta {
     margin: 0;
     font-size: var(--fs-sm);
     color: var(--muted);
     line-height: 1.55;
     max-width: min(640px, 100%);
}
 .rev-tabs {
     display: flex;
     flex-wrap: nowrap;
     gap: 0;
     margin: 0;
     padding: 0 var(--container-px);
     border-top: 1px solid var(--divider, #f1f5f9);
     background: var(--card);
     overflow-x: auto;
     -webkit-overflow-scrolling: touch;
     scrollbar-width: thin;
}
 .rev-tab {
     flex: 1 1 0;
     min-width: min(120px, 28vw);
     min-height: 44px;
     padding: 10px 12px;
     border: 0;
     border-bottom: 2px solid transparent;
     border-radius: var(--r-sm) var(--r-sm) 0 0;
     font-size: var(--fs-xs);
     font-weight: 700;
     color: var(--muted);
     background: transparent;
     box-shadow: none;
     cursor: pointer;
     transition: background var(--d-base, 240ms) var(--ease, cubic-bezier(0.22, 1, 0.36, 1)), color var(--d-base, 240ms) var(--ease, cubic-bezier(0.22, 1, 0.36, 1)), border-color var(--d-base, 240ms) var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
     white-space: nowrap;
}
 .rev-tab:hover {
     color: var(--text);
     background: var(--bg-alt, #f1f5f9);
     filter: none;
}
 .rev-tab.is-active {
     color: var(--brand);
     background: rgba(26, 107, 255, 0.08);
     border-bottom-color: var(--brand);
     outline: none;
     transform: none;
}
 .rev-cie-bar {
     flex-shrink: 0;
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     justify-content: space-between;
     gap: var(--s3);
     padding: var(--s2) var(--s4);
     background: #fff;
     border-bottom: 1px solid var(--border);
}
 html[data-page="portal_01b_review_editor"] .nav__textlink.rev-cie-bar__back {
     min-width: 0;
     min-height: 40px;
     padding: 0 14px;
     gap: var(--s2);
     box-sizing: border-box;
     border: 1px solid var(--border-strong, #cbd5e1);
     border-radius: var(--r-md, 12px);
     font-size: var(--fs-sm, 13.5px);
     line-height: 1.25;
}
 html[data-page="portal_01b_review_editor"] .nav__textlink.rev-cie-bar__back:hover {
     border-color: var(--brand-200, #bfdbfe);
     background: var(--brand-50, #eff6ff);
}
 .rev-cie-bar__title-area {
     display: flex;
     flex-direction: column;
     gap: 2px;
     flex: 1;
     min-width: 0;
}
 .rev-cie-bar__title {
     font-size: var(--fs-h3);
     font-weight: 700;
     color: var(--text);
     letter-spacing: var(--tracking-tight);
     line-height: 1.2;
}
 .rev-cie-bar__desc {
     font-size: var(--fs-xs);
     color: var(--muted);
}
 .rev-cie-bar__tools {
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     gap: var(--s3);
     margin-left: auto;
}
 .rev-hwp-ribbon {
     flex-shrink: 0;
     width: 100%;
     min-width: 0;
     background: #fff;
     border-bottom: 1px solid #c5cad2;
     box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04);
}
 .rev-hwp-ribbon__img {
     display: block;
     width: 100%;
     height: auto;
     max-width: 100%;
     user-select: none;
     pointer-events: none;
}
 .rev-doc-pills {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s2);
     margin: 0 0 var(--s4);
}
 .rev-doc-pill {
     display: inline-flex;
     align-items: center;
     padding: 6px 14px;
     border-radius: var(--r-pill);
     font-size: var(--fs-2xs);
     font-weight: 800;
     border: 1px solid var(--border);
     background: var(--bg-alt);
     color: var(--text-2);
}
 .rev-doc-pill--on {
     background: var(--brand);
     border-color: var(--brand);
     color: #fff;
}
 .rev-meta-grid {
     display: grid;
     grid-template-columns: repeat(4, minmax(0, 1fr));
     gap: var(--s3);
     margin: 0 0 var(--s5);
     padding: var(--s4);
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     background: var(--bg-alt);
}
 @media (max-width: 720px) {
     .rev-meta-grid {
         grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
 .rev-meta-grid__cell {
     display: flex;
     flex-direction: column;
     gap: 4px;
     min-width: 0;
}
 .rev-meta-grid__k {
     font-size: var(--fs-2xs);
     font-weight: 700;
     color: var(--muted);
     text-transform: uppercase;
     letter-spacing: 0.04em;
}
 .rev-meta-grid__v {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text);
     word-break: break-word;
}
 .rev-doc-block {
     padding: var(--s4);
     margin-bottom: var(--s3);
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     background: #fff;
}
 .rev-doc-block p {
     margin: 0 0 var(--s2);
}
 .rev-doc-block p:last-child {
     margin-bottom: 0;
}
 .rev-doc-block__muted {
     font-size: var(--fs-sm);
     color: var(--muted);
     line-height: 1.6;
     margin: 0 !important;
}
 .rev-hwp--clinical {
     background: #eef2f6 !important;
}
 .rev-hwp--clinical .rev-hwp__stage {
     background: #eef2f6 !important;
     flex: 1;
     min-height: 0;
     align-items: stretch;
     justify-content: flex-start;
     padding: 0;
}
 .rev-hwp--clinical .rev-hwp__canvas {
     position: relative;
     aspect-ratio: auto;
     width: 100%;
     max-width: none;
     margin: 0;
     flex: 1;
     min-height: 0;
     display: flex;
     flex-direction: column;
}
 .rev-hwp--clinical .rev-hwp__bg {
     display: none !important;
}
 .rev-hwp--clinical .rev-hwp__sheet {
     position: static;
     left: auto;
     right: auto;
     top: auto;
     bottom: auto;
     width: 100%;
     max-width: 100%;
     flex: 1 1 auto;
     max-height: none;
     margin: 0;
     box-shadow: none;
     border-radius: 0;
     border: 1px solid var(--border);
     background: #fff !important;
}
 .rev-hwp--clinical .rev-meta-grid, .rev-hwp--clinical .rev-doc-block {
     border-radius: 0;
}
 .rev-hwp--clinical .rev-doc-pill {
     border-radius: 0;
}
 .rev-hwp--clinical .rev-hwp__h {
     text-align: left;
     font-size: clamp(18px, 2.4vw, 24px);
     margin: 0 0 var(--s4);
     letter-spacing: var(--tracking-tight);
}
 .rev-hwp--clinical .rev-hwp__docname {
     text-align: left;
     font-size: var(--fs-xs);
     font-weight: 700;
     color: var(--muted);
     text-transform: none;
     letter-spacing: 0;
}
 #rev-pane-ed.rev-pane.is-active {
     flex-direction: column;
     min-height: 0;
}
 .rev-right__head {
     flex-shrink: 0;
     display: flex;
     flex-direction: column;
     align-items: stretch;
     gap: 0;
     padding: 0;
     background: #fff;
     border-bottom: 1px solid var(--border);
}
 .rev-chat-arch {
     display: flex;
     align-items: center;
     gap: var(--s3);
     padding: var(--s4) var(--s4) var(--s3);
     border-bottom: 1px solid var(--border);
}
 .rev-chat-arch__logo {
     flex-shrink: 0;
     width: 40px;
     height: 40px;
     border-radius: var(--r-md);
     display: flex;
     align-items: center;
     justify-content: center;
     background: linear-gradient(135deg, var(--brand), var(--brand-600));
     color: #fff;
     box-shadow: 0 2px 8px rgba(26, 107, 255, 0.35);
}
 .rev-chat-arch__logo .icon {
     font-size: 24px;
}
 .rev-chat-arch__meta {
     flex: 1;
     min-width: 0;
}
 .rev-chat-arch__title {
     font-size: var(--fs-sm);
     font-weight: 800;
     color: var(--text);
     letter-spacing: var(--tracking-tight);
     line-height: 1.25;
}
 .rev-chat-arch__status {
     margin-top: 4px;
     font-size: 10px;
     font-weight: 800;
     letter-spacing: 0.08em;
     color: var(--muted);
     display: flex;
     align-items: center;
     gap: 6px;
}
 .rev-chat-arch__dot {
     width: 7px;
     height: 7px;
     border-radius: 50%;
     background: #22c55e;
     box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.25);
}
 .rev-chat-arch__more {
     flex-shrink: 0;
     width: 38px;
     height: 38px;
     border: 0;
     border-radius: var(--r-md);
     background: transparent;
     color: var(--muted);
     cursor: pointer;
     display: inline-flex;
     align-items: center;
     justify-content: center;
}
 .rev-chat-arch__more:hover {
     background: var(--bg-alt);
     color: var(--text);
}
 .rev-chat-arch__more .icon {
     font-size: 22px;
}
 .rev-chat-arch .rev-fold--right {
     margin-left: 2px;
}
 .rev-right__body {
     flex: 1;
     min-height: 0;
     min-width: 0;
     display: flex;
     flex-direction: column;
     overflow: hidden;
}
 .rev-chat-scroll {
     flex: 1;
     min-height: 0;
     max-height: none;
     overflow-y: auto;
     -webkit-overflow-scrolling: touch;
     padding: var(--s4) var(--s3) var(--s3);
     background: #f8fafc;
}
 .rev-chat-turn {
     display: flex;
     align-items: flex-end;
     gap: var(--s2);
     margin-bottom: var(--s4);
     max-width: 100%;
}
 .rev-chat-turn--ai {
     flex-direction: row;
     justify-content: flex-start;
     align-items: flex-start;
}
 .rev-chat-turn--user {
     flex-direction: row;
     justify-content: flex-end;
}
 .rev-chat-avatar {
     flex-shrink: 0;
     width: 32px;
     height: 32px;
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 18px;
}
 .rev-chat-avatar--ai {
     background: linear-gradient(145deg, var(--brand-50), #fff);
     color: var(--brand);
     border: 1px solid var(--brand-200);
     box-shadow: var(--sh-1);
}
 .rev-chat-msg {
     max-width: min(100%, 320px);
     padding: var(--s3) var(--s4);
     border-radius: var(--r-lg);
     font-size: var(--fs-sm);
     line-height: 1.6;
}
 .rev-chat-msg--user {
     margin-left: auto;
     background: linear-gradient(135deg, #1e40af, #0f2744);
     color: #fff;
     font-weight: 600;
     border-radius: 16px 16px 6px 16px;
     box-shadow: 0 4px 12px rgba(15, 39, 68, 0.22);
}
 .rev-chat-msg--ai {
     background: #f1f5f9;
     border: 1px solid var(--border);
     color: var(--text);
     box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
 .rev-chat-msg--ai h3 {
     margin: 0 0 var(--s2);
     font-size: var(--fs-sm);
     font-weight: 800;
     color: var(--text);
}
 .rev-chat-msg--ai p {
     margin: 0;
     color: var(--text-2);
}
 .rev-chat-msg--ai ul {
     margin: 6px 0 0;
     padding-left: 18px;
}
 .rev-chat-form--arch {
     flex-shrink: 0;
     padding: var(--s3) var(--s3) var(--s2);
     border-top: 1px solid var(--border);
     background: #fff;
}
 .rev-chat-compose-wrap {
     display: flex;
     flex-direction: column;
     gap: var(--s2);
}
 .rev-chat-composer__chips {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s2);
     min-height: 0;
}
 .rev-chat-chip {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     padding: 4px 10px 4px 12px;
     border-radius: var(--r-pill);
     font-size: var(--fs-2xs);
     font-weight: 700;
     background: var(--bg-alt);
     border: 1px solid var(--border);
     color: var(--text-2);
}
 .rev-chat-chip__x {
     border: 0;
     background: transparent;
     color: var(--muted);
     cursor: pointer;
     font-size: 14px;
     line-height: 1;
     padding: 0 2px;
     border-radius: var(--r-xs);
}
 .rev-chat-chip__x:hover {
     color: var(--text);
     background: var(--border);
}
 .rev-chat-bar {
     display: flex;
     align-items: stretch;
     gap: 0;
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     overflow: hidden;
     background: #f1f5f9;
}
 .rev-chat-input--bar {
     flex: 1;
     min-width: 0;
     min-height: 44px;
     max-height: 120px;
     padding: 10px 12px;
     border: 0;
     resize: vertical;
     font: inherit;
     font-size: var(--fs-sm);
     line-height: 1.5;
     background: transparent;
     box-shadow: none;
}
 .rev-chat-input--bar:focus {
     outline: 0;
}
 .rev-chat-icobtn--bar {
     flex-shrink: 0;
     width: 44px;
     align-self: stretch;
     border: 0;
     border-left: 1px solid var(--border);
     border-radius: 0;
     background: #fff;
     color: var(--muted);
     cursor: pointer;
     display: inline-flex;
     align-items: center;
     justify-content: center;
}
 .rev-chat-icobtn--bar:hover {
     background: var(--bg-alt);
     color: var(--brand);
}
 .rev-chat-send-btn {
     flex-shrink: 0;
     width: 48px;
     align-self: stretch;
     border: 0;
     border-left: 1px solid rgba(255, 255, 255, 0.12);
     border-radius: 0;
     background: linear-gradient(180deg, #1e40af, #0f2744);
     color: #fff;
     cursor: pointer;
     display: inline-flex;
     align-items: center;
     justify-content: center;
     transition: filter var(--d-base) var(--ease);
}
 .rev-chat-send-btn:hover {
     filter: brightness(1.06);
}
 .rev-chat-send-btn .icon {
     font-size: 22px;
}
 .rev-chat-disclaimer {
     margin: var(--s2) 0 0;
     padding: 0 2px;
     font-size: 11px;
     line-height: 1.45;
     color: var(--muted);
}
 html[data-page="portal_01b_review_editor"] .rev-chat-ctxmenu {
     position: fixed;
     z-index: 10050;
     min-width: 172px;
     padding: 4px 0;
     margin: 0;
     list-style: none;
     border: 1px solid var(--border-strong, #cbd5e1);
     border-radius: var(--r-md);
     background: var(--card, #fff);
     box-shadow: 0 10px 32px rgba(15, 23, 42, 0.14), 0 2px 8px rgba(15, 23, 42, 0.08);
     transition: none !important;
}
 html[data-page="portal_01b_review_editor"] .rev-chat-ctxmenu[hidden] {
     display: none !important;
}
 html[data-page="portal_01b_review_editor"] .rev-chat-ctxmenu__item {
     display: block;
     width: 100%;
     box-sizing: border-box;
     border: 0;
     background: transparent;
     text-align: left;
     font: inherit;
     font-size: var(--fs-sm);
     font-weight: 600;
     padding: 9px 14px;
     color: var(--text);
     cursor: pointer;
     line-height: 1.35;
}
 html[data-page="portal_01b_review_editor"] .rev-chat-ctxmenu__item:hover, html[data-page="portal_01b_review_editor"] .rev-chat-ctxmenu__item:focus-visible {
     background: rgba(26, 107, 255, 0.09);
     color: var(--brand);
     outline: 0;
}
 html[data-page="portal_01b_review_editor"] .rev-chat-form--arch {
     padding-bottom: max(var(--s2), env(safe-area-inset-bottom, 0px));
}
 .rev-chat-icobtn {
     width: 36px;
     height: 36px;
     border-radius: var(--r-md);
     border: 0;
     background: transparent;
     color: var(--muted);
     cursor: pointer;
     display: inline-flex;
     align-items: center;
     justify-content: center;
}
 .rev-chat-icobtn:hover {
     background: var(--bg-alt);
     color: var(--brand);
}
 .rev-workspace {
     --rev-left-w: 418px;
     --rev-right-w: 380px;
     --rev-side-min: 260px;
     position: relative;
     flex: 1;
     display: flex;
     flex-direction: row;
     align-items: stretch;
     width: 100%;
     min-height: 0;
     margin: 0;
     background: var(--card);
     border: 0;
     border-radius: 0;
     overflow: hidden;
     box-shadow: none;
}
 html[data-page="portal_01b_review_editor"] .rev-workspace {
     box-shadow: inset 0 1px 0 rgba(15, 23, 42, 0.04);
     flex: 1 1 auto;
     min-height: 0;
}
 .rev-left {
     flex: 0 0 var(--rev-left-w);
     min-width: var(--rev-side-min, 250px);
     max-width: min(55vw, 450px);
}
 .rev-right {
     flex: 0 0 var(--rev-right-w);
     min-width: var(--rev-side-min, 250px);
     max-width: min(50vw, 450px);
}
 .rev-workspace.is-left-collapsed .rev-left {
     flex: 0 0 40px !important;
     width: 40px !important;
     min-width: 40px !important;
     max-width: 40px !important;
}
 .rev-workspace.is-right-collapsed .rev-right {
     flex: 0 0 40px !important;
     width: 40px !important;
     min-width: 40px !important;
     max-width: 40px !important;
}
 .rev-gutter {
     flex: 0 0 12px;
     width: 12px;
     align-self: stretch;
     position: relative;
     display: flex;
     align-items: center;
     justify-content: center;
     background: var(--border, #e2e8f0);
     cursor: col-resize;
     user-select: none;
     touch-action: none;
     z-index: 2;
}
 .rev-gutter__grip {
     pointer-events: none;
     display: flex;
     align-items: center;
     justify-content: center;
     line-height: 0;
}
 .rev-gutter__grip .icon {
     font-size: 18px;
     color: var(--muted, #64748b);
     opacity: 0.88;
     transform: rotate(90deg);
     transition: color var(--d-base, 240ms) var(--ease, cubic-bezier(0.22, 1, 0.36, 1)), opacity var(--d-base, 240ms) var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
}
 .rev-gutter:hover .rev-gutter__grip .icon, .rev-gutter:focus-visible .rev-gutter__grip .icon {
     color: var(--brand, #1a6bff);
     opacity: 1;
}
 .rev-gutter:hover, .rev-gutter:focus-visible {
     background: var(--border-strong, #cbd5e1);
}
 .rev-gutter:focus-visible {
     outline: 2px solid var(--brand);
     outline-offset: -2px;
}
 .rev-workspace.is-left-collapsed .rev-gutter--l {
     display: none;
}
 .rev-workspace.is-right-collapsed .rev-gutter--r {
     display: none;
}
/* ── 아이콘 레일: workspace 전체 높이 고정 ── */
 html[data-page="portal_01b_review_editor"] .rev-rail-slot {
     position: absolute;
     left: 0;
     top: 0;
     bottom: 0;
     width: 62px;
     z-index: 8;
     flex: none !important;
}
 html[data-page="portal_01b_review_editor"] .rev-rail-col {
     position: absolute;
     left: 0;
     top: 0;
     bottom: 0;
     width: 62px;
}

 html[data-page="portal_01b_review_editor"] .rev-left, html[data-page="portal_01b_review_editor"] .rev-right, html[data-page="portal_01b_review_editor"] .rev-gutter--l, html[data-page="portal_01b_review_editor"] .rev-gutter--r {
     position: absolute;
     top: 0;
     bottom: 0;
     flex: none !important;
}
 html[data-page="portal_01b_review_editor"] .rev-left {
     left: 62px;
     width: calc(var(--rev-left-w) - 62px);
     z-index: 4;
     box-shadow: 4px 0 20px rgba(15, 23, 42, 0.1);
}
 html[data-page="portal_01b_review_editor"] .rev-gutter--l {
     left: var(--rev-left-w);
     width: 12px;
     z-index: 6;
}
 html[data-page="portal_01b_review_editor"] .rev-gutter--r {
     right: var(--rev-right-w);
     width: 12px;
     z-index: 6;
}
 html[data-page="portal_01b_review_editor"] .rev-right {
     right: 0;
     width: var(--rev-right-w);
     z-index: 4;
     box-shadow: -4px 0 20px rgba(15, 23, 42, 0.1);
}
 html[data-page="portal_01b_review_editor"] .rev-center {
     position: relative;
     z-index: 1;
     flex: 1 1 auto !important;
     width: auto;
     max-width: none;
     min-width: 0 !important;
     box-sizing: border-box;
     margin-left: calc(var(--rev-left-w) + 12px);
     margin-right: calc(var(--rev-right-w) + 12px);
}
 html[data-page="portal_01b_review_editor"] .rev-workspace.is-left-collapsed .rev-center {
     margin-left: calc(62px + 12px) !important;
}
 html[data-page="portal_01b_review_editor"] .rev-workspace.is-left-collapsed .rev-left {
     width: 0 !important;
     min-width: 0 !important;
     max-width: 0 !important;
     overflow: visible;
     background: transparent !important;
     box-shadow: none !important;
     pointer-events: none;
}
 html[data-page="portal_01b_review_editor"] .rev-workspace.is-left-collapsed .rev-left__inner {
     overflow: hidden;
     width: 0;
     min-width: 0;
}
 html[data-page="portal_01b_review_editor"] .rev-workspace.is-left-collapsed .rev-panel-head {
     background: transparent !important;
     border: 0 !important;
}
 html[data-page="portal_01b_review_editor"] .rev-workspace.is-left-collapsed .rev-gutter--l {
     display: none;
}
 html[data-page="portal_01b_review_editor"] .rev-workspace.is-left-collapsed #rev-left-fold-btn {
     pointer-events: auto;
     position: fixed;
     left: 62px;
     z-index: 20;
     background: var(--card) !important;
     border-radius: var(--r-sm);
     box-shadow: 0 2px 10px rgba(15,23,42,.14), 0 1px 2px rgba(15,23,42,.08);
}
 html[data-page="portal_01b_review_editor"] .rev-workspace.is-right-collapsed .rev-center {
     margin-right: 0 !important;
}
 html[data-page="portal_01b_review_editor"] .rev-workspace.is-right-collapsed .rev-right {
     width: 0 !important;
     min-width: 0 !important;
     max-width: 0 !important;
     overflow: visible;
     background: transparent !important;
     box-shadow: none !important;
     pointer-events: none;
}
 html[data-page="portal_01b_review_editor"] .rev-workspace.is-right-collapsed .rev-right__inner {
     overflow: visible;
     width: 0;
     min-width: 0;
}
 html[data-page="portal_01b_review_editor"] .rev-workspace.is-right-collapsed .rev-right__head {
     background: transparent !important;
     border: 0 !important;
}
 html[data-page="portal_01b_review_editor"] .rev-workspace.is-right-collapsed .rev-chat-arch {
     background: transparent;
     border: 0;
}
 html[data-page="portal_01b_review_editor"] .rev-workspace.is-right-collapsed .rev-fold--right {
     pointer-events: auto;
     position: absolute;
     right: 0;
     top: 4px;
     transform: none;
     z-index: 20;
     background: var(--card) !important;
     border-radius: var(--r-sm);
     box-shadow: 0 2px 10px rgba(15, 23, 42, 0.14), 0 1px 2px rgba(15, 23, 42, 0.08);
}
 @media (max-width: 960px) {
     .rev-workspace {
         flex-direction: column;
         flex: 0 1 auto;
    }
     .rev-gutter--l, .rev-gutter--r {
         display: none !important;
    }
     html[data-page="portal_01b_review_editor"] .rev-left, html[data-page="portal_01b_review_editor"] .rev-right, html[data-page="portal_01b_review_editor"] .rev-gutter--l, html[data-page="portal_01b_review_editor"] .rev-gutter--r {
         position: static;
         left: auto;
         right: auto;
         top: auto;
         bottom: auto;
         width: auto !important;
         box-shadow: none;
         z-index: auto;
    }
     .rev-left, .rev-right {
         flex: 0 0 auto !important;
         max-width: none !important;
         min-height: min(38vh, 320px);
    }
     html[data-page="portal_01b_review_editor"] .rev-center {
         margin-left: 0 !important;
         margin-right: 0 !important;
         width: 100% !important;
    }
     .rev-center {
         min-height: 48vh;
         flex: 1 1 auto;
    }
     .rev-word-embed__frame {
         min-height: 52vh;
    }
}
 .rev-left, .rev-right {
     position: relative;
     display: flex;
     flex-direction: column;
     border-color: var(--border);
     min-height: 0;
}
 .rev-left {
     border-right: 0;
     background: #fff;
}
 .rev-right {
     border-left: 0;
     flex-direction: column;
     background: #fafbfc;
}
 .rev-left__inner {
     flex: 1;
     min-height: 0;
     overflow: hidden;
     padding: 0;
     display: flex;
     flex-direction: column;
}
 .rev-right__inner {
     flex: 1;
     min-height: 0;
     overflow: hidden;
     padding: 0;
     display: flex;
     flex-direction: column;
}
 .rev-left__split-head {
     display: flex;
     flex-direction: row;
     flex-shrink: 0;
     align-items: stretch;
     min-width: 0;
     background: #fff;
}
 .rev-left__split-head__rail {
     flex: 0 0 62px;
     width: 62px;
     flex-shrink: 0;
     border-right: 1px solid var(--border);
     background: #fff;
}
 .rev-left__files-head {
     flex: 1;
     min-width: 0;
     display: flex;
     flex-direction: row;
     align-items: center;
     gap: var(--s2);
     padding: var(--s4) var(--s4) 0 var(--s4);
     background: #fff;
}
 .rev-left__files-head .rev-side-tabs {
     flex: 1;
     min-width: 0;
}
 .rev-left__split {
     display: flex;
     flex: 1;
     min-height: 0;
     min-width: 0;
     overflow: visible;
     align-items: stretch;
     position: relative;
}
 .rev-rail-slot {
     flex: 0 0 62px;
     width: 62px;
     min-width: 62px;
     flex-shrink: 0;
     align-self: stretch;
     position: relative;
     z-index: 8;
}
 .rev-rail-col {
     position: absolute;
     left: 0;
     top: 0;
     bottom: 0;
     width: 62px;
     z-index: 2;
     display: flex;
     flex-direction: column;
     align-items: stretch;
     min-height: 0;
     background: #fff;
     border-right: 1px solid var(--border);
     box-sizing: border-box;
     border-radius: 0;
     overflow: visible;
     transition: width var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease), border-radius var(--d-base) var(--ease);
}
 .rev-rail-backdrop {
     display: none;
}
 .rev-rail {
     flex: 1;
     min-height: 0;
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: var(--s2);
     padding: var(--s3) 6px var(--s3);
     overflow-x: hidden;
     overflow-y: auto;
     -webkit-overflow-scrolling: touch;
}
 .rev-rail__btn {
     flex-shrink: 0;
     align-self: center;
     width: 40px;
     height: 40px;
     border-radius: var(--r-md);
     border: 0;
     background: transparent;
     color: var(--muted);
     cursor: pointer;
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 0;
     padding: 0;
     transition: background var(--d-base) var(--ease), color var(--d-base) var(--ease), width var(--d-base) var(--ease);
}
 .rev-rail__btn .icon {
     flex-shrink: 0;
}
 .rev-rail__label {
     display: none;
     flex: 1;
     min-width: 0;
     text-align: left;
     font-size: var(--fs-xs);
     font-weight: 600;
     line-height: 1.2;
     color: var(--text);
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
}
 .rev-rail__btn:hover {
     background: rgba(15, 23, 42, 0.07);
     color: var(--text);
}
 .rev-rail__btn--active, .rev-rail__btn.is-active {
     background: var(--brand-50);
     color: var(--brand);
     box-shadow: inset 0 0 0 1px var(--brand-200);
}
 .rev-left__files {
     position: relative;
     z-index: 1;
     flex: 1;
     min-width: 0;
     min-height: 0;
     display: flex;
     flex-direction: column;
     overflow-x: hidden;
     overflow-y: auto;
     -webkit-overflow-scrolling: touch;
     padding: var(--s4);
}
 .rev-file-cards {
     display: flex;
     flex-direction: column;
     gap: var(--s2);
     margin-bottom: var(--s2);
}
 .rev-file-card {
     position: relative;
     display: flex;
     flex-direction: column;
     align-items: flex-start;
     gap: var(--s2);
     width: 100%;
     margin: 0;
     padding: var(--s3) var(--s4);
     text-align: left;
     font: inherit;
     cursor: pointer;
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     background: var(--card);
     box-shadow: var(--sh-1);
     transition: border-color var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease), background var(--d-base) var(--ease);
}
 .rev-file-card:hover {
     border-color: var(--brand-200);
     background: var(--brand-50);
}
 .rev-file-card:focus-visible {
     outline: 2px solid var(--brand);
     outline-offset: 2px;
}
 .rev-file-card--active {
     border-color: var(--brand);
     box-shadow: 0 0 0 1px var(--brand), var(--sh-1);
     background: #fff;
}
 .rev-file-card--active::before {
     content: "";
     position: absolute;
     left: 0;
     top: 10px;
     bottom: 10px;
     width: 4px;
     border-radius: 0 4px 4px 0;
     background: var(--brand);
}
 .rev-file-card__row {
     display: flex;
     align-items: center;
     gap: var(--s3);
     width: 100%;
     min-width: 0;
}
 .rev-file-card__name {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text);
     flex: 1;
     min-width: 0;
     text-align: left;
     word-break: break-word;
}
 .rev-file-card__status {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     font-size: var(--fs-2xs);
     font-weight: 700;
     color: var(--muted);
}
 .rev-file-card__dot {
     width: 7px;
     height: 7px;
     border-radius: 50%;
     flex-shrink: 0;
}
 .rev-file-card__dot--ok {
     background: #22c55e;
     box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.2);
}
 .rev-file-card__dot--wait {
     background: #eab308;
     box-shadow: 0 0 0 2px rgba(234, 179, 8, 0.22);
}
 .rev-workspace.is-left-collapsed .rev-left__split {
     display: none !important;
}
 .rev-workspace.is-left-collapsed .rev-left__split-head__rail {
     display: none !important;
}
 .rev-workspace.is-left-collapsed .rev-left__split-head {
     border-bottom: 0;
     background: transparent;
}
 .rev-workspace.is-left-collapsed .rev-left__files-head {
     padding: var(--s2) 0;
     justify-content: center;
     background: transparent;
}
 .rev-workspace.is-left-collapsed .rev-left__files-head .rev-side-tabs {
     display: none !important;
}
 .rev-workspace.is-right-collapsed .rev-right__body {
     display: none !important;
}
 .rev-workspace.is-right-collapsed .rev-right__head .rev-chat-arch__logo, .rev-workspace.is-right-collapsed .rev-right__head .rev-chat-arch__meta, .rev-workspace.is-right-collapsed .rev-right__head .rev-chat-arch__more {
     display: none !important;
}
 .rev-workspace.is-right-collapsed .rev-right__head {
     justify-content: center;
     align-items: center;
     padding: var(--s2) 0;
}
 .rev-workspace.is-right-collapsed .rev-right__head .rev-chat-arch {
     width: 100%;
     justify-content: center;
     padding: var(--s2) var(--s1);
     border-bottom: 0;
}
 .rev-fold {
     position: relative;
     flex-shrink: 0;
     z-index: 3;
     width: 36px;
     height: 36px;
     border-radius: var(--r-md);
     border: 1px solid var(--border);
     background: var(--card);
     color: var(--brand);
     cursor: pointer;
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: var(--sh-1);
}
 .rev-fold:hover {
     background: var(--brand-50);
}
 .rev-fold--left {
     margin-left: auto;
}
 .rev-fold--right {
     margin-left: 0;
}
 .rev-fold__ic {
     font-family: var(--font-icon);
     font-size: 20px;
}
 .rev-workspace.is-left-collapsed .rev-fold--left .rev-fold__ic {
     transform: rotate(180deg);
}
 .rev-workspace.is-right-collapsed .rev-fold--right .rev-fold__ic {
     transform: rotate(180deg);
}
 .rev-side-tabs--pill {
     display: flex;
     gap: 6px;
     padding: 6px;
     margin: 0 0 var(--s3);
     background: rgba(15, 23, 42, 0.06);
     border-radius: var(--r-md);
     border: 0;
     box-sizing: border-box;
}
 .rev-side-tabs--pill .rev-side-tab {
     flex: 1;
     min-width: 0;
     padding: 8px 10px;
     font-size: var(--fs-xs);
     font-weight: 700;
     border: 0;
     border-radius: var(--r-sm);
     background: transparent;
     color: var(--muted);
     cursor: pointer;
     transition: background var(--d-base) var(--ease), color var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease);
}
 .rev-side-tabs--pill .rev-side-tab.is-active {
     background: #fff;
     color: var(--brand);
     box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}
 .rev-side-tabs--pill .rev-side-tab:hover:not(.is-active) {
     color: var(--text-2);
     background: rgba(255, 255, 255, 0.72);
}
 .rev-proj {
     margin-bottom: var(--s2);
}
 .rev-proj__title {
     margin: 0 0 var(--s3);
     font-size: calc(2 * var(--fs-2xs) * 0.75);
     font-weight: 700;
     line-height: 1.25;
     color: #000;
     letter-spacing: 0;
}
 .rev-proj-tree {
     display: flex;
     flex-direction: column;
     gap: 0;
}
 .rev-proj-folder {
     display: flex;
     align-items: center;
     gap: 6px;
     width: 100%;
     margin: 0;
     padding: 6px 8px;
     border: 0;
     border-radius: 4px;
     background: transparent;
     cursor: pointer;
     text-align: left;
     font: inherit;
     font-size: calc(var(--fs-sm) * 0.92);
     color: var(--text);
     transition: background var(--d-base) var(--ease), color var(--d-base) var(--ease);
}
 .rev-proj-folder:hover {
     background: rgba(15, 23, 42, 0.04);
}
 .rev-proj-folder.is-open {
     background: rgba(26, 107, 255, 0.07);
     color: var(--brand);
}
 .rev-proj-folder__ic {
     flex-shrink: 0;
     font-size: 18px;
     line-height: 1;
     color: var(--muted);
}
 .rev-proj-folder.is-open .rev-proj-folder__ic {
     color: var(--brand);
}
 .rev-proj-folder__name {
     flex: 1;
     min-width: 0;
     font-size: inherit;
     font-weight: 700;
}
 .rev-proj-folder__chev {
     flex-shrink: 0;
     font-size: 18px;
     line-height: 1;
     opacity: 0.45;
}
 .rev-proj-folder.is-open .rev-proj-folder__chev {
     opacity: 0.75;
}
 .rev-proj-nest {
     display: none;
     flex-direction: column;
     gap: 0;
     padding: 2px 0 6px 8px;
     margin: 0 0 0 8px;
     border-left: 1px solid #e2e8f0;
}
 .rev-proj-folder.is-open + .rev-proj-nest {
     display: flex;
}
 .rev-proj-file {
     position: relative;
     display: flex;
     align-items: center;
     gap: 6px;
     width: 100%;
     margin: 0;
     padding: 5px 6px 5px 8px;
     border: 0;
     border-radius: 0;
     background: transparent !important;
     box-shadow: none !important;
     text-align: left;
     font: inherit;
     font-size: calc(var(--fs-sm) * 0.85);
     font-weight: 500;
     line-height: 1.4;
     color: var(--text-2);
     cursor: pointer;
     transition: color var(--d-base) var(--ease), background var(--d-base) var(--ease);
}
 .rev-proj-file:hover {
     background: transparent;
     color: var(--text);
}
 .rev-proj-file:focus-visible {
     outline: 2px solid var(--brand);
     outline-offset: 1px;
}
 .rev-proj-file__ic {
     flex-shrink: 0;
     font-size: calc(18px * 0.85);
     color: var(--muted);
}
 .rev-proj-file__name {
     flex: 1;
     min-width: 0;
     text-align: left;
     word-break: break-word;
     font-size: inherit;
}
 .rev-proj-file--active {
     background: transparent !important;
     border: 0 !important;
     box-shadow: none !important;
     color: var(--brand);
     font-weight: 600;
}
 .rev-proj-file--active:hover {
     background: transparent;
     color: var(--brand);
}
 .rev-proj-file--active .rev-proj-file__ic {
     color: var(--brand);
}
 .rev-proj-file--active::before {
     content: "";
     position: absolute;
     left: 0;
     top: 4px;
     bottom: 4px;
     width: 2px;
     border-radius: 0;
     background: var(--brand);
}
 .rev-proj-tree--root {
     border-left: 0;
     margin-left: 0;
     padding-left: 0;
}
 .rev-proj--recent {
     margin-bottom: 0;
}
 #rev-pane-recent .rev-proj-file__ic {
     color: #c2410c;
}
 #rev-pane-recent .rev-proj-file--active .rev-proj-file__ic {
     color: var(--brand);
}
 #rev-pane-sub > .rev-proj-upload {
     margin: 0 0 var(--s4);
     flex-shrink: 0;
}
 .rev-proj-upload {
     border: 2px dashed var(--border-strong, #cbd5e1);
     border-radius: var(--r-md);
     background: #fff;
     padding: var(--s4) var(--s3) var(--s3);
     text-align: center;
     transition: border-color var(--d-base) var(--ease), background var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease);
}
 .rev-proj-upload.is-drag {
     border-color: var(--brand-200, #bfdbfe);
     background: var(--brand-50, #eff6ff);
     box-shadow: 0 0 0 1px rgba(26, 107, 255, 0.12) inset;
}
 .rev-proj-upload__hit {
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: center;
     gap: 6px;
     width: 100%;
     margin: 0;
     padding: var(--s2) 0 var(--s1);
     border: 0;
     border-radius: var(--r-sm);
     background: transparent;
     cursor: pointer;
     font: inherit;
     color: var(--text);
}
 .rev-proj-upload__hit:hover {
     background: rgba(15, 23, 42, 0.04);
}
 .rev-proj-upload__hit:focus-visible {
     outline: 2px solid var(--brand);
     outline-offset: 2px;
}
 .rev-proj-upload__ic {
     font-family: var(--font-icon);
     font-size: 28px;
     font-weight: 300;
     line-height: 1;
     color: var(--brand, #1a6bff);
}
 .rev-proj-upload__ttl {
     font-size: var(--fs-sm);
     font-weight: 800;
     letter-spacing: var(--tracking-tight);
     color: #0f172a;
}
 .rev-proj-upload__help {
     margin: 0;
     padding: 0 var(--s2);
     font-size: var(--fs-2xs);
     font-weight: 600;
     line-height: 1.45;
     color: var(--muted);
}
 #rev-pane-sub > .rev-proj {
     margin-bottom: 0;
     padding-bottom: var(--s4);
     border-bottom: 1px dotted var(--border-strong);
}
 #rev-pane-sub > .rev-status-cards {
     padding-bottom: var(--s4);
     margin-bottom: 0;
     border-bottom: 1px dotted var(--border-strong);
}
 .rev-proj-file--withmeta {
     flex-direction: column;
     align-items: stretch;
     gap: 5px;
     padding-top: 7px;
     padding-bottom: 7px;
}
 .rev-proj-file--withmeta .rev-proj-file__top {
     display: flex;
     align-items: flex-start;
     gap: 6px;
     width: 100%;
     min-width: 0;
}
 .rev-proj-file--withmeta .rev-proj-file__name {
     flex: 1;
     min-width: 0;
}
 .rev-proj-file__meta {
     display: flex;
     align-items: center;
     gap: 6px;
     font-size: 10px;
     font-weight: 700;
     color: var(--muted);
     padding-left: calc(15.3px + 6px);
     line-height: 1.3;
}
 .rev-proj-file--withmeta.rev-proj-file--active .rev-proj-file__meta {
     color: var(--brand-700);
}
 .rev-proj-file__dot {
     width: 7px;
     height: 7px;
     border-radius: 50%;
     flex-shrink: 0;
}
 .rev-proj-file__dot--ok {
     background: #22c55e;
     box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.2);
}
 .rev-proj-file__dot--wait {
     background: #eab308;
     box-shadow: 0 0 0 2px rgba(234, 179, 8, 0.22);
}
 .rev-h2 {
     display: flex;
     align-items: center;
     gap: 6px;
     font-size: calc(2 * var(--fs-2xs) * 0.75);
     font-weight: 700;
     line-height: 1.25;
     color: #000;
     text-transform: none;
     letter-spacing: 0;
     margin: var(--s4) 0 var(--s2);
}
 .rev-h2:first-of-type {
     margin-top: 0;
}
 #rev-pane-sub > .rev-h2:first-of-type {
     margin-top: var(--s4);
}
 .rev-filetree {
     list-style: none;
     margin: 0;
     padding: 0;
     font-size: var(--fs-sm);
}
 .rev-filetree li {
     display: flex;
     align-items: center;
     gap: 8px;
     padding: 8px 10px;
     border-radius: var(--r-sm);
     cursor: default;
}
 .rev-filetree li:hover {
     background: rgba(26, 107, 255, 0.06);
}
 .rev-file-ic {
     color: #dc2626;
     font-size: 20px;
}
 .rev-status-cards {
     display: flex;
     flex-direction: column;
     gap: 1px;
     padding-left: 10px;
}
 .rev-status-card {
     display: flex;
     flex-direction: row;
     align-items: center;
     gap: 6px;
     padding: 3px 0;
     text-decoration: none;
     color: var(--muted);
     font-size: 12px;
}
 button.rev-status-card {
     border: 0;
     background: transparent;
     font: inherit;
     text-align: left;
     cursor: pointer;
     width: 100%;
}
 .rev-status-card:hover {
     color: var(--brand);
}
 .rev-dot {
     color: var(--muted);
     font-size: 12px;
     line-height: 1;
}
 .rev-name {
     font-size: 14px;
     font-weight: 500;
     color: var(--muted);
}
 .rev-status-card:hover .rev-name {
     color: var(--brand);
}
 .rev-chip {
     font-size: 10px;
     font-weight: 700;
     padding: 2px 8px;
     border-radius: var(--r-pill);
     white-space: nowrap;
     min-width: 80px;
     text-align: center;
}
 .rev-chip--ok {
     background: var(--brand-100, #dbeafe);
     color: var(--brand-800, #1e40af);
     border: 1px solid var(--brand-200);
}
 .rev-chip--run {
     background: #fffbeb;
     color: #b45309;
     border: 1px solid #fde68a;
}
 .rev-timeline {
     list-style: none;
     margin: 0 0 0 10px;
     padding: 0 0 0 14px;
     border-left: 2px solid var(--brand-200);
}
 .rev-timeline li {
     position: relative;
     margin-bottom: 12px;
     padding-left: 12px;
     font-size: 12px;
     color: var(--muted);
}
 .rev-timeline li::before {
     content: "";
     position: absolute;
     left: -15px;
     top: 4px;
     width: 8px;
     height: 8px;
     border-radius: 50%;
     background: var(--brand);
     transform: translateX(-50%);
}
 .rev-timeline time {
     display: block;
     font-weight: 800;
     color: var(--text);
     margin-bottom: 2px;
     font-size: calc(12px * 1.05);
}
 .rev-timeline li > span {
     font-size: calc(12px * 1.1);
}
 .rev-center {
     flex: 1 1 auto;
     display: flex;
     flex-direction: column;
     min-width: 200px;
     min-height: 0;
     background: var(--card);
}
 .rev-center__toolbar {
     flex-shrink: 0;
     min-width: 0;
}
 html[data-page="portal_01b_review_editor"] .rev-center__toolbar {
     position: relative;
     z-index: 3;
}
 .rev-center__panes {
     flex: 1;
     min-height: 0;
     display: flex;
     flex-direction: column;
     overflow: hidden;
     padding: 0;
     border-bottom: 0;
}
 .rev-pane {
     display: none;
     flex: 1;
     flex-direction: column;
     min-height: 0;
     min-width: 0;
     overflow: auto;
     padding: var(--s4);
}
 .rev-pane.is-active {
     display: flex;
}
 html[data-page="portal_01b_review_editor"] .rev-center__panes > .rev-pane:not(.is-active) {
     display: none !important;
}
 html[data-page="portal_01b_review_editor"] .rev-center__panes > .rev-pane.is-active {
     display: flex !important;
}
 #rev-pane-ed {
     padding: 0;
     overflow: hidden;
     min-height: 0;
     -webkit-overflow-scrolling: touch;
}
 #rev-pane-ed .rev-word-embed {
     flex: 1;
     min-height: 0;
     max-height: none;
     display: flex;
     flex-direction: column;
     border-top: 0;
     background: #eef2f6;
}
 .rev-word-embed__frame {
     flex: 1;
     width: 100%;
     min-height: 320px;
     border: 0;
     display: block;
     background: #c8c4c0;
}
 .rev-pane-head {
     margin-bottom: var(--s3);
}
 .rev-pane-title {
     font-size: 14px;
     font-weight: 800;
     margin: 0 0 4px;
}
 .rev-pane-desc {
     margin: 0;
     font-size: var(--fs-sm);
     color: var(--muted);
}
 .rev-pane.rev-tool-page {
     display: flex;
     flex-direction: column;
     flex: 1;
     min-height: 0;
     gap: var(--s3);
     padding-top: var(--s2);
}
 .rev-tool-page__head {
     display: flex;
     flex-wrap: wrap;
     align-items: flex-start;
     justify-content: space-between;
     gap: var(--s3) var(--s4);
     flex-shrink: 0;
}
 .rev-tool-page__head--stack .rev-tool-page__head-text {
     flex: 1 1 100%;
     min-width: 0;
}
 .rev-tool-page__head-text {
     flex: 1;
     min-width: 0;
     max-width: 100%;
}
 .rev-tool-page__title {
     margin: 0 0 6px;
     font-size: clamp(18px, 2.3vw, 22px);
     font-weight: 800;
     letter-spacing: var(--tracking-tight);
     color: #0c2254;
     line-height: 1.25;
}
 .rev-tool-page__title-row {
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     gap: var(--s2);
     margin: 0 0 6px;
}
 .rev-tool-page__title-row .rev-tool-page__title {
     margin: 0;
}
 .rev-tool-page__head .rev-sum-card__actions {
     flex-shrink: 0;
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     justify-content: flex-end;
     gap: var(--s2);
     align-self: center;
}
 .rev-tool-page__desc {
     margin: 0;
     font-size: var(--fs-sm);
     color: var(--muted);
     line-height: 1.55;
     max-width: min(62ch, 100%);
}
 .rev-tool-section-title {
     margin: 0;
     font-size: clamp(15px, 1.9vw, 17px);
     font-weight: 800;
     letter-spacing: var(--tracking-tight);
     color: #0f172a;
}
 .rev-tool-page__head .rev-db-ai-toggle {
     align-self: center;
     flex-shrink: 0;
}
 .rev-searchbar {
     display: flex;
     flex-wrap: wrap;
     gap: 10px;
     margin-bottom: var(--s3);
}
 .rev-input {
     flex: 1;
     min-width: 180px;
     padding: 10px 12px;
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     font: inherit;
     transition: border-color var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease);
}
 .rev-input:focus {
     outline: 0;
     border-color: var(--brand);
     box-shadow: 0 0 0 3px rgba(26, 107, 255, 0.12);
}
 .rev-db-card {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     box-shadow: var(--sh-1);
     padding: var(--s5) var(--s5) var(--s4);
}
 .rev-db-card--search {
     padding-top: var(--s4);
}
 .rev-db-card__head {
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
     gap: var(--s3);
     margin-bottom: var(--s2);
}
 .rev-db-card__head--queue {
     align-items: center;
     margin-bottom: var(--s3);
}
 .rev-db-card__title {
     margin: 0;
     font-size: clamp(17px, 2.2vw, 20px);
     font-weight: 800;
     letter-spacing: var(--tracking-tight);
     color: #0c2254;
}
 .rev-db-card__count {
     font-weight: 700;
     color: var(--muted);
}
 .rev-db-card__lede {
     margin: 0 0 var(--s4);
     font-size: var(--fs-sm);
     color: var(--muted);
     line-height: 1.5;
}
 .rev-db-ai-toggle {
     flex-shrink: 0;
     display: inline-flex;
     align-items: center;
     gap: 6px;
     padding: 8px 14px;
     border: 0;
     border-radius: var(--r-pill);
     font-size: var(--fs-xs);
     font-weight: 700;
     cursor: pointer;
     color: #3730a3;
     background: linear-gradient(135deg, #eef2ff, #e0e7ff);
     box-shadow: 0 1px 2px rgba(79, 70, 229, 0.12);
     transition: opacity var(--d-base) var(--ease), transform var(--d-fast) var(--ease);
}
 .rev-db-ai-toggle:hover {
     opacity: 0.92;
}
 .rev-db-ai-toggle.is-on {
     background: linear-gradient(135deg, #e0e7ff, #c7d2fe);
}
 .rev-db-ai-toggle .icon {
     font-size: 18px;
}
 .rev-db-search-lg {
     display: flex;
     align-items: stretch;
     gap: 0;
     border: 1px solid var(--border-strong);
     border-radius: var(--r-md);
     overflow: hidden;
     background: #fff;
     margin-bottom: var(--s3);
}
 .rev-db-search-lg__prefix {
     display: flex;
     align-items: center;
     gap: 6px;
     padding: 0 12px 0 14px;
     background: var(--bg-alt, #f1f5f9);
     border-right: 1px solid var(--border);
     color: var(--muted);
}
 .rev-db-search-lg__prefix .icon {
     font-size: 22px;
}
 .rev-db-search-lg__eq {
     font-size: 10px;
     font-weight: 800;
     letter-spacing: 0.06em;
     color: var(--brand-600);
     padding: 2px 5px;
     border-radius: 4px;
     background: rgba(26, 107, 255, 0.1);
}
 .rev-db-search-lg__input {
     flex: 1;
     min-width: 0;
     border: 0;
     padding: 12px 14px;
     font: inherit;
     font-size: var(--fs-sm);
     outline: none;
}
 .rev-db-search-lg__input::placeholder {
     color: var(--dim);
}
 .rev-db-search-lg__reset {
     flex-shrink: 0;
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 6px;
     padding: 0 12px 0 14px;
     border: 0;
     border-left: 1px solid var(--border);
     font: inherit;
     font-size: var(--fs-xs);
     font-weight: 700;
     color: var(--text-2);
     background: var(--bg-alt, #f1f5f9);
     cursor: pointer;
     white-space: nowrap;
     transition: background var(--d-base) var(--ease), color var(--d-base) var(--ease);
}
 .rev-db-search-lg__reset .icon {
     font-size: 18px;
     color: var(--muted);
}
 .rev-db-search-lg__reset:hover {
     background: #e2e8f0;
     color: var(--text);
}
 .rev-db-search-lg__reset:hover .icon {
     color: var(--brand);
}
 .rev-db-search-lg__btn {
     flex-shrink: 0;
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 8px;
     padding: 0 20px;
     border: 0;
     font: inherit;
     font-size: var(--fs-sm);
     font-weight: 700;
     color: #fff;
     cursor: pointer;
     background: linear-gradient(180deg, #1e40af, #0f2744);
     transition: filter var(--d-base) var(--ease);
}
 .rev-db-search-lg__btn:hover {
     filter: brightness(1.06);
}
 .rev-db-search-lg__btn .icon {
     font-size: 18px;
}
 .rev-db-chips {
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     gap: var(--s2);
}
 .rev-db-chips__label {
     font-size: var(--fs-xs);
     font-weight: 700;
     color: var(--muted);
}
 .rev-db-chip {
     padding: 6px 12px;
     border-radius: var(--r-pill);
     border: 1px solid var(--border);
     background: var(--bg-alt);
     font-size: var(--fs-xs);
     font-weight: 600;
     color: var(--text-2);
     cursor: pointer;
     transition: background var(--d-base) var(--ease), border-color var(--d-base) var(--ease), color var(--d-base) var(--ease);
}
 .rev-db-chip:hover {
     border-color: var(--brand-200);
     color: var(--brand);
     background: var(--brand-50);
}
 .rev-db-queue-actions {
     display: flex;
     align-items: center;
     gap: 4px;
}
 .rev-db-iconbtn {
     width: 38px;
     height: 38px;
     display: inline-flex;
     align-items: center;
     justify-content: center;
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     background: var(--card);
     color: var(--muted);
     cursor: pointer;
     transition: background var(--d-base) var(--ease), color var(--d-base) var(--ease), border-color var(--d-base) var(--ease);
}
 .rev-db-iconbtn:hover {
     color: var(--brand);
     border-color: var(--brand-200);
     background: var(--brand-50);
}
 .rev-db-iconbtn .icon {
     font-size: 20px;
}
 .rev-db-results {
     font-size: var(--fs-sm);
}
 .rev-db-table--queue {
     width: 100%;
     border-collapse: collapse;
     margin: 0;
}
 .rev-db-table--queue th, .rev-db-table--queue td {
     padding: 10px 12px;
     border-bottom: 1px solid var(--border);
     text-align: center;
     font-size: 12px;
     vertical-align: middle;
}
 .rev-db-table--queue thead th {
     background: linear-gradient(180deg, #eff6ff, #e8f0fc);
     color: #0f2744;
     font-weight: 800;
     font-size: 11px;
     letter-spacing: 0.02em;
     border-bottom: 1px solid var(--border-strong);
}
 .rev-db-th-check {
     width: 40px;
     text-align: center;
}
 .rev-db-td-check {
     text-align: center;
}
 .rev-db-table--queue thead th:nth-child(2) {
     text-align: left;
}
 .rev-db-td-doc {
     min-width: 0;
     text-align: left;
}
 .rev-db-doclink {
     display: block;
     font-weight: 700;
     color: var(--brand);
     text-decoration: none;
     word-break: break-word;
     text-align: left;
}
 button.rev-db-doclink {
     border: 0;
     background: transparent;
     padding: 0;
     font: inherit;
     text-align: left;
     cursor: pointer;
     width: 100%;
}
 .rev-db-doclink:hover {
     text-decoration: underline;
}
 .rev-db-docid {
     display: block;
     margin-top: 3px;
     font-size: 10px;
     font-weight: 600;
     color: var(--muted);
     letter-spacing: 0.02em;
     text-align: left;
}
 .rev-db-type {
     display: inline-block;
     padding: 3px 10px;
     border-radius: var(--r-pill);
     font-size: 11px;
     font-weight: 700;
     color: var(--text-2);
     background: #f1f5f9;
     border: 1px solid var(--border);
}
 .rev-db-th-meter {
     text-align: center;
}
 .rev-db-td-meter {
     min-width: min(100%, 168px);
     text-align: center;
}
 .rev-db-td-meter .rev-db-meter-wrap {
     display: flex;
     width: 100%;
     max-width: 220px;
     margin: 0 auto;
     justify-content: space-between;
     align-items: center;
     gap: 8px;
     flex-wrap: nowrap;
}
 .rev-db-meter {
     display: inline-block;
     vertical-align: middle;
     width: 72px;
     height: 8px;
     border-radius: 99px;
     background: #e2e8f0;
     overflow: hidden;
     margin-right: 0;
     flex-shrink: 0;
}
 .rev-db-meter__fill {
     display: block;
     height: 100%;
     border-radius: inherit;
     background: linear-gradient(90deg, var(--brand-600), var(--brand));
}
 .rev-db-meter__pct {
     font-size: 11px;
     font-weight: 800;
     color: var(--text);
     flex-shrink: 0;
     text-align: right;
}
 .rev-db-status {
     display: inline-block;
     padding: 4px 10px;
     border-radius: var(--r-pill);
     font-size: 11px;
     font-weight: 800;
}
 .rev-db-status--ok {
     color: #166534;
     background: #dcfce7;
     border: 1px solid rgba(34, 197, 94, 0.35);
}
 .rev-db-status--warn {
     color: #9a3412;
     background: #ffedd5;
     border: 1px solid rgba(251, 146, 60, 0.4);
}
 .rev-db-td-time {
     color: var(--muted);
     font-weight: 600;
     white-space: nowrap;
}
 .rev-db-footnote {
     margin: var(--s3) 0 0;
     font-size: 11px;
     color: var(--muted);
     line-height: 1.5;
}
 .rev-sum-card {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     box-shadow: var(--sh-1);
     padding: var(--s5) var(--s5) var(--s4);
}
 .rev-sum-ai-badge {
     display: inline-flex;
     align-items: center;
     gap: 4px;
     padding: 4px 10px;
     border-radius: var(--r-pill);
     font-size: 10px;
     font-weight: 800;
     letter-spacing: 0.06em;
     color: var(--brand-700, #1d4ed8);
     background: linear-gradient(135deg, #eff6ff, #dbeafe);
     border: 1px solid rgba(37, 99, 235, 0.22);
}
 .rev-sum-ai-badge .icon {
     font-size: 14px;
}
 .rev-sum-btn {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 6px;
     padding: 8px 14px;
     border-radius: var(--r-md);
     border: 1px solid var(--border-strong);
     font: inherit;
     font-size: var(--fs-xs);
     font-weight: 700;
     cursor: pointer;
     white-space: nowrap;
     transition: background var(--d-base) var(--ease), border-color var(--d-base) var(--ease), color var(--d-base) var(--ease), filter var(--d-base) var(--ease);
}
 .rev-sum-btn .icon {
     font-size: 18px;
}
 .rev-sum-btn--ghost {
     background: var(--card);
     color: var(--text-2);
     border-color: var(--border);
}
 .rev-sum-btn--ghost:hover {
     background: #e2e8f0;
     color: var(--text);
     border-color: var(--border-strong);
}
 .rev-sum-btn--primary {
     background: linear-gradient(180deg, #1e40af, #0f2744);
     color: #fff;
     border-color: transparent;
     box-shadow: 0 2px 8px rgba(15, 39, 68, 0.25);
}
 .rev-sum-btn--primary:hover {
     filter: brightness(1.06);
}
 .rev-sum-body {
     margin: 0;
     padding: var(--s4);
     background: #f1f5f9;
     border-radius: var(--r-md);
     border: 1px solid var(--border);
     font-size: var(--fs-sm);
     line-height: 1.65;
}
 .rev-sum-body__accent {
     margin: 0;
     padding-left: var(--s4);
     border-left: 4px solid var(--brand);
}
 .rev-sum-body__lead {
     margin: 0;
     color: var(--text);
}
 .rev-sum-body__lead .rev-sum-body__para {
     margin: 0 0 var(--s3);
     line-height: 1.65;
}
 .rev-sum-body__lead .rev-sum-body__para:last-child {
     margin-bottom: 0;
}
 .rev-sum-body__note {
     margin: var(--s3) 0 0;
     font-size: var(--fs-xs);
     color: var(--muted);
     line-height: 1.5;
}
 .rev-pane--tr {
     flex: 1;
     min-height: 0;
}
 .rev-tr-shell {
     flex: 1;
     min-height: 0;
     display: flex;
     flex-direction: column;
     gap: var(--s3);
     background: transparent;
     margin: 0;
     padding: 0;
     border: 0;
}
 .rev-tr-toolbar {
     flex-shrink: 0;
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     justify-content: space-between;
     gap: var(--s3);
     padding: var(--s3) var(--s4);
     background: var(--card);
     border-radius: var(--r-lg);
     border: 1px solid var(--border);
     box-shadow: var(--sh-1);
}
 .rev-tr-lang {
     display: inline-flex;
     align-items: center;
     gap: 10px;
     font-weight: 800;
     font-size: 13px;
     color: var(--text);
}
 .rev-tr-lang__pill {
     min-width: 48px;
     text-align: center;
     padding: 6px 12px;
     border-radius: var(--r-sm);
     letter-spacing: 0.02em;
}
 .rev-tr-lang__pill--from {
     background: #e0e7ff;
     color: #312e81;
     border: 1px solid #c7d2fe;
}
 .rev-tr-lang__pill--to {
     background: #ecfdf5;
     color: #14532d;
     border: 1px solid #a7f3d0;
}
 .rev-tr-lang__arrow {
     display: flex;
     color: var(--muted);
}
 .rev-tr-lang__arrow .icon {
     font-size: 20px;
}
 .rev-tr-toolbar__actions {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s2);
     align-items: center;
}
 .rev-tr-btn {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 8px;
     padding: 8px 14px;
     border-radius: var(--r-md);
     font: inherit;
     font-size: var(--fs-xs);
     font-weight: 700;
     cursor: pointer;
     border: 1px solid transparent;
     transition: background var(--d-base) var(--ease), border-color var(--d-base) var(--ease), filter var(--d-base) var(--ease);
}
 .rev-tr-btn .icon {
     font-size: 18px;
}
 .rev-tr-btn--ghost {
     background: #fff;
     color: var(--text-2);
     border-color: var(--border-strong);
}
 .rev-tr-btn--ghost:hover {
     background: var(--bg-alt);
     color: var(--text);
}
 .rev-tr-btn--export {
     background: linear-gradient(180deg, #1e40af, #0f2744);
     color: #fff;
     border-color: transparent;
     box-shadow: 0 2px 10px rgba(15, 39, 68, 0.28);
}
 .rev-tr-btn--export:hover {
     filter: brightness(1.06);
}
 .rev-tr-board {
     flex: 1;
     min-height: min(52vh, 520px);
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: var(--s3);
     align-items: stretch;
}
 @media (max-width: 900px) {
     .rev-tr-board {
         grid-template-columns: 1fr;
         min-height: 0;
    }
}
 .rev-tr-panel {
     display: flex;
     flex-direction: column;
     min-height: 0;
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     box-shadow: var(--sh-1);
     overflow: hidden;
}
 .rev-tr-panel__head {
     flex-shrink: 0;
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     justify-content: space-between;
     gap: var(--s2);
     padding: var(--s3) var(--s4);
     background: linear-gradient(180deg, #eff6ff, #f8fafc);
     border-bottom: 1px solid var(--border);
}
 .rev-tr-panel__title {
     margin: 0;
     font-size: var(--fs-sm);
     font-weight: 800;
     color: #0f2744;
     letter-spacing: var(--tracking-tight);
}
 .rev-tr-panel__title-sub {
     font-weight: 600;
     font-size: 11px;
     color: var(--muted);
}
 .rev-tr-badge {
     display: inline-flex;
     align-items: center;
     gap: 5px;
     padding: 4px 10px;
     border-radius: var(--r-pill);
     font-size: 10px;
     font-weight: 800;
     letter-spacing: 0.04em;
     white-space: nowrap;
}
 .rev-tr-badge--medical {
     background: #dbeafe;
     color: #1e40af;
     border: 1px solid #93c5fd;
}
 .rev-tr-badge--ai {
     background: #fff;
     color: var(--brand);
     border: 1px solid var(--brand-200);
     box-shadow: 0 1px 2px rgba(26, 107, 255, 0.08);
}
 .rev-tr-badge--ai .icon {
     font-size: 14px;
}
 .rev-tr-panel__body {
     flex: 1;
     min-height: 0;
     overflow: hidden;
     -webkit-overflow-scrolling: touch;
     padding: var(--s3);
     font-size: var(--fs-sm);
     line-height: 1.65;
     color: var(--text);
     display: flex;
     flex-direction: column;
}
 .rev-tr-editor {
     flex: 1;
     min-height: min(280px, 40vh);
     width: 100%;
     margin: 0;
     box-sizing: border-box;
     padding: var(--s4);
     font: inherit;
     font-size: var(--fs-sm);
     line-height: 1.65;
     color: var(--text);
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     background: #fff;
     resize: vertical;
     white-space: pre-wrap;
     word-break: break-word;
     overflow: auto;
}
 .rev-tr-panel__body--tgt .rev-tr-editor {
     box-shadow: inset 3px 0 0 rgba(26, 107, 255, 0.35);
}
 .rev-tr-panel__body--src {
     background: #fafafa;
}
 .rev-tr-panel__body--tgt {
     background: #f8fafc;
}
 .rev-tr-prose p {
     margin: 0 0 var(--s3);
}
 .rev-tr-prose p:last-child {
     margin-bottom: 0;
}
 .rev-tr-prose__h {
     margin: var(--s4) 0 var(--s2) !important;
     font-size: 12px;
     font-weight: 800;
     letter-spacing: 0.06em;
     text-transform: uppercase;
     color: #1e3a5f;
}
 .rev-tr-prose__h:first-child {
     margin-top: 0 !important;
}
 .rev-tr-prose--tgt .rev-tr-prose__h {
     text-transform: none;
     letter-spacing: 0;
     font-size: var(--fs-sm);
     color: var(--text);
}
 .rev-tr-prose__subh {
     margin: var(--s3) 0 var(--s1) !important;
     font-size: var(--fs-xs);
     font-weight: 800;
     color: var(--text-2);
}
 .rev-tr-prose__ul {
     margin: 0 0 var(--s3);
     padding-left: 1.15rem;
}
 .rev-tr-prose__ul li {
     margin-bottom: 6px;
}
 .rev-tr-prose__note {
     margin-top: var(--s4) !important;
     font-size: 11px;
     color: var(--muted);
     line-height: 1.5;
}
 .rev-label {
     display: block;
     font-size: 11px;
     font-weight: 700;
     color: var(--muted);
     margin-bottom: 4px;
}
 .rev-ta {
     width: 100%;
     padding: 10px;
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     font: inherit;
     font-size: 13px;
     resize: vertical;
     background: var(--bg, #f8fafc);
}
 .rev-pane--vis {
     flex: 1;
     min-height: 0;
}
 .rev-vis-intro {
     flex-shrink: 0;
}
 .rev-vis-body {
     flex: 1;
     min-height: 0;
     display: flex;
     flex-direction: column;
     gap: var(--s2);
     overflow: hidden;
     padding: 0 var(--s4) var(--s4);
     -webkit-overflow-scrolling: touch;
}
 .rev-vis-sample-label {
     flex-shrink: 0;
     display: flex;
     align-items: center;
     gap: 6px;
     margin: 0;
     font-size: var(--fs-2xs);
     font-weight: 800;
     letter-spacing: 0.04em;
     text-transform: uppercase;
     color: var(--brand-700, #1d4ed8);
}
 .rev-vis-sample-label .icon {
     font-size: 16px;
     color: var(--brand);
}
 .rev-vis-doc {
     flex: 1;
     min-height: 0;
     overflow: auto;
     padding: var(--s5);
     background: #f1f5f9;
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     font-size: 13px;
     line-height: 1.58;
     color: var(--text);
     -webkit-overflow-scrolling: touch;
}
 .rev-vis-doc__h {
     margin: 0 0 var(--s3);
     font-size: 15px;
     font-weight: 800;
     letter-spacing: var(--tracking-tight);
     color: #0c2254;
     line-height: 1.35;
}
 .rev-vis-doc__sub {
     margin: var(--s4) 0 var(--s2);
     font-size: 12px;
     font-weight: 800;
     color: var(--text);
     letter-spacing: 0;
     text-transform: none;
}
 .rev-vis-doc__h + .rev-vis-doc__sub {
     margin-top: var(--s3);
}
 .rev-vis-doc p {
     margin: 0 0 var(--s3);
}
 .rev-vis-doc__table-cap {
     margin: var(--s3) 0 var(--s2) !important;
     font-size: 12px;
}
 .rev-vis-table-wrap {
     margin: var(--s2) 0 var(--s4);
     overflow-x: auto;
     border-radius: var(--r-sm);
     border: 1px solid var(--border);
     background: #fff;
}
 .rev-vis-table {
     width: 100%;
     min-width: 520px;
     border-collapse: collapse;
     font-size: 11px;
     line-height: 1.45;
}
 .rev-vis-table th, .rev-vis-table td {
     border: 1px solid var(--border);
     padding: 7px 9px;
     text-align: left;
     vertical-align: top;
}
 .rev-vis-table thead th {
     background: #e2e8f0;
     font-weight: 800;
     color: #0f172a;
     white-space: nowrap;
}
 .rev-vis-table tbody td:nth-child(2), .rev-vis-table tbody td:nth-child(3) {
     white-space: nowrap;
}
 .rev-vis-foot {
     margin-top: var(--s2);
     padding-top: var(--s3);
     border-top: 1px dashed var(--border-strong);
     font-size: 11px;
     color: var(--muted);
     line-height: 1.55;
}
 .rev-vis-foot p {
     margin: 0 0 var(--s2);
}
 .rev-vis-foot__conf {
     margin-top: var(--s3) !important;
     font-size: 10px;
     font-weight: 700;
     color: var(--dim);
}
 .rev-pane--cmp {
     flex: 1;
     min-height: 0;
}
 .rev-cmp-shell {
     flex: 1;
     min-height: 0;
     display: flex;
     flex-direction: column;
     gap: var(--s3);
     background: transparent;
     margin: 0;
     padding: 0;
     border: 0;
}
 .rev-cmp-summary {
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     gap: var(--s2) var(--s4);
     padding: var(--s3) var(--s4);
     background: var(--card);
     border-radius: var(--r-lg);
     border: 1px solid var(--border);
     box-shadow: var(--sh-1);
     font-size: var(--fs-xs);
}
 .rev-cmp-summary__total {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     margin-right: auto;
     font-size: var(--fs-sm);
     font-weight: 800;
     color: var(--text);
     letter-spacing: var(--tracking-tight);
}
 .rev-cmp-summary__total strong {
     margin-right: 4px;
     font-weight: 800;
}
 .rev-cmp-chip {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     padding: 5px 11px;
     border-radius: var(--r-pill);
     font-size: 11px;
     font-weight: 800;
     letter-spacing: 0.04em;
     border: 1px solid transparent;
}
 .rev-cmp-chip strong {
     margin-right: 2px;
}
 .rev-cmp-dot {
     width: 8px;
     height: 8px;
     border-radius: 50%;
     flex-shrink: 0;
}
 .rev-cmp-dot--neutral {
     background: #64748b;
     box-shadow: 0 0 0 2px rgba(100, 116, 139, 0.2);
}
 .rev-cmp-chip--mod {
     background: #fef9c3;
     color: #854d0e;
     border-color: rgba(234, 179, 8, 0.45);
}
 .rev-cmp-chip--mod .rev-cmp-dot {
     background: #eab308;
     box-shadow: 0 0 0 2px rgba(234, 179, 8, 0.25);
}
 .rev-cmp-chip--del {
     background: #fee2e2;
     color: #991b1b;
     border-color: rgba(248, 113, 113, 0.4);
}
 .rev-cmp-chip--del .rev-cmp-dot {
     background: #ef4444;
     box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.22);
}
 .rev-cmp-chip--add {
     background: #dcfce7;
     color: #166534;
     border-color: rgba(34, 197, 94, 0.35);
}
 .rev-cmp-chip--add .rev-cmp-dot {
     background: #22c55e;
     box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.22);
}
 .rev-cmp-panes {
     flex: 1;
     min-height: min(48vh, 480px);
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: var(--s3);
     align-items: stretch;
}
 @media (max-width: 900px) {
     .rev-cmp-panes {
         grid-template-columns: 1fr;
         min-height: 0;
    }
}
 .rev-cmp-col {
     display: flex;
     flex-direction: column;
     min-height: 0;
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     overflow: hidden;
     background: var(--card);
     box-shadow: var(--sh-1);
}
 .rev-cmp-col--new {
     border-color: var(--brand-200);
}
 .rev-cmp-cap {
     flex-shrink: 0;
     display: flex;
     flex-direction: column;
     align-items: flex-start;
     gap: 4px;
     padding: var(--s3) var(--s4);
     background: linear-gradient(180deg, #eff6ff, #f1f5f9);
     border-bottom: 1px solid var(--border);
}
 .rev-cmp-cap--new {
     background: linear-gradient(180deg, #eff6ff, #dbeafe);
     border-bottom-color: var(--brand-200);
}
 .rev-cmp-cap__title {
     font-size: var(--fs-sm);
     font-weight: 800;
     color: #0f172a;
     letter-spacing: var(--tracking-tight);
}
 .rev-cmp-cap__meta {
     font-size: 11px;
     font-weight: 600;
     color: var(--muted);
}
 .rev-cmp-body {
     flex: 1;
     min-height: 0;
     overflow: hidden;
     -webkit-overflow-scrolling: touch;
     padding: var(--s3);
     font-size: var(--fs-sm);
     line-height: 1.65;
     color: var(--text);
     background: #fafafa;
     display: flex;
     flex-direction: column;
}
 .rev-cmp-body--new {
     background: #f8fafc;
}
 .rev-cmp-doc {
     flex: 1;
     min-height: min(300px, 42vh);
     width: 100%;
     margin: 0;
     box-sizing: border-box;
     padding: var(--s4);
     font: inherit;
     font-size: var(--fs-sm);
     line-height: 1.65;
     color: var(--text);
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     background: #fff;
     overflow: auto;
     -webkit-overflow-scrolling: touch;
     word-break: break-word;
}
 .rev-cmp-body--new .rev-cmp-doc {
     box-shadow: inset 3px 0 0 rgba(26, 107, 255, 0.35);
}
 .rev-cmp-sec {
     margin: var(--s4) 0 var(--s2);
     font-size: var(--fs-sm);
     font-weight: 800;
     color: #0f2744;
}
 .rev-cmp-sec:first-child {
     margin-top: 0;
}
 .rev-cmp-sec__en {
     font-weight: 600;
     font-size: 11px;
     color: var(--muted);
     margin-left: 6px;
}
 .rev-cmp-ul {
     margin: 0 0 var(--s3);
     padding-left: 1.2rem;
}
 .rev-cmp-ul li {
     margin-bottom: 8px;
}
 .rev-cmp-ul li:last-child {
     margin-bottom: 0;
}
 .rev-cmp-li--del {
     text-decoration: line-through;
     color: #7f1d1d;
     background: #fecaca;
     margin-left: -4px;
     padding: 6px 8px 6px 10px;
     border-radius: var(--r-sm);
     border-left: 3px solid #ef4444;
     list-style-position: outside;
}
 .rev-cmp-li--add {
     background: #ecfdf5;
     color: #14532d;
     margin-left: -4px;
     padding: 6px 8px 6px 10px;
     border-radius: var(--r-sm);
     border-left: 3px solid #22c55e;
     list-style-position: outside;
}
 .rev-cmp-foot {
     margin: var(--s4) 0 0;
     font-size: 11px;
     color: var(--muted);
     line-height: 1.5;
}
 .rev-mark-del {
     background: #fecaca;
     color: #991b1b;
     text-decoration: line-through;
     padding: 1px 4px;
     border-radius: 3px;
}
 .rev-mark-mod {
     background: #fef08a;
     color: #713f12;
     font-weight: 800;
     padding: 1px 5px;
     border-radius: 3px;
     box-shadow: inset 0 -1px 0 rgba(180, 83, 9, 0.2);
}
 .rev-mark-add {
     background: #bbf7d0;
     color: #14532d;
     font-weight: 700;
     padding: 1px 5px;
     border-radius: 3px;
}
 .rev-hwp {
     display: flex;
     flex-direction: column;
     flex: 1;
     min-height: 0;
     border-top: 0;
     background: #c5cad2;
}
 .rev-hwp__stage {
     position: relative;
     flex: 1;
     min-height: min(72vh, 640px);
     overflow: auto;
     display: flex;
     flex-direction: column;
     align-items: stretch;
     justify-content: flex-start;
     background-color: #c5cad2;
}
 .rev-hwp__canvas {
     position: relative;
     width: 100%;
     max-width: 100%;
     aspect-ratio: 1024/732;
     flex-shrink: 0;
}
 .rev-hwp__bg {
     position: absolute;
     inset: 0;
     background: url(../img/hwp.png) no-repeat center;
     background-size: 100% 100%;
     pointer-events: none;
}
 .rev-hwp__sheet {
     position: absolute;
     left: 28.5%;
     right: 28.5%;
     top: 24%;
     bottom: 11%;
     z-index: 2;
     overflow-y: auto;
     padding: var(--s4) var(--s5);
     font-size: 13px;
     line-height: 1.65;
     color: var(--text);
     background: rgba(255, 255, 255, 0.97);
     box-shadow: var(--sh-2);
     border-radius: var(--r-sm);
     outline: none;
     -webkit-overflow-scrolling: touch;
}
 .rev-hwp__sheet:focus-visible {
     outline: 2px solid var(--brand);
     outline-offset: 2px;
}
 .rev-hwp__docname {
     font-size: 12px;
     font-weight: 800;
     color: var(--brand-800, #1e40af);
     margin: 0 0 var(--s2);
     max-width: 100%;
     word-break: break-word;
}
 .rev-hwp__h {
     font-size: 16px;
     font-weight: 800;
     text-align: center;
     margin: 0 0 var(--s3);
}
 .rev-hwp__tbl {
     width: 100%;
     border-collapse: collapse;
     margin-bottom: var(--s3);
     font-size: 12px;
}
 .rev-hwp__tbl th, .rev-hwp__tbl td {
     border: 1px solid var(--border);
     padding: 8px 10px;
     text-align: left;
}
 .rev-hwp__tbl th {
     width: 88px;
     background: var(--bg-alt);
     font-weight: 700;
}
 .rev-hwp__tbl {
     border-radius: var(--r-sm);
     overflow: hidden;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-body {
     position: relative;
     min-height: 100vh;
     color: var(--text);
     background: linear-gradient(180deg, #eef2ff 0%, #f8fafc 38%, #f1f5f9 100%);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-ambient {
     position: fixed;
     inset: 0;
     z-index: 0;
     pointer-events: none;
     overflow: hidden;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-ambient__grid {
     position: absolute;
     inset: -1px;
     opacity: 0.45;
     background-image: linear-gradient( rgba(148, 163, 184, 0.14) 1px, transparent 1px ), linear-gradient(90deg, rgba(148, 163, 184, 0.14) 1px, transparent 1px);
     background-size: 48px 48px;
     mask-image: radial-gradient( ellipse 85% 70% at 50% 20%, #000 20%, transparent 75% );
     -webkit-mask-image: radial-gradient( ellipse 85% 70% at 50% 20%, #000 20%, transparent 75% );
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-ambient__blob {
     position: absolute;
     border-radius: 50%;
     filter: blur(72px);
     opacity: 0.55;
     transform: translate3d(0, 0, 0);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-ambient__blob--1 {
     width: min(520px, 55vw);
     height: min(520px, 55vw);
     left: -8%;
     top: -12%;
     background: radial-gradient( circle at 30% 30%, #c7d2fe 0%, #a5b4fc 45%, transparent 70% );
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-ambient__blob--2 {
     width: min(480px, 50vw);
     height: min(480px, 50vw);
     right: -10%;
     top: 18%;
     background: radial-gradient( circle at 70% 40%, #ddd6fe 0%, #c4b5fd 40%, transparent 72% );
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-ambient__blob--3 {
     width: min(520px, 54vw);
     height: min(520px, 54vw);
     left: 18%;
     bottom: 10%;
     background: radial-gradient( circle at 50% 60%, #bae6fd 0%, #99f6e4 42%, transparent 70% );
}
 html.landing3[data-page="portal_landing3"] .landing2-ambient__grid {
     background-size: 64px 64px;
     opacity: 0.32;
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__dots {
     position: absolute;
     inset: 0;
     opacity: 0.42;
     background-image: radial-gradient( rgba(100, 116, 139, 0.2) 1px, transparent 1.6px );
     background-size: 56px 56px;
     -webkit-mask-image: radial-gradient( ellipse 92% 78% at 50% 48%, #000 10%, transparent 72% );
     mask-image: radial-gradient( ellipse 92% 78% at 50% 48%, #000 10%, transparent 72% );
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__ribbon {
     position: absolute;
     width: min(135vw, 1400px);
     height: min(42vh, 440px);
     right: -38%;
     bottom: -22%;
     border-radius: 50%;
     transform: rotate(-24deg);
     background: linear-gradient( 118deg, rgba(59, 130, 246, 0.11) 0%, rgba(100, 116, 139, 0.08) 48%, rgba(14, 165, 233, 0.09) 100% );
     filter: blur(42px);
     opacity: 0.85;
     pointer-events: none;
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__blob {
     position: absolute;
     border-radius: 50%;
     pointer-events: none;
     filter: blur(52px);
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__blob--tl {
     width: min(300px, 36vw);
     height: min(300px, 36vw);
     left: -7%;
     top: 10%;
     opacity: 0.14;
     background: radial-gradient( circle at 38% 38%, rgba(59, 130, 246, 0.55), transparent 68% );
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__blob--br {
     width: min(320px, 38vw);
     height: min(320px, 38vw);
     right: -6%;
     bottom: 8%;
     opacity: 0.14;
     background: radial-gradient( circle at 55% 45%, rgba(45, 212, 191, 0.9), transparent 70% );
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__water {
     position: absolute;
     left: 50%;
     top: 40%;
     transform: translate(-50%, -50%);
     font-family: var(--font, "SUIT", sans-serif);
     font-size: clamp(100px, 20vw, 240px);
     font-weight: 800;
     letter-spacing: -0.07em;
     line-height: 1;
     color: transparent;
     -webkit-text-stroke: 1px rgba(100, 116, 139, 0.24);
     pointer-events: none;
     user-select: none;
     white-space: nowrap;
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__plus {
     position: absolute;
     font-family: var(--font, "SUIT", sans-serif);
     font-weight: 300;
     font-size: clamp(11px, 1.35vw, 14px);
     color: rgba(71, 85, 105, 0.34);
     line-height: 1;
     pointer-events: none;
     user-select: none;
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__plus--tl {
     top: 13%;
     left: 4.5%;
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__plus--tr {
     top: 13%;
     right: 4.5%;
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__plus--bl {
     bottom: 17%;
     left: 5.5%;
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__plus--br {
     bottom: 13%;
     right: 4.5%;
}
 @media (prefers-reduced-motion: reduce) {
     html.landing3[data-page="portal_landing3"] .landing3-ambient__ribbon {
         filter: blur(28px);
         opacity: 0.5;
    }
}
 @keyframes landing2-blob-drift {
     0% {
         transform: translate3d(0, 0, 0) scale(1);
    }
     50% {
         transform: translate3d(12px, -10px, 0) scale(1.03);
    }
     100% {
         transform: translate3d(0, 0, 0) scale(1);
    }
}
 @media (prefers-reduced-motion: no-preference) {
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-ambient__blob--1 {
         animation: landing2-blob-drift 18s ease-in-out infinite;
    }
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-ambient__blob--2 {
         animation: landing2-blob-drift 22s ease-in-out infinite reverse;
    }
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-ambient__blob--3 {
         animation: landing2-blob-drift 26s ease-in-out infinite 2s;
    }
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-main {
     position: relative;
     z-index: 1;
     max-width: 100%;
     padding: calc(var(--gnb) + var(--s6)) var(--container-px) var(--s10);
     box-sizing: border-box;
     background: linear-gradient( 180deg, rgba(248, 250, 252, 0.72) 0%, rgba(241, 245, 249, 0.88) 55%, rgba(248, 250, 252, 0.96) 100% );
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) inset;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-hero {
     text-align: center;
     max-width: 52rem;
     margin: var(--s8) auto;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-hero__eyebrow {
     margin: 0 0 var(--s2);
     font-size: var(--fs-2xs);
     font-weight: 800;
     letter-spacing: 0.22em;
     text-transform: uppercase;
     color: var(--brand-600, #2563eb);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-hero__title {
     margin: 0 0 var(--s3);
     font-size: clamp(28px, 4vw, 40px);
     font-weight: 800;
     letter-spacing: -0.04em;
     line-height: 1.15;
     color: #0f172a;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-hero__lead {
     margin: 0 0 var(--s3);
     font-size: clamp(15px, 1.6vw, 17px);
     color: var(--muted);
     line-height: 1.55;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-hint {
     margin: 0;
     font-size: var(--fs-xs);
     line-height: 1.55;
     color: var(--dim);
     max-width: 40rem;
     margin-inline: auto;
     text-align: center;
     margin-top: 20px;
}
 @media (max-width: 720px) {
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-hint {
         font-size: var(--fs-2xs);
    }
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-grid {
     display: grid;
     grid-template-columns: repeat(2, minmax(0, 1fr));
     grid-template-rows: repeat( 2, clamp( calc(252px * 0.9 * 1.1 + 20px), calc(28vh * 0.9 * 1.1 + 20px), calc(368px * 0.9 * 1.1 + 20px) ) );
     gap: clamp(14px, 2vw, 24px);
     align-content: start;
     justify-items: stretch;
     align-items: stretch;
     max-width: min(870px, 100%);
     width: 100%;
     margin: 0 auto;
     box-sizing: border-box;
}
 @media (max-width: 900px) {
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-grid {
         grid-template-columns: 1fr;
         grid-template-rows: none;
         grid-auto-rows: clamp( calc(236px * 0.9 * 1.1 + 20px), calc(40vh * 0.9 * 1.1 + 20px), calc(320px * 0.9 * 1.1 + 20px) );
    }
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile {
     position: relative;
     isolation: isolate;
     perspective: 880px;
     border-radius: clamp(22px, 2.4vw, 30px);
     overflow: hidden;
     width: 100%;
     min-width: 0;
     height: 100%;
     min-height: 0;
     max-height: 100%;
     padding: clamp(var(--s5), 3.6vw, var(--s8));
     display: flex;
     flex-direction: column;
     justify-content: flex-end;
     outline: none;
     cursor: default;
     background: rgba(255, 255, 255, 0.78);
     border: 1px solid rgba(255, 255, 255, 0.92);
     box-shadow: 0 14px 40px rgba(15, 23, 42, 0.06);
     -webkit-backdrop-filter: blur(22px);
     backdrop-filter: blur(22px);
     transition: box-shadow 0.4s var(--ease), border-color 0.25s ease;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile.landing2-tile--sv {
     border-color: rgba(37, 99, 235, 0.2);
     box-shadow: 0 14px 42px rgba(37, 99, 235, 0.11), 0 2px 10px rgba(37, 99, 235, 0.05);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile.landing2-tile--info {
     border-color: rgba(79, 70, 229, 0.2);
     box-shadow: 0 14px 42px rgba(79, 70, 229, 0.11), 0 2px 10px rgba(79, 70, 229, 0.05);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile.landing2-tile--civil {
     border-color: rgba(124, 58, 237, 0.2);
     box-shadow: 0 14px 42px rgba(124, 58, 237, 0.11), 0 2px 10px rgba(124, 58, 237, 0.05);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile.landing2-tile--data {
     border-color: rgba(13, 148, 136, 0.2);
     box-shadow: 0 14px 42px rgba(13, 148, 136, 0.11), 0 2px 10px rgba(13, 148, 136, 0.05);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within {
     z-index: 1;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile.landing2-tile--sv:hover, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile.landing2-tile--sv:focus-within {
     box-shadow: 0 22px 56px rgba(37, 99, 235, 0.2), 0 8px 26px rgba(37, 99, 235, 0.1);
     border-color: rgba(37, 99, 235, 0.42);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile.landing2-tile--info:hover, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile.landing2-tile--info:focus-within {
     box-shadow: 0 22px 56px rgba(79, 70, 229, 0.2), 0 8px 26px rgba(79, 70, 229, 0.1);
     border-color: rgba(79, 70, 229, 0.42);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile.landing2-tile--civil:hover, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile.landing2-tile--civil:focus-within {
     box-shadow: 0 22px 56px rgba(124, 58, 237, 0.2), 0 8px 26px rgba(124, 58, 237, 0.1);
     border-color: rgba(124, 58, 237, 0.42);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile.landing2-tile--data:hover, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile.landing2-tile--data:focus-within {
     box-shadow: 0 22px 56px rgba(13, 148, 136, 0.2), 0 8px 26px rgba(13, 148, 136, 0.1);
     border-color: rgba(13, 148, 136, 0.42);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile__bg {
     position: absolute;
     inset: 0;
     z-index: 0;
     border-radius: inherit;
     overflow: hidden;
     pointer-events: none;
     opacity: 1;
     transition: transform 1s var(--ease), opacity 0.35s ease;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile__bg::after {
     content: "";
     position: absolute;
     inset: 0;
     background-image: linear-gradient( rgba(148, 163, 184, 0.12) 1px, transparent 1px ), linear-gradient(90deg, rgba(148, 163, 184, 0.12) 1px, transparent 1px);
     background-size: 32px 32px;
     opacity: 0.35;
     mix-blend-mode: multiply;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover .landing2-tile__bg, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-tile__bg {
     transform: scale(1.03);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--sv .landing2-tile__bg {
     background-image: linear-gradient( 210deg, rgba(239, 246, 255, 0.96) 0%, rgba(224, 242, 254, 0.78) 42%, rgba(191, 219, 254, 0.55) 100% ), radial-gradient( ellipse 110% 85% at 12% 8%, rgba(147, 197, 253, 0.48), transparent 58% ), radial-gradient( ellipse 90% 70% at 92% 88%, rgba(110, 231, 183, 0.32), transparent 55% ), radial-gradient( ellipse calc(68% * 1.15) calc(56% * 1.15) at 90% 10%, rgba(37, 99, 235, 0.42), transparent 46% );
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--info .landing2-tile__bg {
     background-image: linear-gradient( 210deg, rgba(238, 242, 255, 0.96) 0%, rgba(224, 231, 255, 0.72) 40%, rgba(199, 210, 254, 0.58) 100% ), radial-gradient( ellipse 70% 60% at 10% 90%, rgba(191, 219, 254, 0.38), transparent 52% ), radial-gradient( ellipse 100% 75% at 88% 12%, rgba(165, 180, 252, 0.62), transparent 52% ), radial-gradient( ellipse calc(62% * 1.15) calc(52% * 1.15) at 92% 8%, rgba(67, 56, 202, 0.38), transparent 44% );
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--civil .landing2-tile__bg {
     background-image: linear-gradient( 210deg, rgba(245, 243, 255, 0.96) 0%, rgba(237, 233, 254, 0.75) 40%, rgba(216, 201, 254, 0.52) 100% ), radial-gradient( ellipse 95% 80% at 18% 18%, rgba(196, 181, 253, 0.42), transparent 58% ), radial-gradient( ellipse 80% 70% at 85% 85%, rgba(251, 207, 232, 0.26), transparent 55% ), radial-gradient( ellipse calc(64% * 1.15) calc(54% * 1.15) at 91% 9%, rgba(109, 40, 217, 0.36), transparent 44% );
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--data .landing2-tile__bg {
     background-image: linear-gradient( 210deg, rgba(236, 254, 255, 0.96) 0%, rgba(224, 242, 254, 0.72) 38%, rgba(153, 246, 228, 0.45) 100% ), radial-gradient( ellipse 85% 70% at 8% 82%, rgba(125, 211, 252, 0.34), transparent 52% ), radial-gradient( ellipse 100% 75% at 72% 10%, rgba(153, 246, 228, 0.38), transparent 52% ), radial-gradient( ellipse calc(66% * 1.15) calc(55% * 1.15) at 90% 10%, rgba(13, 148, 136, 0.4), transparent 45% );
}
 html[data-page="portal_landing2"] .landing2-tile.landing2-tile--sv:not(:hover) .landing2-tile__bg {
     background-color: #f0f6ff;
     background-image: url("../img/img_bg01.png"), linear-gradient( 210deg, rgba(239, 246, 255, 0.22) 0%, rgba(224, 242, 254, 0.14) 42%, rgba(191, 219, 254, 0.2) 100% ), radial-gradient( ellipse 110% 85% at 12% 8%, rgba(147, 197, 253, 0.22), transparent 58% ), radial-gradient( ellipse 90% 70% at 92% 88%, rgba(110, 231, 183, 0.1), transparent 55% ), radial-gradient( ellipse calc(68% * 1.15) calc(56% * 1.15) at 90% 10%, rgba(37, 99, 235, 0.44), transparent 48% );
     background-size: calc(50% * 0.85 * 0.85), auto, auto, auto, auto;
     background-position: right 30px top 30px, 0 0, 0 0, 0 0, 0 0;
     background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
}
 html[data-page="portal_landing2"] .landing2-tile.landing2-tile--info:not(:hover) .landing2-tile__bg {
     background-color: #f3f4ff;
     background-image: url("../img/img_bg02.png"), linear-gradient( 210deg, rgba(238, 242, 255, 0.22) 0%, rgba(224, 231, 255, 0.14) 40%, rgba(199, 210, 254, 0.2) 100% ), radial-gradient( ellipse 100% 75% at 88% 12%, rgba(165, 180, 252, 0.28), transparent 52% ), radial-gradient( ellipse 70% 60% at 10% 90%, rgba(191, 219, 254, 0.16), transparent 52% ), radial-gradient( ellipse calc(62% * 1.15) calc(52% * 1.15) at 92% 8%, rgba(67, 56, 202, 0.4), transparent 44% );
     background-size: calc(50% * 0.85 * 0.85), auto, auto, auto, auto;
     background-position: right 30px top 30px, 0 0, 0 0, 0 0, 0 0;
     background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
}
 html[data-page="portal_landing2"] .landing2-tile.landing2-tile--civil:not(:hover) .landing2-tile__bg {
     background-color: #faf8ff;
     background-image: url("../img/img_bg03.png"), linear-gradient( 210deg, rgba(245, 243, 255, 0.22) 0%, rgba(237, 233, 254, 0.14) 40%, rgba(216, 201, 254, 0.2) 100% ), radial-gradient( ellipse 95% 80% at 18% 18%, rgba(196, 181, 253, 0.22), transparent 58% ), radial-gradient( ellipse 80% 70% at 85% 85%, rgba(251, 207, 232, 0.1), transparent 55% ), radial-gradient( ellipse calc(64% * 1.15) calc(54% * 1.15) at 91% 9%, rgba(109, 40, 217, 0.38), transparent 44% );
     background-size: calc(50% * 0.85 * 0.85), auto, auto, auto, auto;
     background-position: right 30px top 30px, 0 0, 0 0, 0 0, 0 0;
     background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
}
 html[data-page="portal_landing2"] .landing2-tile.landing2-tile--data:not(:hover) .landing2-tile__bg {
     background-color: #f0fdff;
     background-image: url("../img/img_bg04.png"), linear-gradient( 210deg, rgba(236, 254, 255, 0.22) 0%, rgba(224, 242, 254, 0.14) 38%, rgba(153, 246, 228, 0.18) 100% ), radial-gradient( ellipse 100% 75% at 72% 10%, rgba(153, 246, 228, 0.2), transparent 52% ), radial-gradient( ellipse 85% 70% at 8% 82%, rgba(125, 211, 252, 0.14), transparent 52% ), radial-gradient( ellipse calc(66% * 1.15) calc(55% * 1.15) at 90% 10%, rgba(13, 148, 136, 0.42), transparent 45% );
     background-size: calc(50% * 0.85 * 0.85), auto, auto, auto, auto;
     background-position: right 30px top 30px, 0 0, 0 0, 0 0, 0 0;
     background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
}
 html.landing3[data-page="portal_landing3"][data-theme="light"] .landing2-tile.landing2-tile--sv:not(:hover) .landing2-tile__bg {
     background-color: #f0f6ff;
     background-image: url("../img/img_bg01.png"), linear-gradient( 210deg, rgba(239, 246, 255, 0.22) 0%, rgba(224, 242, 254, 0.14) 42%, rgba(191, 219, 254, 0.2) 100% ), radial-gradient( ellipse 110% 85% at 12% 8%, rgba(147, 197, 253, 0.22), transparent 58% ), radial-gradient( ellipse 90% 70% at 92% 88%, rgba(110, 231, 183, 0.1), transparent 55% ), radial-gradient( ellipse calc(68% * 1.15 * 1.32) calc(56% * 1.15 * 1.32) at 90% 10%, rgba(37, 99, 235, 0.6), transparent 34% );
     background-size: calc(50% * 0.85 * 0.85 * 0.85), auto, auto, auto, auto;
     background-position: right 30px top calc(30px + 40px - 20px), 0 0, 0 0, 0 0, 0 0;
     background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
}
 html.landing3[data-page="portal_landing3"][data-theme="light"] .landing2-tile.landing2-tile--info:not(:hover) .landing2-tile__bg {
     background-color: #f3f4ff;
     background-image: url("../img/img_bg02.png"), linear-gradient( 210deg, rgba(238, 242, 255, 0.22) 0%, rgba(224, 231, 255, 0.14) 40%, rgba(199, 210, 254, 0.2) 100% ), radial-gradient( ellipse 100% 75% at 88% 12%, rgba(165, 180, 252, 0.28), transparent 52% ), radial-gradient( ellipse 70% 60% at 10% 90%, rgba(191, 219, 254, 0.16), transparent 52% ), radial-gradient( ellipse calc(62% * 1.15 * 1.32) calc(52% * 1.15 * 1.32) at 92% 8%, rgba(67, 56, 202, 0.56), transparent 32% );
     background-size: calc(50% * 0.85 * 0.85 * 0.85), auto, auto, auto, auto;
     background-position: right 30px top calc(30px + 40px - 20px), 0 0, 0 0, 0 0, 0 0;
     background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
}
 html.landing3[data-page="portal_landing3"][data-theme="light"] .landing2-tile.landing2-tile--civil:not(:hover) .landing2-tile__bg {
     background-color: #faf8ff;
     background-image: url("../img/img_bg03.png"), linear-gradient( 210deg, rgba(245, 243, 255, 0.22) 0%, rgba(237, 233, 254, 0.14) 40%, rgba(216, 201, 254, 0.2) 100% ), radial-gradient( ellipse 95% 80% at 18% 18%, rgba(196, 181, 253, 0.22), transparent 58% ), radial-gradient( ellipse 80% 70% at 85% 85%, rgba(251, 207, 232, 0.1), transparent 55% ), radial-gradient( ellipse calc(64% * 1.15 * 1.32) calc(54% * 1.15 * 1.32) at 91% 9%, rgba(109, 40, 217, 0.54), transparent 32% );
     background-size: calc(50% * 0.85 * 0.85 * 0.85), auto, auto, auto, auto;
     background-position: right 30px top calc(30px + 40px - 20px), 0 0, 0 0, 0 0, 0 0;
     background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
}
 html.landing3[data-page="portal_landing3"][data-theme="light"] .landing2-tile.landing2-tile--data:not(:hover) .landing2-tile__bg {
     background-color: #f0fdff;
     background-image: url("../img/img_bg04.png"), linear-gradient( 210deg, rgba(236, 254, 255, 0.22) 0%, rgba(224, 242, 254, 0.14) 38%, rgba(153, 246, 228, 0.18) 100% ), radial-gradient( ellipse 100% 75% at 72% 10%, rgba(153, 246, 228, 0.2), transparent 52% ), radial-gradient( ellipse 85% 70% at 8% 82%, rgba(125, 211, 252, 0.14), transparent 52% ), radial-gradient( ellipse calc(66% * 1.15 * 1.32) calc(55% * 1.15 * 1.32) at 90% 10%, rgba(13, 148, 136, 0.58), transparent 33% );
     background-size: calc(50% * 0.85 * 0.85 * 0.85), auto, auto, auto, auto;
     background-position: right 30px top calc(30px + 40px - 20px), 0 0, 0 0, 0 0, 0 0;
     background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile__float {
     position: absolute;
     top: clamp(18px, 3vw, 30px);
     right: clamp(18px, 3vw, 30px);
     z-index: 6;
     width: clamp(52px, 9vw, 64px);
     height: clamp(52px, 9vw, 64px);
     display: flex;
     align-items: center;
     justify-content: center;
     border-radius: 20px;
     background: linear-gradient(145deg, #fff, rgba(255, 255, 255, 0.72));
     border: 1px solid rgba(255, 255, 255, 0.95);
     box-shadow: 0 12px 32px rgba(15, 23, 42, 0.1), 0 0 0 1px rgba(226, 232, 240, 0.8);
     transform: rotate(-8deg);
     transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile__float .icon {
     display: inline-block;
     font-size: clamp(26px, 4.5vw, 34px);
     font-variation-settings: "FILL" 1, "wght" 500, "GRAD" 0, "opsz" 24;
     transform: translateZ(0) rotateY(0deg);
     transform-style: preserve-3d;
     backface-visibility: hidden;
     transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--sv .landing2-tile__float .icon {
     color: #2563eb;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--info .landing2-tile__float .icon {
     color: #4f46e5;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--civil .landing2-tile__float .icon {
     color: #7c3aed;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--data .landing2-tile__float .icon {
     color: #0d9488;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover .landing2-tile__float, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-tile__float {
     transform: rotate(-4deg) translateY(-10px);
     box-shadow: 0 16px 40px rgba(26, 107, 255, 0.16), 0 0 0 1px rgba(191, 219, 254, 0.9);
}
 @media (prefers-reduced-motion: no-preference) {
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover .landing2-tile__float .icon, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-tile__float .icon {
         transform: translateZ(0) rotateY(360deg);
    }
     html.landing3[data-page="portal_landing3"] .landing2-tile:hover .landing2-tile__float .icon, html.landing3[data-page="portal_landing3"] .landing2-tile:focus-within .landing2-tile__float .icon {
         transform: none;
    }
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile__inner {
     position: static;
     min-width: 0;
     width: 100%;
     box-sizing: border-box;
     padding-top: clamp(48px, 10vw, 72px);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile__title {
     position: relative;
     z-index: 3;
     margin: 0 0 var(--s2);
     font-size: clamp(20px, 2.6vw, 30px);
     font-weight: 800;
     color: #0f172a;
     letter-spacing: -0.03em;
     line-height: 1.18;
     text-shadow: 0 0 1px rgba(255, 255, 255, 0.95), 0 1px 2px rgba(15, 23, 42, 0.06);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile__lead {
     position: relative;
     z-index: 3;
     margin: 0 0 var(--s3);
     font-size: var(--fs-sm);
     line-height: 1.55;
     color: #1e293b;
     max-width: 100%;
     text-shadow: 0 0 1px rgba(255, 255, 255, 0.9), 0 1px 1px rgba(15, 23, 42, 0.04);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-subs {
     position: absolute;
     inset: 0;
     z-index: 4;
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: center;
     gap: 6px;
     min-width: 0;
     width: auto;
     max-width: none;
     max-height: none;
     box-sizing: border-box;
     padding-block: clamp(40px, 10%, 76px) clamp(var(--s4), 2.6vw, var(--s7));
     padding-inline: clamp(var(--s6), 4.2vw, var(--s10));
     overflow-x: hidden;
     overflow-y: hidden;
     -webkit-overflow-scrolling: touch;
     border-radius: clamp(22px, 2.4vw, 30px);
     background: transparent;
     border: 1px solid transparent;
     box-shadow: none;
     -webkit-backdrop-filter: none;
     backdrop-filter: none;
     opacity: 0;
     visibility: hidden;
     transform: scale(0.985);
     pointer-events: none;
     transition: opacity 0.34s var(--ease), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.34s, box-shadow 0.32s ease, background 0.32s ease, backdrop-filter 0.32s ease;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover .landing2-subs, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-subs {
     z-index: 8;
     opacity: 1;
     visibility: visible;
     transform: scale(1);
     pointer-events: auto;
     background: rgba(255, 255, 255, 0.95);
     border: 1px solid rgba(226, 232, 240, 0.75);
     -webkit-backdrop-filter: blur(18px) saturate(1.12);
     backdrop-filter: blur(18px) saturate(1.12);
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.95) inset, 0 24px 56px rgba(26, 107, 255, 0.12);
     transition: opacity 0.2s var(--ease), transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0s, box-shadow 0.24s ease, backdrop-filter 0.24s ease, background 0.24s ease;
}
 @media (hover: none) and (pointer: coarse) {
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-link__go {
         opacity: 1;
         transform: none;
    }
}
 @media (prefers-reduced-motion: reduce) {
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-ambient__blob--1, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-ambient__blob--2, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-ambient__blob--3 {
         animation: none !important;
    }
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile__bg, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile__float, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile__float .icon, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-subs {
         transition-duration: 0.01ms !important;
    }
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile__float .icon {
         transform: none !important;
    }
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover .landing2-link__go, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-link__go {
         opacity: 1 !important;
         transform: none !important;
    }
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover .landing2-subs .landing2-link, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-subs .landing2-link {
         opacity: 1 !important;
         transform: none !important;
         transition-delay: 0ms !important;
    }
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-link {
     display: flex;
     align-items: center;
     gap: 10px;
     padding: 11px 14px;
     min-width: 0;
     width: 100%;
     max-width: 100%;
     box-sizing: border-box;
     border-radius: 14px;
     text-decoration: none;
     color: var(--text);
     font-size: var(--fs-sm);
     font-weight: 600;
     background: rgba(255, 255, 255, 0.72);
     border: 1px solid rgba(226, 232, 240, 0.95);
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset;
     -webkit-backdrop-filter: blur(10px);
     backdrop-filter: blur(10px);
     transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, color 0.2s ease;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-link:hover {
     background: #fff;
     border-color: rgba(191, 219, 254, 0.95);
     box-shadow: 0 6px 18px rgba(26, 107, 255, 0.1);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-link .icon:first-of-type {
     font-size: 21px;
     color: var(--brand-600, #2563eb);
     opacity: 0.95;
     flex-shrink: 0;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-link__txt {
     flex: 1;
     min-width: 0;
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-link__go {
     font-size: 17px;
     opacity: 0;
     transform: translateX(-4px);
     flex-shrink: 0;
     transition: opacity 0.2s ease, transform 0.2s ease;
     color: var(--brand);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-link:hover .landing2-link__go, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-link:focus-visible .landing2-link__go {
     opacity: 1;
     transform: translateX(0);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-subs .landing2-link {
     align-self: center;
     width: calc(100% - 2 * var(--s4));
     max-width: 100%;
     min-width: 0;
     padding: 10px 12px;
     font-size: calc(var(--fs-sm) * 1.1);
     border-radius: 12px;
     background: rgba(255, 255, 255, 0.45);
     border: 1px solid rgba(203, 213, 225, 0.55);
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset, 0 1px 2px rgba(15, 23, 42, 0.04);
     -webkit-backdrop-filter: blur(8px);
     backdrop-filter: blur(8px);
     transition: opacity 0.14s cubic-bezier(0.22, 1, 0.36, 1), transform 0.14s cubic-bezier(0.22, 1, 0.36, 1), background 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, color 0.22s ease;
}
 html[data-page="portal_landing2"] .landing2-subs .landing2-link {
     padding: calc(10px * 0.95) 12px;
     font-size: calc(var(--fs-sm) * 1.1 * 0.9);
}
 html[data-page="portal_landing2"] .landing2-subs .landing2-link .icon:first-of-type {
     font-size: calc(21px * 0.9);
}
 html[data-page="portal_landing2"] .landing2-subs .landing2-link .landing2-link__go {
     font-size: calc(17px * 0.9);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:not(:hover):not(:focus-within) .landing2-subs .landing2-link {
     opacity: 0;
     transform: translateY(10px);
     transition: opacity 0.08s ease, transform 0.08s ease, background 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, color 0.22s ease;
     transition-delay: 0ms;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover .landing2-subs .landing2-link, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-subs .landing2-link {
     opacity: 1;
     transform: translateY(0);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover .landing2-subs .landing2-link:nth-child(1), :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-subs .landing2-link:nth-child(1) {
     transition-delay: 0ms;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover .landing2-subs .landing2-link:nth-child(2), :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-subs .landing2-link:nth-child(2) {
     transition-delay: 18ms;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover .landing2-subs .landing2-link:nth-child(3), :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-subs .landing2-link:nth-child(3) {
     transition-delay: 36ms;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover .landing2-subs .landing2-link:nth-child(4), :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-subs .landing2-link:nth-child(4) {
     transition-delay: 54ms;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover .landing2-subs .landing2-link:nth-child(5), :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-subs .landing2-link:nth-child(5) {
     transition-delay: 72ms;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover .landing2-subs .landing2-link:nth-child(6), :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-subs .landing2-link:nth-child(6) {
     transition-delay: 90ms;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-subs .landing2-link:hover, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-subs .landing2-link:focus-visible {
     position: relative;
     z-index: 1;
     border-color: rgba(255, 255, 255, 0.35);
     color: #fff;
     transform: translate(2px, 0);
     background: linear-gradient(135deg, #2563eb 0%, #1a6bff 100%);
     box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.38), 0 6px 20px rgba(37, 99, 235, 0.4), 0 1px 0 rgba(255, 255, 255, 0.22) inset;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--info .landing2-subs .landing2-link:hover, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--info .landing2-subs .landing2-link:focus-visible {
     background: linear-gradient(135deg, #4f46e5 0%, #6366f1 100%);
     box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.38), 0 6px 22px rgba(79, 70, 229, 0.42), 0 1px 0 rgba(255, 255, 255, 0.22) inset;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--civil .landing2-subs .landing2-link:hover, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--civil .landing2-subs .landing2-link:focus-visible {
     background: linear-gradient(135deg, #7c3aed 0%, #9333ea 100%);
     box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.38), 0 6px 22px rgba(124, 58, 237, 0.42), 0 1px 0 rgba(255, 255, 255, 0.22) inset;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--data .landing2-subs .landing2-link:hover, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--data .landing2-subs .landing2-link:focus-visible {
     background: linear-gradient(135deg, #0d9488 0%, #14b8a6 100%);
     box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.38), 0 6px 22px rgba(13, 148, 136, 0.4), 0 1px 0 rgba(255, 255, 255, 0.22) inset;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-subs .landing2-link:hover .icon, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-subs .landing2-link:focus-visible .icon {
     color: #fff;
     opacity: 1;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-subs .landing2-link:hover .landing2-link__go, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-subs .landing2-link:focus-visible .landing2-link__go {
     transform: translateX(0);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-subs .landing2-link .icon {
     opacity: 0.88;
     transition: color 0.22s ease, opacity 0.22s ease;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--sv .landing2-subs .landing2-link:not(:hover):not(:focus-visible) .icon {
     color: #2563eb;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--info .landing2-subs .landing2-link:not(:hover):not(:focus-visible) .icon {
     color: #4f46e5;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--civil .landing2-subs .landing2-link:not(:hover):not(:focus-visible) .icon {
     color: #7c3aed;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile--data .landing2-subs .landing2-link:not(:hover):not(:focus-visible) .icon {
     color: #0d9488;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) footer.footer {
     position: relative;
     z-index: 2;
     background: var(--card, #fff);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .footer--landing2 {
     margin-top: 0;
     border-top: 1px solid var(--border);
     background: var(--card, #fff);
     color: var(--muted);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .footer--landing2 .footer__addr, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .footer--landing2 .footer__phones {
     color: color-mix(in srgb, var(--dim) 70%, var(--text) 30%);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .footer--landing2 .footer__links a {
     color: color-mix(in srgb, var(--text-2) 70%, var(--text) 30%);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .footer--landing2 .footer__copy {
     color: color-mix(in srgb, var(--faint) 70%, var(--text-2) 30%);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-hero__eyebrow {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     margin: 0 0 var(--s3);
     padding: 4px 14px 4px 10px;
     border-radius: var(--r-pill);
     background: rgba(255, 255, 255, 0.72);
     border: 1px solid rgba(191, 219, 254, 0.8);
     font-size: var(--fs-xs);
     font-weight: 700;
     letter-spacing: 0.06em;
     text-transform: uppercase;
     color: var(--brand-600, #2563eb);
     -webkit-backdrop-filter: blur(8px);
     backdrop-filter: blur(8px);
     box-shadow: 0 1px 8px rgba(26, 107, 255, 0.08);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-hero__eyebrow::before {
     content: "";
     display: inline-block;
     width: 6px;
     height: 6px;
     border-radius: 50%;
     background: currentColor;
     flex-shrink: 0;
     animation: landing2-dot-pulse 2.4s ease-in-out infinite;
}
 @keyframes landing2-dot-pulse {
     0%, 100% {
         opacity: 1;
    }
     50% {
         opacity: 0.3;
    }
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-hero__cta {
     display: flex;
     flex-wrap: wrap;
     gap: 12px;
     justify-content: center;
     margin-top: var(--s5);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-btn {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     padding: 13px 26px;
     border-radius: var(--r-pill);
     font-size: var(--fs-sm);
     font-weight: 700;
     text-decoration: none;
     transition: all 0.22s var(--ease);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-btn--primary {
     background: linear-gradient(135deg, #2563eb 0%, #1a6bff 100%);
     color: #fff;
     box-shadow: 0 8px 28px rgba(26, 107, 255, 0.3), 0 1px 0 rgba(255, 255, 255, 0.2) inset;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-btn--primary:hover {
     transform: translateY(-2px);
     box-shadow: 0 14px 36px rgba(26, 107, 255, 0.38);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-btn--ghost {
     background: rgba(255, 255, 255, 0.78);
     color: var(--text);
     border: 1px solid rgba(226, 232, 240, 0.9);
     -webkit-backdrop-filter: blur(8px);
     backdrop-filter: blur(8px);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-btn--ghost:hover {
     background: #fff;
     border-color: rgba(191, 219, 254, 0.9);
     box-shadow: 0 4px 16px rgba(26, 107, 255, 0.1);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-btn .icon {
     font-size: 18px;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-stats {
     display: flex;
     align-items: center;
     justify-content: center;
     flex-wrap: wrap;
     max-width: min(680px, 100%);
     margin: 0 auto var(--s8);
     padding: 18px 32px;
     border-radius: var(--r-xl);
     background: rgba(255, 255, 255, 0.72);
     border: 1px solid rgba(255, 255, 255, 0.9);
     box-shadow: 0 4px 22px rgba(15, 23, 42, 0.06);
     -webkit-backdrop-filter: blur(16px);
     backdrop-filter: blur(16px);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-stat {
     flex: 1;
     min-width: 90px;
     text-align: center;
     padding: 0 16px;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-stat__num {
     display: block;
     font-size: clamp(20px, 2.6vw, 26px);
     font-weight: 800;
     color: #0f172a;
     letter-spacing: -0.03em;
     line-height: 1.1;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-stat__lbl {
     display: block;
     font-size: var(--fs-2xs);
     color: var(--muted);
     font-weight: 600;
     margin-top: 4px;
     letter-spacing: 0.02em;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-stat__sep {
     width: 1px;
     height: 38px;
     background: rgba(226, 232, 240, 0.9);
     flex-shrink: 0;
}
 @media (max-width: 480px) {
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-stats {
         padding: 14px 16px;
    }
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-stat {
         padding: 0 8px;
         min-width: 60px;
    }
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-stat__sep {
         display: none;
    }
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-steps {
     max-width: min(1100px, 100%);
     margin: 0 auto var(--s10);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-steps__track {
     display: flex;
     align-items: stretch;
     overflow-x: auto;
     -webkit-overflow-scrolling: touch;
     padding: 4px 2px;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step {
     flex: 1;
     min-width: 160px;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step__card {
     height: 100%;
     display: flex;
     flex-direction: column;
     align-items: flex-start;
     padding: clamp(16px, 2vw, 22px);
     border-radius: clamp(16px, 1.8vw, 22px);
     background: rgba(255, 255, 255, 0.72);
     border: 1px solid rgba(255, 255, 255, 0.9);
     box-shadow: 0 8px 28px rgba(15, 23, 42, 0.07);
     -webkit-backdrop-filter: blur(16px);
     backdrop-filter: blur(16px);
     transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step__card:hover {
     transform: translateY(-3px);
     box-shadow: 0 14px 40px rgba(26, 107, 255, 0.13);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step__card--accent {
     background: linear-gradient( 145deg, rgba(37, 99, 235, 0.08), rgba(26, 107, 255, 0.05) );
     border-color: rgba(191, 219, 254, 0.85);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step__seq {
     font-size: var(--fs-2xs);
     font-weight: 800;
     letter-spacing: 0.14em;
     text-transform: uppercase;
     color: var(--brand-600, #2563eb);
     margin-bottom: var(--s3);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step__icon-wrap {
     width: 44px;
     height: 44px;
     border-radius: 14px;
     display: flex;
     align-items: center;
     justify-content: center;
     background: linear-gradient(145deg, #eff6ff, #dbeafe);
     border: 1px solid rgba(191, 219, 254, 0.55);
     margin-bottom: var(--s3);
     flex-shrink: 0;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step__icon-wrap--accent {
     background: linear-gradient(135deg, #2563eb, #1a6bff);
     border-color: transparent;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step__icon-wrap .icon {
     font-size: 22px;
     color: var(--brand-600, #2563eb);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step__icon-wrap--accent .icon {
     color: #fff;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step__label {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: #0f172a;
     margin-bottom: 3px;
     line-height: 1.35;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step__sub {
     font-size: var(--fs-2xs);
     color: var(--muted);
     font-weight: 500;
     margin-top: 2px;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step__arr {
     color: var(--dim);
     padding: 0 clamp(6px, 1vw, 12px);
     flex-shrink: 0;
     display: flex;
     align-items: center;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step__arr .icon {
     font-size: 20px;
}
 @media (max-width: 720px) {
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step {
         min-width: 140px;
    }
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step__card {
         padding: 13px;
    }
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-step__arr {
         padding: 0 5px;
    }
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile__deco {
     position: absolute;
     top: clamp(16px, 2.4vw, 24px);
     left: clamp(var(--s5), 3.6vw, var(--s8));
     right: clamp(74px, 10vw, 90px);
     z-index: 2;
     display: flex;
     flex-wrap: wrap;
     gap: 6px;
     pointer-events: none;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-chip {
     display: inline-flex;
     align-items: center;
     gap: calc(5px * 1.15);
     padding: calc(4px * 1.15) calc(10px * 1.15) calc(4px * 1.15) calc(7px * 1.15);
     border-radius: var(--r-pill);
     font-size: calc(var(--fs-2xs) * 1.15);
     font-weight: 600;
     background: rgba(255, 255, 255, 0.85);
     border: 1px solid rgba(191, 219, 254, 0.7);
     color: var(--brand-600, #2563eb);
     box-shadow: 0 1px 5px rgba(15, 23, 42, 0.07);
     -webkit-backdrop-filter: blur(8px);
     backdrop-filter: blur(8px);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-chip .icon {
     font-size: calc(13px * 1.15);
     flex-shrink: 0;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-chip--muted {
     color: var(--text-2);
     border-color: rgba(226, 232, 240, 0.8);
     background: rgba(255, 255, 255, 0.65);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-features {
     display: grid;
     grid-template-columns: repeat(2, minmax(0, 1fr));
     gap: clamp(14px, 2vw, 24px);
     max-width: min(870px, 100%);
     width: 100%;
     margin: var(--s8) auto 0;
     box-sizing: border-box;
     justify-items: stretch;
     align-items: stretch;
}
 @media (max-width: 860px) {
     :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-features {
         grid-template-columns: 1fr;
         max-width: min(560px, 100%);
    }
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-feat {
     display: flex;
     align-items: flex-start;
     gap: var(--s4);
     padding: clamp(16px, 2.2vw, 22px);
     border-radius: clamp(16px, 1.8vw, 22px);
     background: rgba(255, 255, 255, 0.62);
     border: 1px solid rgba(255, 255, 255, 0.88);
     box-shadow: 0 6px 22px rgba(15, 23, 42, 0.05);
     -webkit-backdrop-filter: blur(14px);
     backdrop-filter: blur(14px);
     transition: box-shadow 0.2s var(--ease);
     width: 100%;
     min-width: 0;
     box-sizing: border-box;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-feat > div {
     flex: 1;
     min-width: 0;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-feat:hover {
     box-shadow: 0 10px 32px rgba(26, 107, 255, 0.1);
     border-color: rgba(191, 219, 254, 0.7);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-feat__icon {
     width: 46px;
     height: 46px;
     flex-shrink: 0;
     border-radius: 14px;
     display: flex;
     align-items: center;
     justify-content: center;
     background: linear-gradient(145deg, #eff6ff, #dbeafe);
     border: 1px solid rgba(191, 219, 254, 0.5);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-feat__icon .icon {
     font-size: 22px;
     color: var(--brand-600, #2563eb);
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-feat__ttl {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: #0f172a;
     margin-bottom: 4px;
}
 :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-feat__body {
     font-size: var(--fs-xs);
     color: var(--muted);
     line-height: 1.6;
}
 html.landing3[data-page="portal_landing3"] {
     color-scheme: dark;
     --l3-ink: #f1f5f9;
     --l3-ink-2: #cbd5e1;
     --l3-muted: #94a3b8;
     --l3-rule: rgba(148, 163, 184, 0.28);
     --l3-accent: #60a5fa;
     --l3-accent-soft: #93c5fd;
     --l3-surface: rgba(51, 65, 85, 0.58);
     --l3-surface-2: rgba(71, 85, 105, 0.45);
     --l3-edge: rgba(148, 163, 184, 0.22);
     --l3-nav-bg: rgba(30, 41, 59, 0.82);
     --l3-nav-edge: rgba(100, 116, 139, 0.5);
     --l3-shadow: 0 1px 0 rgba(255, 255, 255, 0.07) inset, 0 16px 40px rgba(15, 23, 42, 0.22);
     --l3-shadow-hover: 0 1px 0 rgba(255, 255, 255, 0.09) inset, 0 22px 48px rgba(15, 23, 42, 0.28);
     --l3-page: radial-gradient( ellipse 100% 72% at 50% -8%, rgba(59, 130, 246, 0.18) 0%, transparent 52% ), radial-gradient( ellipse 55% 42% at 100% 0%, rgba(99, 102, 241, 0.12), transparent 55% ), linear-gradient(188deg, #1e293b 0%, #334155 52%, #3d4e63 100%);
     --l3-main: radial-gradient( ellipse 88% 48% at 50% 0%, rgba(59, 130, 246, 0.14) 0%, transparent 58% ), linear-gradient( 180deg, rgba(51, 65, 85, 0.55) 0%, rgba(71, 85, 105, 0.42) 100% );
     --l3-viz-a: rgba(59, 130, 246, 0.08);
     --l3-viz-b: rgba(148, 163, 184, 0.06);
     --l3-water-stroke: rgba(148, 163, 184, 0.22);
     --l3-chip-border: rgba(100, 116, 139, 0.55);
     --l3-feat-icon-bg: linear-gradient( 145deg, rgba(30, 58, 138, 0.5), rgba(15, 23, 42, 0.4) );
     --l3-feat-icon-edge: rgba(59, 130, 246, 0.35);
     --l3-feat-icon-ink: #93c5fd;
     --l3-strip-sv: #60a5fa;
     --l3-strip-info: #818cf8;
     --l3-strip-civil: #a78bfa;
     --l3-strip-data: #2dd4bf;
}
 html.landing3[data-page="portal_landing3"][data-theme="light"] {
     color-scheme: light;
     --l3-ink: #0f172a;
     --l3-ink-2: #334155;
     --l3-muted: #64748b;
     --l3-rule: rgba(15, 23, 42, 0.1);
     --l3-accent: #1d4ed8;
     --l3-accent-soft: #2563eb;
     --l3-surface: rgba(255, 255, 255, 0.78);
     --l3-surface-2: rgba(248, 250, 252, 0.94);
     --l3-edge: rgba(15, 23, 42, 0.07);
     --l3-nav-bg: rgba(255, 255, 255, 0.92);
     --l3-nav-edge: rgba(226, 232, 240, 0.9);
     --l3-shadow: 0 1px 0 rgba(255, 255, 255, 0.92) inset, 0 1px 3px rgba(15, 23, 42, 0.06), 0 8px 22px rgba(15, 23, 42, 0.05);
     --l3-shadow-hover: 0 1px 0 rgba(255, 255, 255, 0.95) inset, 0 2px 6px rgba(15, 23, 42, 0.07), 0 14px 36px rgba(15, 23, 42, 0.08);
     --l3-page: #ffffff;
     --l3-main: #ffffff;
     --l3-viz-a: rgba(37, 99, 235, 0.055);
     --l3-viz-b: rgba(100, 116, 139, 0.04);
     --l3-water-stroke: rgba(100, 116, 139, 0.18);
     --l3-chip-border: rgba(226, 232, 240, 0.95);
     --l3-feat-icon-bg: linear-gradient(145deg, #eff6ff, #e2e8f0);
     --l3-feat-icon-edge: rgba(148, 163, 184, 0.35);
     --l3-feat-icon-ink: var(--l3-accent-soft);
     --l3-strip-sv: #2563eb;
     --l3-strip-info: #4f46e5;
     --l3-strip-civil: #7c3aed;
     --l3-strip-data: #0d9488;
}
 html.landing3[data-page="portal_landing3"][data-theme="light"] {
     background-color: #ffffff;
}
 html.landing3[data-page="portal_landing3"] .landing2-body {
     display: flex;
     flex-direction: column;
     min-height: 100vh;
     min-height: 100dvh;
     color: var(--l3-ink);
     background: var(--l3-page);
}
 html.landing3[data-page="portal_landing3"][data-theme="light"] .landing2-body {
     background-color: #ffffff;
     background-image: none;
}
 html.landing3[data-page="portal_landing3"] header.nav {
     flex-shrink: 0;
}
 html.landing3[data-page="portal_landing3"] .footer--landing2 {
     flex-shrink: 0;
}
 html.landing3[data-page="portal_landing3"] .landing2-ambient .landing2-ambient__blob {
     opacity: 0.38;
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__dots {
     opacity: 0.42;
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__ribbon {
     background: linear-gradient( 115deg, rgba(59, 130, 246, 0.14) 0%, rgba(100, 116, 139, 0.09) 45%, rgba(14, 165, 233, 0.1) 100% );
     opacity: 0.88;
}
 html.landing3[data-page="portal_landing3"][data-theme="light"] .landing2-ambient__grid {
     opacity: 0.1;
}
 html.landing3[data-page="portal_landing3"][data-theme="light"] .landing2-ambient .landing2-ambient__blob {
     opacity: 0.12;
}
 html.landing3[data-page="portal_landing3"][data-theme="light"] .landing3-ambient__dots {
     opacity: 0.16;
}
 html.landing3[data-page="portal_landing3"][data-theme="light"] .landing3-ambient__ribbon {
     opacity: 0.28;
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__arcs {
     position: absolute;
     inset: -8%;
     pointer-events: none;
     background: radial-gradient( circle at 50% 42%, transparent 36%, rgba(59, 130, 246, 0.035) 37%, transparent 38% ), radial-gradient( circle at 50% 42%, transparent 48%, rgba(100, 116, 139, 0.03) 49%, transparent 50% ), radial-gradient( circle at 50% 42%, transparent 58%, rgba(148, 163, 184, 0.035) 59%, transparent 60% );
     -webkit-mask-image: radial-gradient( ellipse 75% 65% at 50% 40%, #000 0%, transparent 75% );
     mask-image: radial-gradient( ellipse 75% 65% at 50% 40%, #000 0%, transparent 75% );
}
 html.landing3[data-page="portal_landing3"] .landing3-ambient__water {
     -webkit-text-stroke: 1px var(--l3-water-stroke);
}
 html.landing3[data-page="portal_landing3"] .nav {
     background: var(--l3-nav-bg);
     -webkit-backdrop-filter: blur(18px) saturate(1.06);
     backdrop-filter: blur(18px) saturate(1.06);
     border-bottom: 1px solid var(--l3-nav-edge);
}
 html.landing3[data-page="portal_landing3"] header.nav .nav__menu a:not([aria-current="page"]) {
     color: var(--l3-ink-2);
}
 html.landing3[data-page="portal_landing3"] .landing2-main {
     flex: 1;
     display: flex;
     flex-direction: column;
     justify-content: center;
     align-items: stretch;
     min-height: 0;
     overflow-y: auto;
     padding: var(--s6) var(--container-px) var(--s10);
     background: var(--l3-main);
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06) inset, 0 28px 56px rgba(15, 23, 42, 0.14);
}
 html.landing3[data-page="portal_landing3"] .landing2-hero__title {
     color: var(--l3-ink);
}
 html.landing3[data-page="portal_landing3"][data-theme="light"] .landing2-main {
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.55) inset, 0 48px 100px rgba(15, 23, 42, 0.02);
}
 html.landing3[data-page="portal_landing3"] .landing3-hero {
     position: relative;
     padding-top: clamp(12px, 2.4vw, 24px);
     padding-bottom: clamp(8px, 1.2vw, 16px);
}
 html.landing3[data-page="portal_landing3"] .landing3-hero__viz {
     position: absolute;
     left: 50%;
     top: 6%;
     transform: translate(-50%, -50%);
     width: min(420px, 92vw);
     height: min(420px, 92vw);
     pointer-events: none;
     background: radial-gradient( circle at 50% 48%, var(--l3-viz-a) 0%, transparent 46% ), radial-gradient( circle at 50% 50%, transparent 52%, var(--l3-viz-b) 53%, transparent 54% );
     z-index: 0;
}
 html.landing3[data-page="portal_landing3"] .landing3-hero__eyeline {
     position: relative;
     z-index: 1;
     display: flex;
     align-items: center;
     justify-content: center;
     flex-wrap: wrap;
     gap: 10px 14px;
     margin: 0 auto var(--s3);
     font-size: var(--fs-2xs);
     font-weight: 700;
     letter-spacing: 0.14em;
     text-transform: none;
     color: var(--l3-muted);
}
 html.landing3[data-page="portal_landing3"] .landing3-hero__eyeline__k {
     letter-spacing: 0.18em;
}
 html.landing3[data-page="portal_landing3"] .landing3-hero__eyeline__e {
     letter-spacing: 0.14em;
     font-weight: 800;
     color: var(--l3-ink-2);
}
 html.landing3[data-page="portal_landing3"] .landing3-hero__eyeline__sep {
     display: inline-block;
     width: 28px;
     height: 1px;
     background: var(--l3-rule);
     transform: rotate(-68deg);
     opacity: 0.85;
}
 html.landing3[data-page="portal_landing3"] .landing3-hero__title {
     position: relative;
     z-index: 1;
     margin: 0 0 var(--s4);
     font-size: clamp(30px, 4.6vw, 44px);
     font-weight: 800;
     letter-spacing: -0.055em;
     line-height: 1.08;
     max-width: 18ch;
     margin-left: auto;
     margin-right: auto;
}
 html.landing3[data-page="portal_landing3"] .landing3-hero__title-muted {
     color: var(--l3-ink);
}
 html.landing3[data-page="portal_landing3"] .landing3-hero__title-accent {
     color: var(--l3-accent);
     border-bottom: 3px solid currentColor;
     padding-bottom: 2px;
}
 html.landing3[data-page="portal_landing3"] .landing3-hero__lead {
     position: relative;
     z-index: 1;
     max-width: 38ch;
     margin-left: auto;
     margin-right: auto;
     font-size: clamp(16px, 2.1vw, 17px);
     line-height: 1.65;
     color: var(--l3-ink-2);
}
 html.landing3[data-page="portal_landing3"] .landing2-hero__cta {
     position: relative;
     z-index: 1;
     display: flex;
     flex-wrap: wrap;
     justify-content: center;
     gap: var(--s3);
}
 html.landing3[data-page="portal_landing3"] .landing2-hero {
     margin-top: var(--s8);
     margin-bottom: var(--s4);
     margin-inline: auto;
}
 html.landing3[data-page="portal_landing3"] .landing2-main > .landing2-hero__cta--below-grid {
     margin-top: clamp(var(--s5), 3vw, var(--s8));
     margin-bottom: var(--s2);
     width: 100%;
     max-width: min(1240px, 100%);
     margin-inline: auto;
     box-sizing: border-box;
}
 html.landing3[data-page="portal_landing3"] .landing2-grid {
     grid-template-columns: repeat(4, minmax(0, 1fr));
     grid-template-rows: none;
     grid-auto-rows: minmax(260px, auto);
     gap: 0;
     max-width: min(1360px, 100%);
}
 @media (max-width: 1100px) and (min-width: 901px) {
     html.landing3[data-page="portal_landing3"] .landing2-grid {
         grid-template-columns: repeat(2, minmax(0, 1fr));
         grid-auto-rows: minmax( clamp(220px, 32vh, 300px), auto );
         max-width: min(900px, 100%);
    }
}
 html.landing3[data-page="portal_landing3"] .landing2-tile__title {
     font-size: clamp(18px, 2.34vw, 27px);
     line-height: 1.18;
}
 html.landing3[data-page="portal_landing3"] .landing2-tile__lead {
     font-size: clamp(10.5px, 0.82vw, 12.5px);
     line-height: 1.3;
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
}
 html.landing3[data-page="portal_landing3"] .landing2-chip {
     flex-shrink: 0;
     font-size: calc(var(--fs-2xs) * 0.78 * 1.15);
     padding: calc(3px * 1.15) calc(7px * 1.15) calc(3px * 1.15) calc(5px * 1.15);
     white-space: nowrap;
}
 html.landing3[data-page="portal_landing3"] .landing2-chip .icon {
     font-size: calc(13px * 0.75 * 1.15);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile .landing2-link {
     gap: 6px 7px;
     padding: 7px 9px;
     align-items: center;
     font-size: clamp(10px, 0.78vw, 12px);
     border-radius: 0;
}
 html.landing3[data-page="portal_landing3"] .landing2-tile .landing2-link__txt {
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
     line-height: 1.25;
     font-size: inherit;
}
 html.landing3[data-page="portal_landing3"] .landing2-subs .landing2-link {
     width: calc(100% - 2 * var(--s2));
     padding: calc(7px * 1.2 * 1.05) 9px;
     font-size: calc(clamp(10px, 0.78vw, 12px) * 1.05);
}
 html.landing3[data-page="portal_landing3"] .landing2-subs .landing2-link .icon:first-of-type {
     font-size: calc(clamp(16px, 1.55vw, 18px) * 1.05);
}
 html.landing3[data-page="portal_landing3"] .landing2-subs .landing2-link .landing2-link__go {
     font-size: calc(17px * 0.9 * 1.05);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile .landing2-link .icon:first-of-type {
     font-size: clamp(16px, 1.55vw, 18px);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile .landing2-link__go {
     align-self: center;
     font-size: calc(17px * 0.9);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile__float .icon {
     font-size: clamp(23px, 4.05vw, 31px);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile {
     border-radius: 0;
     padding: clamp(var(--s3), 2.1vw, var(--s6));
     background: var(--l3-surface);
     border: 1px solid var(--l3-edge);
     border-left: 3px solid var(--l3-accent);
     box-shadow: var(--l3-shadow);
     -webkit-backdrop-filter: blur(22px) saturate(1.08);
     backdrop-filter: blur(22px) saturate(1.08);
     transition: box-shadow 0.28s var(--ease), border-color 0.22s ease, transform 0.28s var(--ease);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile__inner {
     padding-top: calc(20px + clamp(52px, 9vw, 64px) + var(--s4));
}
 html.landing3[data-page="portal_landing3"] .landing2-tile__deco {
     top: clamp(11px, 1.7vw, 18px);
     left: auto;
     right: clamp(var(--s3), 2.1vw, var(--s6));
     justify-content: flex-end;
     flex-wrap: nowrap;
     gap: 5px;
}
 html.landing3[data-page="portal_landing3"] .landing2-tile .landing2-subs {
     overflow: visible;
     display: flex;
     flex-direction: column;
     justify-content: flex-start;
     align-items: center;
     align-content: stretch;
     gap: clamp(6px, 1.1vw, 10px);
     min-height: 100%;
     height: 100%;
     padding-top: clamp(26px, 7%, 56px);
     padding-bottom: calc(50px + 20px);
     padding-inline: clamp(var(--s3), 2.1vw, var(--s6));
     box-sizing: border-box;
     border-radius: 0;
}
 html.landing3[data-page="portal_landing3"] .landing2-tile .landing2-subs::before {
     content: "";
     flex: 1 1 0;
     min-height: 0;
     width: 100%;
     pointer-events: none;
}
 html.landing3[data-page="portal_landing3"] .landing2-tile:hover .landing2-subs, html.landing3[data-page="portal_landing3"] .landing2-tile:focus-within .landing2-subs {
     gap: clamp(6px, 1.1vw, 10px);
     min-height: 100%;
     height: 100%;
     padding-bottom: calc(50px + 20px);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--sv {
     border-left-color: var(--l3-strip-sv);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--info {
     border-left-color: var(--l3-strip-info);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--civil {
     border-left-color: var(--l3-strip-civil);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--data {
     border-left-color: var(--l3-strip-data);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--sv:hover, html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--sv:focus-within, html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--info:hover, html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--info:focus-within, html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--civil:hover, html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--civil:focus-within, html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--data:hover, html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--data:focus-within {
     transform: translateY(-1px);
     box-shadow: var(--l3-shadow-hover);
     border-color: var(--l3-edge);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--sv:hover, html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--sv:focus-within {
     border-left-color: var(--l3-strip-sv);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--info:hover, html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--info:focus-within {
     border-left-color: var(--l3-strip-info);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--civil:hover, html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--civil:focus-within {
     border-left-color: var(--l3-strip-civil);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--data:hover, html.landing3[data-page="portal_landing3"] .landing2-tile.landing2-tile--data:focus-within {
     border-left-color: var(--l3-strip-data);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile__bg::after {
     background-size: calc(44px * 0.85) calc(44px * 0.85);
     opacity: 0.22;
}
 html.landing3[data-page="portal_landing3"] .landing2-tile__float {
     top: 20px;
     left: 20px;
     right: auto;
     transform: none;
     background: linear-gradient( 160deg, rgba(51, 65, 85, 0.88), rgba(30, 41, 59, 0.72) );
     border: 1px solid var(--l3-edge);
     box-shadow: 0 10px 28px rgba(15, 23, 42, 0.22), 0 1px 0 rgba(255, 255, 255, 0.08) inset;
}
 html.landing3[data-page="portal_landing3"][data-theme="light"] .landing2-tile__float {
     background: linear-gradient( 160deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.82) );
     box-shadow: 0 10px 28px rgba(15, 23, 42, 0.07), 0 1px 0 rgba(255, 255, 255, 0.88) inset;
}
 html.landing3[data-page="portal_landing3"] .landing2-tile:hover .landing2-tile__float, html.landing3[data-page="portal_landing3"] .landing2-tile:focus-within .landing2-tile__float {
     transform: translateY(-10px);
     box-shadow: 0 14px 36px rgba(59, 130, 246, 0.22), 0 1px 0 rgba(255, 255, 255, 0.08) inset;
}
 html.landing3[data-page="portal_landing3"][data-theme="light"] .landing2-tile:hover .landing2-tile__float, html.landing3[data-page="portal_landing3"][data-theme="light"] .landing2-tile:focus-within .landing2-tile__float {
     transform: translateY(-10px);
     box-shadow: 0 14px 32px rgba(37, 99, 235, 0.12), 0 1px 0 rgba(255, 255, 255, 0.9) inset;
}
 html.landing3[data-page="portal_landing3"] .landing2-features {
     gap: clamp(14px, 2vw, 22px);
     max-width: min(880px, 100%);
}
 html.landing3[data-page="portal_landing3"] .landing2-feat {
     border-radius: clamp(16px, 1.8vw, 22px);
     background: var(--l3-surface-2);
     border: 1px solid var(--l3-edge);
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset, 0 8px 26px rgba(15, 23, 42, 0.04);
     -webkit-backdrop-filter: blur(18px) saturate(1.05);
     backdrop-filter: blur(18px) saturate(1.05);
}
 html.landing3[data-page="portal_landing3"] .landing2-feat:hover {
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.82) inset, 0 12px 32px rgba(15, 23, 42, 0.07);
     border-color: var(--l3-rule);
}
 html.landing3[data-page="portal_landing3"] .landing2-feat__icon {
     background: var(--l3-feat-icon-bg);
     border-color: var(--l3-feat-icon-edge);
}
 html.landing3[data-page="portal_landing3"] .landing2-feat__icon .icon {
     color: var(--l3-feat-icon-ink);
}
 html.landing3[data-page="portal_landing3"] .landing2-feat__ttl {
     color: var(--l3-ink);
}
 html.landing3[data-page="portal_landing3"] .landing2-feat__body {
     color: var(--l3-muted);
}
 html.landing3[data-page="portal_landing3"] .landing2-btn--ghost {
     background: var(--l3-surface-2);
     border-color: var(--l3-chip-border);
     color: var(--l3-ink-2);
     -webkit-backdrop-filter: blur(10px);
     backdrop-filter: blur(10px);
}
 html.landing3[data-page="portal_landing3"] .landing2-hint {
     color: var(--l3-muted);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile__title {
     color: var(--l3-ink);
}
 html.landing3[data-page="portal_landing3"] .landing2-tile__lead {
     color: var(--l3-muted);
}
 html.landing3[data-page="portal_landing3"] .landing2-chip {
     border-color: var(--l3-chip-border);
     background: color-mix(in srgb, var(--l3-surface) 88%, #fff);
     color: var(--l3-accent-soft);
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset, 0 2px 8px rgba(15, 23, 42, 0.04);
}
 html.landing3[data-page="portal_landing3"] .landing2-chip--muted {
     color: var(--l3-muted);
     background: color-mix(in srgb, var(--l3-surface-2) 85%, transparent);
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset, 0 2px 8px rgba(15, 23, 42, 0.035);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-ambient__grid {
     opacity: 0.28;
     background-image: linear-gradient( rgba(148, 163, 184, 0.1) 1px, transparent 1px ), linear-gradient(90deg, rgba(148, 163, 184, 0.1) 1px, transparent 1px);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-ambient .landing2-ambient__blob {
     opacity: 0.48;
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-ambient__blob--1 {
     background: radial-gradient( circle at 30% 30%, rgba(99, 102, 241, 0.55) 0%, rgba(59, 130, 246, 0.35) 45%, transparent 70% );
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-ambient__blob--2 {
     background: radial-gradient( circle at 70% 40%, rgba(167, 139, 250, 0.45) 0%, rgba(124, 58, 237, 0.28) 40%, transparent 72% );
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-ambient__blob--3 {
     background: radial-gradient( circle at 50% 60%, rgba(45, 212, 191, 0.38) 0%, rgba(56, 189, 248, 0.28) 42%, transparent 70% );
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing3-ambient__ribbon {
     background: linear-gradient( 115deg, rgba(59, 130, 246, 0.22) 0%, rgba(100, 116, 139, 0.12) 45%, rgba(14, 165, 233, 0.16) 100% );
     opacity: 0.75;
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-hero__title {
     color: var(--l3-ink);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-tile__bg::after {
     opacity: 0.18;
     mix-blend-mode: normal;
     background-image: linear-gradient( rgba(148, 163, 184, 0.08) 1px, transparent 1px ), linear-gradient(90deg, rgba(148, 163, 184, 0.08) 1px, transparent 1px);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-tile--sv .landing2-tile__bg {
     background-image: linear-gradient( 210deg, rgba(15, 23, 42, 0.92) 0%, rgba(30, 58, 138, 0.55) 48%, rgba(15, 23, 42, 0.78) 100% ), radial-gradient( ellipse 110% 85% at 12% 8%, rgba(59, 130, 246, 0.35), transparent 58% ), radial-gradient( ellipse 90% 70% at 92% 88%, rgba(45, 212, 191, 0.18), transparent 55% ), radial-gradient( ellipse calc(68% * 1.15) calc(56% * 1.15) at 90% 10%, rgba(37, 99, 235, 0.45), transparent 46% );
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-tile--info .landing2-tile__bg {
     background-image: linear-gradient( 210deg, rgba(15, 23, 42, 0.92) 0%, rgba(49, 46, 129, 0.5) 42%, rgba(15, 23, 42, 0.78) 100% ), radial-gradient( ellipse 70% 60% at 10% 90%, rgba(129, 140, 248, 0.28), transparent 52% ), radial-gradient( ellipse 100% 75% at 88% 12%, rgba(99, 102, 241, 0.4), transparent 52% ), radial-gradient( ellipse calc(62% * 1.15) calc(52% * 1.15) at 92% 8%, rgba(67, 56, 202, 0.42), transparent 44% );
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-tile--civil .landing2-tile__bg {
     background-image: linear-gradient( 210deg, rgba(15, 23, 42, 0.92) 0%, rgba(76, 29, 149, 0.48) 42%, rgba(15, 23, 42, 0.78) 100% ), radial-gradient( ellipse 95% 80% at 18% 18%, rgba(167, 139, 250, 0.32), transparent 58% ), radial-gradient( ellipse 80% 70% at 85% 85%, rgba(244, 114, 182, 0.14), transparent 55% ), radial-gradient( ellipse calc(64% * 1.15) calc(54% * 1.15) at 91% 9%, rgba(109, 40, 217, 0.38), transparent 44% );
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-tile--data .landing2-tile__bg {
     background-image: linear-gradient( 210deg, rgba(15, 23, 42, 0.92) 0%, rgba(15, 118, 110, 0.45) 40%, rgba(15, 23, 42, 0.78) 100% ), radial-gradient( ellipse 85% 70% at 8% 82%, rgba(45, 212, 191, 0.22), transparent 52% ), radial-gradient( ellipse 100% 75% at 72% 10%, rgba(56, 189, 248, 0.22), transparent 52% ), radial-gradient( ellipse calc(66% * 1.15) calc(55% * 1.15) at 90% 10%, rgba(13, 148, 136, 0.42), transparent 45% );
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-chip {
     background: rgba(30, 41, 59, 0.72);
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06) inset, 0 2px 10px rgba(0, 0, 0, 0.2);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-chip--muted {
     background: rgba(15, 23, 42, 0.55);
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04) inset, 0 2px 10px rgba(0, 0, 0, 0.18);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-feat {
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05) inset, 0 8px 26px rgba(0, 0, 0, 0.28);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-feat:hover {
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.07) inset, 0 12px 32px rgba(0, 0, 0, 0.35);
     border-color: rgba(100, 116, 139, 0.35);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) header.nav .nav__textlink {
     color: var(--l3-ink-2);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) header.nav .nav__textlink:hover {
     color: var(--l3-ink);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-tile:hover .landing2-subs, html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-tile:focus-within .landing2-subs {
     background: rgba(15, 23, 42, 0.94);
     border-color: rgba(51, 65, 85, 0.92);
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06) inset, 0 24px 56px rgba(0, 0, 0, 0.45);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-subs .landing2-link {
     background: rgba(30, 41, 59, 0.65);
     border-color: rgba(100, 116, 139, 0.35);
     color: var(--l3-ink-2);
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05) inset, 0 1px 3px rgba(0, 0, 0, 0.2);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-subs .landing2-link .landing2-link__txt {
     color: var(--l3-ink);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-subs .landing2-link .landing2-link__go {
     color: var(--l3-accent-soft);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-tile--sv .landing2-subs .landing2-link:not(:hover):not(:focus-visible) .icon {
     color: #93c5fd;
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-tile--info .landing2-subs .landing2-link:not(:hover):not(:focus-visible) .icon {
     color: #a5b4fc;
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-tile--civil .landing2-subs .landing2-link:not(:hover):not(:focus-visible) .icon {
     color: #c4b5fd;
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-tile--data .landing2-subs .landing2-link:not(:hover):not(:focus-visible) .icon {
     color: #5eead4;
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-subs .landing2-link:hover, html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .landing2-subs .landing2-link:focus-visible {
     border-color: rgba(255, 255, 255, 0.2);
}
 @media (max-width: 767px) {
     html.landing3[data-page="portal_landing3"] .landing2-hero__cta {
         flex-direction: column;
         align-items: stretch;
         width: 100%;
         max-width: 22rem;
         margin-inline: auto;
         padding-inline: var(--s2);
    }
     html.landing3[data-page="portal_landing3"] .landing2-hero__cta .landing2-btn {
         min-height: 48px;
         display: inline-flex;
         align-items: center;
         justify-content: center;
         width: 100%;
         box-sizing: border-box;
    }
     html.landing3[data-page="portal_landing3"] .landing3-hero__eyeline__sep {
         display: none;
    }
     html.landing3[data-page="portal_landing3"] .landing3-hero__eyeline {
         letter-spacing: 0.08em;
         row-gap: 6px;
    }
}
 @media (min-width: 768px) {
     html.landing3[data-page="portal_landing3"] .landing2-hero__cta .landing2-btn {
         min-height: 44px;
         padding-inline: var(--s5);
    }
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) footer.footer, html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .footer--landing2 {
     background: rgba(30, 41, 59, 0.92);
     border-top-color: rgba(100, 116, 139, 0.45);
     color: var(--l3-muted);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .footer--landing2 .footer__addr, html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .footer--landing2 .footer__phones {
     color: var(--l3-muted);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .footer--landing2 .footer__links a {
     color: var(--l3-ink-2);
}
 html.landing3[data-page="portal_landing3"]:not([data-theme="light"]) .footer--landing2 .footer__copy {
     color: var(--l3-muted);
}
 @media (prefers-reduced-motion: reduce) {
     html.landing3[data-page="portal_landing3"] .landing2-tile, html.landing3[data-page="portal_landing3"] .landing2-feat {
         transition: none;
    }
     html.landing3[data-page="portal_landing3"] .landing2-tile:hover, html.landing3[data-page="portal_landing3"] .landing2-tile:focus-within {
         transform: none;
    }
}
 :root {
     --brand: #1a6bff;
     --brand-600: #2563eb;
     --brand-50: #eff6ff;
     --brand-100: #dbeafe;
     --brand-200: #bfdbfe;
     --accent-teal: #1a6bff;
     --accent-teal-600: #2563eb;
     --accent-teal-50: #eff6ff;
     --accent-teal-100: #dbeafe;
     --accent-teal-200: #bfdbfe;
     --accent-purple: #1a6bff;
     --accent-green: #1a6bff;
     --accent-amber: #f59e0b;
     --bg: #f8fafc;
     --bg-alt: #f1f5f9;
     --card: #fff;
     --border: #e2e8f0;
     --border-strong: #cbd5e1;
     --divider: #f1f5f9;
     --text: #0f172a;
     --text-2: #334155;
     --muted: #64748b;
     --dim: #888;
     --faint: #cbd5e1;
     --focus: #3b82f6;
     --font: "SUIT", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
     --font-icon: "Material Symbols Outlined";
     --fs-h2: 26px;
     --fs-h3: 20px;
     --fs-h4: 17px;
     --fs-body: 16px;
     --fs-sm: 14.5px;
     --fs-xs: 12px;
     --fs-2xs: 11px;
     --tracking-tight: -0.8px;
     --tracking-eyebrow: 2.5px;
     --s1: 4px;
     --s2: 8px;
     --s3: 12px;
     --s4: 16px;
     --s5: 20px;
     --s6: 24px;
     --s8: 32px;
     --s10: 40px;
     --s12: 48px;
     --s16: 64px;
     --s20: 80px;
     --r-xs: 4px;
     --r-sm: 8px;
     --r-md: 12px;
     --r-lg: 16px;
     --r-xl: 20px;
     --r-pill: 999px;
     --sh-1: 0 1px 2px rgba(15, 23, 42, 0.04);
     --sh-2: 0 4px 12px rgba(15, 23, 42, 0.06);
     --sh-3: 0 12px 32px rgba(15, 23, 42, 0.08);
     --sh-glow: 0 0 24px rgba(26, 107, 255, 0.25);
     --ease: cubic-bezier(0.22, 1, 0.36, 1);
     --d-base: 240ms;
     --container: 1400px;
     --container-px: 48px;
     --gnb: 64px;
     --z-sticky: 100;
     --z-toast: 700;
     --accent: var(--brand);
     --accent-600: var(--brand-600);
     --accent-bg: var(--brand-50);
     --accent-border: var(--brand-200);
}
 *, *::before, *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
}
 html {
     scroll-behavior: smooth;
     -webkit-text-size-adjust: 100%;
}
 body {
     font-family: var(--font);
     font-size: var(--fs-body);
     line-height: 1.6;
     color: var(--text);
     background: var(--bg);
     -webkit-font-smoothing: antialiased;
}
 button {
     font: inherit;
     color: inherit;
     background: none;
     border: none;
     cursor: pointer;
}
 a {
     color: inherit;
     text-decoration: none;
}
 :where(a, button, [tabindex]):focus-visible {
     outline: 2px solid var(--focus);
     outline-offset: 2px;
     border-radius: var(--r-xs);
}
 .skip {
     position: absolute;
     top: -100px;
     left: 16px;
     padding: 8px 16px;
     background: var(--brand);
     color: #fff;
     border-radius: var(--r-sm);
     z-index: var(--z-toast);
}
 .skip:focus {
     top: 16px;
}
 .icon {
     font-family: var(--font-icon);
     font-weight: normal;
     display: inline-block;
     line-height: 1;
     font-feature-settings: "liga";
     -webkit-font-smoothing: antialiased;
     font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
     user-select: none;
     vertical-align: middle;
}
 .container {
     max-width: var(--container);
     margin-inline: auto;
     padding-inline: var(--container-px);
     width: 100%;
     box-sizing: border-box;
}
 .u-stack-sm {
     display: flex;
     flex-direction: column;
     gap: 3px;
}
 .u-cluster {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s2);
     align-items: center;
}
 .u-grid-2 {
     display: grid;
     grid-template-columns: repeat(2, 1fr);
     gap: var(--s4);
}
 .u-grid-4 {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: var(--s4);
}
 @media (max-width: 960px) {
     .u-grid-4 {
         grid-template-columns: repeat(2, 1fr);
    }
}
 @media (max-width: 600px) {
     :root {
         --container-px: 20px;
    }
     .u-grid-4, .u-grid-2 {
         grid-template-columns: 1fr;
    }
}
 .eyebrow {
     font-size: var(--fs-2xs);
     font-weight: 700;
     letter-spacing: var(--tracking-eyebrow);
     color: var(--accent);
     text-transform: uppercase;
}
 .btn {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: var(--s2);
     font-family: var(--font);
     font-weight: 600;
     line-height: 1;
     padding: 10px 18px;
     border-radius: var(--r-md);
     border: 1px solid transparent;
     cursor: pointer;
     white-space: nowrap;
     transition: all var(--d-base) var(--ease);
     text-decoration: none;
}
 .btn--sm {
     font-size: var(--fs-sm);
     padding: 7px 14px;
     border-radius: var(--r-sm);
}
 .btn--primary {
     color: #fff;
     background: linear-gradient(135deg, var(--accent), var(--accent-600));
     box-shadow: var(--sh-glow);
}
 .btn--primary:hover {
     transform: translateY(-1px);
     box-shadow: 0 0 36px rgba(26, 107, 255, 0.4);
}
 .btn--outline {
     color: var(--brand);
     background: var(--brand-50);
     border-color: var(--brand-200);
}
 .btn--outline:hover {
     background: var(--brand-100);
}
 .btn--ghost {
     color: var(--muted);
     background: transparent;
     font-weight: 500;
}
 .btn--ghost:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .nav {
     position: sticky;
     top: 0;
     z-index: var(--z-sticky);
     height: var(--gnb);
     display: flex;
     align-items: center;
     gap: var(--s8);
     padding-inline: var(--container-px);
     background: rgba(255, 255, 255, 1);
     -webkit-backdrop-filter: blur(16px);
     backdrop-filter: blur(16px);
     border-bottom: 1px solid var(--border);
}
 .nav__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
     flex-shrink: 0;
}
 .nav__mark {
     width: 36px;
     height: 36px;
     border-radius: var(--r-sm);
     background: linear-gradient(135deg, var(--brand), #3b82f6);
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: 0 0 16px rgba(26, 107, 255, 0.25);
}
 .nav__title {
     font-size: var(--fs-body);
     font-weight: 700;
     letter-spacing: -0.3px;
     line-height: 1;
     color: var(--text);
}
 .nav__subtitle {
     font-size: var(--fs-2xs);
     margin-top: 3px;
     line-height: 1;
     color: var(--muted);
}
 .nav__menu {
     display: flex;
     align-items: center;
     gap: var(--s1);
     margin-left: var(--s4);
}
 .nav__menu a {
     font-size: var(--nav-menu-fs, calc(14px * 1.1));
     font-weight: 500;
     color: var(--muted);
     padding: 6px 14px;
     border-radius: var(--r-sm);
     transition: color var(--d-base), background var(--d-base);
}
 .nav__menu a:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .nav__menu a[aria-current="page"] {
     color: var(--accent);
     background: var(--accent-bg);
     font-weight: 600;
}
 .nav__actions {
     margin-left: auto;
     display: flex;
     align-items: center;
     gap: var(--s2);
}
 .page-hero {
     padding: var(--s6) 0 var(--s3);
     background: linear-gradient(180deg, var(--bg-alt) 0%, var(--bg) 100%);
     border-bottom: 1px solid var(--border);
}
 .page-hero__title {
     font-size: clamp(22px, 2.8vw, 28px);
     font-weight: 800;
     line-height: 1.25;
     letter-spacing: var(--tracking-tight);
     color: var(--text);
     margin: 0 0 var(--s2);
}
 .page-hero__desc {
     font-size: var(--fs-sm);
     color: var(--muted);
     line-height: 1.45;
     margin: 0;
     max-width: 100%;
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
}
 .topic-grid {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: var(--s3);
     margin-bottom: var(--s8);
}
 @media (max-width: 960px) {
     .topic-grid {
         grid-template-columns: repeat(2, 1fr);
    }
}
 @media (max-width: 600px) {
     .topic-grid {
         grid-template-columns: 1fr;
    }
}
 .topic {
     position: relative;
     display: flex;
     align-items: center;
     gap: var(--s3);
     padding: var(--s4) var(--s5);
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     cursor: pointer;
     text-align: left;
     transition: all var(--d-base) var(--ease);
}
 .topic:hover {
     border-color: var(--border-strong);
     transform: translateY(-1px);
     box-shadow: var(--sh-2);
}
 .topic.is-active {
     background: var(--accent-bg);
     border-color: var(--accent);
     box-shadow: 0 0 0 3px rgba(26, 107, 255, 0.1);
}
 .topic__icon {
     width: 40px;
     height: 40px;
     border-radius: var(--r-md);
     background: var(--accent-bg);
     color: var(--accent);
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 22px;
     flex-shrink: 0;
}
 .topic.is-active .topic__icon {
     background: var(--accent);
     color: #fff;
}
 .topic__body {
     min-width: 0;
}
 .topic__title {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text);
     display: block;
     margin-bottom: 2px;
}
 .topic__sub {
     font-size: var(--fs-xs);
     color: var(--muted);
     display: block;
}
 .choices-card {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-xl);
     padding: var(--s6);
     box-shadow: var(--sh-1);
}
 .choices-head {
     display: flex;
     align-items: center;
     gap: var(--s3);
     margin-bottom: var(--s5);
     padding-bottom: var(--s4);
     border-bottom: 1px solid var(--divider);
}
 .choices-head__label {
     font-size: var(--fs-sm);
     color: var(--muted);
}
 .choices-head__title {
     font-size: var(--fs-h4);
     font-weight: 700;
     color: var(--text);
}
 .choice-list {
     display: grid;
     grid-template-columns: repeat(2, 1fr);
     gap: var(--s3);
}
@media (min-width: 768px) {
    .choice-list {
        grid-template-columns: repeat(3, 1fr);
   }
}
@media (min-width: 1024px) {
    .choice-list {
        grid-template-columns: repeat(4, 1fr);
   }
}
 @media (min-width: 1200px) {
     .choice-list {
         grid-template-columns: repeat(5, 1fr);
    }
}
 .choice {
     display: flex;
     align-items: center;
     gap: var(--s3);
     padding: var(--s4);
     background: var(--bg);
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     cursor: pointer;
     transition: all var(--d-base) var(--ease);
     text-align: left;
     width: 100%;
}
 .choice:hover {
     background: var(--accent-bg);
     border-color: var(--accent);
     color: var(--accent);
}
 .choice__icon {
     color: var(--accent);
     font-size: 18px;
     flex-shrink: 0;
}
 .choice__text {
     font-size: var(--fs-sm);
     font-weight: 500;
     flex: 1;
}
 .choice__arrow {
     color: var(--faint);
     font-size: 16px;
     transition: color var(--d-base) var(--ease), transform var(--d-slow) var(--ease-transform);
}
 .choice:hover .choice__arrow {
     color: var(--accent);
     transform: translateX(2px);
}
 @media (max-width: 767px) {
     .choice-list {
         display: grid;
         grid-template-columns: repeat(2, 1fr);
         gap: var(--s3);
    }
     .choice {
         width: 100%;
         min-width: 0;
         max-width: none;
         flex: 1 1 auto;
         align-self: stretch;
         min-height: 0;
    }
     .choice__text {
         font-size: var(--fs-xs);
         line-height: 1.45;
    }
     .choice__icon {
         font-size: 16px;
    }
     .choice__arrow {
         font-size: 14px;
    }
}
 .ask {
     margin-top: var(--s8);
     padding: var(--s5);
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-xl);
     box-shadow: var(--sh-2);
}
 .ask__label {
     display: block;
     font-size: var(--fs-xs);
     font-weight: 700;
     color: var(--muted);
     margin-bottom: var(--s3);
     letter-spacing: 0.5px;
     text-transform: uppercase;
}
 .ask__row {
     display: flex;
     gap: var(--s3);
     align-items: center;
}
 .ask__input {
     flex: 1;
     display: flex;
     align-items: center;
     border: 1px solid var(--border-strong);
     border-radius: var(--r-md);
     background: var(--bg);
     transition: border-color var(--d-base), background var(--d-base);
     overflow: hidden;
}
 .ask__input:focus-within {
     border-color: var(--accent);
     background: #fff;
     box-shadow: 0 0 0 3px rgba(26, 107, 255, 0.12);
}
 .ask__input .icon {
     padding: 0 var(--s4);
     color: var(--dim);
     font-size: 20px;
}
 .ask__input input {
     flex: 1;
     border: 0;
     outline: 0;
     background: transparent;
     padding: 14px 0;
     font: inherit;
     color: var(--text);
}
 .ask__input input::placeholder {
     color: var(--dim);
}
 .ask__send {
     width: 48px;
     height: 48px;
     border-radius: var(--r-md);
     background: linear-gradient(135deg, var(--accent), var(--accent-600));
     color: #fff;
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: var(--sh-glow);
     transition: transform var(--d-slow) var(--ease-transform), box-shadow var(--d-base) var(--ease);
}
 .ask__send:hover {
     transform: translateY(-1px);
}
 .ask__hint {
     font-size: var(--fs-xs);
     color: var(--dim);
     margin-top: var(--s3);
     display: flex;
     align-items: center;
     gap: var(--s2);
}
 html[data-page="portal_02_info_initial"] .info-init-layout {
     align-items: start;
}
 html[data-page="portal_02_info_initial"] .info-init-main {
     min-width: 0;
}
 html[data-page="portal_02_info_initial"] .info-init-main__head {
     margin-bottom: var(--s5);
}
 html[data-page="portal_02_info_initial"] .info-init-main__title {
     font-size: var(--fs-h2);
     font-weight: 800;
     color: var(--text);
     margin: var(--s2) 0 var(--s1);
     letter-spacing: var(--tracking-tight);
     line-height: 1.25;
}
 html[data-page="portal_02_info_initial"] .info-init-main__desc {
     color: var(--muted);
     font-size: var(--fs-sm);
     line-height: 1.65;
     margin: 0;
     max-width: 62ch;
}
 @media (min-width: 901px) {
     html[data-page="portal_02_info_initial"] .info-init-topics .topic-grid--stack {
         display: flex;
         flex-direction: column;
         gap: var(--s3);
         margin-bottom: 0;
    }
     html[data-page="portal_02_info_initial"] .info-init-topics .topic {
         width: 100%;
         min-width: 0;
    }
     html[data-page="portal_02_info_initial"] .info-init-topics .topic__icon {
         width: 36px;
         height: 36px;
         font-size: 20px;
    }
}
 @media (max-width: 900px) {
     html[data-page="portal_02_info_initial"] .info-init-topics .topic-grid--stack {
         display: grid;
         grid-template-columns: repeat(2, 1fr);
         gap: var(--s3);
         margin-bottom: var(--s5);
    }
}
 @media (max-width: 600px) {
     html[data-page="portal_02_info_initial"] .info-init-topics .topic-grid--stack {
         grid-template-columns: 1fr;
    }
}
 .footer {
     background: var(--card);
     border-top: 1px solid var(--border);
     padding: 48px var(--container-px) 32px;
}
 .footer__top {
     max-width: var(--container);
     margin: 0 auto;
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
     padding-bottom: 28px;
     border-bottom: 1px solid var(--divider);
     gap: var(--s6);
     flex-wrap: wrap;
}
 .footer__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
}
 .footer__brand-main {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text-2);
}
 .footer__brand-sub {
     font-size: var(--fs-xs);
     color: var(--dim);
     margin-top: 3px;
}
 .footer__links {
     display: flex;
     gap: var(--s5);
}
 .footer__links a {
     font-size: var(--fs-xs);
     color: var(--muted);
     transition: color var(--d-base);
}
 .footer__links a:hover {
     color: var(--brand);
}
 .footer__copy {
     max-width: var(--container);
     margin: var(--s6) auto 0;
     font-size: var(--fs-xs);
     color: var(--dim);
     display: flex;
     justify-content: space-between;
     gap: var(--s4);
     flex-wrap: wrap;
}
 [data-reveal] {
     opacity: 0;
     transform: translateY(18px);
     transition: opacity 720ms var(--ease), transform 720ms var(--ease);
}
 [data-reveal].is-in {
     opacity: 1;
     transform: translateY(0);
}
 [data-reveal][data-delay="1"] {
     transition-delay: 80ms;
}
 [data-reveal][data-delay="2"] {
     transition-delay: 160ms;
}
 [data-reveal][data-delay="3"] {
     transition-delay: 240ms;
}
 @media (prefers-reduced-motion: reduce) {
     [data-reveal] {
         opacity: 1;
         transform: none;
         transition: none;
    }
}
 .nedcb-landing {
     padding: 2px 0 0;
     flex-shrink: 0;
}
 .nedcb-landing__note {
     font-size: var(--fs-sm);
     color: var(--muted);
     margin: 0 0 var(--s5);
     line-height: 1.55;
}
 .nedcb-landing__cats {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: var(--s3);
}
 @media (min-width: 640px) {
     .nedcb-landing__cats {
         grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}
 .nedcb-cat {
     display: flex;
     align-items: center;
     justify-content: center;
     text-align: center;
     min-height: 52px;
     padding: 12px 14px;
     border: 0;
     border-radius: var(--r-lg);
     font: inherit;
     font-size: 12px;
     font-weight: 800;
     color: #fff;
     letter-spacing: -0.02em;
     line-height: 1.35;
     cursor: pointer;
     background: linear-gradient(145deg, #2563eb, #1e3a8a);
     box-shadow: 0 4px 14px rgba(30, 58, 138, 0.25);
     transition: transform var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease), filter var(--d-base) var(--ease);
}
 .nedcb-cat:hover {
     transform: translateY(-1px);
     box-shadow: 0 6px 18px rgba(30, 58, 138, 0.32);
     filter: brightness(1.05);
}
 .nedcb-cat:focus-visible {
     outline: 2px solid var(--brand, #1a6bff);
     outline-offset: 2px;
}
 :root {
     --brand: #1a6bff;
     --brand-600: #2563eb;
     --brand-50: #eff6ff;
     --brand-100: #dbeafe;
     --brand-200: #bfdbfe;
     --accent-teal: #1a6bff;
     --accent-teal-600: #2563eb;
     --accent-teal-50: #eff6ff;
     --accent-teal-100: #dbeafe;
     --accent-teal-200: #bfdbfe;
     --bg: #f8fafc;
     --bg-alt: #f1f5f9;
     --card: #fff;
     --border: #e2e8f0;
     --border-strong: #cbd5e1;
     --divider: #f1f5f9;
     --text: #0f172a;
     --text-2: #334155;
     --muted: #64748b;
     --dim: #94a3b8;
     --faint: #cbd5e1;
     --focus: #3b82f6;
     --font: "SUIT", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
     --font-icon: "Material Symbols Outlined";
     --fs-h2: 26px;
     --fs-h4: 17px;
     --fs-body: 15px;
     --fs-sm: 13.5px;
     --fs-xs: 12px;
     --fs-2xs: 11px;
     --tracking-tight: -0.8px;
     --tracking-eyebrow: 2.5px;
     --s1: 4px;
     --s2: 8px;
     --s3: 12px;
     --s4: 16px;
     --s5: 20px;
     --s6: 24px;
     --s8: 32px;
     --s10: 40px;
     --s12: 48px;
     --s20: 80px;
     --r-xs: 4px;
     --r-sm: 8px;
     --r-md: 12px;
     --r-lg: 16px;
     --r-xl: 20px;
     --r-pill: 999px;
     --sh-1: 0 1px 2px rgba(15, 23, 42, 0.04);
     --sh-2: 0 4px 12px rgba(15, 23, 42, 0.06);
     --sh-glow: 0 0 24px rgba(26, 107, 255, 0.25);
     --ease: cubic-bezier(0.22, 1, 0.36, 1);
     --d-base: 240ms;
     --container: 1400px;
     --container-px: 48px;
     --gnb: 64px;
     --z-sticky: 100;
     --z-toast: 700;
     --accent: var(--brand);
     --accent-600: var(--brand-600);
     --accent-bg: var(--brand-50);
     --accent-border: var(--brand-200);
}
 *, *::before, *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
}
 html {
     -webkit-text-size-adjust: 100%;
}
 body {
     font-family: var(--font);
     font-size: var(--fs-body);
     line-height: 1.6;
     color: var(--text);
     background: linear-gradient(165deg, #eef2f7 0%, #f8fafc 38%, #f8fafc 100%);
     -webkit-font-smoothing: antialiased;
     min-height: 100vh;
     min-height: 100dvh;
     display: flex;
     flex-direction: column;
}
 button {
     font: inherit;
     color: inherit;
     background: none;
     border: none;
     cursor: pointer;
}
 a {
     color: inherit;
     text-decoration: none;
}
 :where(a, button, [tabindex]):focus-visible {
     outline: 2px solid var(--focus);
     outline-offset: 2px;
     border-radius: var(--r-xs);
}
 .skip {
     position: absolute;
     top: -100px;
     left: 16px;
     padding: 8px 16px;
     background: var(--brand);
     color: #fff;
     border-radius: var(--r-sm);
     z-index: var(--z-toast);
}
 .skip:focus {
     top: 16px;
}
 .icon {
     font-family: var(--font-icon);
     font-weight: normal;
     display: inline-block;
     line-height: 1;
     font-feature-settings: "liga";
     -webkit-font-smoothing: antialiased;
     font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
     user-select: none;
     vertical-align: middle;
}
 .container {
     max-width: var(--container);
     margin-inline: auto;
     padding-inline: var(--container-px);
     width: 100%;
     box-sizing: border-box;
}
 .u-stack-sm {
     display: flex;
     flex-direction: column;
     gap: 3px;
}
 @media (max-width: 600px) {
     :root {
         --container-px: 20px;
    }
}
 .btn {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: var(--s2);
     font-family: var(--font);
     font-weight: 600;
     line-height: 1;
     padding: 10px 18px;
     border-radius: var(--r-md);
     border: 1px solid transparent;
     cursor: pointer;
     white-space: nowrap;
     transition: all var(--d-base) var(--ease);
     text-decoration: none;
}
 .btn--sm {
     font-size: var(--fs-sm);
     padding: 7px 14px;
     border-radius: var(--r-sm);
}
 .btn--outline {
     color: var(--brand);
     background: var(--brand-50);
     border-color: var(--brand-200);
}
 .btn--outline:hover {
     background: var(--brand-100);
}
 .btn--ghost {
     color: var(--muted);
     background: transparent;
     font-weight: 500;
}
 .btn--ghost:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .btn--line {
     color: var(--text-2);
     background: var(--card);
     border-color: var(--border-strong);
}
 .btn--line:hover {
     border-color: var(--accent);
     color: var(--accent);
}
 .nav {
     position: sticky;
     top: 0;
     z-index: var(--z-sticky);
     height: var(--gnb);
     display: flex;
     align-items: center;
     gap: var(--s8);
     padding-inline: var(--container-px);
     background: rgba(255, 255, 255, 1);
     -webkit-backdrop-filter: blur(16px);
     backdrop-filter: blur(16px);
     border-bottom: 1px solid var(--border);
}
 .nav__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
     flex-shrink: 0;
}
 .nav__mark {
     width: 36px;
     height: 36px;
     border-radius: var(--r-sm);
     background: linear-gradient(135deg, var(--brand), #3b82f6);
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: 0 0 16px rgba(26, 107, 255, 0.25);
}
 .nav__title {
     font-size: var(--fs-body);
     font-weight: 700;
     letter-spacing: -0.3px;
     line-height: 1;
     color: var(--text);
}
 .nav__subtitle {
     font-size: var(--fs-2xs);
     margin-top: 3px;
     line-height: 1;
     color: var(--muted);
}
 .nav__menu {
     display: flex;
     align-items: center;
     gap: var(--s1);
     margin-left: var(--s4);
}
 .nav__menu a {
     font-size: var(--nav-menu-fs, calc(14px * 1.1));
     font-weight: 500;
     color: var(--muted);
     padding: 6px 14px;
     border-radius: var(--r-sm);
     transition: color var(--d-base), background var(--d-base);
}
 .nav__menu a:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .nav__menu a[aria-current="page"] {
     color: var(--accent);
     background: var(--accent-bg);
     font-weight: 600;
}
 .nav__actions {
     margin-left: auto;
     display: flex;
     align-items: center;
     gap: var(--s2);
}
 main {
     flex: 1;
     display: flex;
     flex-direction: column;
     width: 100%;
     min-width: 0;
     min-height: 0;
}
 .chat-head {
     padding: var(--s6) 0 var(--s4);
     background: var(--bg);
     border-bottom: 1px solid var(--border);
}
 .chat-head__row {
     display: flex;
     align-items: center;
     gap: var(--s4);
     flex-wrap: wrap;
     width: 100%;
}
 .chat-head__icon {
     width: 44px;
     height: 44px;
     border-radius: var(--r-md);
     background: var(--accent-bg);
     color: var(--accent);
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 24px;
}
 .chat-head__title {
     font-size: var(--fs-h2);
     font-weight: 800;
     color: var(--text);
     letter-spacing: var(--tracking-tight);
     line-height: 1.2;
}
 .chat-head__sub {
     font-size: var(--fs-sm);
     color: var(--muted);
     margin-top: 2px;
     line-height: 1.45;
     max-width: min(720px, 100%);
}
 .chat-head__fineprint {
     font-size: 12px;
     color: var(--muted);
     margin-top: 10px;
     line-height: 1.5;
     max-width: min(720px, 100%);
     padding: 10px 12px;
     border-radius: var(--r-md);
     background: var(--bg-alt);
     border: 1px solid var(--border);
}
 .chat-head__spacer {
     margin-left: auto;
     display: flex;
     gap: var(--s2);
     flex-shrink: 0;
}
 .chat-head__row > div:nth-child(2) {
     min-width: 0;
     flex: 1;
}
 html[data-page="portal_06_data"] .data-hero-stats {
     margin-bottom: var(--s6);
}
 html[data-page="portal_06_data"] .data-hero-stats .stat-strip {
     margin-top: 0;
     padding-inline: 0;
     max-width: none;
     width: 100%;
}
 html[data-page="portal_06_data"] main {
     display: block;
     flex: 0 0 auto;
     min-height: auto;
     overflow: visible;
     width: 100%;
}
 .chat-area {
     padding: var(--s6) 0;
     flex: 1;
     min-height: 0;
     display: flex;
     flex-direction: column;
}
 .chat-grid {
     display: grid;
     grid-template-columns: minmax(0, 1fr) 340px;
     gap: var(--s6);
     align-items: start;
     align-content: start;
     min-height: 0;
     flex: 1;
}
 @media (max-width: 980px) {
     .chat-grid {
         grid-template-columns: 1fr;
    }
}
 .chat-grid > .chat-wrap {
     align-self: stretch;
     min-height: 0;
}
 .chat-grid > .chat-aside-acc {
     align-self: start;
}
.chat-wrap {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--r-xs);
    box-shadow: var(--sh-2), 0 24px 48px rgba(15, 23, 42, 0.06);
    overflow: visible;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}
 .chat-scroll {
     padding: var(--s6);
     flex: 1;
     min-height: 360px;
     overflow-y: auto;
     display: flex;
     flex-direction: column;
     gap: var(--s6);
     scroll-behavior: smooth;
}
 .turn {
     display: flex;
     gap: var(--s3);
     max-width: 92%;
}
 .turn--user {
     margin-left: auto;
     flex-direction: row-reverse;
     max-width: 80%;
}
 @media (min-width: 768px) {
    .turn:not(.turn--user) {
        max-width: 50%;
    }
}
.avatar {
     width: 36px;
     height: 36px;
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     flex-shrink: 0;
     font-size: 18px;
}
 .avatar--ai {
     background: linear-gradient(135deg, var(--accent), var(--accent-600));
     color: #fff;
     box-shadow: var(--sh-glow);
}
 .avatar--user {
     background: var(--brand-50);
     color: var(--brand);
     border: 1px solid var(--brand-200);
}
 .turn__body {
     min-width: 0;
     flex: 1;
}
 .turn__meta {
     display: flex;
     align-items: center;
     gap: var(--s2);
     font-size: var(--fs-xs);
     color: var(--dim);
     margin-bottom: var(--s2);
}
 .turn--user .turn__meta {
     justify-content: flex-end;
}
 .turn--user > .avatar {
     display: none;
}
 .turn--user .turn__meta strong {
     display: none;
}
 .turn__meta strong {
     color: var(--text-2);
     font-weight: 700;
     font-size: var(--fs-xs);
}
 .turn__topic {
     font-size: var(--fs-xs);
     color: var(--accent-600);
     font-weight: 700;
     letter-spacing: 0.3px;
     text-transform: uppercase;
     margin-bottom: var(--s2);
     display: flex;
     align-items: center;
     gap: 6px;
}
 .turn__topic .icon {
     font-size: 14px;
}
 .bubble {
     padding: var(--s4) var(--s5);
     border-radius: var(--r-lg);
     font-size: var(--fs-sm);
     line-height: 1.75;
}
 .bubble--ai {
     background: var(--bg-alt);
     color: var(--text);
     border-top-left-radius: var(--r-xs);
}
 .bubble--user {
    background: linear-gradient(135deg, #3b82f6, #2563eb);
    color: #fff;
    border: 0;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-top-right-radius: var(--r-xs);
    display: inline-block;
    max-width: 100%;
    box-shadow: 0 4px 14px rgba(26, 107, 255, 0.2);
}
 .bubble p + p {
     margin-top: var(--s2);
}
 .bubble mark {
     display: inline;
     padding: 3px 11px;
     margin: 0 1px;
     border-radius: 999px;
     background: linear-gradient(180deg, #fffef7 0%, #fffbeb 100%);
     border: 1px solid rgba(180, 83, 9, 0.38);
     color: #0f172a;
     font-weight: 700;
     line-height: 1.45;
     box-decoration-break: clone;
     -webkit-box-decoration-break: clone;
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
}
 .bubble--user mark {
     background: rgba(255, 255, 255, 0.2);
     border-color: rgba(255, 255, 255, 0.48);
     color: #fff;
     box-shadow: none;
}
 .bubble strong {
     color: var(--text);
     font-weight: 700;
}
 .bubble ol {
     margin: var(--s3) 0 0 0;
     padding-left: 0;
     counter-reset: step;
     list-style: none;
     display: flex;
     flex-direction: column;
     gap: var(--s2);
}
 .bubble ol li {
     counter-increment: step;
     display: flex;
     gap: var(--s3);
     align-items: flex-start;
}
 .bubble ol li::before {
     content: counter(step);
     width: 22px;
     height: 22px;
     border-radius: 50%;
     background: var(--accent);
     color: #fff;
     font-size: var(--fs-xs);
     font-weight: 700;
     display: flex;
     align-items: center;
     justify-content: center;
     flex-shrink: 0;
}
 .bubble ol li span {
     color: var(--text-2);
}
 .bubble .kb-ul {
     margin: var(--s3) 0 0 0;
     padding: 0;
     list-style: none;
     display: flex;
     flex-direction: column;
     gap: var(--s2);
}
 .bubble .kb-ul li {
     position: relative;
     padding-left: 18px;
     color: var(--text-2);
}
 .bubble .kb-ul li::before {
     content: "";
     position: absolute;
     left: 4px;
     top: 10px;
     width: 6px;
     height: 6px;
     border-radius: 50%;
     background: var(--accent);
}
 .chips {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s2);
     margin-top: var(--s3);
}
 .chips--below {
     margin-top: var(--s3);
     padding-left: 2px;
}
 .chat-ref-accordion {
     margin-top: var(--s3);
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     background: var(--card);
     overflow: hidden;
     max-width: 100%;
}
 .chat-ref-accordion__sum {
     display: flex;
     align-items: center;
     gap: var(--s2);
     padding: 10px var(--s4);
     cursor: pointer;
     font-size: var(--fs-sm);
     font-weight: 700;
     list-style: none;
}
 .chat-ref-accordion__sum::-webkit-details-marker {
     display: none;
}
 .chat-ref-accordion__sum::marker {
     content: "";
}
 .chat-ref-accordion__sum-txt {
     flex: 1;
     text-decoration: underline;
     text-underline-offset: 3px;
     color: var(--accent-600);
}
 .chat-ref-accordion__cnt {
     font-weight: 800;
     color: var(--text);
     text-decoration: none;
}
 .chat-ref-accordion__sum-ico {
     font-size: 18px;
     color: var(--accent-600);
}
 .chat-ref-accordion__chev {
     margin-left: auto;
     font-size: 22px;
     color: var(--muted);
     transition: transform 0.22s var(--ease);
}
 .chat-ref-accordion[open] .chat-ref-accordion__chev {
     transform: rotate(180deg);
}
 .chat-ref-accordion__panel {
     padding: var(--s3) var(--s4) var(--s4);
     border-top: 1px solid var(--border);
     background: var(--bg-alt);
     display: flex;
     flex-direction: column;
     gap: var(--s2);
}
 .chat-ref-accordion__panel .ref-card:last-child {
     margin-bottom: 0;
}
 .chip {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     font-size: var(--fs-xs);
     color: var(--accent-600);
     background: var(--accent-bg);
     border: 1px solid var(--accent-border);
     padding: 6px 12px;
     border-radius: var(--r-pill);
     cursor: pointer;
     transition: all var(--d-base);
}
 .chip:hover {
     background: var(--accent);
     color: #fff;
     border-color: var(--accent);
}
 .chip .icon {
     font-size: 13px;
}
 .typing {
     display: inline-flex;
     gap: 6px;
     padding: var(--s4) var(--s5);
     background: var(--bg-alt);
     border-radius: var(--r-lg);
     border-top-left-radius: var(--r-xs);
     align-items: center;
     height: 44px;
}
 .typing span {
     width: 6px;
     height: 6px;
     background: var(--dim);
     border-radius: 50%;
     animation: dot 1s infinite ease-in-out;
}
 .typing span:nth-child(2) {
     animation-delay: 0.15s;
}
 .typing span:nth-child(3) {
     animation-delay: 0.3s;
}
 @keyframes dot {
     0%, 80%, 100% {
         transform: translateY(0);
         opacity: 0.5;
    }
     40% {
         transform: translateY(-6px);
         opacity: 1;
    }
}
 .compose {
     display: flex;
     flex-direction: column;
     align-items: stretch;
     gap: 0;
     padding: var(--s4) var(--s5);
     border-top: 1px solid var(--border);
     background: var(--bg);
     flex-shrink: 0;
}
 .compose__row {
     display: flex;
     gap: var(--s3);
     align-items: center;
     width: 100%;
}
 .compose__input {
     flex: 1;
     min-width: 0;
     display: flex;
     align-items: center;
     border: 1px solid var(--border-strong);
     border-radius: var(--r-md);
     background: var(--card);
     transition: all var(--d-base);
     overflow: hidden;
}
 .compose__input:focus-within {
     border-color: var(--accent);
     box-shadow: 0 0 0 3px rgba(26, 107, 255, 0.12);
}
 .compose__input .icon {
     padding: 0 var(--s3);
     color: var(--dim);
     font-size: 20px;
}
 .compose__input input {
     flex: 1;
     border: 0;
     outline: 0;
     background: transparent;
     padding: 12px 0;
     font: inherit;
     color: var(--text);
}
 .compose__input input::placeholder {
     color: var(--dim);
}
 .compose__send {
     flex-shrink: 0;
     width: 44px;
     height: 44px;
     border-radius: var(--r-md);
     background: linear-gradient(135deg, var(--accent), var(--accent-600));
     color: #fff;
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: var(--sh-glow);
     transition: transform var(--d-slow) var(--ease-transform), box-shadow var(--d-base) var(--ease);
}
 .compose__send:hover {
     transform: translateY(-1px);
}
 .compose__hint {
     font-size: var(--fs-xs);
     color: var(--dim);
     margin-top: var(--s3);
     display: flex;
     align-items: flex-start;
     gap: var(--s2);
     line-height: 1.55;
}
 .ref-panel {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-xl);
     box-shadow: var(--sh-1);
     overflow: hidden;
     display: flex;
     flex-direction: column;
     min-height: 0;
     max-height: calc(100vh - 120px);
     flex-shrink: 0;
}
 .ref-panel__head {
     padding: var(--s5);
     border-bottom: 1px solid var(--border);
     display: flex;
     align-items: center;
     gap: var(--s3);
     background: linear-gradient(135deg, var(--accent-bg), #fff);
}
 .ref-panel__head .icon {
     font-size: 22px;
     color: var(--accent-600);
}
 .ref-panel__title {
     font-size: var(--fs-h4);
     font-weight: 800;
     color: var(--text);
     letter-spacing: -0.3px;
}
 .ref-panel__sub {
     font-size: var(--fs-xs);
     color: var(--muted);
     margin-top: 2px;
}
 .ref-list {
     padding: var(--s4);
     overflow-y: auto;
     flex: 1;
     min-height: 0;
     display: flex;
     flex-direction: column;
     gap: var(--s3);
}
 .ref-card {
     padding: var(--s4);
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     background: var(--card);
     transition: all var(--d-base);
}
 .ref-card:hover {
     border-color: var(--accent);
     box-shadow: var(--sh-2);
     transform: translateY(-1px);
}
 .ref-card__code {
     font-size: var(--fs-2xs);
     font-weight: 700;
     color: var(--accent-600);
     letter-spacing: 0.4px;
     text-transform: uppercase;
     margin-bottom: 4px;
}
 .ref-card__title {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text);
     margin-bottom: 6px;
     line-height: 1.4;
}
 .ref-card__excerpt {
     font-size: var(--fs-xs);
     color: var(--muted);
     line-height: 1.65;
     display: -webkit-box;
     -webkit-line-clamp: 2;
     line-clamp: 2;
     -webkit-box-orient: vertical;
     overflow: hidden;
}
 .ref-card__link {
     margin-top: var(--s3);
     display: inline-flex;
     align-items: center;
     gap: 4px;
     font-size: var(--fs-xs);
     font-weight: 600;
     color: var(--accent-600);
}
 .ref-card__link .icon {
     font-size: 14px;
}
 .ref-empty {
     padding: var(--s8) var(--s4);
     text-align: center;
     color: var(--dim);
     font-size: var(--fs-sm);
}
 .ref-empty .icon {
     font-size: 36px;
     display: block;
     margin: 0 auto var(--s2);
     opacity: 0.5;
}
 .aside-col {
     display: flex;
     flex-direction: column;
     gap: var(--s6);
     position: sticky;
     top: calc(var(--gnb) + var(--s4));
     align-self: start;
}
 @media (max-width: 980px) {
     .aside-col {
         position: static;
         max-height: none;
    }
}
 .tip-card {
     background: linear-gradient(145deg, var(--accent-bg), #fff);
     border: 1px solid var(--accent-border);
     border-radius: var(--r-xl);
     padding: var(--s5);
     box-shadow: var(--sh-1);
     flex-shrink: 0;
}
 .tip-card__head {
     display: flex;
     align-items: center;
     gap: var(--s3);
     margin-bottom: var(--s3);
}
 .tip-card__head .icon {
     color: var(--accent-600);
     font-size: 22px;
}
 .tip-card__title {
     font-size: var(--fs-sm);
     font-weight: 800;
     color: var(--text);
}
 .tip-card__body {
     font-size: var(--fs-xs);
     color: var(--muted);
     line-height: 1.7;
}
 .link-card {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     padding: var(--s4);
     display: flex;
     flex-direction: column;
     gap: var(--s2);
}
 .link-card__label {
     font-size: var(--fs-2xs);
     font-weight: 700;
     color: var(--dim);
     letter-spacing: 0.4px;
     text-transform: uppercase;
}
 .link-card a {
     display: flex;
     align-items: center;
     justify-content: space-between;
     font-size: var(--fs-sm);
     font-weight: 600;
     color: var(--brand);
     padding: var(--s2) 0;
     border-bottom: 1px solid var(--divider);
}
 .link-card a:last-child {
     border-bottom: 0;
}
 .link-card a .icon {
     font-size: 16px;
     color: var(--dim);
}
 .link-card a:hover {
     color: var(--accent-600);
}
 .starters {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s2);
     margin-top: var(--s3);
}
 .starter {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     font-size: var(--fs-xs);
     color: var(--text-2);
     background: #fff;
     border: 1px dashed var(--border-strong);
     padding: 8px 14px;
     border-radius: var(--r-pill);
     cursor: pointer;
     transition: all var(--d-base);
}
 .starter:hover {
     border-color: var(--accent);
     color: var(--accent-600);
     background: var(--accent-bg);
}
 .footer {
     background: var(--card);
     border-top: 1px solid var(--border);
     padding: 32px var(--container-px) 24px;
}
 .footer__top {
     max-width: var(--container);
     margin: 0 auto;
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
     padding-bottom: 20px;
     border-bottom: 1px solid var(--divider);
     gap: var(--s6);
     flex-wrap: wrap;
}
 .footer__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
}
 .footer__brand-main {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text-2);
}
 .footer__brand-sub {
     font-size: var(--fs-xs);
     color: var(--dim);
     margin-top: 3px;
}
 .footer__links {
     display: flex;
     gap: var(--s5);
}
 .footer__links a {
     font-size: var(--fs-xs);
     color: var(--muted);
}
 .footer__links a:hover {
     color: var(--brand);
}
 .footer__copy {
     max-width: var(--container);
     margin: var(--s4) auto 0;
     font-size: var(--fs-xs);
     color: var(--dim);
     display: flex;
     justify-content: space-between;
     gap: var(--s4);
     flex-wrap: wrap;
}
 :root {
     --brand: #1a6bff;
     --brand-600: #2563eb;
     --brand-50: #eff6ff;
     --brand-100: #dbeafe;
     --brand-200: #bfdbfe;
     --accent-purple: #1a6bff;
     --accent-purple-600: #2563eb;
     --accent-purple-50: #eff6ff;
     --accent-purple-100: #dbeafe;
     --accent-purple-200: #bfdbfe;
     --accent-amber: #f59e0b;
     --bg: #f8fafc;
     --bg-alt: #f1f5f9;
     --card: #fff;
     --border: #e2e8f0;
     --border-strong: #cbd5e1;
     --divider: #f1f5f9;
     --text: #0f172a;
     --text-2: #334155;
     --muted: #64748b;
     --dim: #94a3b8;
     --faint: #cbd5e1;
     --focus: #3b82f6;
     --font: "SUIT", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
     --font-icon: "Material Symbols Outlined";
     --fs-h2: 26px;
     --fs-h3: 20px;
     --fs-h4: 17px;
     --fs-body: 15px;
     --fs-sm: 13.5px;
     --fs-xs: 12px;
     --fs-2xs: 11px;
     --tracking-tight: -0.8px;
     --tracking-eyebrow: 2.5px;
     --s1: 4px;
     --s2: 8px;
     --s3: 12px;
     --s4: 16px;
     --s5: 20px;
     --s6: 24px;
     --s8: 32px;
     --s10: 40px;
     --s12: 48px;
     --s20: 80px;
     --r-xs: 4px;
     --r-sm: 8px;
     --r-md: 12px;
     --r-lg: 16px;
     --r-xl: 20px;
     --r-pill: 999px;
     --sh-1: 0 1px 2px rgba(15, 23, 42, 0.04);
     --sh-2: 0 4px 12px rgba(15, 23, 42, 0.06);
     --sh-3: 0 12px 32px rgba(15, 23, 42, 0.08);
     --sh-glow: 0 0 24px rgba(26, 107, 255, 0.25);
     --ease: cubic-bezier(0.22, 1, 0.36, 1);
     --d-base: 240ms;
     --container: 1400px;
     --container-px: 48px;
     --gnb: 64px;
     --z-sticky: 100;
     --z-toast: 700;
     --accent: var(--brand);
     --accent-600: var(--brand-600);
     --accent-bg: var(--brand-50);
     --accent-border: var(--brand-200);
}
 *, *::before, *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
}
 html {
     scroll-behavior: smooth;
     -webkit-text-size-adjust: 100%;
}
 body {
     font-family: var(--font);
     font-size: var(--fs-body);
     line-height: 1.6;
     color: var(--text);
     background: var(--bg);
     -webkit-font-smoothing: antialiased;
}
 button {
     font: inherit;
     color: inherit;
     background: none;
     border: none;
     cursor: pointer;
}
 a {
     color: inherit;
     text-decoration: none;
}
 :where(a, button, [tabindex]):focus-visible {
     outline: 2px solid var(--focus);
     outline-offset: 2px;
     border-radius: var(--r-xs);
}
 .skip {
     position: absolute;
     top: -100px;
     left: 16px;
     padding: 8px 16px;
     background: var(--brand);
     color: #fff;
     border-radius: var(--r-sm);
     z-index: var(--z-toast);
}
 .skip:focus {
     top: 16px;
}
 .icon {
     font-family: var(--font-icon);
     font-weight: normal;
     display: inline-block;
     line-height: 1;
     font-feature-settings: "liga";
     -webkit-font-smoothing: antialiased;
     font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
     user-select: none;
     vertical-align: middle;
}
 .container {
     max-width: var(--container);
     margin-inline: auto;
     padding-inline: var(--container-px);
     width: 100%;
     box-sizing: border-box;
}
 .u-stack-sm {
     display: flex;
     flex-direction: column;
     gap: 3px;
}
 .u-grid-2 {
     display: grid;
     grid-template-columns: repeat(2, 1fr);
     gap: var(--s4);
}
 @media (max-width: 600px) {
     :root {
         --container-px: 20px;
    }
     .u-grid-2 {
         grid-template-columns: 1fr;
    }
}
 .eyebrow {
     font-size: var(--fs-2xs);
     font-weight: 700;
     letter-spacing: var(--tracking-eyebrow);
     color: var(--accent);
     text-transform: uppercase;
}
 .btn {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: var(--s2);
     font-family: var(--font);
     font-weight: 600;
     line-height: 1;
     padding: 10px 18px;
     border-radius: var(--r-md);
     border: 1px solid transparent;
     cursor: pointer;
     white-space: nowrap;
     transition: all var(--d-base) var(--ease);
     text-decoration: none;
}
 .btn--sm {
     font-size: var(--fs-sm);
     padding: 7px 14px;
     border-radius: var(--r-sm);
}
 .btn--primary {
     color: #fff;
     background: linear-gradient(135deg, var(--accent), var(--accent-600));
     box-shadow: var(--sh-glow);
}
 .btn--primary:hover {
     transform: translateY(-1px);
     box-shadow: 0 0 36px rgba(26, 107, 255, 0.4);
}
 .btn--outline {
     color: var(--brand);
     background: var(--brand-50);
     border-color: var(--brand-200);
}
 .btn--outline:hover {
     background: var(--brand-100);
}
 .btn--ghost {
     color: var(--muted);
     background: transparent;
     font-weight: 500;
}
 .btn--ghost:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .nav {
     position: sticky;
     top: 0;
     z-index: var(--z-sticky);
     height: var(--gnb);
     display: flex;
     align-items: center;
     gap: var(--s8);
     padding-inline: var(--container-px);
     background: rgba(255, 255, 255, 1);
     -webkit-backdrop-filter: blur(16px);
     backdrop-filter: blur(16px);
     border-bottom: 1px solid var(--border);
}
 .nav__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
     flex-shrink: 0;
}
 .nav__mark {
     width: 36px;
     height: 36px;
     border-radius: var(--r-sm);
     background: linear-gradient(135deg, var(--brand), #3b82f6);
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: 0 0 16px rgba(26, 107, 255, 0.25);
}
 .nav__title {
     font-size: var(--fs-body);
     font-weight: 700;
     letter-spacing: -0.3px;
     line-height: 1;
     color: var(--text);
}
 .nav__subtitle {
     font-size: var(--fs-2xs);
     margin-top: 3px;
     line-height: 1;
     color: var(--muted);
}
 .nav__menu {
     display: flex;
     align-items: center;
     gap: var(--s1);
     margin-left: var(--s4);
}
 .nav__menu a {
     font-size: var(--nav-menu-fs, calc(14px * 1.1));
     font-weight: 500;
     color: var(--muted);
     padding: 6px 14px;
     border-radius: var(--r-sm);
     transition: color var(--d-base), background var(--d-base);
}
 .nav__menu a:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .nav__menu a[aria-current="page"] {
     color: var(--accent);
     background: var(--accent-bg);
     font-weight: 600;
}
 .nav__actions {
     margin-left: auto;
     display: flex;
     align-items: center;
     gap: var(--s2);
}
 .page-hero {
     padding: var(--s6) 0 var(--s3);
     background: linear-gradient(180deg, var(--bg-alt) 0%, var(--bg) 100%);
     border-bottom: 1px solid var(--border);
}
 .page-hero__title {
     font-size: clamp(22px, 2.8vw, 28px);
     font-weight: 800;
     line-height: 1.25;
     letter-spacing: var(--tracking-tight);
     color: var(--text);
     margin: 0 0 var(--s2);
}
 .page-hero__desc {
     font-size: var(--fs-sm);
     color: var(--muted);
     line-height: 1.45;
     margin: 0;
     max-width: 100%;
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
}
 .cols {
     display: grid;
     grid-template-columns: 1.4fr 1fr;
     gap: var(--s6);
}
 @media (max-width: 960px) {
     .cols {
         grid-template-columns: 1fr;
    }
}
 .panel {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-xl);
     box-shadow: var(--sh-1);
     overflow: hidden;
}
 .panel__head {
     display: flex;
     align-items: center;
     gap: var(--s3);
     padding: var(--s5) var(--s6);
     border-bottom: 1px solid var(--divider);
     background: linear-gradient(180deg, var(--accent-bg) 0%, transparent 100%);
}
 .panel__tag {
     font-size: var(--fs-2xs);
     font-weight: 700;
     background: var(--accent);
     color: #fff;
     padding: 3px 10px;
     border-radius: var(--r-sm);
     letter-spacing: 0.5px;
}
 .panel__title {
     font-size: var(--fs-h4);
     font-weight: 700;
     color: var(--text);
}
 .panel__body {
     padding: var(--s6);
}
 .biz-tabs {
     display: flex;
     gap: var(--s2);
     margin-bottom: var(--s5);
}
 .biz-tab {
     flex: 1;
     padding: var(--s3) var(--s4);
     background: var(--bg);
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     font-weight: 600;
     font-size: var(--fs-sm);
     color: var(--muted);
     transition: all var(--d-base);
     display: flex;
     align-items: center;
     justify-content: center;
     gap: var(--s2);
}
 .biz-tab:hover {
     color: var(--text);
     border-color: var(--border-strong);
}
 .biz-tab.is-active {
     color: var(--accent);
     background: var(--accent-bg);
     border-color: var(--accent);
}
 @media (max-width: 640px) {
     .biz-tabs {
         flex-direction: column;
         align-items: stretch;
         gap: var(--s3);
    }
     .biz-tab {
         flex: 1 1 auto;
         width: 100%;
         min-width: 0;
         box-sizing: border-box;
         justify-content: flex-start;
    }
     .cert-grid {
         grid-template-columns: 1fr;
    }
}
 .chat-preview {
     background: var(--bg);
     border-radius: var(--r-md);
     padding: var(--s5);
     min-height: 240px;
     display: flex;
     flex-direction: column;
     gap: var(--s4);
}
 .preview-turn {
     display: flex;
     gap: var(--s3);
     align-items: flex-start;
}
 .preview-turn__body {
     min-width: 0;
     flex: 1;
}
 .avatar {
     width: 32px;
     height: 32px;
     border-radius: 50%;
     background: linear-gradient(135deg, var(--accent), var(--accent-600));
     color: #fff;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 16px;
     flex-shrink: 0;
     box-shadow: var(--sh-glow);
}
 .bubble {
     background: var(--card);
     /* border: 1px solid var(--border); */
     border-radius: var(--r-md);
     padding: var(--s3) var(--s4);
     font-size: var(--fs-sm);
     color: var(--text-2);
     line-height: 1.75;
}
 .bubble strong {
     color: var(--text);
     font-weight: 700;
}
 .choices {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s2);
     margin-top: var(--s3);
}
 .choice-chip {
     padding: 7px 14px;
     background: var(--card);
     border: 1px solid var(--border-strong);
     border-radius: var(--r-pill);
     font-size: var(--fs-xs);
     font-weight: 500;
     color: var(--text-2);
     transition: all var(--d-base);
}
 .choice-chip:hover {
     border-color: var(--accent);
     color: var(--accent);
     background: var(--accent-bg);
}
 .chat-preview > .compose {
     margin-top: var(--s4);
     display: flex;
     flex-direction: column;
     align-items: stretch;
     gap: 0;
     padding: 0;
     border-top: 0;
     background: transparent;
}
 .chat-preview .compose .compose__row {
     display: flex;
     flex-direction: row;
     gap: var(--s3);
     align-items: center;
     width: 100%;
}
 .chat-preview .compose__input {
     flex: 1;
     min-width: 0;
}
 .compose__input:focus-within {
     border-color: var(--accent);
     background: #fff;
     box-shadow: 0 0 0 3px rgba(26, 107, 255, 0.12);
}
 .compose__input .icon {
     padding: 0 var(--s3);
     color: var(--dim);
     font-size: 20px;
}
 .compose__input input {
     flex: 1;
     border: 0;
     outline: 0;
     background: transparent;
     padding: 12px 0;
     font: inherit;
     color: var(--text);
}
 .compose__input input::placeholder {
     color: var(--dim);
}
 .compose__send {
     width: 44px;
     height: 44px;
     border-radius: var(--r-md);
     background: linear-gradient(135deg, var(--accent), var(--accent-600));
     color: #fff;
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: var(--sh-glow);
     transition: transform var(--d-slow) var(--ease-transform), box-shadow var(--d-base) var(--ease);
}
 .compose__send:hover {
     transform: translateY(-1px);
}
 .cert-grid {
     display: grid;
     grid-template-columns: repeat(2, 1fr);
     gap: var(--s3);
}
 .cert {
     display: flex;
     flex-direction: column;
     padding: var(--s5);
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     cursor: pointer;
     perspective: 880px;
     transition: all var(--d-base) var(--ease);
     text-align: left;
     width: 100%;
}
 .cert:hover {
     border-color: var(--accent);
     transform: translateY(-1px);
     box-shadow: var(--sh-2);
}
 .cert__icon {
     width: 40px;
     height: 40px;
     border-radius: var(--r-sm);
     background: var(--accent-bg);
     color: var(--accent);
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 22px;
     margin-bottom: var(--s3);
     transform: translateZ(0) rotateY(0deg);
     transform-style: preserve-3d;
     backface-visibility: hidden;
     transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1), background var(--d-base) var(--ease), color var(--d-base) var(--ease);
}
 .cert__title {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text);
     margin-bottom: var(--s1);
     line-height: 1.4;
}
 .cert__sub {
     font-size: var(--fs-xs);
     color: var(--muted);
     line-height: 1.6;
}
 .cert__cta {
     margin-top: var(--s3);
     font-size: var(--fs-xs);
     font-weight: 700;
     color: var(--accent);
     display: flex;
     align-items: center;
     gap: 4px;
}
 .cert__cta .icon {
     transition: transform var(--d-slow) var(--ease-transform);
}
 .cert:hover .cert__cta .icon {
     transform: translateX(2px);
}
 .notice {
     display: flex;
     align-items: flex-start;
     gap: var(--s3);
     padding: var(--s4);
     background: var(--accent-bg);
     border: 1px solid var(--accent-border);
     border-radius: var(--r-md);
     margin-bottom: var(--s5);
     font-size: var(--fs-xs);
     color: var(--text-2);
     line-height: 1.75;
}
 .notice .icon {
     color: var(--accent);
     font-size: 18px;
     flex-shrink: 0;
     margin-top: 1px;
}
 .notice strong {
     color: var(--text);
     font-weight: 700;
}
 .footer {
     background: var(--card);
     border-top: 1px solid var(--border);
     padding: 48px var(--container-px) 32px;
}
 .footer__top {
     max-width: var(--container);
     margin: 0 auto;
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
     padding-bottom: 28px;
     border-bottom: 1px solid var(--divider);
     gap: var(--s6);
     flex-wrap: wrap;
}
 .footer__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
}
 .footer__brand-main {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text-2);
}
 .footer__brand-sub {
     font-size: var(--fs-xs);
     color: var(--dim);
     margin-top: 3px;
}
 .footer__links {
     display: flex;
     gap: var(--s5);
}
 .footer__links a {
     font-size: var(--fs-xs);
     color: var(--muted);
}
 .footer__links a:hover {
     color: var(--brand);
}
 .footer__copy {
     max-width: var(--container);
     margin: var(--s6) auto 0;
     font-size: var(--fs-xs);
     color: var(--dim);
     display: flex;
     justify-content: space-between;
     gap: var(--s4);
     flex-wrap: wrap;
}
 [data-reveal] {
     opacity: 0;
     transform: translateY(18px);
     transition: opacity 720ms var(--ease), transform 720ms var(--ease);
}
 [data-reveal].is-in {
     opacity: 1;
     transform: translateY(0);
}
 [data-reveal][data-delay="1"] {
     transition-delay: 80ms;
}
 @media (prefers-reduced-motion: reduce) {
     [data-reveal] {
         opacity: 1;
         transform: none;
         transition: none;
    }
}
 :root {
     --brand: #1a6bff;
     --brand-600: #2563eb;
     --brand-50: #eff6ff;
     --brand-100: #dbeafe;
     --brand-200: #bfdbfe;
     --accent-purple: #1a6bff;
     --accent-purple-600: #2563eb;
     --accent-purple-50: #eff6ff;
     --accent-purple-100: #dbeafe;
     --accent-purple-200: #bfdbfe;
     --bg: #f8fafc;
     --bg-alt: #f1f5f9;
     --card: #fff;
     --border: #e2e8f0;
     --border-strong: #cbd5e1;
     --divider: #f1f5f9;
     --text: #0f172a;
     --text-2: #334155;
     --muted: #64748b;
     --dim: #94a3b8;
     --faint: #cbd5e1;
     --focus: #3b82f6;
     --font: "SUIT", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
     --font-icon: "Material Symbols Outlined";
     --fs-h2: 26px;
     --fs-h4: 17px;
     --fs-body: 15px;
     --fs-sm: 13.5px;
     --fs-xs: 12px;
     --fs-2xs: 11px;
     --tracking-tight: -0.8px;
     --s1: 4px;
     --s2: 8px;
     --s3: 12px;
     --s4: 16px;
     --s5: 20px;
     --s6: 24px;
     --s8: 32px;
     --s10: 40px;
     --s12: 48px;
     --r-xs: 4px;
     --r-sm: 8px;
     --r-md: 12px;
     --r-lg: 16px;
     --r-xl: 20px;
     --r-pill: 999px;
     --sh-1: 0 1px 2px rgba(15, 23, 42, 0.04);
     --sh-2: 0 4px 12px rgba(15, 23, 42, 0.06);
     --sh-glow: 0 0 24px rgba(26, 107, 255, 0.28);
     --ease: cubic-bezier(0.22, 1, 0.36, 1);
     --d-base: 240ms;
     --container: 1400px;
     --container-px: 48px;
     --gnb: 64px;
     --z-sticky: 100;
     --z-toast: 700;
     --accent: var(--brand);
     --accent-600: var(--brand-600);
     --accent-bg: var(--brand-50);
     --accent-border: var(--brand-200);
}
 *, *::before, *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
}
 html {
     -webkit-text-size-adjust: 100%;
}
 body {
     font-family: var(--font);
     font-size: var(--fs-body);
     line-height: 1.6;
     color: var(--text);
     background: linear-gradient(165deg, #eef2f7 0%, #f8fafc 42%, #f8fafc 100%);
     -webkit-font-smoothing: antialiased;
     min-height: 100vh;
     min-height: 100dvh;
     display: flex;
     flex-direction: column;
}
 button {
     font: inherit;
     color: inherit;
     background: none;
     border: none;
     cursor: pointer;
}
 a {
     color: inherit;
     text-decoration: none;
}
 :where(a, button, [tabindex]):focus-visible {
     outline: 2px solid var(--focus);
     outline-offset: 2px;
     border-radius: var(--r-xs);
}
 .skip {
     position: absolute;
     top: -100px;
     left: 16px;
     padding: 8px 16px;
     background: var(--brand);
     color: #fff;
     border-radius: var(--r-sm);
     z-index: var(--z-toast);
}
 .skip:focus {
     top: 16px;
}
 .icon {
     font-family: var(--font-icon);
     font-weight: normal;
     display: inline-block;
     line-height: 1;
     font-feature-settings: "liga";
     -webkit-font-smoothing: antialiased;
     font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
     user-select: none;
     vertical-align: middle;
}
 .container {
     max-width: var(--container);
     margin-inline: auto;
     padding-inline: var(--container-px);
     width: 100%;
     box-sizing: border-box;
}
 .u-stack-sm {
     display: flex;
     flex-direction: column;
     gap: 3px;
}
 @media (max-width: 600px) {
     :root {
         --container-px: 20px;
    }
}
 .btn {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: var(--s2);
     font-family: var(--font);
     font-weight: 600;
     line-height: 1;
     padding: 10px 18px;
     border-radius: var(--r-md);
     border: 1px solid transparent;
     cursor: pointer;
     white-space: nowrap;
     transition: all var(--d-base) var(--ease);
     text-decoration: none;
}
 .btn--sm {
     font-size: var(--fs-sm);
     padding: 7px 14px;
     border-radius: var(--r-sm);
}
 .btn--outline {
     color: var(--brand);
     background: var(--brand-50);
     border-color: var(--brand-200);
}
 .btn--outline:hover {
     background: var(--brand-100);
}
 .btn--ghost {
     color: var(--muted);
     background: transparent;
     font-weight: 500;
}
 .btn--ghost:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .btn--line {
     color: var(--text-2);
     background: var(--card);
     border-color: var(--border-strong);
}
 .btn--line:hover {
     border-color: var(--accent);
     color: var(--accent);
}
 .nav {
     position: sticky;
     top: 0;
     z-index: var(--z-sticky);
     height: var(--gnb);
     display: flex;
     align-items: center;
     gap: var(--s8);
     padding-inline: var(--container-px);
     background: rgba(255, 255, 255, 1);
     -webkit-backdrop-filter: blur(16px);
     backdrop-filter: blur(16px);
     border-bottom: 1px solid var(--border);
}
 .nav__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
     flex-shrink: 0;
}
 .nav__mark {
     width: 36px;
     height: 36px;
     border-radius: var(--r-sm);
     background: linear-gradient(135deg, var(--brand), #3b82f6);
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: 0 0 16px rgba(26, 107, 255, 0.25);
}
 .nav__title {
     font-size: var(--fs-body);
     font-weight: 700;
     letter-spacing: -0.3px;
     line-height: 1;
     color: var(--text);
}
 .nav__subtitle {
     font-size: var(--fs-2xs);
     margin-top: 3px;
     line-height: 1;
     color: var(--muted);
}
 .nav__menu {
     display: flex;
     align-items: center;
     gap: var(--s1);
     margin-left: var(--s4);
}
 .nav__menu a {
     font-size: var(--nav-menu-fs, calc(14px * 1.1));
     font-weight: 500;
     color: var(--muted);
     padding: 6px 14px;
     border-radius: var(--r-sm);
     transition: color var(--d-base), background var(--d-base);
}
 .nav__menu a:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .nav__menu a[aria-current="page"] {
     color: var(--accent);
     background: var(--accent-bg);
     font-weight: 600;
}
 .nav__actions {
     margin-left: auto;
     display: flex;
     align-items: center;
     gap: var(--s2);
}
 main {
     flex: 1;
     display: flex;
     flex-direction: column;
     width: 100%;
     min-width: 0;
     min-height: 0;
}
 .chat-head {
     padding: var(--s1) 0 var(--s10);
     background: var(--bg);
     border-bottom: 1px solid var(--border);
}
 .chat-head__row {
     display: flex;
     align-items: center;
     gap: var(--s4);
     flex-wrap: wrap;
     width: 100%;
}
 .chat-head__icon {
     width: 44px;
     height: 44px;
     border-radius: var(--r-md);
     background: var(--accent-bg);
     color: var(--accent);
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 24px;
}
 .chat-head__title {
     font-size: var(--fs-h2);
     font-weight: 800;
     color: var(--text);
     letter-spacing: var(--tracking-tight);
     line-height: 1.2;
}
 .chat-head__sub {
     font-size: var(--fs-sm);
     color: var(--muted);
     margin-top: 2px;
     line-height: 1.45;
     max-width: min(720px, 100%);
}
 .chat-head__fineprint {
     font-size: 12px;
     color: var(--muted);
     margin-top: 10px;
     line-height: 1.5;
     max-width: min(720px, 100%);
     padding: 10px 12px;
     border-radius: var(--r-md);
     background: var(--bg-alt);
     border: 1px solid var(--border);
}
 .chat-head__spacer {
     margin-left: auto;
     display: flex;
     gap: var(--s2);
     flex-shrink: 0;
}
 .chat-head__row > div:nth-child(2) {
     min-width: 0;
     flex: 1;
}
 .chat-area {
     padding: var(--s6) 0;
     flex: 1;
     min-height: 0;
     display: flex;
     flex-direction: column;
}
 .chat-grid {
     display: grid;
     grid-template-columns: minmax(0, 1fr) 340px;
     gap: var(--s6);
     align-items: start;
     align-content: start;
     min-height: 0;
     flex: 1;
}
 @media (max-width: 980px) {
     .chat-grid {
         grid-template-columns: 1fr;
    }
}
 .chat-grid > .chat-wrap {
     align-self: stretch;
     min-height: 0;
}
 .chat-grid > .chat-aside-acc {
     align-self: start;
}
.chat-wrap {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--r-xs);
    box-shadow: var(--sh-2), 0 24px 48px rgba(15, 23, 42, 0.06);
    overflow: visible;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}
 .chat-scroll {
     padding: var(--s6);
     flex: 1;
     min-height: 360px;
     overflow-y: auto;
     display: flex;
     flex-direction: column;
     gap: var(--s6);
     scroll-behavior: smooth;
}
 .turn {
     display: flex;
     gap: var(--s3);
     max-width: 92%;
}
 .turn--user {
     margin-left: auto;
     flex-direction: row-reverse;
     max-width: 80%;
}
 .avatar {
     width: 36px;
     height: 36px;
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     flex-shrink: 0;
     font-size: 18px;
}
 .avatar--ai {
     background: linear-gradient(135deg, var(--accent), var(--accent-600));
     color: #fff;
     box-shadow: var(--sh-glow);
}
 .avatar--user {
     background: var(--brand-50);
     color: var(--brand);
     border: 1px solid var(--brand-200);
}
 .turn__body {
     min-width: 0;
     flex: 1;
}
 .turn__meta {
     display: flex;
     align-items: center;
     gap: var(--s2);
     font-size: var(--fs-xs);
     color: var(--dim);
     margin-bottom: var(--s2);
}
 .turn--user .turn__meta {
     justify-content: flex-end;
}
 .turn--user > .avatar {
     display: none;
}
 .turn--user .turn__meta strong {
     display: none;
}
 .turn__meta strong {
     color: var(--text-2);
     font-weight: 700;
     font-size: var(--fs-xs);
}
 .turn__topic {
     font-size: var(--fs-xs);
     color: var(--accent-600);
     font-weight: 700;
     letter-spacing: 0.3px;
     text-transform: uppercase;
     margin-bottom: var(--s2);
     display: flex;
     align-items: center;
     gap: 6px;
}
 .turn__topic .icon {
     font-size: 14px;
}
 .bubble {
     padding: var(--s4) var(--s5);
     border-radius: var(--r-lg);
     font-size: var(--fs-sm);
     line-height: 1.75;
}
 .bubble--ai {
    background: linear-gradient(180deg, var(--accent-purple-50), #f8fafc);
    border: 1px solid var(--accent-purple-200);
    color: var(--text);
    border-top-left-radius: var(--r-xs);
    padding: var(--s4) var(--s5);
    border-radius: var(--r-lg);
    font-size: var(--fs-sm);
    line-height: 1.75;
}
 .bubble--user {
     background: linear-gradient(135deg, var(--brand), var(--brand-600));
     color: #fff;
     border-top-right-radius: var(--r-xs);
     display: inline-block;
     max-width: 100%;
}
 .bubble p + p {
     margin-top: var(--s2);
}
 .bubble mark {
     display: inline;
     padding: 3px 11px;
     margin: 0 1px;
     border-radius: 999px;
     background: linear-gradient(180deg, #fffef7 0%, #fffbeb 100%);
     border: 1px solid rgba(180, 83, 9, 0.38);
     color: #0f172a;
     font-weight: 700;
     line-height: 1.45;
     box-decoration-break: clone;
     -webkit-box-decoration-break: clone;
     box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
}
 .bubble--user mark {
     background: rgba(255, 255, 255, 0.2);
     border-color: rgba(255, 255, 255, 0.48);
     color: #fff;
     box-shadow: none;
}
 .bubble strong {
     color: var(--text);
     font-weight: 700;
}
 .bubble ol {
     margin: var(--s3) 0 0 0;
     padding-left: 0;
     counter-reset: step;
     list-style: none;
     display: flex;
     flex-direction: column;
     gap: var(--s2);
}
 .bubble ol li {
     counter-increment: step;
     display: flex;
     gap: var(--s3);
     align-items: flex-start;
}
 .bubble ol li::before {
     content: counter(step);
     width: 22px;
     height: 22px;
     border-radius: 50%;
     background: var(--accent);
     color: #fff;
     font-size: var(--fs-xs);
     font-weight: 700;
     display: flex;
     align-items: center;
     justify-content: center;
     flex-shrink: 0;
}
 .bubble ol li span {
     color: var(--text-2);
}
 .bubble .kb-ul {
     margin: var(--s3) 0 0 0;
     padding: 0;
     list-style: none;
     display: flex;
     flex-direction: column;
     gap: var(--s2);
}
 .bubble .kb-ul li {
     position: relative;
     padding-left: 18px;
     color: var(--text-2);
}
 .bubble .kb-ul li::before {
     content: "";
     position: absolute;
     left: 4px;
     top: 10px;
     width: 6px;
     height: 6px;
     border-radius: 50%;
     background: var(--accent);
}
 .chips {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s2);
     margin-top: var(--s3);
}
 .chips--below {
     margin-top: var(--s3);
     padding-left: 2px;
}
 .chat-ref-accordion {
     margin-top: var(--s3);
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     background: var(--card);
     overflow: hidden;
     max-width: 100%;
}
 .chat-ref-accordion__sum {
     display: flex;
     align-items: center;
     gap: var(--s2);
     padding: 10px var(--s4);
     cursor: pointer;
     font-size: var(--fs-sm);
     font-weight: 700;
     list-style: none;
}
 .chat-ref-accordion__sum::-webkit-details-marker {
     display: none;
}
 .chat-ref-accordion__sum::marker {
     content: "";
}
 .chat-ref-accordion__sum-txt {
     flex: 1;
     text-decoration: underline;
     text-underline-offset: 3px;
     color: var(--accent-600);
}
 .chat-ref-accordion__cnt {
     font-weight: 800;
     color: var(--text);
     text-decoration: none;
}
 .chat-ref-accordion__sum-ico {
     font-size: 18px;
     color: var(--accent-600);
}
 .chat-ref-accordion__chev {
     margin-left: auto;
     font-size: 22px;
     color: var(--muted);
     transition: transform 0.22s var(--ease);
}
 .chat-ref-accordion[open] .chat-ref-accordion__chev {
     transform: rotate(180deg);
}
 .chat-ref-accordion__panel {
     padding: var(--s3) var(--s4) var(--s4);
     border-top: 1px solid var(--border);
     background: var(--bg-alt);
     display: flex;
     flex-direction: column;
     gap: var(--s2);
}
 .chat-ref-accordion__panel .ref-card:last-child {
     margin-bottom: 0;
}
 .chip {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     font-size: var(--fs-xs);
     color: var(--accent-600);
     background: var(--accent-bg);
     border: 1px solid var(--accent-border);
     padding: 6px 12px;
     border-radius: var(--r-pill);
     cursor: pointer;
     transition: all var(--d-base);
}
 .chip:hover {
     background: var(--accent);
     color: #fff;
     border-color: var(--accent);
}
 .chip .icon {
     font-size: 13px;
}
 .typing {
     display: inline-flex;
     gap: 6px;
     padding: var(--s4) var(--s5);
     background: var(--bg-alt);
     border-radius: var(--r-lg);
     border-top-left-radius: var(--r-xs);
     align-items: center;
     height: 44px;
}
 .typing span {
     width: 6px;
     height: 6px;
     background: var(--dim);
     border-radius: 50%;
     animation: dot 1s infinite ease-in-out;
}
 .typing span:nth-child(2) {
     animation-delay: 0.15s;
}
 .typing span:nth-child(3) {
     animation-delay: 0.3s;
}
 @keyframes dot {
     0%, 80%, 100% {
         transform: translateY(0);
         opacity: 0.5;
    }
     40% {
         transform: translateY(-6px);
         opacity: 1;
    }
}
 .compose {
     display: flex;
     flex-direction: column;
     align-items: stretch;
     gap: 0;
     padding: var(--s4) var(--s5);
     border-top: 1px solid var(--border);
     background: var(--bg);
     flex-shrink: 0;
}
 .compose__row {
     display: flex;
     gap: var(--s3);
     align-items: center;
     width: 100%;
}
 .compose__input {
     flex: 1;
     min-width: 0;
     display: flex;
     align-items: center;
     border: 1px solid var(--border-strong);
     border-radius: var(--r-md);
     background: var(--card);
     transition: all var(--d-base);
     overflow: hidden;
}
 .compose__input:focus-within {
     border-color: var(--accent);
     box-shadow: 0 0 0 3px rgba(26, 107, 255, 0.14);
}
 .compose__input .icon {
     padding: 0 var(--s3);
     color: var(--dim);
     font-size: 20px;
}
 .compose__input input {
     flex: 1;
     border: 0;
     outline: 0;
     background: transparent;
     padding: 12px 0;
     font: inherit;
     color: var(--text);
}
 .compose__input input::placeholder {
     color: var(--dim);
}
 .compose__send {
     flex-shrink: 0;
     width: 44px;
     height: 44px;
     border-radius: var(--r-md);
     background: linear-gradient(135deg, var(--accent), var(--accent-600));
     color: #fff;
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: var(--sh-glow);
     transition: transform var(--d-slow) var(--ease-transform), box-shadow var(--d-base) var(--ease);
}
 .compose__send:hover {
     transform: translateY(-1px);
}
 .compose__hint {
     font-size: var(--fs-xs);
     color: var(--dim);
     margin-top: var(--s3);
     display: flex;
     align-items: flex-start;
     gap: var(--s2);
     line-height: 1.55;
}
 .ref-panel {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-xl);
     box-shadow: var(--sh-1);
     overflow: hidden;
     display: flex;
     flex-direction: column;
     min-height: 0;
     max-height: calc(100vh - 120px);
     flex-shrink: 0;
}
 .ref-panel__head {
     padding: var(--s5);
     border-bottom: 1px solid var(--border);
     display: flex;
     align-items: center;
     gap: var(--s3);
     background: linear-gradient(135deg, var(--accent-bg), #fff);
}
 .ref-panel__head .icon {
     font-size: 22px;
     color: var(--accent-600);
}
 .ref-panel__title {
     font-size: var(--fs-h4);
     font-weight: 800;
     color: var(--text);
     letter-spacing: -0.3px;
}
 .ref-panel__sub {
     font-size: var(--fs-xs);
     color: var(--muted);
     margin-top: 2px;
}
 .ref-list {
     padding: var(--s4);
     overflow-y: auto;
     flex: 1;
     min-height: 0;
     display: flex;
     flex-direction: column;
     gap: var(--s3);
}
 .ref-card {
     padding: var(--s4);
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     background: var(--card);
     transition: all var(--d-base);
}
 .ref-card:hover {
     border-color: var(--accent);
     box-shadow: var(--sh-2);
     transform: translateY(-1px);
}
 .ref-card__code {
     font-size: var(--fs-2xs);
     font-weight: 700;
     color: var(--accent-600);
     letter-spacing: 0.4px;
     text-transform: uppercase;
     margin-bottom: 4px;
}
 .ref-card__title {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text);
     margin-bottom: 6px;
     line-height: 1.4;
}
 .ref-card__excerpt {
     font-size: var(--fs-xs);
     color: var(--muted);
     line-height: 1.65;
     display: -webkit-box;
     -webkit-line-clamp: 2;
     line-clamp: 2;
     -webkit-box-orient: vertical;
     overflow: hidden;
}
 .ref-card__link {
     margin-top: var(--s3);
     display: inline-flex;
     align-items: center;
     gap: 4px;
     font-size: var(--fs-xs);
     font-weight: 600;
     color: var(--accent-600);
}
 .ref-card__link .icon {
     font-size: 14px;
}
 .ref-empty {
     padding: var(--s8) var(--s4);
     text-align: center;
     color: var(--dim);
     font-size: var(--fs-sm);
}
 .ref-empty .icon {
     font-size: 36px;
     display: block;
     margin: 0 auto var(--s2);
     opacity: 0.5;
}
 .aside-col {
     display: flex;
     flex-direction: column;
     gap: var(--s6);
     position: sticky;
     top: calc(var(--gnb) + var(--s4));
     align-self: start;
}
 @media (max-width: 980px) {
     .aside-col {
         position: static;
         max-height: none;
    }
}
 .tip-card {
     background: linear-gradient(145deg, var(--accent-bg), #fff);
     border: 1px solid var(--accent-border);
     border-radius: var(--r-xl);
     padding: var(--s5);
     box-shadow: var(--sh-1);
     flex-shrink: 0;
}
 .tip-card__head {
     display: flex;
     align-items: center;
     gap: var(--s3);
     margin-bottom: var(--s3);
}
 .tip-card__head .icon {
     color: var(--accent-600);
     font-size: 22px;
}
 .tip-card__title {
     font-size: var(--fs-sm);
     font-weight: 800;
     color: var(--text);
}
 .tip-card__body {
     font-size: var(--fs-xs);
     color: var(--muted);
     line-height: 1.7;
}
 .link-card {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     padding: var(--s4);
     display: flex;
     flex-direction: column;
     gap: var(--s2);
}
 .link-card__label {
     font-size: var(--fs-2xs);
     font-weight: 700;
     color: var(--dim);
     letter-spacing: 0.4px;
     text-transform: uppercase;
}
 .link-card a {
     display: flex;
     align-items: center;
     justify-content: space-between;
     font-size: var(--fs-sm);
     font-weight: 600;
     color: var(--brand);
     padding: var(--s2) 0;
     border-bottom: 1px solid var(--divider);
}
 .link-card a:last-child {
     border-bottom: 0;
}
 .link-card a .icon {
     font-size: 16px;
     color: var(--dim);
}
 .link-card a:hover {
     color: var(--accent-600);
}
 .starters {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s2);
     margin-top: var(--s3);
}
 .starter {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     font-size: var(--fs-xs);
     color: var(--text-2);
     background: #fff;
     border: 1px dashed var(--border-strong);
     padding: 8px 14px;
     border-radius: var(--r-pill);
     cursor: pointer;
     transition: all var(--d-base);
}
 .starter:hover {
     border-color: var(--accent);
     color: var(--accent-600);
     background: var(--accent-bg);
}
 .footer {
     background: var(--card);
     border-top: 1px solid var(--border);
     padding: 32px var(--container-px) 24px;
}
 .footer__top {
     max-width: var(--container);
     margin: 0 auto;
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
     padding-bottom: 20px;
     border-bottom: 1px solid var(--divider);
     gap: var(--s6);
     flex-wrap: wrap;
}
 .footer__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
}
 .footer__brand-main {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text-2);
}
 .footer__brand-sub {
     font-size: var(--fs-xs);
     color: var(--dim);
     margin-top: 3px;
}
 .footer__links {
     display: flex;
     gap: var(--s5);
}
 .footer__links a {
     font-size: var(--fs-xs);
     color: var(--muted);
}
 .footer__links a:hover {
     color: var(--brand);
}
 .footer__copy {
     max-width: var(--container);
     margin: var(--s4) auto 0;
     font-size: var(--fs-xs);
     color: var(--dim);
     display: flex;
     justify-content: space-between;
     gap: var(--s4);
     flex-wrap: wrap;
}
 html[data-page="portal_05_civil_chat"] .avatar--ai {
     background: linear-gradient(145deg, #2563eb, #1d4ed8);
     color: #fff;
     border: 1px solid rgba(255, 255, 255, 0.25);
     box-shadow: 0 4px 16px rgba(26, 107, 255, 0.35);
}
 html[data-page="portal_05_civil_chat"] .bubble--ai {
     background: linear-gradient(180deg, var(--accent-purple-50), #f8fafc);
     border: 1px solid var(--accent-purple-200);
     color: var(--text);
     border-top-left-radius: var(--r-xs);
}
 html[data-page="portal_05_civil_chat"] .bubble--user {
     background: linear-gradient(135deg, #3b82f6, #2563eb);
     color: #fff;
     border: 1px solid rgba(255, 255, 255, 0.18);
     border-top-right-radius: var(--r-xs);
     display: inline-block;
     max-width: 100%;
     box-shadow: 0 4px 14px rgba(26, 107, 255, 0.2);
}
 html[data-page="portal_05_civil_chat"] .bubble--user strong {
     color: #fff;
}
 html[data-page="portal_05_civil_chat"] .typing {
     background: linear-gradient(180deg, var(--accent-purple-50), #f1f5f9);
     border: 1px solid var(--accent-purple-200);
     border-radius: var(--r-lg);
     border-top-left-radius: var(--r-xs);
}
 html[data-page="portal_05_civil_chat"] .typing span {
     background: var(--accent-purple-600);
     opacity: 0.55;
}
 details.aside-col.aside-col--acc.chat-aside-acc {
     min-width: 0;
     justify-content: flex-start;
     align-items: stretch;
     height: fit-content;
}
 .aside-col__acc-sum {
     display: flex;
     align-items: center;
     justify-content: space-between;
     gap: var(--s3);
     width: 100%;
     padding: var(--s4) var(--s5);
     margin: 0;
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     background: var(--card);
     box-shadow: var(--sh-1);
     font: inherit;
     color: inherit;
     cursor: pointer;
     text-align: left;
     list-style: none;
     -webkit-tap-highlight-color: transparent;
}
 .aside-col__acc-sum::-webkit-details-marker {
     display: none;
}
 .aside-col__acc-sum-main {
     display: flex;
     align-items: center;
     gap: var(--s3);
     min-width: 0;
}
 .aside-col__acc-sum-ico {
     color: var(--brand);
     font-size: 22px;
     flex-shrink: 0;
}
 .aside-col__acc-sum-text {
     display: flex;
     flex-direction: column;
     gap: 2px;
     min-width: 0;
}
 .aside-col__acc-sum-title {
     font-size: var(--fs-sm);
     font-weight: 800;
     color: var(--text);
     letter-spacing: -0.2px;
}
 .aside-col__acc-sum-sub {
     font-size: var(--fs-xs);
     color: var(--muted);
     line-height: 1.45;
}
 .aside-col__acc-sum-chev {
     color: var(--dim);
     font-size: 22px;
     flex-shrink: 0;
     transition: transform var(--d-base, 240ms) var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
}
 details.chat-aside-acc[open] > .aside-col__acc-sum .aside-col__acc-sum-chev {
     transform: rotate(180deg);
}
 .aside-col__acc-body {
     display: flex;
     flex-direction: column;
     gap: var(--s6);
     width: 100%;
     flex: 0 1 auto;
     min-height: 0;
     justify-content: flex-start;
}
 @media (min-width: 981px) {
     .aside-col--acc.chat-aside-acc > .aside-col__acc-sum {
         display: none !important;
    }
     .container.chat-area > .chat-grid {
         align-items: start;
         align-content: start;
    }
     .container.chat-area > .chat-grid > .chat-wrap {
         align-self: stretch;
         min-height: 0;
    }
     .container.chat-area > .chat-grid > .chat-aside-acc {
         align-self: start;
         justify-self: stretch;
         height: fit-content;
         display: flex !important;
         flex-direction: column;
         justify-content: flex-start;
    }
}
 .chat-aside-acc .tip-card {
     padding-top: var(--s3);
     padding-inline: var(--s5);
     padding-bottom: var(--s5);
     margin-top: 0;
}
 .chat-aside-acc .tip-card__head {
     margin-top: 0;
     margin-bottom: var(--s3);
}
 .chat-aside-acc .link-card {
     margin-bottom: var(--s5);
     padding: var(--s4) var(--s5) var(--s6);
}
 .chat-aside-acc .link-card__label {
     font-size: var(--fs-sm);
     font-weight: 800;
     color: var(--text);
     letter-spacing: -0.02em;
     text-transform: none;
     margin-bottom: var(--s2);
}
 @media (max-width: 980px) {
    html[data-page="portal_02_info_chat"] main, html[data-page="portal_05_civil_chat"] main {
        overflow: visible;
        min-height: 0;
   }
    html[data-page="portal_03_civil_initial"] main:has(#civil-flow-chat:not([hidden])) {
        overflow: visible;
        min-height: 0;
   }
     .chat-grid .aside-col .ref-panel {
         border-top: 0;
    }
     .chat-grid {
         display: grid;
         grid-template-columns: 1fr;
         grid-template-rows: auto minmax(0, 1fr);
         gap: var(--s6);
         min-height: 0;
         flex: 1;
         align-items: start;
         align-content: start;
    }
     .chat-grid > .chat-wrap {
         order: 2;
         align-self: stretch;
         min-height: 0;
    }
     .chat-grid > .chat-aside-acc {
         order: 1;
         align-self: start;
    }
     details.chat-aside-acc[open] > .aside-col__acc-body {
         max-height: min(52vh, 440px);
         overflow-y: auto;
         overflow-x: hidden;
         -webkit-overflow-scrolling: touch;
         /* overscroll-behavior-y: contain; */
         margin-top: var(--s3);
         padding-top: var(--s2);
         border-top: 1px solid var(--border);
    }
    .chat-wrap {
        min-height: 0;
        overflow: visible;
        display: flex;
        flex-direction: column;
   }
    .chat-scroll {
        flex: 1;
        min-height: 360px;
        overflow-y: scroll;
        -webkit-overflow-scrolling: touch;
        /* overscroll-behavior-y: contain; */
        touch-action: auto;
   }
    .chat-area {
        flex: 1;
        min-height: 0;
        overflow-x: hidden;
        overflow-y: scroll;
        -webkit-overflow-scrolling: touch;
        /* overscroll-behavior-y: contain; */
        display: flex;
        flex-direction: column;
   }
     .chat-area .aside-col .ref-panel {
         max-height: none;
    }
}
 :root {
     --brand: #1a6bff;
     --brand-600: #2563eb;
     --brand-50: #eff6ff;
     --brand-100: #dbeafe;
     --brand-200: #bfdbfe;
     --accent-green: #1a6bff;
     --accent-green-600: #2563eb;
     --accent-green-50: #eff6ff;
     --accent-green-100: #dbeafe;
     --accent-green-200: #bfdbfe;
     --bg: #f8fafc;
     --bg-alt: #f1f5f9;
     --card: #fff;
     --border: #e2e8f0;
     --border-strong: #cbd5e1;
     --divider: #f1f5f9;
     --text: #0f172a;
     --text-2: #334155;
     --muted: #64748b;
     --dim: #94a3b8;
     --faint: #cbd5e1;
     --focus: #3b82f6;
     --font: "SUIT", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
     --font-icon: "Material Symbols Outlined";
     --fs-h1: 40px;
     --fs-h2: 26px;
     --fs-h3: 20px;
     --fs-h4: 17px;
     --fs-body: 15px;
     --fs-sm: 13.5px;
     --fs-xs: 12px;
     --fs-2xs: 11px;
     --tracking-tight: -0.8px;
     --tracking-eyebrow: 2.5px;
     --s1: 4px;
     --s2: 8px;
     --s3: 12px;
     --s4: 16px;
     --s5: 20px;
     --s6: 24px;
     --s8: 32px;
     --s10: 40px;
     --s12: 48px;
     --s16: 64px;
     --s20: 80px;
     --r-xs: 4px;
     --r-sm: 8px;
     --r-md: 12px;
     --r-lg: 16px;
     --r-xl: 20px;
     --r-pill: 999px;
     --sh-1: 0 1px 2px rgba(15, 23, 42, 0.04);
     --sh-2: 0 4px 12px rgba(15, 23, 42, 0.06);
     --sh-3: 0 8px 24px rgba(15, 23, 42, 0.08);
     --sh-glow: 0 0 24px rgba(26, 107, 255, 0.25);
     --ease: cubic-bezier(0.22, 1, 0.36, 1);
     --d-base: 240ms;
     --container: 1400px;
     --container-px: 48px;
     --gnb: 64px;
     --z-sticky: 100;
     --z-modal: 600;
     --z-toast: 700;
     --accent: var(--brand);
     --accent-600: var(--brand-600);
     --accent-bg: var(--brand-50);
     --accent-border: var(--brand-200);
}
 *, *::before, *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
}
 html {
     -webkit-text-size-adjust: 100%;
     scroll-behavior: smooth;
}
 body {
     font-family: var(--font);
     font-size: var(--fs-body);
     line-height: 1.6;
     color: var(--text);
     background: var(--bg);
     -webkit-font-smoothing: antialiased;
}
 button {
     font: inherit;
     color: inherit;
     background: none;
     border: none;
     cursor: pointer;
}
 a {
     color: inherit;
     text-decoration: none;
}
 :where(a, button, [tabindex]):focus-visible {
     outline: 2px solid var(--focus);
     outline-offset: 2px;
     border-radius: var(--r-xs);
}
 .skip {
     position: absolute;
     top: -100px;
     left: 16px;
     padding: 8px 16px;
     background: var(--brand);
     color: #fff;
     border-radius: var(--r-sm);
     z-index: var(--z-toast);
}
 .skip:focus {
     top: 16px;
}
 .icon {
     font-family: var(--font-icon);
     font-weight: normal;
     display: inline-block;
     line-height: 1;
     font-feature-settings: "liga";
     -webkit-font-smoothing: antialiased;
     font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
     user-select: none;
     vertical-align: middle;
}
 .container {
     max-width: var(--container);
     margin-inline: auto;
     padding-inline: var(--container-px);
     width: 100%;
     box-sizing: border-box;
}
 .u-stack-sm {
     display: flex;
     flex-direction: column;
     gap: 3px;
}
 @media (max-width: 600px) {
     :root {
         --container-px: 20px;
         --fs-h1: 32px;
         --fs-h2: 22px;
    }
}
 .btn {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: var(--s2);
     font-family: var(--font);
     font-weight: 600;
     line-height: 1;
     padding: 10px 18px;
     border-radius: var(--r-md);
     border: 1px solid transparent;
     cursor: pointer;
     white-space: nowrap;
     transition: all var(--d-base) var(--ease);
     text-decoration: none;
}
 .btn--primary {
     color: #fff;
     background: linear-gradient(135deg, var(--accent), var(--accent-600));
     box-shadow: var(--sh-glow);
}
 .btn--primary:hover {
     transform: translateY(-1px);
}
 .btn--sm {
     font-size: var(--fs-sm);
     padding: 7px 14px;
     border-radius: var(--r-sm);
}
 .btn--outline {
     color: var(--brand);
     background: var(--brand-50);
     border-color: var(--brand-200);
}
 .btn--outline:hover {
     background: var(--brand-100);
}
 .btn--ghost {
     color: var(--muted);
     background: transparent;
     font-weight: 500;
}
 .btn--ghost:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .btn--line {
     color: var(--text-2);
     background: var(--card);
     border-color: var(--border-strong);
}
 .btn--line:hover {
     border-color: var(--accent);
     color: var(--accent);
}
 .nav {
     position: sticky;
     top: 0;
     z-index: var(--z-sticky);
     height: var(--gnb);
     display: flex;
     align-items: center;
     gap: var(--s8);
     padding-inline: var(--container-px);
     background: rgba(255, 255, 255, 1);
     -webkit-backdrop-filter: blur(16px);
     backdrop-filter: blur(16px);
     border-bottom: 1px solid var(--border);
}
 .nav__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
     flex-shrink: 0;
}
 .nav__mark {
     width: 36px;
     height: 36px;
     border-radius: var(--r-sm);
     background: linear-gradient(135deg, var(--brand), #3b82f6);
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: 0 0 16px rgba(26, 107, 255, 0.25);
}
 .nav__title {
     font-size: var(--fs-body);
     font-weight: 700;
     letter-spacing: -0.3px;
     line-height: 1;
     color: var(--text);
}
 .nav__subtitle {
     font-size: var(--fs-2xs);
     margin-top: 3px;
     line-height: 1;
     color: var(--muted);
}
 .nav__menu {
     display: flex;
     align-items: center;
     gap: var(--s1);
     margin-left: var(--s4);
}
 .nav__menu a {
     font-size: var(--nav-menu-fs, calc(14px * 1.1));
     font-weight: 500;
     color: var(--muted);
     padding: 6px 14px;
     border-radius: var(--r-sm);
     transition: color var(--d-base), background var(--d-base);
}
 .nav__menu a:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .nav__menu a[aria-current="page"] {
     color: var(--accent);
     background: var(--accent-bg);
     font-weight: 600;
}
 .nav__actions {
     margin-left: auto;
     display: flex;
     align-items: center;
     gap: var(--s2);
}
 .page-hero {
     padding: var(--s6) 0 var(--s3);
     background: linear-gradient(180deg, var(--accent-bg) 0%, var(--bg) 100%);
     border-bottom: 1px solid var(--border);
}
 .page-hero__title {
     font-size: clamp(22px, 3vw, 32px);
     font-weight: 800;
     letter-spacing: var(--tracking-tight);
     color: var(--text);
     line-height: 1.2;
     margin: 0 0 var(--s2);
}
 .page-hero__title em {
     font-style: normal;
     color: var(--accent);
}
 .page-hero__desc {
     margin: 0;
     font-size: var(--fs-sm);
     color: var(--text-2);
     max-width: 100%;
     line-height: 1.45;
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
}
 .stat-strip {
     max-width: var(--container);
     margin: 0 auto;
     padding: 0 var(--container-px);
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: var(--s4);
}
 .stat-strip__item {
     display: flex;
     align-items: flex-start;
     gap: var(--s3);
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     padding: var(--s5);
}
 .stat-strip__icon {
     flex-shrink: 0;
     width: 40px;
     height: 40px;
     border-radius: var(--r-md);
     background: var(--accent-bg);
     color: var(--accent);
     display: inline-grid;
     place-items: center;
     font-size: 22px;
     line-height: 1;
}
 .stat-strip__text {
     min-width: 0;
     flex: 1;
}
 .stat-strip__num {
     font-size: 28px;
     font-weight: 800;
     color: var(--text);
     letter-spacing: var(--tracking-tight);
     line-height: 1;
}
 .stat-strip__num em {
     font-style: normal;
     color: var(--accent);
     font-variant-numeric: tabular-nums;
}
 .stat-strip__label {
     margin-top: var(--s2);
     font-size: var(--fs-sm);
     color: var(--muted);
}
 @media (max-width: 800px) {
     .stat-strip {
         grid-template-columns: repeat(2, 1fr);
    }
}
 section.block {
     padding: var(--s12) 0;
}
 .section-head {
     margin-bottom: var(--s8);
}
 .section-head__eyebrow {
     color: var(--accent);
     font-size: var(--fs-xs);
     font-weight: 700;
     letter-spacing: var(--tracking-eyebrow);
     text-transform: uppercase;
}
 .section-head__title {
     font-size: var(--fs-h2);
     font-weight: 800;
     color: var(--text);
     letter-spacing: var(--tracking-tight);
     margin-top: var(--s2);
     line-height: 1.2;
}
 .section-head__desc {
     margin-top: var(--s2);
     color: var(--muted);
     font-size: var(--fs-sm);
     max-width: 640px;
}
 .subtabs {
     display: flex;
     gap: var(--s2);
     background: var(--bg-alt);
     border: 1px solid var(--border);
     padding: 4px;
     border-radius: var(--r-pill);
     margin-bottom: var(--s6);
     width: fit-content;
}
 .subtabs button {
     font-size: var(--fs-sm);
     font-weight: 600;
     color: var(--muted);
     padding: 8px 18px;
     border-radius: var(--r-pill);
     transition: all var(--d-base);
}
 .subtabs button:hover {
     color: var(--text-2);
}
 .subtabs button[aria-pressed="true"] {
     background: var(--card);
     color: var(--accent);
     box-shadow: var(--sh-1);
}
 .ds-demo-note {
     display: flex;
     gap: var(--s3);
     align-items: center;
     padding: var(--s4) var(--s5);
     background: linear-gradient(135deg, var(--brand-50), var(--card));
     border: 1px solid var(--brand-200);
     border-radius: var(--r-lg);
     margin-bottom: var(--s6);
     font-size: var(--fs-sm);
     color: var(--text-2);
     line-height: 1.45;
     box-shadow: var(--sh-1);
}
 .ds-demo-note .icon {
     flex-shrink: 0;
     color: var(--brand);
     font-size: 22px;
     line-height: 1;
}
 .ds-demo-note__p {
     margin: 0;
     flex: 1;
     min-width: 0;
     overflow-x: auto;
     overscroll-behavior-x: contain;
     -webkit-overflow-scrolling: touch;
     scrollbar-width: thin;
}
 .ds-demo-note strong {
     display: inline;
     color: var(--text);
     font-weight: 700;
}
 .ds-demo-note__p > strong:first-of-type {
     font-weight: 800;
}
 .ds-demo-note__sep {
     color: var(--dim);
     font-weight: 600;
     margin: 0 0.25em;
}
 .ds-demo-note__btn-ref {
     white-space: nowrap;
}
 .ds-demo-note code {
     font-size: 0.92em;
     font-family: var( --font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace );
     background: rgba(255, 255, 255, 0.82);
     padding: 1px 6px;
     border-radius: var(--r-sm);
     border: 1px solid var(--brand-100);
     color: var(--text-2);
}
 .ds-toolbar {
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     justify-content: space-between;
     gap: var(--s4);
     margin-bottom: var(--s6);
}
 .ds-toolbar .subtabs {
     margin-bottom: 0;
}
 @media (max-width: 720px) {
     .ds-toolbar {
         flex-direction: column;
         align-items: stretch;
         gap: var(--s3);
    }
     .ds-toolbar .subtabs {
         width: 100%;
         max-width: 100%;
         box-sizing: border-box;
    }
     .ds-toolbar .subtabs button {
         flex: 1 1 0;
         min-width: 0;
         padding-inline: var(--s2);
    }
     .ds-toolbar > .btn {
         width: 100%;
         justify-content: center;
         box-sizing: border-box;
    }
}
 .dataset-list {
     display: flex;
     flex-direction: column;
     gap: var(--s3);
}
 .dataset {
     display: grid;
     grid-template-columns: auto 1fr auto auto;
     gap: var(--s5);
     align-items: center;
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     padding: var(--s5);
     transition: all var(--d-base);
}
 .dataset:hover {
     border-color: var(--accent-border);
     box-shadow: var(--sh-2);
}
 .dataset__icon {
     width: 48px;
     height: 48px;
     border-radius: var(--r-md);
     background: var(--accent-bg);
     color: var(--accent);
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 24px;
}
 .dataset__title {
     font-size: var(--fs-h4);
     font-weight: 700;
     color: var(--text);
     line-height: 1.2;
}
 .dataset__meta {
     margin-top: var(--s2);
     font-size: var(--fs-xs);
     color: var(--muted);
     display: flex;
     gap: var(--s3);
     flex-wrap: wrap;
}
 .dataset__meta span {
     display: inline-flex;
     align-items: center;
     gap: 4px;
}
 .dataset__tag {
     display: inline-block;
     padding: 3px 10px;
     background: var(--accent-bg);
     color: var(--accent-600);
     border-radius: var(--r-pill);
     font-size: var(--fs-2xs);
     font-weight: 600;
     margin-right: var(--s2);
}
 .dataset__progress {
     width: 180px;
}
 .dataset__progress-label {
     display: flex;
     justify-content: space-between;
     font-size: var(--fs-xs);
     color: var(--muted);
     margin-bottom: 4px;
}
 .dataset__progress-label strong {
     color: var(--text-2);
     font-weight: 700;
}
 .dataset__progress-bar {
     height: 6px;
     background: var(--bg-alt);
     border-radius: var(--r-pill);
     overflow: hidden;
}
 .dataset__progress-bar span {
     display: block;
     height: 100%;
     background: linear-gradient(90deg, var(--accent), var(--accent-600));
     border-radius: var(--r-pill);
     transition: width 900ms var(--ease);
}
 @media (max-width: 800px) {
     .dataset {
         grid-template-columns: 1fr;
         grid-template-rows: auto auto auto;
         align-items: stretch;
         gap: var(--s4);
    }
     .dataset__icon {
         display: none;
    }
     .dataset__progress {
         grid-column: 1;
         width: 100%;
         max-width: 100%;
    }
     .dataset .btn {
         grid-column: 1;
         width: 100%;
         max-width: 100%;
         justify-self: stretch;
         justify-content: center;
         box-sizing: border-box;
    }
}
 .panel {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-xl);
     padding: var(--s8);
     box-shadow: var(--sh-1);
}
 .footer {
     background: var(--card);
     border-top: 1px solid var(--border);
     padding: 32px var(--container-px) 24px;
}
 .footer__top {
     max-width: var(--container);
     margin: 0 auto;
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
     padding-bottom: 20px;
     border-bottom: 1px solid var(--divider);
     gap: var(--s6);
     flex-wrap: wrap;
}
 .footer__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
}
 .footer__brand-main {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text-2);
}
 .footer__brand-sub {
     font-size: var(--fs-xs);
     color: var(--dim);
     margin-top: 3px;
}
 .footer__links {
     display: flex;
     gap: var(--s5);
}
 .footer__links a {
     font-size: var(--fs-xs);
     color: var(--muted);
}
 .footer__links a:hover {
     color: var(--brand);
}
 .footer__copy {
     max-width: var(--container);
     margin: 0 auto;
     font-size: var(--fs-xs);
     color: var(--dim);
     display: flex;
     justify-content: space-between;
     gap: var(--s4);
     flex-wrap: wrap;
}
 .modal {
     position: fixed;
     inset: 0;
     z-index: var(--z-modal);
     display: none;
     align-items: center;
     justify-content: center;
     padding: var(--s5);
     background: rgba(15, 23, 42, 0.5);
     -webkit-backdrop-filter: blur(4px);
     backdrop-filter: blur(4px);
}
 .modal.is-open {
     display: flex;
     animation: fade 0.2s ease;
}
 @keyframes fade {
     from {
         opacity: 0;
    }
     to {
         opacity: 1;
    }
}
 .modal__dialog {
     background: var(--card);
     border-radius: var(--r-xl);
     padding: var(--s8);
     max-width: 480px;
     width: 100%;
     box-shadow: var(--sh-3);
     animation: pop 0.24s var(--ease);
}
 @keyframes pop {
     from {
         opacity: 0;
         transform: translateY(10px) scale(0.98);
    }
     to {
         opacity: 1;
         transform: none;
    }
}
 .modal__head {
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
     gap: var(--s4);
     margin-bottom: var(--s5);
}
 .modal__title {
     font-size: var(--fs-h3);
     font-weight: 800;
     color: var(--text);
     line-height: 1.3;
}
 .modal__close {
     width: 36px;
     height: 36px;
     border-radius: var(--r-sm);
     color: var(--muted);
     display: flex;
     align-items: center;
     justify-content: center;
     transition: background var(--d-base);
}
 .modal__close:hover {
     background: var(--bg-alt);
     color: var(--text);
}
 .field {
     display: flex;
     flex-direction: column;
     gap: var(--s2);
     margin-bottom: var(--s4);
}
 .field label {
     font-size: var(--fs-sm);
     font-weight: 600;
     color: var(--text-2);
}
 .field input, .field textarea, .field select {
     font: inherit;
     color: var(--text);
     background: var(--card);
     border: 1px solid var(--border-strong);
     border-radius: var(--r-md);
     padding: 10px 12px;
     transition: border var(--d-base);
}
 .field input:focus, .field textarea:focus, .field select:focus {
     outline: 0;
     border-color: var(--accent);
     box-shadow: 0 0 0 3px rgba(26, 107, 255, 0.12);
}
 .field textarea {
     resize: vertical;
     min-height: 90px;
}
 .modal__actions {
     display: flex;
     justify-content: flex-end;
     gap: var(--s2);
     margin-top: var(--s5);
}
 .toast {
     position: fixed;
     top: 80px;
     right: 24px;
     z-index: var(--z-toast);
     display: none;
     align-items: center;
     gap: var(--s3);
     background: var(--card);
     border: 1px solid var(--accent-border);
     border-left: 4px solid var(--accent);
     padding: 14px 18px;
     border-radius: var(--r-md);
     box-shadow: var(--sh-3);
     font-size: var(--fs-sm);
     color: var(--text);
     max-width: 360px;
}
 .toast.is-open {
     display: flex;
     animation: slidein 0.3s var(--ease);
}
 .toast .icon {
     color: var(--accent);
     font-size: 20px;
}
 @keyframes slidein {
     from {
         opacity: 0;
         transform: translateX(12px);
    }
     to {
         opacity: 1;
         transform: none;
    }
}
 :root {
     --brand: #1a6bff;
     --brand-600: #2563eb;
     --brand-50: #eff6ff;
     --brand-100: #dbeafe;
     --brand-200: #bfdbfe;
     --auth-portal-900: #003e89;
     --auth-portal-700: #0051c3;
     --auth-portal-500: #1a6bff;
     --auth-gun-950: #050c16;
     --auth-gun-900: #0a1628;
     --auth-gun-800: #0f2744;
     --auth-gun-700: #153a5c;
     --auth-gun-600: #1d4ed8;
     --auth-gun-500: #2563eb;
     --auth-gun-300: #93c5fd;
     --accent-teal: #1a6bff;
     --accent-teal-600: #2563eb;
     --accent-teal-50: #eff6ff;
     --accent-teal-100: #dbeafe;
     --accent-teal-200: #bfdbfe;
     --accent-purple: #1a6bff;
     --accent-purple-600: #2563eb;
     --accent-purple-50: #eff6ff;
     --accent-purple-100: #dbeafe;
     --accent-purple-200: #bfdbfe;
     --accent-green: #1a6bff;
     --accent-green-600: #2563eb;
     --accent-green-50: #eff6ff;
     --accent-green-100: #dbeafe;
     --accent-green-200: #bfdbfe;
     --accent-gun: #1d4ed8;
     --accent-gun-600: #1e40af;
     --accent-gun-50: #eff6ff;
     --accent-gun-200: #bfdbfe;
     --bg: #f8fafc;
     --bg-alt: #f1f5f9;
     --card: #fff;
     --border: #e2e8f0;
     --border-strong: #cbd5e1;
     --divider: #f1f5f9;
     --text: #0f172a;
     --text-2: #334155;
     --muted: #64748b;
     --dim: #94a3b8;
     --faint: #cbd5e1;
     --focus: #3b82f6;
     --font: "SUIT", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
     --font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
     --font-icon: "Material Symbols Outlined";
     --fs-display: clamp(38px, 5.5vw, 64px);
     --fs-h1: 40px;
     --fs-h2: 26px;
     --fs-h3: 20px;
     --fs-h4: 17px;
     --fs-body: 15px;
     --fs-base: 15px;
     --fs-lg: 20px;
     --fs-sm: 13.5px;
     --fs-xs: 12px;
     --fs-2xs: 11px;
     --tracking-tight: -0.8px;
     --tracking-eyebrow: 2.5px;
     --s1: 4px;
     --s2: 8px;
     --s3: 12px;
     --s4: 16px;
     --s5: 20px;
     --s6: 24px;
     --s8: 32px;
     --s10: 40px;
     --s12: 48px;
     --r-xs: 4px;
     --r-sm: 8px;
     --r-md: 12px;
     --r-lg: 16px;
     --r-xl: 20px;
     --r-pill: 999px;
     --sh-1: 0 1px 2px rgba(15, 23, 42, 0.04);
     --sh-2: 0 4px 12px rgba(15, 23, 42, 0.06);
     --sh-3: 0 8px 24px rgba(15, 23, 42, 0.08);
     --sh-glow: 0 0 24px rgba(26, 107, 255, 0.25);
     --sh-glow-brand: 0 4px 14px rgba(37, 99, 235, 0.28), 0 0 22px rgba(26, 107, 255, 0.18);
     --ease: cubic-bezier(0.22, 1, 0.36, 1);
     --d-base: 240ms;
     --container: 1400px;
     --container-px: 48px;
     --gnb: 64px;
     --z-sticky: 100;
     --accent: var(--brand);
     --accent-600: var(--brand-600);
     --accent-bg: var(--brand-50);
     --accent-border: var(--brand-200);
}
 *, *::before, *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
}
 body {
     font-family: var(--font);
     font-size: var(--fs-body);
     line-height: 1.6;
     color: var(--text);
     background: var(--bg);
     -webkit-font-smoothing: antialiased;
}
 button {
     font: inherit;
     color: inherit;
     background: none;
     border: none;
     cursor: pointer;
}
 a {
     color: inherit;
     text-decoration: none;
}
 :where(a, button, [tabindex]):focus-visible {
     outline: 2px solid var(--focus);
     outline-offset: 2px;
     border-radius: var(--r-xs);
}
 .icon {
     font-family: var(--font-icon);
     font-weight: normal;
     display: inline-block;
     line-height: 1;
     font-feature-settings: "liga";
     font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
     user-select: none;
     vertical-align: middle;
}
 .container {
     max-width: var(--container);
     margin-inline: auto;
     padding-inline: var(--container-px);
     width: 100%;
     box-sizing: border-box;
}
 @media (max-width: 600px) {
     :root {
         --container-px: 20px;
         --fs-h1: 32px;
         --fs-h2: 22px;
    }
}
 .nav {
     position: sticky;
     top: 0;
     z-index: var(--z-sticky);
     height: var(--gnb);
     display: flex;
     align-items: center;
     gap: var(--s8);
     padding-inline: var(--container-px);
     background: rgba(255, 255, 255, 1);
     backdrop-filter: blur(16px);
     border-bottom: 1px solid var(--border);
}
 .nav__brand {
     display: flex;
     align-items: center;
     gap: var(--s3);
}
 .nav__mark {
     width: 36px;
     height: 36px;
     border-radius: var(--r-sm);
     background: linear-gradient(135deg, var(--brand), #3b82f6);
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: 0 0 16px rgba(26, 107, 255, 0.25);
}
 .nav__title {
     font-size: var(--fs-body);
     font-weight: 700;
     line-height: 1;
     color: var(--text);
}
 .nav__subtitle {
     font-size: var(--fs-2xs);
     margin-top: 3px;
     line-height: 1;
     color: var(--muted);
}
 .u-stack-sm {
     display: flex;
     flex-direction: column;
     gap: 3px;
}
 .nav__menu {
     display: flex;
     align-items: center;
     gap: var(--s1);
     margin-left: var(--s4);
}
 .nav__menu a {
     font-size: var(--nav-menu-fs, calc(14px * 1.1));
     font-weight: 500;
     color: var(--muted);
     padding: 6px 14px;
     border-radius: var(--r-sm);
}
 .nav__menu a:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .nav__menu a[aria-current="page"] {
     color: var(--accent);
     background: var(--accent-bg);
     font-weight: 600;
}
 .nav__actions {
     margin-left: auto;
     display: flex;
     gap: var(--s2);
}
 .page-hero {
     padding: var(--s6) 0 var(--s3);
     background: linear-gradient(180deg, var(--accent-bg) 0%, var(--bg) 100%);
     border-bottom: 1px solid var(--border);
}
 .page-hero__title {
     font-size: clamp(22px, 3vw, 32px);
     font-weight: 800;
     letter-spacing: var(--tracking-tight);
     color: var(--text);
     line-height: 1.2;
     margin: 0 0 var(--s2);
}
 .page-hero__title em {
     font-style: normal;
     color: var(--accent);
}
 .page-hero__desc {
     margin: 0;
     font-size: var(--fs-sm);
     color: var(--text-2);
     max-width: 100%;
     line-height: 1.45;
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
}
 .sg-wrap {
     display: grid;
     grid-template-columns: 220px 1fr;
     gap: var(--s8);
     padding: var(--s10) 0 var(--s12);
}
 .sg-wrap > .sg-breadcrumb {
     grid-column: 1/-1;
}
 .sg-toc {
     position: sticky;
     top: calc(var(--gnb) + var(--s4));
     align-self: start;
     border-right: 1px solid var(--border);
     padding-right: var(--s4);
}
 .sg-toc h4 {
     font-size: var(--fs-xs);
     font-weight: 700;
     color: var(--muted);
     letter-spacing: var(--tracking-eyebrow);
     text-transform: uppercase;
     margin-bottom: var(--s3);
}
 .sg-toc a {
     display: block;
     font-size: var(--fs-sm);
     color: var(--text-2);
     padding: 7px 10px;
     border-radius: var(--r-sm);
     margin-bottom: 2px;
     border-left: 3px solid transparent;
     transition: background var(--d-base), color var(--d-base), border-color var(--d-base), font-weight var(--d-base);
}
 .sg-toc a:hover {
     background: var(--bg-alt);
     color: var(--accent);
}
 .sg-toc a.is-active {
     font-weight: 800;
     color: var(--brand);
     background: var(--brand-50);
     border-left-color: var(--brand);
}
 .sg-auth-preview {
     border-radius: var(--r-lg);
     overflow: hidden;
     border: 1px solid var(--border);
     box-shadow: var(--sh-1);
}
 .sg-auth-preview .login-brand {
     max-width: none !important;
     min-height: min(320px, 52vh);
     padding: var(--s6) !important;
     flex: none;
     width: 100%;
}
 .sg-tip-arena {
     position: relative;
     isolation: isolate;
     z-index: 0;
     min-height: 108px;
     padding: var(--s8) var(--s4) var(--s4);
     background: var(--bg-alt);
     border-radius: var(--r-md);
}
 .sg-tip-arena .nav-guide-tip {
     position: absolute;
     z-index: 1;
     left: 12px;
     top: 8px;
     opacity: 1;
     transform: none;
     pointer-events: none;
     max-width: min(380px, calc(100% - 24px));
}
 .sg-sections {
     display: flex;
     flex-direction: column;
     gap: var(--s12);
     min-width: 0;
}
 .sg-section {
     scroll-margin-top: calc(var(--gnb) + var(--s4));
}
 .sg-section__head {
     margin-bottom: var(--s6);
     padding-bottom: var(--s4);
     border-bottom: 1px solid var(--border);
}
 .sg-section__eyebrow {
     color: var(--accent);
     font-size: var(--fs-xs);
     font-weight: 700;
     letter-spacing: var(--tracking-eyebrow);
     text-transform: uppercase;
}
 .sg-section__title {
     font-size: var(--fs-h2);
     font-weight: 800;
     letter-spacing: var(--tracking-tight);
     margin-top: var(--s2);
}
 .sg-section__desc {
     margin-top: var(--s2);
     color: var(--muted);
     font-size: var(--fs-sm);
}
 .sg-block {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     padding: var(--s6);
     margin-bottom: var(--s4);
     box-shadow: var(--sh-1);
}
 .sg-block__title {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text-2);
     margin-bottom: var(--s4);
     display: flex;
     align-items: center;
     gap: var(--s2);
}
 .sg-block__title::before {
     content: "";
     width: 3px;
     height: 14px;
     background: var(--accent);
     border-radius: 2px;
}
 .sg-demo {
     display: flex;
     align-items: center;
     flex-wrap: wrap;
     gap: var(--s3);
     padding: var(--s4);
     background: var(--bg-alt);
     border-radius: var(--r-md);
     margin-bottom: var(--s3);
}
 html[data-page="portal_styleguide"] .sg-info-init-preview {
     margin-top: 0;
}
 html[data-page="portal_styleguide"] .sg-info-init-preview .topic-grid--stack {
     display: flex;
     flex-direction: column;
     gap: var(--s3);
}
 html[data-page="portal_styleguide"] .sg-info-init-preview .topic-grid--stack .topic {
     width: 100%;
     min-width: 0;
}
 @media (min-width: 901px) {
     html[data-page="portal_styleguide"] .sg-info-init-preview .topic__icon {
         width: 36px;
         height: 36px;
         font-size: 20px;
    }
}
 html[data-page="portal_styleguide"] textarea.sg-code.sg-code--paste {
     display: block;
     width: 100%;
     min-height: 280px;
     box-sizing: border-box;
     margin-top: var(--s3);
     font-family: var(--font-mono);
     font-size: var(--fs-xs);
     color: #e2e8f0;
     background: #0f172a;
     border: 1px solid var(--border);
     border-radius: var(--r-sm);
     padding: var(--s3) var(--s4);
     line-height: 1.55;
     resize: vertical;
}
 .sg-code-wrap {
     position: relative;
}
 .sg-code-wrap .sg-code {
     padding-right: calc(var(--s4) + 5.75rem);
     padding-top: calc(var(--s3) + 6px);
}
 .sg-code__copy {
     position: absolute;
     top: 10px;
     right: 10px;
     z-index: 2;
     font-family: var(--font);
     font-size: var(--fs-2xs);
     font-weight: 700;
     line-height: 1;
     padding: 6px 12px;
     border-radius: var(--r-sm);
     border: 1px solid rgba(148, 163, 184, 0.45);
     background: rgba(30, 41, 59, 0.95);
     color: #e2e8f0;
     cursor: pointer;
     transition: background var(--d-base), border-color var(--d-base), color var(--d-base);
}
 .sg-code__copy:hover {
     background: rgba(51, 65, 85, 0.98);
     border-color: rgba(226, 232, 240, 0.4);
}
 .sg-code__copy:focus-visible {
     outline: 2px solid #93c5fd;
     outline-offset: 2px;
}
 .sg-code__copy.is-done {
     border-color: rgba(134, 239, 172, 0.55);
     color: #bbf7d0;
}
 .sg-code {
     display: block;
     margin-top: 15px;
     font-family: var(--font-mono);
     font-size: var(--fs-xs);
     color: var(--text-2);
     background: #0f172a;
     color: #e2e8f0;
     padding: var(--s3) var(--s4);
     border-radius: var(--r-sm);
     overflow-x: auto;
     line-height: 1.6;
}
 .sg-code .k {
     color: #93c5fd;
}
 .sg-code .s {
     color: #86efac;
}
 .sg-code .c {
     color: #64748b;
}
 @media (max-width: 900px) {
     .sg-wrap {
         grid-template-columns: 1fr;
    }
     .sg-toc {
         display: none;
    }
}
 .sw-grid {
     display: grid;
     grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
     gap: var(--s3);
}
 .sw {
     border-radius: var(--r-md);
     overflow: hidden;
     border: 1px solid var(--border);
}
 .sw__color {
     height: 80px;
}
 .sw__body {
     padding: var(--s3);
     background: var(--card);
}
 .sw__name {
     font-size: var(--fs-xs);
     font-weight: 700;
     color: var(--text);
}
 .sw__val {
     font-family: var(--font-mono);
     font-size: var(--fs-2xs);
     color: var(--muted);
     margin-top: 2px;
}
 .ty-row {
     display: grid;
     grid-template-columns: minmax(120px, 200px) minmax(0, 1fr) minmax( 148px, 200px );
     gap: var(--s3) var(--s4);
     align-items: center;
     padding: var(--s4) 0;
     border-bottom: 1px solid var(--divider);
}
 .ty-row:last-child {
     border-bottom: 0;
}
 .ty-label {
     font-size: var(--fs-xs);
     color: var(--muted);
     font-family: var(--font-mono);
}
 .ty-sample {
     color: var(--text);
     min-width: 0;
}
 .ty-aside {
     display: flex;
     flex-direction: column;
     align-items: flex-end;
     gap: var(--s2);
     text-align: right;
}
 .ty-meta {
     font-size: var(--fs-2xs);
     color: var(--dim);
     line-height: 1.35;
     max-width: 18rem;
}
 .ty-copy-btns {
     display: flex;
     flex-wrap: wrap;
     gap: 6px;
     justify-content: flex-end;
}
 .sg-ty-copy, .sg-class-dup {
     font-family: var(--font);
     font-size: var(--fs-2xs);
     font-weight: 700;
     line-height: 1;
     padding: 5px 10px;
     border-radius: var(--r-sm);
     border: 1px solid var(--border-strong);
     background: var(--card);
     color: var(--text-2);
     cursor: pointer;
     transition: background var(--d-base), border-color var(--d-base), color var(--d-base);
}
 .sg-ty-copy:hover, .sg-class-dup:hover {
     border-color: var(--accent);
     color: var(--accent);
     background: var(--accent-bg);
}
 .sg-ty-copy:focus-visible, .sg-class-dup:focus-visible {
     outline: 2px solid var(--focus);
     outline-offset: 2px;
}
 .sg-ty-copy.is-done, .sg-class-dup.is-done {
     border-color: rgba(134, 239, 172, 0.55);
     color: #166534;
     background: #ecfdf5;
}
 .sg-class-row {
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     gap: var(--s2);
     margin: var(--s2) 0;
     padding: var(--s2) var(--s3);
     background: var(--bg-alt);
     border-radius: var(--r-md);
     border: 1px solid var(--border);
}
 .sg-class-row code {
     font-size: 11px;
     word-break: break-all;
     flex: 1;
     min-width: 12em;
}
 @media (max-width: 560px) {
     .ty-row {
         grid-template-columns: 1fr;
         align-items: start;
    }
     .ty-aside {
         align-items: flex-start;
         text-align: left;
    }
     .ty-copy-btns {
         justify-content: flex-start;
    }
}
 .btn {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: var(--s2);
     font-family: var(--font);
     font-weight: 600;
     line-height: 1;
     padding: 10px 18px;
     border-radius: var(--r-md);
     border: 1px solid transparent;
     cursor: pointer;
     transition: all var(--d-base) var(--ease);
     white-space: nowrap;
}
 .btn--xl {
     font-size: var(--fs-h4);
     padding: 14px 28px;
     border-radius: var(--r-md);
}
 .btn--sm {
     font-size: var(--fs-sm);
     padding: 7px 14px;
     border-radius: var(--r-sm);
}
 .btn--primary {
     color: #fff;
     background: linear-gradient(135deg, var(--accent), var(--accent-600));
     box-shadow: var(--sh-glow-brand);
}
 .btn--primary:hover {
     transform: translateY(-1px);
     box-shadow: 0 6px 18px rgba(29, 78, 216, 0.28), 0 0 30px rgba(26, 107, 255, 0.2);
}
 .btn--outline {
     color: var(--brand);
     background: var(--brand-50);
     border-color: var(--brand-200);
}
 .btn--outline:hover {
     background: var(--brand-100);
}
 .btn--ghost {
     color: var(--muted);
     font-weight: 500;
}
 .btn--ghost:hover {
     color: var(--text);
     background: var(--bg-alt);
}
 .btn--line {
     color: var(--text-2);
     background: var(--card);
     border-color: var(--border-strong);
}
 .btn--line:hover {
     border-color: var(--accent);
     color: var(--accent);
}
 html[data-page="portal_styleguide"] .sg-section__head--info-chat-brand .sg-section__eyebrow {
     margin-bottom: var(--s3);
}
 html[data-page="portal_styleguide"] .sg-info-chat-fab {
     display: inline-flex;
     flex-direction: column;
     align-items: center;
     gap: 6px;
     width: fit-content;
     max-width: min(220px, 100%);
     padding: 10px 12px 8px;
     margin: 0 0 var(--s5);
     border: 1px solid rgba(15, 23, 42, 0.1);
     border-radius: 20px;
     background: #fff;
     box-shadow: 0 8px 28px rgba(15, 23, 42, 0.12);
}
 html[data-page="portal_styleguide"] .sg-info-chat-fab__circle {
     width: 64px;
     height: 64px;
     flex-shrink: 0;
     border-radius: 50%;
     border: 3px solid #e8eef5;
     background: linear-gradient(145deg, #1d4ed8, #1e3a8a);
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15);
}
 html[data-page="portal_styleguide"] .sg-info-chat-fab__circle img {
     width: 40px;
     height: 40px;
     display: block;
     pointer-events: none;
}
 html[data-page="portal_styleguide"] .sg-info-chat-fab__title {
     margin: 0;
     padding: 0 2px;
     font-size: 12px;
     font-weight: 800;
     letter-spacing: -0.02em;
     line-height: 1.3;
     text-align: center;
     color: #1e3a8a;
     max-width: 14em;
}
 html[data-page="portal_styleguide"] .badge {
     display: inline-flex;
     align-items: center;
     gap: var(--s2);
     padding: 6px 14px;
     background: var(--card);
     border: 1px solid var(--accent-border);
     color: var(--accent-600);
     border-radius: var(--r-pill);
     font-size: var(--fs-xs);
     font-weight: 700;
     letter-spacing: 0.5px;
}
 html[data-page="portal_styleguide"] .badge .dot {
     width: 6px;
     height: 6px;
     border-radius: 50%;
     background: var(--accent);
     box-shadow: 0 0 8px var(--accent);
}
 html[data-page="portal_styleguide"] .chip {
     display: inline-flex;
     align-items: center;
     gap: var(--s2);
     padding: 8px 14px;
     background: var(--card);
     border: 1px solid var(--border);
     color: var(--text-2);
     border-radius: var(--r-pill);
     font-size: var(--fs-sm);
     transition: all var(--d-base);
}
 html[data-page="portal_styleguide"] .chip:hover {
     border-color: var(--accent);
     color: var(--accent);
     background: var(--accent-bg);
}
 html[data-page="portal_styleguide"] .tag {
     display: inline-block;
     padding: 3px 10px;
     background: var(--accent-bg);
     color: var(--accent-600);
     border-radius: var(--r-pill);
     font-size: var(--fs-2xs);
     font-weight: 600;
}
 .svc {
     display: block;
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     padding: var(--s6);
     perspective: 880px;
     transition: all var(--d-base);
     position: relative;
     overflow: hidden;
}
 .svc::before {
     content: "";
     position: absolute;
     top: 0;
     left: 0;
     right: 0;
     height: 3px;
     background: linear-gradient(90deg, var(--accent), var(--accent-600));
}
 .svc:hover {
     border-color: var(--accent-border);
     box-shadow: var(--sh-2);
     transform: translateY(-1px);
}
 .svc__icon {
     width: 44px;
     height: 44px;
     border-radius: var(--r-md);
     background: var(--accent-bg);
     color: var(--accent);
     display: flex;
     align-items: center;
     justify-content: center;
     margin-bottom: var(--s4);
     font-size: 22px;
     transform: translateZ(0) rotateY(0deg);
     transform-style: preserve-3d;
     backface-visibility: hidden;
     transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1), background var(--d-base) var(--ease), color var(--d-base) var(--ease);
}
 .svc__title {
     font-size: var(--fs-h4);
     font-weight: 700;
     color: var(--text);
     margin-bottom: var(--s2);
}
 .svc__desc {
     font-size: var(--fs-sm);
     color: var(--muted);
     line-height: 1.6;
}
 .field {
     display: flex;
     flex-direction: column;
     gap: var(--s2);
     margin-bottom: var(--s4);
}
 .field label {
     font-size: var(--fs-sm);
     font-weight: 600;
     color: var(--text-2);
}
 .field input, .field textarea, .field select {
     font: inherit;
     color: var(--text);
     background: var(--card);
     border: 1px solid var(--border-strong);
     border-radius: var(--r-md);
     padding: 10px 12px;
     transition: border var(--d-base);
}
 .field input:focus, .field textarea:focus, .field select:focus {
     outline: 0;
     border-color: var(--accent);
     box-shadow: 0 0 0 3px rgba(26, 107, 255, 0.14);
}
 .field select {
     min-height: 44px;
     cursor: pointer;
}
 .btn--secondary {
     color: var(--text-2);
     background: var(--card);
     border: 1px solid var(--border-strong);
     box-shadow: var(--sh-1);
}
 .btn--secondary:hover {
     border-color: var(--brand);
     color: var(--brand);
     box-shadow: var(--sh-2);
}
 html[data-page="portal_styleguide"] .field__legend {
     display: block;
     font-size: var(--fs-sm);
     font-weight: 600;
     color: var(--text-2);
     margin-bottom: var(--s2);
}
 html[data-page="portal_styleguide"] .field__hint {
     margin-top: var(--s2);
     font-size: var(--fs-xs);
     color: var(--muted);
     line-height: 1.5;
}
 html[data-page="portal_styleguide"] .sg-visually-hidden {
     position: absolute;
     width: 1px;
     height: 1px;
     padding: 0;
     margin: -1px;
     overflow: hidden;
     clip: rect(0, 0, 0, 0);
     white-space: nowrap;
     border: 0;
}
 html[data-page="portal_styleguide"] .field-file-row {
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     gap: var(--s3);
}
 html[data-page="portal_styleguide"] .field-check {
     display: flex;
     align-items: center;
     gap: var(--s2);
     font-size: var(--fs-sm);
     color: var(--text-2);
     cursor: pointer;
     margin-bottom: var(--s2);
}
 html[data-page="portal_styleguide"] .field-check:last-child {
     margin-bottom: 0;
}
 html[data-page="portal_styleguide"] .field-check input {
     width: auto;
     min-height: auto;
     padding: 0;
     accent-color: var(--accent);
     cursor: pointer;
     border: 0;
     box-shadow: none;
     background: transparent;
}
 html[data-page="portal_styleguide"] .field-check input:focus {
     box-shadow: none;
     outline: 2px solid var(--focus);
     outline-offset: 2px;
}
 html[data-page="portal_styleguide"] .field-radio-group {
     display: flex;
     flex-direction: column;
     gap: var(--s2);
}
 html[data-page="portal_styleguide"] .sg-chat-rail {
     display: flex;
     flex-direction: column;
     gap: var(--s5);
     padding: var(--s5);
     background: var(--bg-alt);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     max-width: 560px;
}
 html[data-page="portal_styleguide"] .sg-chat-rail .sg-chat-rail__cap {
     font-size: var(--fs-xs);
     font-weight: 800;
     color: var(--muted);
     letter-spacing: 0.08em;
     text-transform: uppercase;
     margin: 0 0 var(--s2);
}
 html[data-page="portal_styleguide"] .sg-chat-rail .turn {
     max-width: 100%;
}
 html[data-page="portal_styleguide"] .sg-chat-rail .turn--user {
     margin-left: auto;
     flex-direction: row-reverse;
     max-width: 88%;
}
 html[data-page="portal_styleguide"] .sg-chat-rail .turn__meta {
     font-size: var(--fs-xs);
     color: var(--muted);
     margin-bottom: var(--s2);
     display: flex;
     align-items: center;
     gap: var(--s2);
}
 html[data-page="portal_styleguide"] .sg-chat-rail .turn__meta strong {
     color: var(--text-2);
     font-weight: 700;
}
 html[data-page="portal_styleguide"] .sg-chat-rail .turn__topic {
     display: none;
}
 html[data-page="portal_styleguide"] .sg-chat-rail .avatar {
     width: 36px;
     height: 36px;
     border-radius: var(--r-md);
     display: flex;
     align-items: center;
     justify-content: center;
     flex-shrink: 0;
     font-size: 18px;
}
 html[data-page="portal_styleguide"] .sg-chat-rail .avatar--ai {
     background: linear-gradient( 135deg, var(--accent-teal), var(--accent-teal-600) );
     color: #fff;
     box-shadow: 0 4px 14px rgba(26, 107, 255, 0.25);
}
 html[data-page="portal_styleguide"] .sg-chat-rail .bubble {
     padding: var(--s4) var(--s5);
     border-radius: var(--r-lg);
     font-size: var(--fs-sm);
     line-height: 1.75;
     max-width: 100%;
     border: 1px solid transparent;
}
 html[data-page="portal_styleguide"] .sg-chat-rail .bubble--ai {
     background: var(--card);
     color: var(--text);
     border-color: var(--border);
     border-top-left-radius: var(--r-xs);
}
 html[data-page="portal_styleguide"] .sg-chat-rail .bubble--user {
     background: linear-gradient(135deg, var(--brand), var(--brand-600));
     color: #fff;
     border-top-right-radius: var(--r-xs);
     display: inline-block;
     box-shadow: 0 4px 14px rgba(26, 107, 255, 0.2);
}
 html[data-page="portal_styleguide"] .sg-chat-rail .bubble--user strong {
     color: #fff;
}
 html[data-page="portal_styleguide"] .sg-chat-rail .typing {
     border: 1px solid var(--border);
     background: var(--card);
}
 html[data-page="portal_styleguide"] .sg-chat-rail--civil .avatar--ai {
     background: linear-gradient(145deg, #2563eb, #1d4ed8);
     color: #fff;
     border: 1px solid rgba(255, 255, 255, 0.25);
     box-shadow: 0 4px 16px rgba(26, 107, 255, 0.35);
}
 html[data-page="portal_styleguide"] .sg-chat-rail--civil .bubble--ai {
     background: linear-gradient(180deg, var(--accent-purple-50), #f8fafc);
     border-color: var(--accent-purple-200);
     color: var(--text);
     border-top-left-radius: var(--r-xs);
}
 html[data-page="portal_styleguide"] .sg-chat-rail--civil .bubble--user {
     background: linear-gradient(135deg, #3b82f6, #2563eb);
     color: #fff;
     border-top-right-radius: var(--r-xs);
     box-shadow: 0 4px 14px rgba(26, 107, 255, 0.2);
}
 html[data-page="portal_styleguide"] .sg-chat-rail--civil .bubble--user strong {
     color: #fff;
}
 html[data-page="portal_styleguide"] .sg-chat-rail--civil .typing {
     background: linear-gradient(180deg, var(--accent-purple-50), #f1f5f9);
     border: 1px solid var(--accent-purple-200);
     border-radius: var(--r-lg);
     border-top-left-radius: var(--r-xs);
}
 html[data-page="portal_styleguide"] .sg-chat-rail--civil .typing span {
     background: var(--accent-purple-600);
     opacity: 0.55;
}
 html[data-page="portal_styleguide"] .sg-mfds-toast-preview {
     display: flex;
     align-items: flex-start;
     gap: 12px;
     background: #fff;
     border: 1px solid #bfdbfe;
     border-left: 4px solid #1a6bff;
     padding: 14px 18px;
     border-radius: 12px;
     box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
     font-size: 13.5px;
     color: #0f172a;
     max-width: 360px;
}
 html[data-page="portal_styleguide"] .sg-mfds-toast-preview .icon {
     font-family: var(--font-icon);
     font-size: 20px;
     color: #1a6bff;
     font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
     flex-shrink: 0;
     margin-top: 1px;
}
 html[data-page="portal_styleguide"] .sg-mfds-toast-preview strong {
     display: block;
     font-weight: 700;
     margin-bottom: 2px;
     color: #0f172a;
}
 html[data-page="portal_styleguide"] .sg-mfds-toast-preview span.sub {
     color: #64748b;
     font-size: 12px;
     line-height: 1.45;
     display: block;
}
 html[data-page="portal_styleguide"] .sg-mfds-toast-preview--info {
     border-color: #bfdbfe;
     border-left-color: #1a6bff;
}
 html[data-page="portal_styleguide"] .sg-mfds-toast-preview--info .icon {
     color: #1a6bff;
}
 html[data-page="portal_styleguide"] .sg-mfds-toast-preview--warn {
     border-color: #fde68a;
     border-left-color: #f59e0b;
}
 html[data-page="portal_styleguide"] .sg-mfds-toast-preview--warn .icon {
     color: #f59e0b;
}
 html[data-page="portal_styleguide"] .sg-toast-demo-row {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s3);
     align-items: center;
     margin-top: var(--s4);
}
 html[data-page="portal_styleguide"] .sg-patterns-grid {
     display: grid;
     grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
     gap: var(--s4);
}
 html[data-page="portal_styleguide"] .sg-chat-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
     gap: var(--s6);
     align-items: start;
}
 html[data-page="portal_styleguide"] .sg-hero-preview {
     padding: var(--s6) var(--s5);
     border-radius: var(--r-lg);
     background: linear-gradient(145deg, #0f2744 0%, #1d4ed8 48%, #1a6bff 100%);
     border: 1px solid var(--border-strong);
}
 html[data-page="portal_styleguide"] .sg-hero-preview__label {
     font-size: var(--fs-2xs);
     font-weight: 700;
     color: rgba(255, 255, 255, 0.78);
     letter-spacing: 0.08em;
     text-transform: uppercase;
     margin: 0 0 var(--s2);
}
 html[data-page="portal_styleguide"] .sg-chat-shell {
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     overflow: hidden;
     background: linear-gradient(165deg, #eef2f7 0%, #f8fafc 100%);
     max-width: 100%;
}
 html[data-page="portal_styleguide"] .sg-chat-shell__inner {
     display: flex;
     flex-direction: column;
     min-height: min(380px, 58vh);
     max-height: min(520px, 72vh);
}
 html[data-page="portal_styleguide"] .sg-chat-shell__inner .chat-head {
     flex-shrink: 0;
}
 html[data-page="portal_styleguide"] .sg-chat-shell__inner .chat-area {
     flex: 1;
     min-height: 0;
     display: flex;
     flex-direction: column;
}
 html[data-page="portal_styleguide"] .sg-chat-shell__inner .chat-grid {
     flex: 1;
     min-height: 0;
     align-items: start;
     align-content: start;
}
 html[data-page="portal_styleguide"] .sg-chat-shell__inner .chat-grid > .chat-wrap {
     align-self: stretch;
     min-height: 0;
}
 html[data-page="portal_styleguide"] .sg-chat-shell__inner .chat-grid > .chat-aside-acc {
     align-self: start;
}
 html[data-page="portal_styleguide"] .ds-demo-note__p {
     margin: 0;
}
 html[data-page="portal_styleguide"] .ds-demo-note__p strong {
     display: inline;
     margin-bottom: 0;
     font-weight: 700;
     color: var(--text);
}
 html[data-page="portal_styleguide"] .ds-demo-note__p > strong:first-child {
     font-weight: 800;
}
 html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list {
     table-layout: fixed;
     width: 100%;
}
 html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list th:nth-child(1), html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list td:nth-child(1) {
     width: 5%;
}
 html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list th:nth-child(2), html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list td:nth-child(2) {
     width: 10%;
}
 html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list th:nth-child(3), html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list td:nth-child(3) {
     width: 44%;
     white-space: normal;
     text-align: left;
     vertical-align: middle;
}
 html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list th:nth-child(3) {
     text-align: center;
}
 html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list th:nth-child(4), html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list td:nth-child(4) {
     width: 12%;
}
 html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list th:nth-child(5), html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list td:nth-child(5) {
     width: 14%;
}
 html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list th:nth-child(6), html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list td:nth-child(6) {
     width: 15%;
}
 html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list th:nth-child(6) {
     white-space: nowrap;
}
 html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list td:nth-child(3) {
     overflow-wrap: anywhere;
     word-break: break-word;
}
 html[data-page="portal_styleguide"] .sg-verify-table-wrap table.u-table-list .chip {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 0;
     box-sizing: border-box;
     padding: 2px 7px;
     min-height: 0;
     font-size: 10px;
     font-weight: 700;
     line-height: 1.25;
     letter-spacing: -0.01em;
     white-space: nowrap;
     width: max-content;
     max-width: 100%;
     flex-shrink: 0;
     cursor: inherit;
     border-radius: 999px;
}
 html[data-page="portal_styleguide"] .sg-verify-table-wrap table .chip--ok {
     background: var(--ok-bg, #dcfce7);
     color: var(--ok-ink, #166534);
     border: 1px solid rgba(34, 197, 94, 0.32);
}
 html[data-page="portal_styleguide"] .sg-verify-table-wrap table .chip--bad {
     background: #fee2e2;
     color: #b91c1c;
     border: 1px solid rgba(248, 113, 113, 0.35);
}
 html[data-page="portal_styleguide"] .sg-verify-table-wrap table .chip--neutral {
     background: #f1f5f9;
     color: #334155;
     border: 1px solid var(--border, #e2e8f0);
}
 .theme-row {
     display: flex;
     gap: var(--s2);
     margin-bottom: var(--s5);
     flex-wrap: wrap;
}
 .theme-btn {
     padding: 8px 16px;
     border-radius: var(--r-pill);
     border: 1px solid var(--border);
     background: var(--card);
     font-size: var(--fs-sm);
     font-weight: 600;
     color: var(--text-2);
     cursor: pointer;
     display: inline-flex;
     align-items: center;
     gap: var(--s2);
     transition: all var(--d-base);
}
 .theme-btn::before {
     content: "";
     width: 12px;
     height: 12px;
     border-radius: 50%;
     background: var(--brand);
}
 .theme-btn[aria-pressed="true"] {
     border-color: var(--accent);
     color: var(--accent);
     background: var(--accent-bg);
}
 .g2 {
     display: grid;
     grid-template-columns: repeat(2, 1fr);
     gap: var(--s4);
}
 .g3 {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: var(--s4);
}
 @media (max-width: 700px) {
     .g2, .g3 {
         grid-template-columns: 1fr;
    }
}
 .rd {
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: var(--s2);
     padding: var(--s3);
}
 .rd__box {
     width: 64px;
     height: 64px;
     background: linear-gradient(135deg, var(--accent), var(--accent-600));
}
 .sh-box {
     width: 120px;
     height: 80px;
     background: var(--card);
     border-radius: var(--r-md);
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: var(--fs-xs);
     color: var(--muted);
     font-family: var(--font-mono);
}
 .iconset {
     display: grid;
     grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
     gap: var(--s3);
}
 .iconset__item {
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: var(--s2);
     padding: var(--s3);
     background: var(--bg-alt);
     border-radius: var(--r-sm);
}
 .iconset__item .icon {
     font-size: 26px;
     color: var(--accent);
}
 .iconset__item span:last-child {
     font-size: var(--fs-2xs);
     color: var(--muted);
     font-family: var(--font-mono);
}
 .footer {
     background: var(--card);
     border-top: 1px solid var(--border);
     padding: 32px var(--container-px) 24px;
}
 .footer__top {
     max-width: var(--container);
     margin: 0 auto;
     display: flex;
     justify-content: space-between;
     padding-bottom: 20px;
     border-bottom: 1px solid var(--divider);
     gap: var(--s6);
     flex-wrap: wrap;
}
 .footer__links {
     display: flex;
     gap: var(--s5);
}
 .footer__links a {
     font-size: var(--fs-xs);
     color: var(--muted);
}
 .footer__links a:hover {
     color: var(--brand);
}
 .footer__copy {
     max-width: var(--container);
     margin: 0 auto;
     font-size: var(--fs-xs);
     color: var(--dim);
     display: flex;
     justify-content: space-between;
}
 .login-body {
     --auth-portal-900: #003e89;
     --auth-portal-700: #0051c3;
     --auth-portal-500: #1a6bff;
     --auth-gun-950: #050c16;
     --auth-gun-900: #0a1628;
     --auth-gun-800: #0f2744;
     --auth-gun-700: #153a5c;
     --auth-gun-600: #1d4ed8;
     --auth-gun-500: #2563eb;
     --auth-gun-300: #93c5fd;
     min-height: 100vh;
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: center;
     padding: var(--s5) var(--s4);
     background: var(--bg);
     position: relative;
}
 .login-bg {
     position: fixed;
     inset: 0;
     background: radial-gradient( ellipse 80% 50% at 50% -20%, rgba(26, 107, 255, 0.12), transparent 55% ), var(--bg);
     pointer-events: none;
}
 .login-wrap {
     position: relative;
     width: 100%;
     max-width: 800px;
     z-index: 1;
}
 .login-mode {
     display: flex;
     justify-content: center;
     gap: var(--s2);
     margin-bottom: var(--s4);
}
 .login-mode__btn {
     padding: 8px 16px;
     border-radius: var(--r-pill);
     font-size: var(--fs-sm);
     font-weight: 600;
     color: var(--muted);
     background: var(--card);
     border: 1px solid var(--border);
     cursor: pointer;
     transition: background var(--d-base), color var(--d-base), border-color var(--d-base);
}
 .login-mode__btn[aria-selected="true"] {
     color: #fff;
     background: linear-gradient( 135deg, var(--auth-portal-700), var(--auth-portal-500) );
     border-color: transparent;
     box-shadow: 0 4px 16px rgba(0, 62, 137, 0.28);
}
 .login-body[data-login-tab="review"] .login-mode__btn[aria-selected="true"] {
     background: linear-gradient(135deg, var(--auth-gun-800), var(--auth-gun-600));
     box-shadow: 0 4px 16px rgba(5, 10, 20, 0.28);
}
 .login-card {
     display: flex;
     overflow: hidden;
     border-radius: var(--r-lg);
     background: var(--card);
     box-shadow: var(--sh-3);
     min-height: 0;
     align-items: stretch;
}
 .login-card[hidden] {
     display: none !important;
}
 .login-brand {
     flex: 1 1 42%;
     min-width: 0;
     max-width: 340px;
     padding: var(--s8) var(--s6);
     display: flex;
     flex-direction: column;
     justify-content: space-between;
     color: #fff;
     position: relative;
}
 .login-brand--portal {
     background: linear-gradient( 145deg, var(--auth-portal-900) 0%, var(--auth-portal-700) 45%, var(--auth-portal-500) 100% );
     background-size: cover;
     justify-content: space-between;
}
 .login-brand--portal::before {
     content: "";
     position: absolute;
     inset: 0;
     pointer-events: none;
     border-radius: inherit;
     background-image: linear-gradient( 180deg, rgba(0, 30, 80, 0.25) 0%, rgba(0, 20, 60, 0.55) 100% ), repeating-linear-gradient( -12deg, transparent, transparent 8px, rgba(255, 255, 255, 0.03) 8px, rgba(255, 255, 255, 0.03) 9px );
     background-position: 0 0, 0 0;
     animation: login-brand-portal-grid 52s linear infinite;
}
 .login-brand--portal .login-brand__inner {
     justify-content: space-between;
     gap: var(--s5);
}
 .login-brand--portal .login-brand__headline {
     margin-bottom: 0;
}
 .login-brand--portal .login-shield {
     background: rgba(0, 35, 90, 0.42);
     border-color: rgba(255, 255, 255, 0.16);
}
 .login-brand--portal .login-status__bar em {
     color: #e0f2fe;
}
 .login-brand--portal .login-status__track {
     background: rgba(0, 25, 70, 0.4);
}
 .login-brand--portal .login-status__fill {
     background: linear-gradient(90deg, rgba(255, 255, 255, 0.55), #fff);
}
 .login-brand--reviewer, .login-brand--dark {
     background: linear-gradient( 152deg, var(--auth-gun-950) 0%, var(--auth-gun-900) 36%, var(--auth-gun-700) 70%, var(--auth-gun-800) 100% );
}
 .login-brand--reviewer::before, .login-brand--dark::before {
     content: "";
     position: absolute;
     inset: 0;
     pointer-events: none;
     border-radius: inherit;
     background-image: radial-gradient( ellipse 100% 70% at 100% 0%, rgba(100, 140, 210, 0.14), transparent 52% ), radial-gradient( circle at 14% 24%, rgba(255, 255, 255, 0.07), transparent 44% ), linear-gradient(180deg, rgba(0, 0, 0, 0.14) 0%, transparent 42%), repeating-linear-gradient( -14deg, transparent, transparent 9px, rgba(255, 255, 255, 0.028) 9px, rgba(255, 255, 255, 0.028) 10px );
     background-position: 0 0, 0 0, 0 0, 0 0;
     animation: login-brand-review-grid 58s linear infinite;
}
 .login-brand__inner {
     position: relative;
     z-index: 1;
     display: flex;
     flex-direction: column;
     gap: var(--s5);
     height: 100%;
}
 .login-brand__logo {
     display: flex;
     align-items: center;
     gap: var(--s2);
     font-weight: 700;
     font-size: var(--fs-sm);
     letter-spacing: -0.3px;
}
 .login-brand__logo .icon {
     font-size: 24px;
}
 .login-brand__logo:has(.login-brand__logo-img) {
     gap: 0;
}
 .login-brand__logo--stack {
     flex-direction: column;
     align-items: flex-start;
     gap: var(--s2);
}
 .login-brand__hero-line {
     font-size: clamp(22px, 2.5vw, 26px);
     line-height: 1.3;
     font-weight: 800;
     letter-spacing: var(--tracking-tight);
}
 .login-brand__suben {
     font-size: var(--fs-sm);
     font-weight: 500;
     line-height: 1.45;
     opacity: 0.78;
     max-width: none;
}
 .login-brand__headline {
     font-size: clamp(20px, 2.4vw, 26px);
     font-weight: 800;
     line-height: 1.28;
     letter-spacing: var(--tracking-tight);
}
 .login-brand__headline + .login-brand__suben {
     margin-top: var(--s2);
}
 .login-brand__desc {
     font-size: var(--fs-xs);
     line-height: 1.6;
     opacity: 0.9;
     max-width: 32ch;
}
 .login-brand__proof {
     display: flex;
     align-items: center;
     gap: var(--s3);
     font-size: var(--fs-xs);
     opacity: 0.88;
}
 .login-avatars {
     display: flex;
}
 .login-avatars span {
     width: 32px;
     height: 32px;
     border-radius: 50%;
     border: 2px solid rgba(255, 255, 255, 0.9);
     margin-left: -8px;
     background: linear-gradient(135deg, #94a3b8, #64748b);
     box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
 .login-avatars span:first-child {
     margin-left: 0;
}
 .login-shield {
     display: flex;
     gap: var(--s3);
     align-items: flex-start;
     padding: var(--s4);
     background: rgba(0, 0, 0, 0.22);
     border-radius: var(--r-md);
     border: 1px solid rgba(255, 255, 255, 0.08);
}
 .login-shield .icon {
     font-size: 28px;
     opacity: 0.95;
}
 .login-shield p {
     font-size: var(--fs-xs);
     line-height: 1.55;
}
 .login-shield strong {
     display: block;
     font-size: var(--fs-sm);
     margin-bottom: var(--s2);
}
 @keyframes login-brand-portal-grid {
     to {
         background-position: 0 0, 20px 16px;
    }
}
 @keyframes login-brand-review-grid {
     to {
         background-position: 0 0, 0 0, 0 0, 18px 14px;
    }
}
 @keyframes login-status-fill-reveal {
     from {
         transform: scaleX(0.06);
         opacity: 0.55;
    }
     to {
         transform: scaleX(1);
         opacity: 1;
    }
}
 @keyframes login-status-shimmer {
     0% {
         transform: translateX(-120%);
         opacity: 0;
    }
     10% {
         opacity: 1;
    }
     38% {
         transform: translateX(120%);
         opacity: 0.75;
    }
     50%, 100% {
         transform: translateX(120%);
         opacity: 0;
    }
}
 @keyframes login-status-em-glow {
     0%, 100% {
         opacity: 1;
         filter: brightness(1);
    }
     50% {
         opacity: 0.9;
         filter: brightness(1.12);
    }
}
 .login-status {
     margin-top: auto;
     padding-top: var(--s4);
}
 .login-status__bar {
     display: flex;
     justify-content: space-between;
     align-items: center;
     font-size: 10px;
     letter-spacing: 0.12em;
     text-transform: uppercase;
     opacity: 0.75;
     margin-bottom: var(--s2);
}
 .login-status__bar em {
     font-style: normal;
     color: var(--brand);
     font-weight: 700;
     letter-spacing: 0.05em;
     animation: login-status-em-glow 2.8s ease-in-out infinite;
}
 .login-brand--reviewer .login-status__bar em {
     color: var(--auth-gun-300);
}
 .login-status__track {
     height: 3px;
     background: rgba(255, 255, 255, 0.15);
     border-radius: var(--r-pill);
     overflow: hidden;
}
 .login-status__fill {
     height: 100%;
     width: 62%;
     position: relative;
     overflow: hidden;
     border-radius: inherit;
     background: linear-gradient(90deg, rgba(255, 255, 255, 0.5), #fff);
     transform-origin: left center;
     animation: login-status-fill-reveal 1.05s cubic-bezier(0.18, 0.85, 0.22, 1) forwards;
}
 .login-status__fill::after {
     content: "";
     position: absolute;
     inset: 0 -35% 0 -35%;
     background: linear-gradient( 100deg, transparent 38%, rgba(255, 255, 255, 0.55) 50%, transparent 62% );
     transform: translateX(-100%);
     animation: login-status-shimmer 3.4s ease-in-out infinite;
     animation-delay: 0.85s;
     pointer-events: none;
}
 @media (prefers-reduced-motion: reduce) {
     .login-brand--portal::before, .login-brand--reviewer::before, .login-brand--dark::before {
         animation: none;
    }
     .login-brand--portal::before {
         background-position: 0 0, 0 0;
    }
     .login-brand--reviewer::before, .login-brand--dark::before {
         background-position: 0 0, 0 0, 0 0, 0 0;
    }
     .login-status__bar em {
         animation: none;
    }
     .login-status__fill {
         animation: none;
         transform: none;
         opacity: 1;
    }
     .login-status__fill::after {
         display: none;
    }
}
 .login-panel {
     flex: 1 1 58%;
     min-width: 0;
     padding: var(--s8) var(--s6) var(--s6);
     display: flex;
     flex-direction: column;
     justify-content: center;
     background: #fff;
}
 .login-panel__eyebrow {
     font-size: var(--fs-2xs);
     color: var(--muted);
     text-transform: uppercase;
     letter-spacing: 0.08em;
     font-weight: 600;
     margin-bottom: var(--s1);
}
 .login-panel__title {
     font-size: clamp(20px, 2.5vw, 24px);
     font-weight: 800;
     letter-spacing: var(--tracking-tight);
     color: var(--text);
     margin-bottom: var(--s1);
}
 .login-panel__sub {
     font-size: var(--fs-sm);
     color: var(--muted);
     margin-bottom: var(--s6);
     line-height: 1.55;
}
 .login-field {
     margin-bottom: var(--s4);
}
 .login-field__error {
     margin-top: 6px;
     font-size: var(--fs-xs);
     color: #b91c1c;
     line-height: 1.45;
     font-weight: 500;
}
 .login-field label {
     display: block;
     font-size: var(--fs-xs);
     color: var(--muted);
     font-weight: 600;
     text-transform: uppercase;
     letter-spacing: 0.06em;
     margin-bottom: var(--s2);
}
 .login-input-wrap {
     display: flex;
     align-items: center;
     gap: var(--s3);
     border-bottom: 1px solid var(--border-strong);
     padding-bottom: var(--s2);
     transition: border-color var(--d-base);
}
 .login-input-wrap:focus-within {
     border-bottom-color: var(--brand);
}
 .login-input-wrap.is-invalid {
     border-bottom-color: #e11d48;
}
 .login-input-wrap.is-invalid:focus-within {
     border-bottom-color: #e11d48;
}
 .login-input-wrap .icon {
     color: var(--muted);
     font-size: 22px;
}
 .login-input-wrap input {
     flex: 1;
     border: none;
     background: transparent;
     font: inherit;
     font-size: var(--fs-body);
     color: var(--text);
     outline: none;
     min-width: 0;
}
 .login-input-wrap input::placeholder {
     color: var(--dim);
}
 .login-input-wrap--has-toggle {
     gap: var(--s2);
}
 .login-pw-toggle {
     flex-shrink: 0;
     display: inline-flex;
     align-items: center;
     justify-content: center;
     width: 40px;
     height: 40px;
     margin: -6px -6px -6px 0;
     padding: 0;
     border: none;
     background: transparent;
     cursor: pointer;
     border-radius: var(--r-sm);
     color: var(--muted);
     transition: color var(--d-base), background var(--d-base);
}
 .login-pw-toggle:hover {
     color: var(--brand);
     background: var(--brand-50);
}
 .login-pw-toggle:focus-visible {
     outline: 2px solid var(--focus);
     outline-offset: 2px;
}
 .login-pw-toggle .icon {
     font-size: 22px;
}
 .login-panel--review .login-pw-toggle:hover {
     color: var(--auth-gun-600);
     background: rgba(29, 78, 216, 0.08);
}
 .login-row {
     display: flex;
     align-items: center;
     justify-content: space-between;
     gap: var(--s4);
     flex-wrap: wrap;
     margin-bottom: var(--s4);
     font-size: var(--fs-sm);
}
 .login-row label {
     display: flex;
     align-items: center;
     gap: var(--s2);
     cursor: pointer;
     color: var(--text-2);
     font-weight: 500;
}
 .login-row a {
     color: var(--muted);
     font-size: var(--fs-sm);
}
 .login-row a:hover {
     color: var(--brand);
}
 .login-submit {
     width: 100%;
     padding: 12px var(--s5);
     border-radius: var(--r-md);
     background: linear-gradient( 135deg, var(--auth-portal-900), var(--auth-portal-700) );
     color: #fff;
     font-weight: 700;
     font-size: var(--fs-sm);
     border: none;
     cursor: pointer;
     box-shadow: 0 6px 18px rgba(0, 62, 137, 0.24);
     transition: transform var(--d-fast), box-shadow var(--d-base);
}
 .login-submit:hover {
     transform: translateY(-1px);
     box-shadow: 0 10px 28px rgba(0, 62, 137, 0.35);
}
 .login-panel--review .login-submit {
     background: linear-gradient(135deg, var(--auth-gun-900), var(--auth-gun-600));
     box-shadow: 0 6px 18px rgba(5, 12, 28, 0.38);
}
 .login-panel--review .login-submit:hover {
     box-shadow: 0 10px 26px rgba(5, 12, 28, 0.5);
}
 .login-panel--review .login-input-wrap:focus-within {
     border-bottom-color: var(--auth-gun-300);
}
 .login-panel--review .login-notice .icon {
     color: var(--auth-gun-600);
}
 .login-links {
     display: flex;
     align-items: center;
     justify-content: center;
     gap: var(--s3);
     flex-wrap: wrap;
     margin-top: var(--s5);
     font-size: var(--fs-sm);
     color: var(--muted);
}
 .login-links a {
     color: var(--muted);
}
 .login-links a:hover {
     color: var(--brand);
}
 .login-links .sep {
     color: var(--border-strong);
     user-select: none;
     display: inline-flex;
     align-items: center;
     vertical-align: middle;
     padding: 0 2px;
}
 .login-links .sep .icon {
     font-size: 8px;
     opacity: 0.45;
     line-height: 1;
}
 .login-links strong {
     font-weight: 700;
     color: var(--text);
}
 .login-notice {
     margin-top: var(--s6);
     display: flex;
     gap: var(--s3);
     font-size: var(--fs-xs);
     color: var(--muted);
     line-height: 1.55;
}
 .login-notice .icon {
     flex-shrink: 0;
     font-size: 18px;
     color: var(--brand);
}
 .login-foot {
     margin-top: var(--s5);
     text-align: center;
     font-size: calc(var(--fs-xs, 12px) * 0.95);
     color: var(--dim);
     max-width: 42em;
     margin-inline: auto;
     line-height: 1.45;
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 4px;
}
 .login-foot__line {
     display: block;
}
 .login-back {
     display: inline-flex;
     align-items: center;
     gap: var(--s2);
     margin-bottom: var(--s4);
     font-size: var(--fs-sm);
     color: var(--muted);
     font-weight: 600;
}
 .login-back:hover {
     color: var(--brand);
}
 html[data-page="portal_login"] .login-wrap > .login-top-row {
     position: relative;
     z-index: 2;
}
 html[data-page="portal_login"] .login-top-row .login-back {
     flex-shrink: 0;
     width: auto;
     max-width: none;
}
 html[data-page="portal_login"] .login-mode-bar {
     display: flex;
     align-items: center;
     justify-content: flex-end;
     flex: 0 0 auto;
     margin-left: auto;
     min-width: 0;
}
 html[data-page="portal_login"] .login-mode-bar .login-mode {
     margin-bottom: 0;
     justify-content: flex-end;
     flex: 0 1 auto;
}
 @media (max-width: 820px) {
     .login-card {
         flex-direction: column;
         min-height: 0;
    }
     .login-brand {
         max-width: none;
         min-height: 220px;
         padding: var(--s6) var(--s5);
    }
     .login-panel {
         padding: var(--s6) var(--s5);
    }
}
 .sv-section {
     padding-top: var(--s6);
}
 .sv-layout {
     display: grid;
     grid-template-columns: minmax(calc(220px * 1.1), calc(280px * 1.1)) 1fr;
     gap: var(--s8);
     align-items: start;
}
 @media (max-width: 900px) {
     .sv-layout {
         grid-template-columns: 1fr;
    }
}
 .sv-main {
     min-width: 0;
}
 .sv-proc {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     padding: var(--s6);
     box-shadow: var(--sh-1);
     position: sticky;
     top: calc(var(--gnb) + 16px);
}
 @media (max-width: 900px) {
     .sv-proc {
         position: static;
         top: auto;
    }
}
 .sv-proc__title {
     font-size: calc(var(--fs-h4) * 0.9 * 1.1);
     font-weight: 800;
     margin-bottom: var(--s4);
     color: var(--text);
}
 .sv-proc__list {
     list-style: none;
     margin: 0;
     padding: 0;
     display: flex;
     flex-direction: column;
     gap: var(--s4);
     counter-reset: pv;
}
 .sv-proc__list li {
     display: flex;
     gap: var(--s3);
     font-size: calc(var(--fs-sm) * 0.9 * 1.1);
     color: var(--text-2);
     line-height: 1.55;
}
 .sv-proc__num {
     flex-shrink: 0;
     width: calc(24px * 1.1);
     height: calc(24px * 1.1);
     border-radius: 50%;
     background: var(--brand-50);
     color: var(--brand);
     font-weight: 800;
     font-size: calc(var(--fs-xs) * 0.9 * 1.1);
     display: flex;
     align-items: center;
     justify-content: center;
}
 .sv-proc__note {
     margin-top: var(--s5);
     padding-top: var(--s4);
     border-top: 1px solid var(--divider);
     font-size: calc(var(--fs-xs) * 0.9 * 1.1);
     color: var(--muted);
     line-height: 1.55;
}
 .sv-proc__note a {
     color: var(--brand);
     font-weight: 600;
}
 .sv-proc__foot {
     margin-top: var(--s5);
     padding-top: var(--s4);
     border-top: 1px solid var(--divider);
}
 .sv-proc__foot .btn {
     width: 100%;
     justify-content: center;
     box-sizing: border-box;
}
 .sv-proc-acc {
     margin: 0;
     padding: 0;
     border: 0;
     background: transparent;
}
 .sv-proc-acc__summary {
     display: none;
     list-style: none;
     align-items: center;
     justify-content: space-between;
     gap: var(--s3);
     cursor: pointer;
     font-size: calc(var(--fs-h4) * 0.95);
     font-weight: 800;
     color: var(--text);
     padding: var(--s2) 0 var(--s3);
     user-select: none;
     -webkit-tap-highlight-color: transparent;
}
 .sv-proc-acc__summary::-webkit-details-marker {
     display: none;
}
 .sv-proc-acc__summary::marker {
     content: "";
}
 .sv-proc-acc__summary-text {
     flex: 1;
     min-width: 0;
     text-align: left;
}
 .sv-proc-acc__chev {
     flex-shrink: 0;
     font-size: 22px;
     color: var(--muted);
     transition: transform 0.22s var(--ease, cubic-bezier(0.22, 1, 0.36, 1)), color var(--d-base);
}
 .sv-proc-acc[open] .sv-proc-acc__chev {
     transform: rotate(180deg);
     color: var(--brand);
}
 .sv-proc-acc__summary:focus-visible {
     outline: 2px solid var(--focus);
     outline-offset: 3px;
     border-radius: var(--r-sm);
}
 .sv-proc-acc__panel {
     padding: 0;
}
 @media (max-width: 900px) {
     .sv-proc-acc__summary {
         display: flex;
    }
     .sv-proc-acc__panel {
         padding-top: var(--s4);
         margin-top: var(--s1);
         border-top: 1px solid var(--divider);
    }
     .sv-proc-acc .sv-proc__title {
         position: absolute;
         width: 1px;
         height: 1px;
         padding: 0;
         margin: -1px;
         overflow: hidden;
         clip-path: inset(50%);
         white-space: nowrap;
         border: 0;
    }
}
 @media (min-width: 901px) {
     .sv-proc-acc__summary {
         display: none !important;
    }
     .sv-proc-acc__panel {
         padding-top: 0;
         margin-top: 0;
         border-top: 0;
    }
}
 .radio-card__ver {
     display: block;
     font-size: var(--fs-2xs);
     color: var(--brand);
     font-weight: 700;
     margin-top: auto;
     align-self: flex-end;
     text-align: right;
     width: fit-content;
     max-width: 100%;
     line-height: 1.35;
     white-space: nowrap;
}
 .guide-steps {
     margin: 0;
     padding-left: var(--s6);
     line-height: 1.75;
     font-size: var(--fs-sm);
     color: var(--text-2);
}
 .guide-steps li {
     margin-bottom: var(--s3);
}
 .guide-steps a {
     color: var(--brand);
     font-weight: 600;
}
 .modal-footnote {
     font-size: var(--fs-xs);
     color: var(--muted);
     margin-top: var(--s5);
     line-height: 1.6;
     padding: var(--s4);
     background: var(--bg-alt);
     border-radius: var(--r-md);
}
 .modal-footnote a {
     color: var(--brand);
     font-weight: 600;
}
 .modal-actions--center {
     justify-content: center;
}
 .res-warn {
     font-size: var(--fs-sm);
     color: #b91c1c;
     margin-top: var(--s4);
     padding: var(--s4);
     background: #fef2f2;
     border-radius: var(--r-md);
     line-height: 1.55;
}
 .verify-warn {
     font-size: var(--fs-sm);
     color: #b91c1c;
     margin: var(--s6) 0;
     padding: var(--s4);
     background: #fef2f2;
     border-radius: var(--r-md);
     line-height: 1.55;
}
.breadcrumb {
    font-size: var(--fs-sm);
    color: var(--muted);
    margin-bottom: var(--s4);
}
.breadcrumb a {
    color: var(--brand);
    font-weight: 600;
}
.breadcrumb span[aria-current="page"] {
    color: rgb(149, 180, 251) !important;
    font-weight: 700;
}
.breadcrumb span[aria-hidden="true"] {
    margin: 0 var(--s2);
    opacity: 0.5;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
}
.breadcrumb span[aria-hidden="true"] .icon {
    color: #fff;
    font-size: 14px;
    line-height: 1;
    opacity: 0.6;
}
 .u-flow-arrow {
     display: inline-flex;
     align-items: center;
     vertical-align: middle;
     margin: 0 1px;
     opacity: 0.55;
}
 .u-flow-arrow .icon {
     font-size: 15px;
     line-height: 1;
}
 .modal-footnote__mark {
     display: inline-flex;
     align-items: center;
     vertical-align: middle;
     margin-right: 6px;
     color: var(--muted);
}
 .modal-footnote__mark .icon {
     font-size: 16px;
     line-height: 1;
}
 .page-hero__badge .page-hero__badge-icon, .badge .page-hero__badge-icon {
     flex-shrink: 0;
     font-size: 15px;
     line-height: 1;
     text-transform: none;
     letter-spacing: 0;
     color: currentColor;
     opacity: 0.95;
}
 .page-kicker {
     font-size: var(--fs-xs);
     font-weight: 700;
     color: var(--brand);
     text-transform: uppercase;
     letter-spacing: 0.06em;
     margin-bottom: var(--s2);
}
 .tbl-sub {
     display: block;
     font-size: var(--fs-2xs);
     color: var(--muted);
     margin-top: 2px;
}
 .table-wrap table {
     font-size: var(--fs-sm);
}
 .table-wrap th, .table-wrap td {
     padding: 10px 15px;
     vertical-align: middle;
}
 .u-br-mobile {
     display: none;
}
 @media (max-width: 767px) {
     .u-br-mobile {
         display: block;
    }
}
 .nav__logo {
     display: block;
     height: 36px;
     width: auto;
     max-width: min(268px, 42vw);
     object-fit: contain;
}
 .footer__logo {
     display: block;
     height: 32px;
     width: auto;
     max-width: min(240px, 55vw);
     object-fit: contain;
     object-position: left center;
}
 .nav__logo-wrap {
     display: inline-flex;
     align-items: center;
     flex-shrink: 0;
     border-radius: 0;
     padding: 0;
     background: transparent;
}
 header.nav .nav__brand {
     min-width: 0;
}
 header.nav .nav__actions {
     flex-shrink: 0;
     gap: var(--s3);
}
 header.nav .nav__menu {
     flex: 1 1 0;
     min-width: 0;
     overflow-x: auto;
     overscroll-behavior-x: contain;
     -webkit-overflow-scrolling: touch;
     scrollbar-width: thin;
     flex-wrap: nowrap;
}
 header.nav .nav__menu::-webkit-scrollbar {
     height: 4px;
}
 header.nav .nav__menu::-webkit-scrollbar-thumb {
     background: rgba(148, 163, 184, 0.5);
     border-radius: 99px;
}
 html[data-page="portal_landing"] .nav, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .nav {
     position: fixed;
     top: 0;
     left: 0;
     right: 0;
     z-index: var(--z-sticky, 100);
     background: rgba(255, 255, 255, 1);
     border-bottom: 1px solid var(--border, #e2e8f0);
     -webkit-backdrop-filter: blur(16px);
     backdrop-filter: blur(16px);
}
 header.nav .nav__menu a {
     font-size: var(--nav-menu-fs, calc(14px * 1.1));
     font-weight: 700;
     letter-spacing: -0.015em;
     flex-shrink: 0;
     white-space: nowrap;
}
 header.nav .nav__menu a:not([aria-current="page"]) {
     color: var(--text, #0f172a);
}
 header.nav .nav__menu a[aria-current="page"] {
     font-weight: 800;
}
 html[data-page="portal_landing"] .hero {
     padding-top: max(clamp(40px, 7vh, 72px), calc(var(--gnb) + var(--s5)));
}
 @media (max-width: 767px) {
     header.nav:not([data-nav-drawer-init]) > .nav__menu {
         display: none !important;
    }
     header.nav {
         display: grid;
         grid-template-columns: 1fr auto;
         grid-template-areas: "brand actions";
         height: auto;
         min-height: var(--gnb);
         align-items: center;
         column-gap: var(--s3);
         row-gap: 0;
         padding-block: var(--s2);
         padding-inline: max(14px, var(--container-px));
    }
     header.nav .nav__brand {
         grid-area: brand;
         max-width: 100%;
    }
     header.nav .nav__actions {
         grid-area: actions;
         margin-left: 0;
         justify-self: end;
         display: flex;
         align-items: center;
         gap: var(--s2);
    }
     header.nav .nav__actions .js-nav-guide {
         display: none !important;
    }
     header.nav .nav__burger {
         display: inline-flex;
    }
     header.nav .nav__drawer {
         position: fixed;
         inset: 0;
         z-index: 920;
         pointer-events: none;
         visibility: hidden;
         transition: visibility 0s linear 0.32s;
    }
     header.nav.nav--drawer-open .nav__drawer {
         pointer-events: auto;
         visibility: visible;
         transition-delay: 0s;
    }
     header.nav .nav__drawer-backdrop {
         display: block;
         position: absolute;
         inset: 0;
         margin: 0;
         padding: 0;
         border: 0;
         background: rgba(15, 23, 42, 0.48);
         opacity: 0;
         transition: opacity 0.28s ease;
         cursor: pointer;
         -webkit-tap-highlight-color: transparent;
    }
     header.nav.nav--drawer-open .nav__drawer-backdrop {
         opacity: 1;
    }
     header.nav .nav__drawer-panel {
         display: block;
         position: absolute;
         left: 0;
         top: 0;
         bottom: 0;
         width: min(300px, 88vw);
         max-width: 100%;
         background: var(--card, #fff);
         box-shadow: 8px 0 36px rgba(15, 23, 42, 0.14);
         transform: translate3d(-100%, 0, 0);
         transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
         padding: var(--s6) var(--s4);
         overflow-y: auto;
         -webkit-overflow-scrolling: touch;
    }
     header.nav.nav--drawer-open .nav__drawer-panel {
         transform: translate3d(0, 0, 0);
    }
     header.nav .nav__drawer .nav__menu {
         display: flex;
         flex-direction: column;
         align-items: stretch;
         gap: var(--s2);
         margin: 0;
         width: 100%;
         max-width: none;
         overflow: visible;
         flex-wrap: nowrap;
         padding: 0;
    }
     header.nav .nav__drawer .nav__menu a {
         font-size: var(--nav-menu-fs, calc(14px * 1.1));
         padding: 12px 14px;
         white-space: normal;
         border-radius: var(--r-md);
    }
     .nav__logo {
         max-width: min(200px, 56vw);
         max-height: 40px;
         height: auto;
    }
     header.nav .nav__subtitle {
         max-width: 100%;
         overflow: hidden;
         text-overflow: ellipsis;
         white-space: nowrap;
    }
     html[data-page="portal_landing"] .hero {
         padding-top: max(clamp(48px, 10vh, 96px), 108px);
    }
}
 @media (min-width: 768px) {
     header.nav .nav__burger {
         display: none !important;
    }
     header.nav .nav__drawer {
         position: static;
         inset: auto;
         z-index: auto;
         pointer-events: auto;
         visibility: visible;
         flex: 1 1 0;
         min-width: 0;
         display: flex;
         align-items: center;
         transition: none;
    }
     header.nav .nav__drawer-backdrop {
         display: none !important;
    }
     header.nav .nav__drawer-panel {
         display: contents;
    }
     header.nav.nav--drawer-open .nav__drawer-panel {
         transform: none;
    }
}
 .nav__burger {
     display: none;
     align-items: center;
     justify-content: center;
     width: 44px;
     height: 44px;
     margin: 0;
     padding: 0;
     border: 1px solid var(--border, #e2e8f0);
     border-radius: var(--r-md);
     background: var(--card, #fff);
     color: var(--text-2, #334155);
     cursor: pointer;
     flex-shrink: 0;
     -webkit-tap-highlight-color: transparent;
     transition: background var(--d-base, 240ms) ease, color var(--d-base, 240ms) ease, border-color var(--d-base, 240ms) ease;
}
 .nav__burger:hover {
     background: var(--bg-alt, #f1f5f9);
     color: var(--text, #0f172a);
     border-color: var(--border-strong, #cbd5e1);
}
 .nav__burger:focus-visible {
     outline: 2px solid var(--focus, #3b82f6);
     outline-offset: 2px;
}
 .nav__burger .icon {
     font-size: 24px;
     line-height: 1;
}
 .nav__burger-label {
     position: absolute;
     width: 1px;
     height: 1px;
     padding: 0;
     margin: -1px;
     overflow: hidden;
     clip-path: inset(50%);
     white-space: nowrap;
     border: 0;
}
 @media (prefers-reduced-motion: reduce) {
     header.nav .nav__drawer, header.nav .nav__drawer-backdrop, header.nav .nav__drawer-panel {
         transition-duration: 0.01ms !important;
    }
}
 .nav__textlink {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 6px;
     padding: 6px 8px;
     font-family: var(--font);
     font-size: var(--fs-sm);
     font-weight: 600;
     line-height: 1.25;
     color: var(--text-2, #334155);
     text-decoration: none;
     border-radius: var(--r-sm);
     background: transparent;
     white-space: nowrap;
}
 .nav__textlink__icon {
     flex-shrink: 0;
     font-size: 18px;
     line-height: 1;
     opacity: 0.92;
}
 button.nav__textlink {
     font-family: var(--font);
     font-size: var(--fs-sm);
     font-weight: 600;
     line-height: 1.25;
     color: var(--text-2, #334155);
     border: 0;
     cursor: pointer;
     background: transparent;
     text-align: inherit;
}
 .nav__textlink:hover {
     color: var(--brand, #1a6bff);
     background: var(--brand-50, #eff6ff);
}
 .nav__textlink:focus-visible {
     outline: 2px solid var(--focus, #3b82f6);
     outline-offset: 2px;
}
 .nav__textlink--sub {
     font-weight: 500;
     color: var(--muted, #64748b);
}
 .nav__textlink--sub:hover {
     color: var(--text);
     background: var(--bg-alt, #f1f5f9);
}
 .login-brand__logo-frame {
     display: inline-flex;
     align-items: center;
     padding: 10px 14px;
     background: #fff;
     border-radius: var(--r-md);
     box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
}
 .login-brand__logo-img {
     display: block;
     height: 38px;
     width: auto;
     max-width: 100%;
     object-fit: contain;
}
 header.nav, .hero, .chip-strip, footer.footer {
     box-sizing: border-box;
     padding-inline: max( var(--container-px), calc((100vw - var(--container)) * 0.5) );
}
 html[data-page="portal_landing"] footer.footer, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) footer.footer {
     padding-top: var(--s8);
}
 .footer__gov {
     max-width: var(--container);
     margin: 0 auto;
     padding: var(--s2) 0 var(--s4) 0;
     font-size: var(--fs-xs);
     color: color-mix(in srgb, var(--muted) 70%, var(--text) 30%);
     line-height: 1.6;
}
 .footer__addr-row {
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
     gap: var(--s4) var(--s6);
     flex-wrap: wrap;
     margin-bottom: 0;
}
 .footer__addr {
     margin: 0;
     flex: 1 1 220px;
     min-width: 0;
     color: color-mix(in srgb, var(--text-2) 70%, var(--text) 30%);
     word-break: keep-all;
}
 .footer__gov .footer__links {
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     justify-content: flex-end;
     gap: var(--s3) var(--s5);
     margin: 0 0 0 auto;
     flex: 0 1 420px;
     max-width: 100%;
}
 .footer__gov .footer__links a {
     color: color-mix(in srgb, var(--muted) 70%, var(--text) 30%);
     transition: color var(--d-base) var(--ease);
}
 .footer__gov .footer__links a:hover {
     color: var(--brand);
}
 footer.footer .footer__copy {
     color: color-mix(in srgb, var(--dim) 70%, var(--text) 30%);
}
 .footer__phones {
     margin: 0;
     word-break: keep-all;
}
 .footer__sep {
     margin: 0 var(--s2);
     color: color-mix(in srgb, var(--faint) 70%, var(--text-2) 30%);
}
 @media (max-width: 720px) {
     footer.footer {
         border-top: 1px solid var(--divider);
         padding-top: var(--s6);
         padding-bottom: max(var(--s6), env(safe-area-inset-bottom, 0px));
    }
     html[data-page="portal_landing"] footer.footer, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) footer.footer {
         padding-top: var(--s6);
    }
     .footer__addr-row {
         flex-direction: column;
         align-items: stretch;
         gap: var(--s3);
         margin-bottom: calc(var(--s3) * 0.7);
    }
     .footer__gov .footer__links {
         margin-left: 0;
         justify-content: flex-start;
         flex: 1 1 auto;
         max-width: 100%;
         flex-direction: column;
         flex-wrap: nowrap;
         align-items: stretch;
         gap: 0;
         width: 100%;
    }
     .footer__gov .footer__links a {
         padding: 10px 0;
         border-bottom: 1px solid var(--divider);
         font-size: var(--fs-xs);
         word-break: keep-all;
         line-height: 1.5;
         white-space: normal;
    }
     .footer__gov .footer__links a:last-child {
         border-bottom: 0;
    }
     .footer__copy {
         flex-direction: column;
         align-items: flex-start;
         gap: var(--s2);
         text-align: left;
    }
}
 .nav-guide-tip {
     position: fixed;
     z-index: 960;
     max-width: min(400px, calc(100vw - 24px));
     padding: 14px 16px;
     font-size: 13px;
     line-height: 1.55;
     color: var(--text, #0f172a);
     background: var(--card, #fff);
     border: 1px solid var(--border, #e2e8f0);
     border-radius: 12px;
     box-shadow: 0 12px 40px rgba(15, 23, 42, 0.12);
     white-space: pre-line;
     pointer-events: none;
     opacity: 0;
     transform: translateY(-2px);
     transition: opacity var(--d-base) var(--ease), transform var(--d-base) var(--ease-transform);
}
 .nav-guide-tip.is-open {
     opacity: 1;
     transform: translateY(0);
     pointer-events: auto;
}
 .login-top-row {
     display: flex;
     align-items: center;
     justify-content: space-between;
     gap: var(--s4);
     flex-wrap: wrap;
     margin-bottom: var(--s4);
     width: 100%;
}
 .login-top-row .login-back {
     margin-bottom: 0;
}
 .login-guide-btn {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     padding: 8px 14px;
     font-size: var(--fs-sm);
     font-weight: 600;
     color: var(--brand);
     background: var(--card, #fff);
     border: 1px solid var(--border);
     border-radius: var(--r-sm);
     cursor: pointer;
     transition: background var(--d-base), border-color var(--d-base);
}
 .login-guide-btn:hover {
     background: var(--brand-50, #eff6ff);
     border-color: var(--brand-200, #bfdbfe);
}
 :root {
     --font: "SUIT", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
     --ui-d: var(--d-base, 380ms);
     --ui-ease: var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
     --ui-d-transform: var(--d-slow, 560ms);
     --ui-ease-transform: var(--ease-transform, cubic-bezier(0.2, 0.75, 0.22, 1));
}
 .btn {
     transition-timing-function: var(--ui-ease);
}
 input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), textarea, select {
     transition: border-color var(--ui-d) var(--ui-ease), background-color var(--ui-d) var(--ui-ease), box-shadow var(--ui-d) var(--ui-ease);
}
 @media (hover: hover) and (prefers-reduced-motion: no-preference) {
     .nav__brand {
         transition: opacity var(--ui-d) var(--ui-ease), filter var(--ui-d) var(--ui-ease);
    }
     .nav__brand:hover {
         transform: none;
    }
     .nav__menu a {
         transition: color var(--ui-d) var(--ui-ease), background-color var(--ui-d) var(--ui-ease);
    }
     .nav__menu a:hover {
         transform: none;
    }
     header.nav .nav__actions .btn, header.nav .nav__actions a.btn, header.nav .nav__actions .nav__textlink {
         transition: background-color var(--ui-d) var(--ui-ease), border-color var(--ui-d) var(--ui-ease), color var(--ui-d) var(--ui-ease), box-shadow var(--ui-d) var(--ui-ease);
    }
     header.nav .nav__actions .btn:hover, header.nav .nav__actions a.btn:hover, header.nav .nav__actions .nav__textlink:hover {
         transform: none;
    }
     .footer__links a {
         transition: color var(--ui-d) var(--ui-ease);
    }
     .footer__links a:hover {
         transform: none;
    }
     .breadcrumb a {
         transition: color var(--ui-d) var(--ui-ease), opacity var(--ui-d) var(--ui-ease);
    }
     .breadcrumb a:hover {
         opacity: 0.88;
    }
     .dataset {
         transition: transform var(--ui-d-transform) var(--ui-ease-transform), border-color var(--ui-d) var(--ui-ease), box-shadow var(--ui-d) var(--ui-ease);
    }
     .dataset:hover {
         transform: translateY(-1px);
    }
     .modal__close {
         transition: transform var(--ui-d-transform) var(--ui-ease-transform), background-color var(--ui-d) var(--ui-ease), color var(--ui-d) var(--ui-ease);
    }
     .modal__close:hover {
         transform: scale(1.03);
    }
     .login-back, .login-guide-btn, .login-mode__btn, .login-submit {
         transition: background-color var(--ui-d) var(--ui-ease), border-color var(--ui-d) var(--ui-ease), color var(--ui-d) var(--ui-ease), box-shadow var(--ui-d) var(--ui-ease);
    }
     .login-back:hover, .login-mode__btn:hover, .login-submit:hover {
         transform: none;
    }
     .link-card a {
         transition: color var(--ui-d) var(--ui-ease), transform var(--ui-d-transform) var(--ui-ease-transform), border-color var(--ui-d) var(--ui-ease);
    }
     .link-card a:hover {
         transform: translateX(1px);
    }
     .svc {
         transition: transform var(--ui-d-transform) var(--ui-ease-transform), border-color var(--ui-d) var(--ui-ease), box-shadow var(--ui-d) var(--ui-ease);
    }
     .ref-card {
         transition: transform var(--ui-d-transform) var(--ui-ease-transform), border-color var(--ui-d) var(--ui-ease), box-shadow var(--ui-d) var(--ui-ease);
    }
     .ref-card:hover {
         transform: translateY(-1px);
    }
     table tbody tr {
         transition: background-color var(--ui-d) var(--ui-ease), box-shadow var(--ui-d) var(--ui-ease);
    }
}
 @media (prefers-reduced-motion: reduce) {
     :root {
         --ui-d: 0.01ms;
    }
     .nav__brand:hover, .nav__menu a:hover, header.nav .nav__actions .btn:hover, header.nav .nav__actions a.btn:hover, header.nav .nav__actions .nav__textlink:hover, .footer__links a:hover, .dataset:hover, .modal__close:hover, .login-back:hover, .login-mode__btn:hover, .login-submit:hover, .link-card a:hover, .ref-card:hover, .ref-card:focus-within, .svc:hover, .feat:hover, html[data-page="portal_landing"] .svc:hover, html[data-page="portal_01_selfverify"] .radio-card:hover, html[data-page="portal_02_info_initial"] .topic:not(.is-active):hover, button.choice:hover, button.choice-chip:hover, button.cert:hover, html[data-page="portal_06_data"] .dataset:hover, html[data-page="portal_styleguide"] .svc:hover {
         transform: none !important;
    }
     .svc:hover .svc__icon, html[data-page="portal_landing"] .svc:hover .svc__icon, html[data-page="portal_styleguide"] .svc:hover .svc__icon, .radio-card:hover .radio-card__icon, button.cert:hover .cert__icon, .feat:hover .feat__icon, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:hover .landing2-tile__float .icon, :is(html[data-page="portal_landing2"], html[data-page="portal_landing3"]) .landing2-tile:focus-within .landing2-tile__float .icon {
         transform: none !important;
         animation: none !important;
    }
     html[data-page="portal_landing"] #services .svc-carousel__track > .svc > .svc__bg-icon {
         transition: none !important;
    }
     html[data-page="portal_landing"] #services .svc-carousel__track > .svc:hover > .svc__bg-icon, html[data-page="portal_landing"] #services .svc-carousel__track > .svc:focus-visible > .svc__bg-icon {
         color: #fff !important;
         opacity: 0.25 !important;
    }
}
 html[data-page="portal_landing"] #services .svc__title {
     display: -webkit-box;
     -webkit-box-orient: vertical;
     -webkit-line-clamp: 1;
     overflow: hidden;
     word-break: keep-all;
     line-height: 1.35;
     min-height: calc(1.35 * var(--fs-h4));
}
 html[data-page="portal_landing"] #services .svc__desc {
     display: -webkit-box;
     -webkit-box-orient: vertical;
     -webkit-line-clamp: 2;
     overflow: hidden;
     word-break: keep-all;
     line-height: 1.75;
     min-height: calc(1.75 * 2em);
     flex: 1 1 auto;
}
 @media (hover: hover) {
     html[data-page="portal_landing"] #services .svc {
         isolation: isolate;
    }
     html[data-page="portal_landing"] #services .svc::before {
         z-index: 3;
         pointer-events: none;
    }
     html[data-page="portal_landing"] .svc {
         transition: opacity 720ms var(--ease), transform 1s cubic-bezier(0.33, 0.08, 0.2, 1), border-color var(--d-base) var(--ease), box-shadow 0.8s cubic-bezier(0.33, 0.08, 0.2, 1), background 0.8s cubic-bezier(0.33, 0.08, 0.2, 1), color var(--d-base) var(--ease);
    }
     html[data-page="portal_landing"] .svc:hover {
         transform: translateY(-2px);
         border-color: rgba(255, 255, 255, 0.22);
         box-shadow: 0 16px 40px rgba(26, 107, 255, 0.28);
         background: linear-gradient( 155deg, #1e3a8a, var(--brand) 42%, #2563eb 72%, #3b82f6 );
    }
     html[data-page="portal_landing"] .svc:hover .svc__eyebrow {
         color: rgba(255, 255, 255, 0.72);
    }
     html[data-page="portal_landing"] .svc:hover .svc__title {
         color: #fff;
    }
     html[data-page="portal_landing"] .svc:hover .svc__desc {
         color: rgba(255, 255, 255, 0.88);
    }
     html[data-page="portal_landing"] .svc:hover .svc__footer {
         border-top-color: rgba(255, 255, 255, 0.2);
    }
     @media (prefers-reduced-motion: no-preference) {
         html[data-page="portal_landing"] .svc:hover .svc__icon {
             background: rgba(255, 255, 255, 0.94);
             color: var(--brand);
             box-shadow: 0 6px 18px rgba(15, 23, 42, 0.12);
             transform: translateZ(0) rotateY(360deg);
             animation: none;
        }
         html[data-page="portal_landing"] #services .svc-carousel .svc:hover .svc__icon {
             transform: translateZ(0) rotateY(360deg);
             animation: none;
        }
    }
     html[data-page="portal_landing"] .svc:hover .badge, html[data-page="portal_landing"] .svc:hover .badge--teal, html[data-page="portal_landing"] .svc:hover .badge--purple, html[data-page="portal_landing"] .svc:hover .badge--green {
         background: rgba(255, 255, 255, 0.14);
         border-color: rgba(255, 255, 255, 0.35);
         color: #fff;
    }
     html[data-page="portal_landing"] .svc:hover .svc__arrow {
         color: #fff;
    }
     html[data-page="portal_landing"] .svc--teal:hover, html[data-page="portal_landing"] .svc--purple:hover, html[data-page="portal_landing"] .svc--green:hover {
         background: linear-gradient( 155deg, #1e3a8a, var(--brand) 42%, #2563eb 72%, #3b82f6 );
         box-shadow: 0 16px 40px rgba(26, 107, 255, 0.3);
    }
     html[data-page="portal_landing"] .svc--teal:hover .svc__icon, html[data-page="portal_landing"] .svc--purple:hover .svc__icon, html[data-page="portal_landing"] .svc--green:hover .svc__icon {
         color: var(--brand);
    }
     html[data-page="portal_01_selfverify"] .radio-card:hover:not(:has(input:checked)) {
         background: linear-gradient(155deg, #1e3a8a, var(--brand) 45%, #2563eb);
         border-color: rgba(255, 255, 255, 0.22);
         box-shadow: 0 14px 36px rgba(26, 107, 255, 0.28);
         transform: translateY(-1px);
    }
     html[data-page="portal_01_selfverify"] .radio-card:hover:not(:has(input:checked)) .radio-card__title {
         color: #fff;
    }
     html[data-page="portal_01_selfverify"] .radio-card:hover:not(:has(input:checked)) .radio-card__desc {
         color: rgba(255, 255, 255, 0.88);
    }
     html[data-page="portal_01_selfverify"] .radio-card:hover:not(:has(input:checked)) .radio-card__ver {
         color: rgba(255, 255, 255, 0.92);
    }
     html[data-page="portal_01_selfverify"] .radio-card:hover:not(:has(input:checked)) .radio-card__icon {
         background: rgba(255, 255, 255, 0.94);
         color: var(--brand);
    }
     html[data-page="portal_01_selfverify"] .radio-card:hover:not(:has(input:checked)) .radio-card__indicator {
         border-color: rgba(255, 255, 255, 0.75);
         background: rgba(255, 255, 255, 0.12);
    }
     html[data-page="portal_02_info_initial"] .topic:not(.is-active):hover {
         background: linear-gradient(155deg, #1e3a8a, var(--brand) 45%, #2563eb);
         border-color: rgba(255, 255, 255, 0.25);
         box-shadow: 0 14px 36px rgba(26, 107, 255, 0.3);
         transform: translateY(-1px);
    }
     html[data-page="portal_02_info_initial"] .topic:not(.is-active):hover .topic__icon {
         background: rgba(255, 255, 255, 0.92);
         color: var(--brand);
    }
     html[data-page="portal_02_info_initial"] .topic:not(.is-active):hover .topic__title {
         color: #fff;
    }
     html[data-page="portal_02_info_initial"] .topic:not(.is-active):hover .topic__sub {
         color: rgba(255, 255, 255, 0.85);
    }
     button.choice:not(:disabled):hover {
         background: linear-gradient(155deg, #172554, #1d4ed8 50%, #2563eb);
         border-color: rgba(255, 255, 255, 0.22);
         color: #fff;
         box-shadow: 0 12px 32px rgba(26, 107, 255, 0.25);
         transform: translateY(-1px);
    }
     button.choice:not(:disabled):hover .choice__icon {
         color: #fff;
    }
     button.choice:not(:disabled):hover .choice__text {
         color: #fff;
         font-weight: 600;
    }
     button.choice:not(:disabled):hover .choice__arrow {
         color: rgba(255, 255, 255, 0.92);
    }
     button.choice-chip:not(:disabled):hover {
         background: linear-gradient(155deg, #172554, #1d4ed8 50%, #2563eb);
         border-color: rgba(255, 255, 255, 0.28);
         border-style: solid;
         color: #fff;
         box-shadow: 0 8px 24px rgba(26, 107, 255, 0.22);
         transform: translateY(-1px);
    }
     button.cert:not(:disabled):hover {
         background: linear-gradient(155deg, #172554, #1d4ed8 50%, #2563eb);
         border-color: rgba(255, 255, 255, 0.22);
         box-shadow: 0 14px 36px rgba(26, 107, 255, 0.28);
         transform: translateY(-1px);
    }
     button.cert:not(:disabled):hover .cert__icon {
         background: rgba(255, 255, 255, 0.94);
         color: var(--brand);
    }
     @media (prefers-reduced-motion: no-preference) {
         button.cert:not(:disabled):hover .cert__icon {
             transform: translateZ(0) rotateY(360deg);
        }
    }
     button.cert:not(:disabled):hover .cert__title {
         color: #fff;
    }
     button.cert:not(:disabled):hover .cert__sub {
         color: rgba(255, 255, 255, 0.88);
    }
     button.cert:not(:disabled):hover .cert__cta {
         color: #fff;
    }
     html[data-page="portal_06_data"] .dataset:hover {
         background: linear-gradient(155deg, #1e3a8a, var(--brand) 45%, #2563eb);
         border-color: rgba(255, 255, 255, 0.22);
         box-shadow: 0 12px 32px rgba(26, 107, 255, 0.25);
    }
     html[data-page="portal_06_data"] .dataset:hover .dataset__icon {
         background: rgba(255, 255, 255, 0.94);
         color: var(--brand);
    }
     html[data-page="portal_06_data"] .dataset:hover .dataset__title {
         color: #fff;
    }
     html[data-page="portal_06_data"] .dataset:hover .dataset__meta, html[data-page="portal_06_data"] .dataset:hover .dataset__progress-label {
         color: rgba(255, 255, 255, 0.78);
    }
     html[data-page="portal_06_data"] .dataset:hover .dataset__progress-label strong {
         color: #fff;
    }
     html[data-page="portal_06_data"] .dataset:hover .dataset__tag {
         background: rgba(255, 255, 255, 0.16);
         color: #fff;
         border: 1px solid rgba(255, 255, 255, 0.35);
    }
     html[data-page="portal_06_data"] .dataset:hover .dataset__progress-bar {
         background: rgba(15, 23, 42, 0.35);
         box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
    }
     html[data-page="portal_06_data"] .dataset:hover .dataset__progress-bar span {
         background: linear-gradient(90deg, #f1f5f9, #fff);
         box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.25);
    }
     html[data-page="portal_06_data"] .dataset .btn {
         transition: transform var(--d-slow) var(--ease-transform), box-shadow var(--d-base) var(--ease);
    }
     html[data-page="portal_styleguide"] .svc:hover {
         background: linear-gradient(155deg, #1e3a8a, var(--brand) 45%, #2563eb);
         border-color: rgba(255, 255, 255, 0.22);
         box-shadow: 0 14px 36px rgba(26, 107, 255, 0.26);
         transform: translateY(-1px);
    }
     html[data-page="portal_styleguide"] .svc:hover .svc__title {
         color: #fff;
    }
     html[data-page="portal_styleguide"] .svc:hover .svc__desc {
         color: rgba(255, 255, 255, 0.88);
    }
     @media (prefers-reduced-motion: no-preference) {
         html[data-page="portal_styleguide"] .svc:hover .svc__icon {
             background: rgba(255, 255, 255, 0.94);
             color: var(--brand);
             transform: translateZ(0) rotateY(360deg);
             animation: none;
        }
    }
     .ref-card:hover, .ref-card:focus-within {
         background: linear-gradient(155deg, #003e89, #0051c3 50%, #2563eb);
         border-color: rgba(255, 255, 255, 0.22);
         box-shadow: 0 10px 28px rgba(0, 62, 137, 0.22);
         transform: translateY(-1px);
    }
     .ref-card:hover .ref-card__code, .ref-card:focus-within .ref-card__code, .ref-card:hover .ref-card__title, .ref-card:focus-within .ref-card__title {
         color: #fff;
    }
     .ref-card:hover .ref-card__excerpt, .ref-card:focus-within .ref-card__excerpt {
         color: rgba(255, 255, 255, 0.85);
    }
     .ref-card:hover .ref-card__link, .ref-card:focus-within .ref-card__link {
         color: #fff;
    }
}
 @media (prefers-reduced-motion: no-preference) {
     .portal-flow-chat--embed:not([hidden]) {
         animation: portalFlowChatIn var(--d-base, 240ms) var(--ease, cubic-bezier(0.22, 1, 0.36, 1)) both;
    }
}
 @keyframes portalFlowChatIn {
     from {
         opacity: 0;
         transform: translateY(10px);
    }
     to {
         opacity: 1;
         transform: translateY(0);
    }
}
 @media (prefers-reduced-motion: reduce) {
     .portal-flow-chat--embed:not([hidden]) {
         animation: none;
    }
}
 .portal-flow-chat.portal-flow-chat--embed:not([hidden]) {
     display: flex;
     flex-direction: column;
     flex: 1;
     min-height: 0;
     width: 100%;
}
 .bubble--ai a.kb-link {
     display: inline-flex;
     align-items: baseline;
     gap: 4px;
     max-width: 100%;
     color: var(--brand);
     font-weight: 600;
     text-decoration: underline;
     text-underline-offset: 3px;
     text-decoration-color: rgba(26, 107, 255, 0.45);
}
 .bubble--ai a.kb-link::before {
     content: "link";
     font-family: var(--font-icon);
     font-size: 13px;
     line-height: 1;
     font-feature-settings: "liga";
     -webkit-font-smoothing: antialiased;
     font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 20;
     color: #7dd3fc;
     text-decoration: none;
     flex-shrink: 0;
     transform: translateY(0.08em);
}
 .bubble--ai a.kb-link:hover {
     color: var(--brand-600);
}
html[data-page="portal_03_civil_initial"] {
    overflow-x: clip;
}
html[data-page="portal_03_civil_initial"] body {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}
html[data-page="portal_03_civil_initial"] main {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
 html[data-page="portal_03_civil_initial"] .section.section--civil-panels {
     padding-top: var(--s6);
     padding-bottom: var(--s12);
}
 html[data-page="portal_03_civil_initial"] .section.section--civil-panels .cols {
     width: 100%;
     max-width: none;
     margin: 0;
}
 html[data-page="portal_03_civil_initial"] .section.section--civil-panels .panel {
     padding: 0;
}
 @media (max-width: 640px) {
     html[data-page="portal_03_civil_initial"] .section.section--civil-panels {
         padding-bottom: max(var(--s8), env(safe-area-inset-bottom, 0px));
    }
     html[data-page="portal_03_civil_initial"] .section.section--civil-panels .cols {
         gap: var(--s4);
    }
}
 .civil-shortcuts-panel {
     background: var(--bg-alt);
     border: 1px solid var(--border);
     border-radius: var(--r-md);
     padding: var(--s4) var(--s5);
     display: flex;
     flex-direction: column;
     gap: var(--s3);
     margin-bottom: var(--s5);
}
 .civil-shortcuts-group {
     display: flex;
     flex-direction: column;
     gap: var(--s3);
}
 .civil-shortcuts-group__head {
     display: flex;
     align-items: baseline;
     flex-wrap: wrap;
     gap: var(--s2);
}
 .civil-shortcuts-group__title {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text);
}
 .civil-shortcuts-group__sub {
     font-size: var(--fs-xs);
     color: var(--dim);
}
 .civil-shortcuts-chips {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s2);
}
 .civil-shortcut-chip {
     padding: 5px 14px;
     border: 1px solid var(--border-strong);
     border-radius: var(--r-pill);
     font-size: var(--fs-sm);
     color: var(--text-2);
     background: var(--bg);
     cursor: pointer;
     white-space: nowrap;
     transition: border-color var(--d-base), color var(--d-base), background var(--d-base);
}
 .civil-shortcut-chip:hover {
     border-color: var(--accent);
     color: var(--accent);
     background: var(--accent-bg);
}
 .civil-shortcuts-divider {
     height: 1px;
     background: var(--border);
     margin: 0 calc(var(--s6) * -1);
}
html[data-page="portal_03_civil_initial"] #civil-flow-chat {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

html[data-page="portal_06_data"] #ds-explore,
html[data-page="portal_03_civil_initial"] .chat-area,
html[data-page="portal_02_info_chat"] .chat-area {
    max-width: 1300px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

/* portal_03 분야 선택 버튼 활성 상태 */
.choice.is-active {
    background: var(--accent-bg);
    border-color: var(--accent);
    color: var(--accent);
}
.choice.is-active .choice__icon,
.choice.is-active .choice__arrow {
    color: var(--accent);
}

/* 사용 완료된 서브버튼 흐리게 */
.choice.is-used {
    opacity: 0.45;
    cursor: default;
    pointer-events: none;
}
 .civil-panel {
     margin-bottom: var(--s5);
}
 .civil-panel-fixed {
     flex-shrink: 0;
     background: var(--card);
     border-bottom: 1px solid var(--border);
     padding: var(--s5) var(--s6);
}
 .civil-group-head {
     display: flex;
     align-items: center;
     gap: var(--s2);
     margin-bottom: var(--s3);
}
 .civil-group-head__title {
     font-size: var(--fs-sm);
     font-weight: 700;
     color: var(--text);
}
 .civil-group-head__label {
     font-size: var(--fs-xs);
     color: var(--dim);
}
.civil-group-divider {
    border: none;
    border-top: 1px solid var(--divider);
    margin: var(--s5) 0;
}

#info-topic-chips .choice__icon {
    font-size: 23px;
}

.info-sub-list {
    display: flex;
    flex-direction: column;
    gap: var(--s2);
}
.info-sub-list .choice {
    width: 100%;
}

/* 말풍선 안 .choice 버튼은 흰색 배경 */
.bubble--ai .choice,
.bubble--ai .info-sub-list .choice {
    background: #fff;
}

/* ── 정보제공 AI 답변: 번호 배지 절차 목록 ── */
.info-steps {
    display: flex;
    flex-direction: column;
    gap: var(--s2);
    margin: var(--s3) 0;
}
.info-step {
    display: flex;
    align-items: flex-start;
    gap: var(--s3);
    padding: var(--s3) var(--s4);
    background: #fff;
    border-radius: var(--r-md);
    border: 1px solid var(--border);
}
.info-step__num {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}
.info-step__text {
    font-size: var(--fs-sm);
    line-height: 1.6;
    color: var(--text);
}
.info-answer-mark {
    background: var(--accent-bg);
    color: var(--accent);
    border-radius: var(--r-sm);
    padding: 2px 8px;
    font-weight: 700;
}

/* ── 정보제공 AI 답변: 근거자료 블록 ── */
.info-ref-block {
    margin-top: var(--s4);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    overflow: hidden;
}
.info-ref-block__sum {
    display: flex;
    align-items: center;
    gap: var(--s2);
    padding: var(--s3) var(--s4);
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--text);
    cursor: pointer;
    background: var(--bg-alt);
    list-style: none;
    user-select: none;
}
.info-ref-block__sum::-webkit-details-marker { display: none; }
.info-ref-block__chev {
    margin-left: auto;
    font-size: 18px;
    color: var(--muted);
    transition: transform var(--d-base);
}
details.info-ref-block:not([open]) .info-ref-block__chev {
    transform: rotate(180deg);
}
.info-ref-cards {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.info-ref-card {
    padding: var(--s4) var(--s5);
    border-top: 1px solid var(--border);
    background: var(--card);
}
.info-ref-card__head {
    display: flex;
    align-items: center;
    gap: var(--s2);
    margin-bottom: var(--s2);
}
.info-ref-card__ico {
    font-size: 16px;
    color: var(--accent);
    flex-shrink: 0;
}
.info-ref-card__title {
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--text);
}
.info-ref-card__law {
    font-size: var(--fs-xs);
    color: var(--accent);
    font-weight: 600;
    margin: 0 0 var(--s1);
}
.info-ref-card__desc {
    font-size: var(--fs-xs);
    color: var(--muted);
    margin: 0 0 var(--s3);
    line-height: 1.6;
}
.info-ref-card__link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--accent);
    text-decoration: none;
}
.info-ref-card__link:hover {
    text-decoration: underline;
}
 @media (prefers-reduced-motion: no-preference) {
     :where( a, button, select, summary, input[type="button"], input[type="submit"], input[type="reset"], input[type="checkbox"], input[type="radio"], .btn, .chip, .badge, .tag, .svc, .svc__icon, .choice, .choice-chip, .starter, .ref-card, .dataset, .dataset__icon, .theme-btn, .subtabs button, .login-mode__btn, .login-guide-btn, .login-back, .login-submit, .wizard-stepper__item, .wizard-stepper__circle, .dropzone, .file-pill, .radio-card, .modal__close, .modal-card__close, .modal-actions .btn, .wl-card, .wl-jump a, .sg-toc a, .iconset__item, .link-card a, .nav__menu a, .footer__links a, .footer a, .hero-card, .contact-chip, .chip-strip .chip, .stat-tile, .portal-flow-start .btn, .ds-toolbar button, .dataset .btn, .panel, .tip-card, .table-wrap tbody tr, .soft-card, .send-btn, .ref-empty, .msg-composer, .toggle-row label, .breadcrumb a, [role="tab"], [role="menuitem"], .cursor-pointer, .filter-pill, .tab-underline button, .nav-guide-tip a, .modal-card, .choices-card, .chat-toolbar button, .choice-grid .choice, .tbl-sort, .btn-dl, .btn-share, .chip-sm, .tag-pill, .login-links a, .login-row label, .sv-proc, .sv-proc__list li, .info-tile, .kbd, .kbd-chip, .hero__cta, .hero-card__link, .section-head a, .portal-flow-chat--embed .btn, .portal-flow-chat--embed .chip, .portal-flow-chat--embed .starter, .chat-input-wrap, .composer-actions .btn, .starters .starter, .chips--below .chip, .vstep__row, .modal-footnote a, .req-form .btn, .nav__actions .btn, .nav__actions a.btn, .nav__actions .nav__textlink ) {
         transition: all var(--t-hover, 0.15s) var(--ease-hover, ease);
    }
}
table.u-table-list {
    border-collapse: collapse;
}
table.u-table-list th,
table.u-table-list td {
    border-left: 1px solid var(--border, #e2e8f0);
    border-right: 1px solid var(--border, #e2e8f0);
}
table.u-table-list th:first-child,
table.u-table-list td:first-child {
    border-left: none;
}
table.u-table-list th:last-child,
table.u-table-list td:last-child {
    border-right: none;
}
table.u-table-list th {
    text-align: center;
    vertical-align: middle;
}
 table.u-table-list td:nth-child(1), table.u-table-list td:nth-child(2), table.u-table-list td:nth-child(4), table.u-table-list td:nth-child(5), table.u-table-list td:nth-child(6), table.u-table-list th:nth-child(1), table.u-table-list th:nth-child(2), table.u-table-list th:nth-child(4), table.u-table-list th:nth-child(5), table.u-table-list th:nth-child(6) {
     text-align: center;
     vertical-align: middle;
     width: 1%;
     white-space: nowrap;
}
 html[data-page="portal_01a_verify_status"] .layout > .panel:first-child {
     background: transparent;
     border: 0;
     border-radius: 0;
     box-shadow: none;
     padding: 0;
}
 html[data-page="portal_01a_verify_status"] .layout > .panel:first-child .pager {
     background: transparent;
     border-top: 1px solid var(--border, #e2e8f0);
}
 html[data-page="portal_01a_verify_status"] .layout > .panel:first-child .table-wrap, html[data-page="portal_styleguide"] .sg-verify-table-wrap {
     background: #fff;
     border: 1px solid var(--border, #e2e8f0);
     border-radius: var(--r-md);
}
 html[data-page="portal_01a_verify_status"] .table-wrap thead th, html[data-page="portal_styleguide"] .sg-verify-table-wrap thead th {
     background-color: #fff;
}
 html[data-page="portal_01a_verify_status"] .table-wrap tbody td, html[data-page="portal_styleguide"] .sg-verify-table-wrap tbody td {
     background-color: #fff;
}
 html[data-page="portal_01a_verify_status"] .table-wrap tbody tr:hover, html[data-page="portal_styleguide"] .sg-verify-table-wrap tbody tr:hover {
     background-color: #fff;
}
 html[data-page="portal_01a_verify_status"] .table-wrap tbody tr.is-selected td {
     background-color: var(--brand-50, #eff6ff);
}
 @media (min-width: 721px) {
     html[data-page="portal_01a_verify_status"] .layout > .panel:first-child {
         overflow: visible;
    }
     html[data-page="portal_01a_verify_status"] .table-wrap {
         overflow-x: auto;
         overflow-y: visible;
         max-height: none;
         -webkit-overflow-scrolling: touch;
    }
}
 html[data-page="portal_01a_verify_status"] table.u-table-list {
     table-layout: fixed;
     width: 100%;
}
 html[data-page="portal_01a_verify_status"] table.u-table-list th:nth-child(1), html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(1) {
     width: 5%;
}
 html[data-page="portal_01a_verify_status"] table.u-table-list th:nth-child(2), html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(2) {
     width: 10%;
}
 html[data-page="portal_01a_verify_status"] table.u-table-list th:nth-child(3), html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(3) {
     width: 44%;
     white-space: normal;
     text-align: left;
     vertical-align: middle;
}
 html[data-page="portal_01a_verify_status"] table.u-table-list th:nth-child(3) {
     text-align: center;
}
 html[data-page="portal_01a_verify_status"] table.u-table-list th:nth-child(4), html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(4) {
     width: 12%;
}
 html[data-page="portal_01a_verify_status"] table.u-table-list th:nth-child(5), html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(5) {
     width: 14%;
}
 html[data-page="portal_01a_verify_status"] table.u-table-list th:nth-child(6), html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(6) {
     width: 15%;
}
 html[data-page="portal_01a_verify_status"] table.u-table-list th:nth-child(6) {
     white-space: nowrap;
}
 html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(3) {
     overflow-wrap: anywhere;
     word-break: break-word;
}
 html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(3) .fname {
     flex-wrap: nowrap;
}
 html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(3) .fname .icon {
     flex: 0 0 auto;
}
 html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(3) .fname__name {
     flex: 1 1 auto;
     min-width: 0;
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
}
 html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(3) .tbl-sub {
     display: block;
     max-width: 100%;
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
}
 html[data-page="portal_01a_verify_status"] table.u-table-list .chip {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 0;
     box-sizing: border-box;
     padding: 2px 7px;
     min-height: 0;
     font-size: 10px;
     font-weight: 700;
     line-height: 1.25;
     letter-spacing: -0.01em;
     white-space: nowrap;
     width: max-content;
     max-width: 100%;
     flex-shrink: 0;
     cursor: inherit;
     border-radius: 999px;
}
 html[data-page="portal_01a_verify_status"] table .chip--ok {
     background: var(--ok-bg, #dcfce7);
     color: var(--ok-ink, #166534);
     border: 1px solid rgba(34, 197, 94, 0.32);
}
 html[data-page="portal_01a_verify_status"] table .chip--run {
     background: #dbeafe;
     color: #1d4ed8;
     border: 1px solid rgba(59, 130, 246, 0.38);
}
 html[data-page="portal_01a_verify_status"] table .chip--bad {
     background: #fee2e2;
     color: #b91c1c;
     border: 1px solid rgba(248, 113, 113, 0.35);
}
 html[data-page="portal_01a_verify_status"] table .chip--neutral {
     background: #f1f5f9;
     color: #334155;
     border: 1px solid var(--border, #e2e8f0);
}
 html[data-page="portal_01a_verify_status"] table .chip--ok:hover, html[data-page="portal_01a_verify_status"] table .chip--run:hover, html[data-page="portal_01a_verify_status"] table .chip--bad:hover, html[data-page="portal_01a_verify_status"] table .chip--neutral:hover {
     transform: none;
     color: inherit;
}
 html[data-page="portal_01a_verify_status"] table .chip--ok:hover {
     background: #bbf7d0;
     border-color: rgba(22, 163, 74, 0.4);
     color: var(--ok-ink, #166534);
}
 html[data-page="portal_01a_verify_status"] table .chip--run:hover {
     background: #bfdbfe;
     border-color: rgba(37, 99, 235, 0.45);
     color: #1e40af;
}
 html[data-page="portal_01a_verify_status"] table .chip--bad:hover {
     background: #fee2e2;
     border-color: rgba(248, 113, 113, 0.45);
}
 html[data-page="portal_01a_verify_status"] table .chip--neutral:hover {
     background: #e2e8f0;
     border-color: var(--border-strong, #cbd5e1);
}
/* ── portal_mypage ── */
html[data-page="portal_mypage"] .mypg-filter {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    padding: 10px 14px;
    margin-bottom: var(--s4);
}
html[data-page="portal_mypage"] .mypg-filter__row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 6px;
}
html[data-page="portal_mypage"] .mypg-filter__search {
    position: relative;
    display: flex;
    align-items: center;
    flex: 0 0 148px;
    border: 1px solid var(--border) !important;
    border-radius: var(--r-sm) !important;
    background: var(--bg);
    overflow: hidden;
    height: 40px;
    min-height: 40px;
}
html[data-page="portal_mypage"] .mypg-filter__search-icon {
    position: absolute;
    left: 7px;
    font-size: 20px;
    color: var(--muted);
    pointer-events: none;
    z-index: 1;
}
html[data-page="portal_mypage"] .mypg-filter__search input {
    width: 100% !important;
    min-width: 200px !important;
    height: 100% !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 8px 12px 7px !important;
    font: inherit !important;
    font-size: 14px !important;
    color: var(--text) !important;
    outline: none !important;
    min-height: 0 !important;
    border-radius: 0 !important;
    transition: none !important;
    line-height: 1.5 !important;
}
html[data-page="portal_mypage"] .mypg-filter__date {
    display: flex;
    align-items: center;
    gap: 4px;
    flex: 0 0 auto;
}
html[data-page="portal_mypage"] .mypg-filter__date-label {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-2);
    white-space: nowrap;
}
html[data-page="portal_mypage"] .mypg-filter__date-sep {
    color: var(--muted);
    font-size: 14px;
}
html[data-page="portal_mypage"] .mypg-filter__date input[type="date"],
html[data-page="portal_mypage"] .mypg-filter__row select {
    padding: 0 12px !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--r-sm) !important;
    font: inherit !important;
    font-size: 14px !important;
    min-width: 140px !important;
    min-height: 0 !important;
    height: 40px !important;
    background: var(--bg, #fff) !important;
    color: var(--text) !important;
    box-shadow: none !important;
    transition: none !important;
    line-height: 1.5 !important;
}
html[data-page="portal_mypage"] .mypg-filter__date input[type="date"] {
    min-width: 155px !important;
    height: 40px !important;
}
html[data-page="portal_mypage"] .mypg-filter__row .btn--sm {
    padding: 0 12px;
    font-size: 14px;
    height: 40px;
    line-height: 1.5;
    white-space: nowrap;
    flex-shrink: 0;
}
/* 마이페이지 상세모달 */
.modal-card--mypg-detail {
    max-width: min(1200px, 96vw);
    width: 100%;
    padding: 30px;
}
.mypg-detail-modal__title {
    font-size: var(--fs-h3);
    font-weight: 800;
    color: var(--text);
    margin-bottom: var(--s4);
    border-bottom: 1px solid var(--border);
    padding-bottom: var(--s3);
}
.mypg-detail-modal__foot {
    display: flex;
    justify-content: flex-end;
    margin-top: var(--s5);
    padding-top: var(--s4);
    border-top: 1px solid var(--border);
}
/* 상세모달 슬롯 */
.detail-modal-slot { padding-top: var(--s2); }

/* ── 자가검증 상세결과 모달 내부 (svd-*) ── */
.svd-meta {
    display: flex;
    align-items: flex-start;
    gap: var(--s5);
    padding: var(--s3) var(--s4);
    background: var(--bg-alt);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    margin-bottom: var(--s4);
}
.svd-meta__rows { flex: 1 1 0; display: flex; flex-direction: column; gap: 5px; }
.svd-meta__row {
    font-size: var(--fs-sm);
    color: var(--text-2);
    margin: 0;
    line-height: 1.7;
}
.svd-meta__row strong { color: var(--text); font-weight: 600; }
.svd-meta__aside {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--s3);
}
.svd-legend {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    padding: var(--s3) var(--s4);
    font-size: var(--fs-sm);
    min-width: 200px;
}
.svd-legend__hd { font-weight: 700; color: var(--accent); margin: 0 0 var(--s1); font-size: var(--fs-sm); }
.svd-legend ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 3px; color: var(--text-2); font-size: var(--fs-sm); }
/* 필터 바 */
.svd-toolbar {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 6px;
    margin-bottom: var(--s3);
    padding: var(--s3) var(--s4);
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
}
.svd-toolbar__search {
    position: relative;
    display: flex;
    align-items: center;
    flex: 0 0 150px;
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    background: var(--bg);
    overflow: hidden;
}
.svd-toolbar__icon {
    position: absolute;
    left: 7px;
    font-size: 14px;
    color: var(--muted);
    pointer-events: none;
}
.svd-toolbar__search input {
    width: 100%;
    border: none;
    background: transparent;
    padding: 11px 12px;
    font-size: 13px;
    color: var(--text);
    outline: none;
    font-family: inherit !important;
}
.svd-toolbar select {
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 11px 12px;
    font-size: 13px;
    background: var(--bg);
    color: var(--text);
    height: auto;
    min-width: 0;
    font-family: inherit !important;
}
/* 통계 */
.svd-stats {
    font-size: var(--fs-sm);
    color: var(--text-2);
    margin: 0 0 var(--s3);
    padding: 0 2px;
}
.svd-stats strong { font-weight: 700; }
/* 테이블 */
.svd-table-wrap { overflow-x: auto; margin-bottom: var(--s3); }
.svd-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    font-size: var(--fs-sm);
}
.svd-table thead th {
    background: #444;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    padding: 9px 12px;
    text-align: center;
    white-space: nowrap;
    border: 1px solid #555;
    overflow: hidden;
}
.svd-table thead th:nth-child(1) { width: 60px; }
.svd-table thead th:nth-child(2) { width: 30%; }
.svd-table thead th:nth-child(3) { width: 120px; }
.svd-table thead th:nth-child(4) { width: auto; }
.svd-table tbody td {
    padding: 9px 12px;
    border: 1px solid var(--border);
    vertical-align: middle;
    line-height: 1.5;
    overflow: hidden;
}
/* .svd-table tbody tr:hover { background: var(--bg-alt); } */
.svd-td-no { text-align: center; color: var(--muted); }
.svd-td-content { word-break: break-word; }
.svd-td-result { text-align: center; }
.svd-td-op { color: var(--text-2); font-size: var(--fs-sm); vertical-align: middle; overflow: hidden; }
/* AI 의견 더보기 토글 — 한 줄 flex */
.svd-op-wrap {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    overflow: hidden;
    width: 100%;
}
.svd-op-wrap--open {
    align-items: flex-start;
    overflow: visible;
}
.svd-op-text {
    flex: 1;
    min-width: 0;
    line-height: 1.55;
    word-break: break-word;
}
.svd-op-text--clamp {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.svd-op-wrap--open .svd-op-text {
    white-space: normal;
    overflow: visible;
}
.svd-op-toggle {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 1px;
    background: none;
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 1px 6px 1px 3px;
    font-size: 12px;
    color: var(--accent);
    cursor: pointer;
    white-space: nowrap;
    line-height: 1.6;
    transition: background var(--d-base), border-color var(--d-base);
}
.svd-op-toggle * { pointer-events: none; }
.svd-op-toggle .icon { font-size: 15px; line-height: 1; }
.svd-op-toggle:hover { background: var(--bg-alt); border-color: var(--accent); }
.svd-op-wrap--open .svd-op-toggle { align-self: flex-start; }
.svd-empty { color: var(--muted); font-size: var(--fs-sm); padding: var(--s4) 0; text-align: center; }
/* 페이저 */
.svd-pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding-top: var(--s3);
}
.svd-pager__list { display: flex; align-items: center; gap: 4px; list-style: none; padding: 0; margin: 0; }
.svd-pager__btn {
    min-width: 32px;
    height: 32px;
    padding: 0 8px;
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    background: var(--bg);
    color: var(--text-2);
    font-size: var(--fs-sm);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background var(--d-base);
}
.svd-pager__btn:hover { background: var(--bg-alt); color: var(--text); }
.svd-pager__btn.is-active { background: var(--accent); color: #fff; border-color: var(--accent); font-weight: 700; }
.svd-pager__btn--icon { padding: 0 4px; }
.svd-td-result .chip {
  font-size: 11px;
  padding: 6px 12px;
}
.mypg-detail-legend {
    background: var(--bg-alt);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    padding: var(--s3) var(--s4);
    font-size: var(--fs-sm);
}
.mypg-detail-legend__hd {
    font-weight: 700;
    color: var(--accent);
    margin-bottom: var(--s2);
}
.mypg-detail-legend ul {
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 4px;
    color: var(--muted);
}
/* 마이페이지 테이블 chip */
html[data-page="portal_mypage"] table.u-table-list .chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    box-sizing: border-box;
    padding: 5px 10px;
    min-height: 0;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.25;
    border-radius: 99px;
    white-space: nowrap;
}
html[data-page="portal_mypage"] table .chip--ok    { background: #dcfce7; color: #166534; border: 1px solid rgba(34,197,94,0.32); }
html[data-page="portal_mypage"] table .chip--run   { background: #dbeafe; color: #1d4ed8; border: 1px solid rgba(59,130,246,0.38); }
html[data-page="portal_mypage"] table .chip--bad   { background: #fee2e2; color: #b91c1c; border: 1px solid rgba(248,113,113,0.35); }
html[data-page="portal_mypage"] table .chip--warn  { background: #fef9c3; color: #854d0e; border: 1px solid rgba(234,179,8,0.35); }
html[data-page="portal_mypage"] table .chip--neutral{ background: #f1f5f9; color: #334155; border: 1px solid var(--border); display: none;}
html[data-page="portal_mypage"] table .chip--ok:hover,
html[data-page="portal_mypage"] table .chip--run:hover,
html[data-page="portal_mypage"] table .chip--bad:hover,
html[data-page="portal_mypage"] table .chip--warn:hover,
html[data-page="portal_mypage"] table .chip--neutral:hover { transform: none; }
html[data-page="portal_mypage"] table.u-table-list thead th {
    background: rgb(10, 14, 39, 0.85);
    color: #fff;
    font-size: calc(var(--fs-sm) * 0.9);
}
html[data-page="portal_mypage"] table.u-table-list thead th:first-child {
    border-radius: 6px 0 0 6px;
}
html[data-page="portal_mypage"] table.u-table-list thead th:last-child {
    border-radius: 0 6px 6px 0;
}
.pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--s3);
    padding: var(--s4) var(--s5);
    border-top: 1px solid var(--border, #e2e8f0);
     background: linear-gradient( 180deg, var(--brand-50, #eff6ff) 0%, var(--card, #fff) 38% );
}
 .pager__meta {
     margin: 0;
     font-size: var(--fs-sm, 13.5px);
     font-weight: 600;
     color: var(--muted, #64748b);
     line-height: 1.45;
     flex: 1 1 200px;
     min-width: 0;
}
 .pager__controls {
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     justify-content: flex-end;
     gap: var(--s2);
}
 .pager__list {
     list-style: none;
     margin: 0;
     padding: 0;
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     gap: 4px;
}
 .pager__list li {
     margin: 0;
     padding: 0;
}
 .pager__btn, .pager__page {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     min-width: 36px;
     min-height: 36px;
     padding: 0 10px;
     border-radius: var(--r-md, 12px);
     border: 1px solid var(--border-strong, #cbd5e1);
     background: var(--card, #fff);
     color: var(--text-2, #334155);
     font-size: var(--fs-xs, 12px);
     font-weight: 700;
     font-family: var(--font, "SUIT", sans-serif);
     transition: background var(--d-base, 0.24s) var(--ease, cubic-bezier(0.22, 1, 0.36, 1)), border-color var(--d-base, 0.24s) var(--ease, cubic-bezier(0.22, 1, 0.36, 1)), color var(--d-base, 0.24s) var(--ease, cubic-bezier(0.22, 1, 0.36, 1)), box-shadow var(--d-base, 0.24s) var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
}
 .pager__btn--icon {
     min-width: 40px;
     padding: 0;
}
 .pager__btn .icon {
     font-size: 20px;
     color: var(--muted, #64748b);
}
 .pager__btn:hover:not(:disabled), .pager__page:hover:not(:disabled) {
     border-color: var(--brand, #1a6bff);
     color: var(--brand, #1a6bff);
     background: var(--brand-50, #eff6ff);
}
 .pager__btn:disabled, .pager__page:disabled {
     opacity: 0.42;
     cursor: not-allowed;
     pointer-events: none;
}
 .pager__page.is-active {
     border-color: var(--brand, #1a6bff);
     background: linear-gradient( 135deg, var(--brand, #1a6bff), var(--brand-600, #2563eb) );
     color: #fff;
     box-shadow: 0 2px 10px rgba(26, 107, 255, 0.28);
}
 .pager__page.is-active:hover {
     color: #fff;
     background: linear-gradient( 135deg, var(--brand-600, #2563eb), var(--brand-700, #1d4ed8) );
}
 @media (max-width: 560px) {
     .pager {
         flex-direction: column;
         align-items: stretch;
    }
     .pager__controls {
         justify-content: center;
    }
     .pager__meta {
         text-align: center;
    }
}
 @media (max-width: 720px) {
     html[data-page="portal_01a_verify_status"] .layout > .panel:first-child {
         overflow: visible;
    }
     html[data-page="portal_01a_verify_status"] .table-wrap {
         overflow: visible;
         max-height: none;
         padding: 2px 0 10px;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list {
         display: block;
         width: 100%;
         border-collapse: separate;
         border-spacing: 0;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list thead {
         display: none;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list tbody {
         display: block;
         width: 100%;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list tr {
         display: grid;
         grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
         column-gap: 12px;
         row-gap: 2px;
         align-items: start;
         width: 100%;
         box-sizing: border-box;
         margin: 0 0 10px;
         padding: 10px 0 12px;
         background: transparent;
         border: 0;
         border-radius: 0;
         box-shadow: none;
         border-bottom: 1px solid var(--border, #e2e8f0);
         cursor: pointer;
         min-height: 0;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list tr:last-child {
         margin-bottom: 0;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list tr:hover {
         background: transparent;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list tr.is-selected {
         background: rgba(239, 246, 255, 0.65);
         outline: 0;
         box-shadow: inset 0 -2px 0 0 var(--brand, #1a6bff);
         border-bottom-color: transparent;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list td {
         display: block;
         width: auto !important;
         max-width: 100%;
         min-width: 0;
         box-sizing: border-box;
         text-align: left !important;
         padding: 6px 0 !important;
         border: 0 !important;
         border-bottom: 0 !important;
         white-space: normal !important;
         vertical-align: top;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(1) {
         grid-column: 1;
         grid-row: 1;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(2) {
         grid-column: 2;
         grid-row: 1;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(3) {
         grid-column: 1/-1;
         grid-row: 2;
         padding-top: 4px !important;
         padding-bottom: 8px !important;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(4) {
         grid-column: 1;
         grid-row: 3;
         justify-self: start;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(5) {
         grid-column: 2;
         grid-row: 3;
         justify-self: start;
         padding-top: 6px !important;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(5) strong {
         font-size: 13px;
         font-weight: 800;
         line-height: 1.35;
         word-break: break-word;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(6) {
         grid-column: 1/-1;
         grid-row: 4;
         padding-top: 4px !important;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(1)::before, html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(2)::before, html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(4)::before, html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(5)::before {
         content: attr(data-label);
         display: inline;
         margin-right: 6px;
         margin-bottom: 0;
         text-transform: none;
         font-size: 11px;
         letter-spacing: 0;
         font-weight: 700;
         color: var(--muted, #64748b);
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(3)::before, html[data-page="portal_01a_verify_status"] table.u-table-list td:nth-child(6)::before {
         content: attr(data-label);
         display: block;
         font-size: 10px;
         font-weight: 700;
         letter-spacing: 0.04em;
         color: var(--muted, #64748b);
         text-transform: uppercase;
         margin-bottom: 4px;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list .u-td-date {
         white-space: normal !important;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list .fname {
         align-items: flex-start;
         gap: 8px 10px;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list .fname .icon {
         flex-shrink: 0;
         margin-top: 2px;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list .fname .tbl-sub {
         flex: 1 0 100%;
         margin: 4px 0 0 26px;
         font-size: 11px;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list .bar {
         max-width: 100%;
         margin-top: 8px;
    }
     html[data-page="portal_01a_verify_status"] table.u-table-list .chip {
         white-space: nowrap;
         width: auto;
         max-width: 100%;
         text-align: center;
    }
     html[data-page="portal_01a_verify_status"] aside#detail.detail-aside--modal {
         display: none !important;
    }
}
 #modal-verify-detail {
     z-index: 796;
}
 html[data-page="portal_01a_verify_status"] #modal-verify-detail .modal-card--detail-mobile, html[data-page="portal_01a_verify_status"] #modal-verify-detail .modal-card--verify-detail {
     width: 100%;
     max-width: min(1040px, 96vw);
     max-height: min(92vh, 900px);
     margin: var(--s4) auto;
     overflow-y: auto;
     -webkit-overflow-scrolling: touch;
     text-align: left;
     padding: 28px var(--s6, 24px) var(--s6, 24px);
     position: relative;
}
 html[data-page="portal_01a_verify_status"] #detail-modal-slot {
     padding-top: 2px;
}
 html[data-page="portal_01a_verify_status"] #detail-modal-slot #btn-close-detail {
     display: none !important;
}
 html[data-page="portal_01a_verify_status"] #detail-modal-slot .detail__head h2 {
     font-size: clamp(18px, 2vw, 22px);
}
 html[data-page="portal_01a_verify_status"] #detail-modal-slot .detail__file-line {
     font-size: 13px;
     line-height: 1.5;
}
 html[data-page="portal_01a_verify_status"] #detail-modal-slot .detail-verify-root .verify-report__meta {
     font-size: 13px;
}
 html[data-page="portal_01a_verify_status"] #detail-modal-slot .detail-verify-root .verify-report__ratio-row .verify-report__meta--tight {
     font-size: calc(13px * 1.2);
}
 html[data-page="portal_01a_verify_status"] #detail-modal-slot .detail-verify-root .verify-report__score-num {
     font-size: clamp(28px, 3.6vw, 46px);
}
 html[data-page="portal_01a_verify_status"] #detail-modal-slot .detail-verify-root .verify-rv-table {
     font-size: 13px;
}
 html[data-page="portal_01a_verify_status"] #detail-modal-slot .detail__foot-actions {
     gap: 12px;
}
 html[data-page="portal_worklist"] .wl-jump {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s2);
     margin-top: var(--s5);
}
 html[data-page="portal_worklist"] .wl-jump a {
     font-size: var(--fs-sm);
     padding: 6px 14px;
     border-radius: var(--r-pill);
     border: 1px solid var(--border);
     background: var(--card);
     color: var(--text-2);
     text-decoration: none;
     font-weight: 600;
     transition: all var(--t-hover, 0.15s) var(--ease-hover, ease);
}
 html[data-page="portal_worklist"] .wl-jump a:hover {
     border-color: var(--brand, #1a6bff);
     color: var(--brand, #1a6bff);
     background: var(--brand-50, #eff6ff);
}
 html[data-page="portal_worklist"] .wl-block {
     margin-top: var(--s12);
}
 html[data-page="portal_worklist"] .wl-block:first-of-type {
     margin-top: 0;
}
 html[data-page="portal_worklist"] .wl-sec {
     margin-top: 0;
}
 html[data-page="portal_worklist"] .wl-grid {
     display: grid;
     gap: var(--s3);
     grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
     margin-top: var(--s4);
}
 html[data-page="portal_worklist"] .wl-card {
     display: flex;
     flex-direction: column;
     gap: var(--s2);
     padding: var(--s5);
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: var(--r-lg);
     text-decoration: none;
     color: inherit;
     transition: all var(--t-hover, 0.15s) var(--ease-hover, ease);
}
 html[data-page="portal_worklist"] .wl-card:hover {
     border-color: var(--brand-200, #bfdbfe);
     box-shadow: var(--sh-2, 0 4px 12px rgba(15, 23, 42, 0.06));
}
 html[data-page="portal_worklist"] .wl-card__label {
     font-size: var(--fs-2xs);
     font-weight: 700;
     letter-spacing: 0.06em;
     text-transform: uppercase;
     color: var(--brand, #1a6bff);
}
 html[data-page="portal_worklist"] .wl-card__title {
     font-size: var(--fs-h4);
     font-weight: 700;
     color: var(--text);
}
 html[data-page="portal_worklist"] .wl-card__meta {
     font-size: var(--fs-sm);
     color: var(--muted);
     line-height: 1.55;
}
 html[data-page="portal_worklist"] .wl-card__url {
     font-size: var(--fs-2xs);
     color: var(--dim);
     word-break: break-all;
     margin-top: auto;
     padding-top: var(--s2);
     border-top: 1px dashed var(--border);
}
 html[data-page="portal_worklist"] .wl-card--media .wl-card__top {
     display: flex;
     align-items: flex-start;
     gap: var(--s4);
     min-width: 0;
}
 html[data-page="portal_worklist"] .wl-card__portico {
     flex-shrink: 0;
     width: 48px;
     height: 48px;
     padding: 4px;
     box-sizing: border-box;
     border-radius: var(--r-md);
     background: var(--brand-50, #eff6ff);
     border: 1px solid var(--brand-100, #dbeafe);
     object-fit: contain;
}
 html[data-page="portal_worklist"] .wl-card__stack {
     flex: 1;
     min-width: 0;
     display: flex;
     flex-direction: column;
     gap: var(--s2);
}
 html[data-page="portal_worklist"] #wl-embed .wl-embed-tools {
     margin-top: var(--s4);
}
 html[data-page="portal_worklist"] #wl-embed .wl-embed-dl {
     display: inline-flex;
     align-items: center;
     gap: var(--s3);
     max-width: 100%;
     padding: var(--s3) var(--s5);
     border-radius: var(--r-md);
     border: 1px solid var(--border);
     background: var(--card);
     text-decoration: none;
     color: var(--text);
     font-size: var(--fs-sm);
     font-weight: 600;
     transition: border-color var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease);
}
 html[data-page="portal_worklist"] #wl-embed .wl-embed-dl:hover {
     border-color: var(--brand-200, #bfdbfe);
     box-shadow: var(--sh-2, 0 4px 12px rgba(15, 23, 42, 0.06));
}
 html[data-page="portal_worklist"] #wl-embed .wl-embed-dl__thumb {
     flex-shrink: 0;
     width: 28px;
     height: 28px;
     object-fit: contain;
     border-radius: var(--r-sm);
     border: 1px solid var(--border);
     background: var(--brand-50, #eff6ff);
}
 html[data-page="portal_worklist"] #wl-embed .wl-embed-dl__txt {
     flex: 1;
     min-width: 0;
}
 html[data-page="portal_worklist"] #wl-embed .wl-embed-dl__ico {
     flex-shrink: 0;
     font-size: 20px;
     color: var(--brand, #1a6bff);
}
 html[data-page="portal_worklist"] .ds-demo-note__p {
     margin: 0;
}
 html[data-page="portal_worklist"] .ds-demo-note__p strong {
     display: inline;
     margin-bottom: 0;
     font-weight: 700;
     color: var(--text);
}
 html[data-page="portal_worklist"] .ds-demo-note__p > strong:first-child {
     font-weight: 800;
}
 /* ─── 버튼 사이즈 스케일 (최종 정의) ─── */
 /* 기본 .btn = MD. 사이즈 클래스가 min-height·padding·font-size·border-radius 모두 명시적으로 덮어씀. */
 .btn, a.btn, button.btn {
     box-sizing: border-box;
     min-height: 40px;
     padding: 0 18px;
     font-size: var(--fs-md, 14px);
     border-radius: var(--r-md, 12px);
     border-width: 1px;
     border-style: solid;
     line-height: 1.25;
}
 .btn--xs, a.btn--xs, button.btn--xs {
     min-height: 24px;
     padding: 0 10px;
     font-size: 11px;
     border-radius: var(--r-sm, 8px);
     gap: 4px;
}
 .btn--sm, a.btn--sm, button.btn--sm {
     min-height: 32px;
     padding: 0 14px;
     font-size: var(--fs-sm, 13px);
     border-radius: var(--r-sm, 8px);
}
 .btn--md, a.btn--md, button.btn--md {
     min-height: 40px;
     padding: 0 18px;
     font-size: var(--fs-md, 14px);
     border-radius: var(--r-md, 12px);
}
 .btn--lg, a.btn--lg, button.btn--lg {
     min-height: 48px;
     padding: 0 24px;
     font-size: 15px;
     font-weight: 700;
     border-radius: var(--r-md, 12px);
}
 .btn--xl, a.btn--xl, button.btn--xl {
     min-height: 56px;
     padding: 0 32px;
     font-size: 16px;
     font-weight: 700;
     border-radius: var(--r-md, 12px);
}
 .btn--xxl, a.btn--xxl, button.btn--xxl {
     min-height: 64px;
     padding: 0 40px;
     font-size: 18px;
     font-weight: 800;
     border-radius: var(--r-lg, 16px);
     gap: 10px;
}
 a.ref-card {
     display: flex;
     flex-direction: column;
     align-items: stretch;
     text-align: left;
     text-decoration: none;
     color: inherit;
     cursor: pointer;
}
 a.ref-card:focus-visible {
     outline: 2px solid #3b82f6;
     outline-offset: 3px;
}
 @media (min-width: 901px) {
     :root {
        /* 360의 역할: calc(0.7 * 100vw + 360px)에서 360px는 기본 패딩(여백) 또는 최소한의 고정값을 더해주는 역할을 하여, 화면이 좁아질 때 레이아웃이 너무 작아지지 않도록 방지합니다. (유동 + 고정 조합으로 반응형 그리드의 최소 한계를 보장) */
         --container: min(1400px, calc(0.7 * 100vw + 360px));
         --container-px: 15px;
    }
}
 :root {
     --d-fast: 220ms;
     --d-base: 380ms;
     --d-slow: 560ms;
     --ease: cubic-bezier(0.33, 0.08, 0.2, 1);
     --ease-hover: cubic-bezier(0.2, 0.75, 0.22, 1);
     --ease-transform: cubic-bezier(0.2, 0.75, 0.22, 1);
     --t-hover: 0.4s;
}
 @media (max-width: 720px) {
     :root {
         --m-ctrl: 0.9;
    }
     .btn, a.btn, button.btn:not(.starter):not(.chip):not(.kbd):not(.kbd-chip) {
         padding: calc(10px * var(--m-ctrl)) calc(18px * var(--m-ctrl));
         gap: calc(8px * var(--m-ctrl));
         font-size: calc(14px * var(--m-ctrl));
         border-radius: calc(10px * var(--m-ctrl));
         line-height: 1.25;
    }
     .btn .icon {
         font-size: 1.12em;
    }
     .btn--sm, .btn.btn--sm {
         min-height: calc(40px * var(--m-ctrl));
         padding: calc(7px * var(--m-ctrl)) calc(14px * var(--m-ctrl));
         font-size: calc(13.5px * var(--m-ctrl));
         border-radius: calc(10px * var(--m-ctrl));
    }
     html[data-page="portal_01b_review_editor"] .nav__textlink.rev-cie-bar__back {
         min-height: calc(40px * var(--m-ctrl));
         padding: calc(7px * var(--m-ctrl)) calc(14px * var(--m-ctrl));
         font-size: calc(13.5px * var(--m-ctrl));
         border-radius: calc(10px * var(--m-ctrl));
    }
     .btn--xl, .btn.btn--xl {
         min-height: calc(52px * var(--m-ctrl));
         padding: calc(16px * var(--m-ctrl)) calc(32px * var(--m-ctrl));
         font-size: calc(16px * var(--m-ctrl));
         border-radius: calc(12px * var(--m-ctrl));
    }
     .hero .btn--xl {
         padding: calc(12px * var(--m-ctrl)) calc(22px * var(--m-ctrl));
         font-size: calc(15px * var(--m-ctrl));
         min-height: calc(44px * var(--m-ctrl));
    }
     .login-mode__btn {
         padding: calc(8px * var(--m-ctrl)) calc(16px * var(--m-ctrl));
         font-size: calc(13.5px * var(--m-ctrl));
    }
     .login-submit {
         padding: calc(12px * var(--m-ctrl)) calc(20px * var(--m-ctrl));
         font-size: calc(13.5px * var(--m-ctrl));
    }
     .login-pw-toggle {
         width: calc(40px * var(--m-ctrl));
         height: calc(40px * var(--m-ctrl));
         margin: -6px -6px -6px 0;
    }
     .login-pw-toggle .icon {
         font-size: calc(22px * var(--m-ctrl));
    }
     .modal-card__close {
         width: calc(40px * var(--m-ctrl));
         height: calc(40px * var(--m-ctrl));
    }
     .modal-card__close .icon {
         font-size: calc(22px * var(--m-ctrl));
    }
     .compose__row {
         flex-direction: column;
         align-items: stretch;
         gap: var(--s3);
    }
     .compose__input {
         flex: 0 0 auto;
         width: 100%;
    }
     .compose__send {
         width: 100%;
         min-height: calc(44px * var(--m-ctrl));
         height: auto;
         border-radius: calc(12px * var(--m-ctrl));
    }
     .compose__send .icon {
         font-size: calc(20px * var(--m-ctrl));
    }
     .toolbar input, .toolbar select {
         padding: calc(10px * var(--m-ctrl)) calc(14px * var(--m-ctrl));
         min-height: calc(40px * var(--m-ctrl));
         font-size: calc(14px * var(--m-ctrl));
         border-radius: calc(10px * var(--m-ctrl));
    }
     .login-input-wrap {
         padding-bottom: calc(8px * var(--m-ctrl));
    }
     .login-input-wrap input {
         font-size: calc(15px * var(--m-ctrl));
         padding: calc(4px * var(--m-ctrl)) 0;
    }
     .login-input-wrap .icon {
         font-size: calc(22px * var(--m-ctrl));
    }
     .compose__input input {
         padding: calc(12px * var(--m-ctrl)) 0;
         font-size: calc(15px * var(--m-ctrl));
    }
     .compose__input .icon {
         padding: 0 calc(12px * var(--m-ctrl));
         font-size: calc(20px * var(--m-ctrl));
    }
     #civilflow-chat-input, #chat-input, #lginfo-infoflow-chat-input {
         font-size: calc(15px * var(--m-ctrl));
         min-height: calc(44px * var(--m-ctrl));
         padding: calc(10px * var(--m-ctrl)) calc(12px * var(--m-ctrl));
    }
     .starters .starter {
         padding: calc(8px * var(--m-ctrl)) calc(14px * var(--m-ctrl));
         font-size: calc(12px * var(--m-ctrl));
    }
     .choice-chip {
         padding: calc(8px * var(--m-ctrl)) calc(12px * var(--m-ctrl));
         font-size: calc(12px * var(--m-ctrl));
    }
     .req-form input, .req-form select, .req-form textarea {
         padding: calc(10px * var(--m-ctrl)) calc(12px * var(--m-ctrl));
         font-size: calc(14px * var(--m-ctrl));
         min-height: calc(40px * var(--m-ctrl));
    }
}
 .sv-hero {
     padding: var(--s10) 0 var(--s8);
     background: linear-gradient( 135deg, #f0f7ff 0%, #ffffff 45%, #eef6ff 100% );
     border-bottom: 1px solid var(--line, #e2e8f0);
     margin-bottom: var(--s6);
}
 .sv-hero__grid {
     display: grid;
     grid-template-columns: 1.15fr 0.85fr;
     gap: var(--s8);
     align-items: start;
}
 @media (max-width: 900px) {
     .sv-hero__grid {
         grid-template-columns: 1fr;
    }
}
 .sv-hero__kicker {
     font-size: 0.8rem;
     letter-spacing: 0.06em;
     text-transform: uppercase;
     color: var(--accent, #1a6bff);
     font-weight: 700;
     margin: 0 0 var(--s3);
}
 .sv-hero__title {
     font-size: clamp(1.55rem, 2.6vw, 2.1rem);
     line-height: 1.25;
     margin: 0 0 var(--s4);
     color: #0f172a;
}
 .sv-hero__em {
     color: var(--accent, #1a6bff);
     font-style: normal;
}
 .sv-hero__lead {
     margin: 0 0 var(--s6);
     font-size: 1.05rem;
     line-height: 1.65;
     color: #334155;
     max-width: 46rem;
}
 .sv-hero__cta {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s3);
}
 .sv-hero__cards {
     list-style: none;
     margin: 0;
     padding: 0;
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: var(--s3);
}
 .sv-hero-card {
     background: #fff;
     border: 1px solid #dbeafe;
     border-radius: 14px;
     padding: var(--s4) var(--s4);
     box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
     display: flex;
     flex-direction: column;
     gap: var(--s2);
}
 .sv-hero-card__ic {
     font-size: 28px;
     color: #2563eb;
}
 .sv-hero-card__t {
     font-weight: 700;
     font-size: 0.95rem;
     color: #0f172a;
}
 .sv-landing-hero {
     padding: var(--s12, 5rem) 0 var(--s10, 4rem);
     background: linear-gradient(135deg, #eef6ff 0%, #ffffff 50%, #f0f4ff 100%);
     border-bottom: 1px solid var(--line, #e2e8f0);
}
 .sv-landing-hero__inner {
     display: grid;
     grid-template-columns: 1.2fr 0.8fr;
     gap: var(--s10);
     align-items: center;
}
 @media (max-width: 900px) {
     .sv-landing-hero__inner {
         grid-template-columns: 1fr;
    }
}
 .sv-landing-hero__eyebrow {
     font-size: 0.78rem;
     letter-spacing: 0.08em;
     text-transform: uppercase;
     color: var(--accent, #1a6bff);
     font-weight: 700;
     margin: 0 0 var(--s3);
}
 .sv-landing-hero__title {
     font-size: clamp(1.75rem, 3.2vw, 2.6rem);
     line-height: 1.2;
     margin: 0 0 var(--s5);
     color: #0f172a;
}
 .sv-landing-hero__em {
     color: var(--accent, #1a6bff);
     font-style: normal;
}
 .sv-landing-hero__lead {
     margin: 0 0 var(--s7);
     font-size: 1.08rem;
     line-height: 1.7;
     color: #334155;
     max-width: 46rem;
}
 .sv-landing-hero__cta {
     display: flex;
     flex-wrap: wrap;
     gap: var(--s3);
}
 .sv-landing-hero__cards {
     list-style: none;
     margin: 0;
     padding: 0;
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: var(--s3);
}
 .sv-land-card {
     background: #fff;
     border: 1px solid #dbeafe;
     border-radius: 16px;
     padding: var(--s5) var(--s4);
     box-shadow: 0 8px 24px rgba(15, 23, 42, 0.07);
     display: flex;
     flex-direction: column;
     gap: var(--s2);
     transition: box-shadow 0.18s;
}
 .sv-land-card:hover {
     box-shadow: 0 12px 32px rgba(37, 99, 235, 0.13);
}
 .sv-land-card__ic {
     font-size: 30px;
     color: #2563eb;
}
 .sv-land-card__title {
     font-weight: 700;
     font-size: 0.95rem;
     color: #0f172a;
}
 .sv-land-card__desc {
     font-size: 0.82rem;
     color: #64748b;
}
 .sv-landing-steps {
     padding: var(--s10) 0 var(--s8);
}
 .sv-landing-steps__heading {
     font-size: 1.35rem;
     font-weight: 800;
     color: #0f172a;
     margin: 0 0 var(--s7);
     text-align: center;
}
 .sv-landing-steps__list {
     list-style: none;
     margin: 0 0 var(--s8);
     padding: 0;
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: var(--s4);
}
 @media (max-width: 760px) {
     .sv-landing-steps__list {
         grid-template-columns: 1fr 1fr;
    }
}
 .sv-landing-step {
     background: #f8fafc;
     border: 1px solid var(--line, #e2e8f0);
     border-radius: 16px;
     padding: var(--s5) var(--s4);
     display: flex;
     flex-direction: column;
     align-items: center;
     text-align: center;
     gap: var(--s2);
     position: relative;
}
 .sv-landing-step__num {
     position: absolute;
     top: var(--s3);
     left: var(--s3);
     font-size: 0.7rem;
     font-weight: 800;
     color: var(--accent, #1a6bff);
     background: #dbeafe;
     width: 20px;
     height: 20px;
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
}
 .sv-landing-step__ic {
     font-size: 32px;
     color: #2563eb;
     margin-top: var(--s2);
}
 .sv-landing-step__label {
     font-size: 0.95rem;
     font-weight: 700;
     color: #0f172a;
}
 .sv-landing-step__desc {
     font-size: 0.82rem;
     color: #64748b;
     line-height: 1.5;
}
 .sv-landing-steps__cta {
     text-align: center;
}
 .sv-landing-notice {
     padding: 0 0 var(--s10);
}
 .sv-landing-notice__inner {
     display: flex;
     align-items: flex-start;
     gap: var(--s3);
     background: #fff9e6;
     border: 1px solid #fde68a;
     border-radius: 12px;
     padding: var(--s4) var(--s5);
}
 .sv-landing-notice__ic {
     font-size: 22px;
     color: #b45309;
     flex-shrink: 0;
     margin-top: 2px;
}
 .sv-landing-notice__text {
     font-size: 0.9rem;
     color: #78350f;
     line-height: 1.6;
     margin: 0;
}
 .modal-card--async-done {
     max-width: 520px;
}
 .modal-async__lead {
     font-size: 1.05rem;
     margin-top: 0;
}
 .modal-async__fine {
     font-size: 0.92rem;
     color: #64748b;
     margin-bottom: 0;
}
 .verify-report__file-bar {
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     gap: var(--s3);
     margin-bottom: var(--s4);
     padding: var(--s3) var(--s4);
     background: #f8fafc;
     border: 1px solid #e2e8f0;
     border-radius: 12px;
}
 .verify-report__file-bar-lbl {
     font-weight: 600;
     font-size: 0.9rem;
     color: #0f172a;
}
 .verify-report__file-sel {
     min-width: 220px;
     padding: 8px 12px;
     border-radius: 8px;
     border: 1px solid #cbd5e1;
     font-size: 0.95rem;
}
 .verify-report__file-bar-hint {
     width: 100%;
     margin: 0;
     font-size: 0.85rem;
     color: #64748b;
}
 .verify-rv-acc {
     border: 1px solid #e2e8f0;
     border-radius: 8px;
     padding: 2px 6px;
     background: #fff;
}
 .verify-rv-acc__sum {
     cursor: pointer;
     list-style: none;
     display: flex;
     align-items: center;
     gap: 6px;
     font-size: 0.82rem;
     color: #334155;
}
 .verify-rv-acc__sum::-webkit-details-marker {
     display: none;
}
 .verify-rv-acc__chev {
     font-size: 18px;
     margin-left: auto;
}
 .verify-rv-acc[open] .verify-rv-acc__chev {
     transform: rotate(180deg);
}
 .verify-rv-acc__body {
     font-size: 0.82rem;
     padding: 6px 4px 8px;
     color: #475569;
     border-top: 1px dashed #e2e8f0;
     margin-top: 4px;
}
 .verify-pending-aside {
     padding: var(--s4);
     background: #fffbeb;
     border: 1px solid #fde68a;
     border-radius: 12px;
}
 .verify-pending-aside__lead {
     margin-top: 0;
}
 .verify-pending-aside__list {
     margin: 0;
     padding-left: 1.1rem;
     line-height: 1.65;
}
 .rev-base-modal__body {
     max-height: min(70vh, 520px);
     overflow: auto;
}
 .rev-base-acc {
     border: 1px solid #e2e8f0;
     border-radius: 10px;
     padding: 4px 10px;
     margin-bottom: 8px;
     background: #fff;
}
 .rev-base-acc__sum {
     cursor: pointer;
     list-style: none;
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     gap: 8px;
     font-size: 0.88rem;
}
 .rev-base-acc__sum::-webkit-details-marker {
     display: none;
}
 .rev-base-acc__cat {
     font-weight: 700;
     color: #1e40af;
     font-size: 0.78rem;
     text-transform: uppercase;
}
 .rev-base-acc__one {
     flex: 1;
     min-width: 0;
}
 .rev-base-acc__chev {
     margin-left: auto;
     font-size: 20px;
     color: #64748b;
}
 .rev-base-acc__body {
     padding: 8px 4px 10px;
     font-size: 0.88rem;
     line-height: 1.55;
     border-top: 1px dashed #e2e8f0;
     margin-top: 6px;
}
 .rev-base-modal__empty {
     color: #64748b;
}
 .civil-sv-modal__list {
     list-style: none;
     margin: 0;
     padding: 0;
     max-height: 280px;
     overflow: auto;
}
 .civil-sv-modal__item {
     display: flex;
     align-items: flex-start;
     gap: 10px;
     padding: 10px 8px;
     border-bottom: 1px solid #f1f5f9;
}
 .civil-sv-modal__item input {
     margin-top: 4px;
}
 .starters--civil-shortcuts {
     display: flex;
     flex-wrap: wrap;
     gap: 8px;
}
 .starters--civil-shortcuts .starter {
     margin: 0;
}
 .ds-search-bar {
     display: flex;
     align-items: center;
     flex-wrap: wrap;
     gap: var(--s3);
     padding: var(--s4) var(--s5);
     background: #f8fafc;
     border: 1px solid var(--line, #e2e8f0);
     border-radius: 10px;
     margin-bottom: var(--s5);
}
 .ds-search-bar__field--keyword {
     flex: 1 1 260px;
     display: flex;
     align-items: center;
     background: #fff;
     border: 1px solid var(--line, #e2e8f0);
     border-radius: 8px;
     padding: 0 var(--s3);
     gap: var(--s2);
}
 .ds-search-bar__search-ic {
     font-size: 18px;
     color: #94a3b8;
     flex-shrink: 0;
}
 .ds-search-bar__input {
     flex: 1;
     border: none;
     background: none;
     font: inherit;
     font-size: 0.9rem;
     padding: var(--s2) 0;
     outline: none;
     color: var(--text, #0f172a);
}
 .ds-search-bar__input::placeholder {
     color: #94a3b8;
}
 .ds-search-bar__date-wrap {
     display: flex;
     align-items: center;
     gap: var(--s2);
     flex-shrink: 0;
}
 .ds-search-bar__date-label {
     font-size: 0.85rem;
     font-weight: 600;
     color: #64748b;
     white-space: nowrap;
}
 .ds-search-bar__date {
     font: inherit;
     font-size: 0.85rem;
     border: 1px solid var(--line, #e2e8f0);
     border-radius: 6px;
     padding: 8px;
     color: var(--text, #0f172a);
     background: #fff;
}
 .ds-search-bar__date-sep {
     color: #94a3b8;
     font-weight: 600;
}
 .ds-search-bar__btns {
     display: flex;
     gap: var(--s2);
     flex-shrink: 0;
}
 .ds-card-grid {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: var(--s4);
     margin-bottom: var(--s6);
}
 @media (max-width: 900px) {
     .ds-card-grid {
         grid-template-columns: repeat(2, 1fr);
    }
}
 @media (max-width: 560px) {
     .ds-card-grid {
         grid-template-columns: 1fr;
    }
}
 .ds-card {
     display: flex;
     flex-direction: column;
     gap: var(--s3);
     padding: var(--s5);
     background: #fff;
     border: 1px solid var(--line, #e2e8f0);
     border-radius: 12px;
     text-decoration: none;
     color: inherit;
     transition: box-shadow 0.15s, border-color 0.15s;
     cursor: pointer;
}
 .ds-card:hover, .ds-card:focus-visible {
     box-shadow: 0 6px 20px rgba(37,99,235,0.12);
     border-color: var(--accent, #1a6bff);
     outline: none;
}
 .ds-card__title {
     font-size: 0.95rem;
     font-weight: 700;
     color: #0f172a;
     line-height: 1.4;
     flex: 1;
}
 .ds-card__meta {
     display: flex;
     align-items: center;
     gap: var(--s2);
     font-size: 0.82rem;
     color: #64748b;
}
 .ds-card__sep {
     color: #cbd5e1;
}
 .ds-card__src {
     font-size: 0.75rem;
     font-weight: 600;
     color: var(--accent, #1a6bff);
     background: #eff6ff;
     padding: 2px 8px;
     border-radius: 99px;
     align-self: flex-start;
}
 .ds-empty {
     grid-column: 1 / -1;
     text-align: center;
     padding: var(--s10) 0;
     color: #94a3b8;
     font-size: 0.95rem;
}
 .ds-pager {
     display: flex;
     justify-content: center;
     align-items: center;
     gap: var(--s2);
     padding: var(--s4) 0 var(--s2);
}
 .ds-pager__btn {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     min-width: 36px;
     height: 36px;
     padding: 0 var(--s2);
     border: 1px solid var(--line, #e2e8f0);
     border-radius: 8px;
     background: #fff;
     font: inherit;
     font-size: 0.9rem;
     color: #374151;
     cursor: pointer;
     transition: background 0.13s, border-color 0.13s, color 0.13s;
}
 .ds-pager__btn:hover:not(:disabled) {
     background: #f1f5f9;
     border-color: #94a3b8;
}
 .ds-pager__btn:disabled {
     opacity: 0.35;
     cursor: default;
}
 .ds-pager__num--active {
     background: var(--accent, #1a6bff);
     border-color: var(--accent, #1a6bff);
     color: #fff;
     font-weight: 700;
}
 .mypage-tabs {
     display: flex;
     gap: var(--s2);
     border-bottom: 2px solid var(--line, #e2e8f0);
     margin-bottom: var(--s6);
     flex-wrap: wrap;
}
 .mypage-tab {
     display: inline-flex;
     align-items: center;
     gap: var(--s2);
     padding: var(--s3) var(--s5);
     border: none;
     background: none;
     font: inherit;
     font-size: 0.95rem;
     font-weight: 600;
     color: #64748b;
     cursor: pointer;
     border-bottom: 3px solid transparent;
     margin-bottom: -2px;
     border-radius: 6px 6px 0 0;
     transition: color 0.15s, border-color 0.15s;
}
 .mypage-tab .icon {
     font-size: 18px;
}
 .mypage-tab:hover {
     color: var(--accent, #1a6bff);
}
 .mypage-tab--active {
     color: var(--accent, #1a6bff);
     border-bottom-color: var(--accent, #1a6bff);
}
 .mypage-panel__head {
     display: flex;
     align-items: center;
     justify-content: space-between;
     margin-bottom: var(--s5);
     flex-wrap: wrap;
     gap: var(--s3);
}
 .mypage-panel__title {
     font-size: 1.15rem;
     font-weight: 800;
     margin: 0;
     color: #0f172a;
}
 .mypage-panel__embed {
     display: flex;
     flex-direction: column;
     gap: var(--s3);
}
 .mypage-embed-link {
     align-self: flex-end;
}
 .mypage-iframe {
     width: 100%;
     height: 680px;
     border: 1px solid var(--line, #e2e8f0);
     border-radius: 12px;
     background: #fafafa;
}
 .mypage-civil-empty {
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: var(--s3);
     padding: var(--s12) var(--s4);
     color: #94a3b8;
     text-align: center;
}
 .mypage-civil-empty__ic {
     font-size: 48px;
     color: #cbd5e1;
}
 .mypage-civil-empty__msg {
     font-size: 1.05rem;
     font-weight: 700;
     margin: 0;
     color: #64748b;
}
 .mypage-civil-empty__sub {
     font-size: 0.88rem;
     margin: 0;
     color: #94a3b8;
}
 .mypage-profile {
     display: flex;
     flex-direction: column;
     align-items: flex-start;
     gap: var(--s5);
     max-width: 540px;
}
 .mypage-profile__avatar {
     width: 72px;
     height: 72px;
     border-radius: 50%;
     background: #e0edff;
     display: flex;
     align-items: center;
     justify-content: center;
}
 .mypage-profile__avatar .icon {
     font-size: 40px;
     color: #2563eb;
}
 .mypage-profile__dl {
     width: 100%;
     display: flex;
     flex-direction: column;
     gap: 0;
     border: 1px solid var(--line, #e2e8f0);
     border-radius: 12px;
     overflow: hidden;
}
 .mypage-profile__row {
     display: flex;
     border-bottom: 1px solid var(--line, #e2e8f0);
}
 .mypage-profile__row:last-child {
     border-bottom: none;
}
 .mypage-profile__row dt {
     width: 110px;
     flex-shrink: 0;
     padding: var(--s3) var(--s4);
     font-size: 0.88rem;
     font-weight: 600;
     color: #64748b;
     background: #f8fafc;
}
 .mypage-profile__row dd {
     padding: var(--s3) var(--s4);
     font-size: 0.92rem;
     color: #0f172a;
     margin: 0;
     display: flex;
     align-items: center;
     gap: var(--s2);
}
 .mypage-profile__badge {
     font-size: 0.72rem;
     font-weight: 700;
     background: #dbeafe;
     color: #1e40af;
     padding: 2px 8px;
     border-radius: 99px;
}
 .mypage-profile__note {
     font-size: 0.8rem;
     color: #94a3b8;
     margin: 0;
}
 .site-footer {
     padding: var(--s6) 0;
     border-top: 1px solid var(--line, #e2e8f0);
     background: #f8fafc;
}
 .site-footer__inner {
     display: flex;
     align-items: center;
     justify-content: space-between;
     flex-wrap: wrap;
     gap: var(--s3);
}
.site-footer {
    background: #fff;
    border-top: 1px solid #e2e8f0;
    padding: 2.5rem 0;
}
.site-footer__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start; /* 상단 기준 정렬 */
    gap: var(--s6);
}
.site-footer__info {
    display: flex;
    flex-direction: column;
    gap: var(--s2);
    flex: 1;
}
.site-footer__info p {
    line-height: 1.2;
    margin: 0;
}
.site-footer__address, .site-footer__contact, .site-footer__copyright {
    font-size: 0.82rem;
    color: #666; /* 더 진한 색상 */
    margin: 0;
    font-style: normal;
    line-height: 1.6;
    font-weight: 500;
}
.site-footer__links {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--s2);
    flex-shrink: 0;
    padding-top: 0.2rem; /* 주소 첫 줄과 수평을 맞추기 위한 미세 조정 */
}
.site-footer__link-group {
    display: flex;
    gap: var(--s4);
    white-space: nowrap;
}
.site-footer__links a {
    font-size: 0.82rem;
    color: #333; /* 링크는 더 진하게 */
    text-decoration: none;
    font-weight: 700;
}
.site-footer__links a:hover {
    color: var(--accent, #1a6bff);
}
@media (max-width: 768px) {
    .site-footer__inner {
        flex-direction: column;
        align-items: flex-start;
    }
    .site-footer__links {
        align-items: flex-start;
        margin-top: var(--s4);
    }
}


/* ═══════════════════════════════════════════════
   data-head — 공통 다크 페이지 헤더 배너
   portal_01_selfverify, portal_02_info_chat,
   portal_03_civil_initial, portal_04_data,
   portal_01a_verify_status, portal_mypage 공용
   ═══════════════════════════════════════════════ */
.data-head {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(ellipse 80% 50% at 50% 0%, rgba(37,99,235,0.35), transparent 60%),
        radial-gradient(ellipse 60% 50% at 80% 60%, rgba(255,140,90,0.25), transparent 60%),
        linear-gradient(180deg, #0A0E27 0%, #121A35 100%);
    padding-block: 2.5rem 0;
}
/* chat-head가 data-head 안에 있을 때 흰 배경·구분선 제거 */
.data-head .chat-head {
    background: transparent;
    border-bottom: none;
}
.data-head .breadcrumb a,
.data-head .breadcrumb span {
    color: rgba(255,255,255,0.6);
}
.data-head .breadcrumb .icon {
    color: rgba(255,255,255,0.4);
}
.data-head .chat-head__title,
.data-head .page-head h1 {
    color: #fff;
}
.data-head .chat-head__sub,
.data-head .page-head p,
.data-head .page-kicker {
    color: rgba(255,255,255,0.65);
}
.data-head .chat-head__icon .icon {
    color: #fff;
}
.data-head .chat-head__icon {
    background: #2297FF;
    box-shadow: 0 0 14px rgba(0, 0, 0, 0.3);

    /* 3D 로테이션 애니메이션 초기화 */
    transform: translateZ(0) rotateY(90deg);
    transform-style: preserve-3d;
    backface-visibility: hidden;
    transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1), background var(--d-base) var(--ease), color var(--d-base) var(--ease);

    /* 애니메이션 트리거용 클래스 추가 */
    animation: chat-head-icon-rotateY-in 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes chat-head-icon-rotateY-in {
    from {
        transform: translateZ(0) rotateY(90deg);
    }
    to {
        transform: translateZ(0) rotateY(0deg);
    }
}
.data-head .chat-head__fineprint {
    background: rgba(255,255,255,0.07);
    border-color: rgba(255,255,255,0.15);
    color: rgba(255,255,255,0.6);
}
.data-head .btn--line {
    border-color: rgba(255,255,255,0.3);
    color: rgba(255,255,255,0.85);
}
.data-head .btn--line:hover {
    background: rgba(255,255,255,0.1);
}
.data-head__wave {
    display: none;
}
.data-head::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 5rem;
    pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 80'%3E%3Cpath d='M0,40 C200,65 400,15 600,40 C800,65 1000,15 1200,40 L1200,80 L0,80 Z' fill='rgba(37,99,235,0.18)'/%3E%3Cpath d='M0,55 C300,30 600,75 900,45 C1050,32 1150,60 1200,55 L1200,80 L0,80 Z' fill='rgba(255,140,90,0.1)'/%3E%3C/svg%3E");
    background-repeat: repeat-x;
    background-size: 1200px 100%;
    animation: data-wave-css 14s linear infinite;
}
@keyframes data-wave-css {
    from { background-position-x: 0; }
    to   { background-position-x: -1200px; }
}

/* ─────────────────────────────────────────────
   chat-head 진입 페이드인 애니메이션
   ───────────────────────────────────────────── */
@keyframes chat-head-fadein {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.chat-head__icon {
    animation: chat-head-fadein 0.45s ease both;
    animation-delay: 0s;
}
.chat-head__title {
    animation: chat-head-fadein 0.5s ease both;
    animation-delay: 0.12s;
}
.chat-head__sub {
    animation: chat-head-fadein 0.5s ease both;
    animation-delay: 0.28s;
}
.chat-head__fineprint {
    animation: chat-head-fadein 0.5s ease both;
    animation-delay: 0.42s;
}
.chat-head__spacer {
    animation: chat-head-fadein 0.5s ease both;
    animation-delay: 0.35s;
}
/* 페이지 재진입 시 재생 방지: prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    .chat-head__icon,
    .chat-head__title,
    .chat-head__sub,
    .chat-head__fineprint,
    .chat-head__spacer {
        animation: none;
    }
}
/* page-head 타입(mypage, verify_status)용 */
.data-head .page-head {
    margin-bottom: 0;
    padding-block-end: 0.5rem;
}
.data-head .page-head h1 {
    color: #fff;
}
.data-head .page-head p {
    color: rgba(255,255,255,0.65);
}
.data-head .page-kicker {
    color: rgba(255,255,255,0.5);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 4px;
}
.data-head code {
    background: rgba(255,255,255,0.12);
    color: rgba(255,255,255,0.85);
    border-radius: 3px;
    padding: 1px 5px;
}
@media (max-width: 768px) {
    .data-head {
        padding-block-start: 1.5rem;
    }
    .data-head__wave {
        height: 3rem;
    }
}






/* ─────────── A. Tokens ─────────── */
:root{
  --svl-content-max:1280px;
  --svl-content-px:1.5rem;
  --svl-section-py:clamp(4rem,8vw,6.5rem);

  --svl-bg:#FFFFFF;
  --svl-bg-alt:#F4F7FE;
  --svl-bg-soft:#EEF3FC;
  --svl-bg-dark:#0A0E27;
  --svl-bg-dark-2:#101A3D;

  --svl-ink:#0F172A;
  --svl-ink-soft:#475569;
  --svl-ink-mute:#64748B;
  --svl-line:#E2E8F0;

  --svl-blue:#3B6BF5;
  --svl-blue-700:#2952D6;
  --svl-blue-soft:#A8C0FF;
  --svl-blue-glass:#7B9BFF;

  /* 액센트: 소프트 블루 (오렌지 대체) */
  --svl-accent:        rgb(157, 185, 249);
  --svl-accent-2:      rgb(186, 207, 252);
  --svl-accent-deep:   rgb(120, 156, 240);
  --svl-accent-rgb:    157 185 249;

  --svl-accent-violet:#7C3AED;
  --svl-accent-green:#10B981;
  --svl-accent-amber:#F59E0B;

  --svl-radius:16px;
  --svl-radius-lg:24px;
  --svl-shadow-card:0 10px 30px -12px rgba(59,107,245,0.18);
  --svl-shadow-hover:0 24px 48px -16px rgba(59,107,245,0.32);

  --svl-ease:cubic-bezier(.22,1,.36,1);
  --svl-dur:.4s;
}

/* ─────────── B. Base ─────────── */
.svl-page{
  margin:0;background:var(--svl-bg);color:var(--svl-ink);
  font-family:'SUIT Variable','SUIT',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.svl-page *,.svl-page *::before,.svl-page *::after{box-sizing:border-box;}
.icon{
  font-family:'Material Symbols Outlined','Material Symbols Rounded',sans-serif;
  font-weight:normal;line-height:1;vertical-align:middle;font-feature-settings:'liga';
}

/* ─────────── C. Buttons ─────────── */
.svl-btn-primary,.svl-btn-ghost{
  display:inline-flex;align-items:center;gap:0.5rem;
  padding:0.85rem 1.5rem;
  font-size:0.92rem;font-weight:700;
  border-radius:999px;
  text-decoration:none;cursor:pointer;
  border:1px solid transparent;
  transition:transform var(--svl-dur) var(--svl-ease),
             box-shadow var(--svl-dur) var(--svl-ease),
             background var(--svl-dur) var(--svl-ease),
             border-color var(--svl-dur) var(--svl-ease),
             color var(--svl-dur) var(--svl-ease);
}
/* Primary: 진한 파란 배경 + 흰 텍스트 */
.svl-btn-primary{
  background:linear-gradient(135deg,#3B6BF5 0%,#2952D6 100%);
  color:#fff;
  box-shadow:0 10px 24px -10px rgba(59,107,245,0.55);
}
.svl-btn-primary:hover{
  transform:translateY(-3px);
  background:linear-gradient(135deg,#2952D6 0%,#1D40C0 100%);
  color:#fff;
  box-shadow:0 18px 30px -10px rgba(59,107,245,0.65);
}
/* Ghost (다크 배경용) */
.svl-btn-ghost{
  background:rgba(255,255,255,0.08);
  color:#fff;
  border-color:rgba(255,255,255,0.35);
}
.svl-btn-ghost:hover{
  transform:translateY(-3px);
  background:rgba(255,255,255,0.15);
  border-color:rgba(255,255,255,0.6);
  color:#fff;
}
/* Ghost (라이트 배경용) */
.svl-btn-ghost--light{
  background:rgba(59,107,245,0.08);
  color:var(--svl-blue-700);
  border-color:rgba(59,107,245,0.35);
}
.svl-btn-ghost--light:hover{
  background:rgba(59,107,245,0.16);
  border-color:rgba(59,107,245,0.6);
  color:var(--svl-blue-700);
}

/* ─────────── D. Section Layout ─────────── */
.svl-section{position:relative;padding:var(--svl-section-py) 0;background:var(--svl-bg);overflow:hidden;}
.svl-section--alt{
  background:linear-gradient(180deg,var(--svl-bg-alt) 0%,var(--svl-bg-soft) 100%);
}
.svl-section--dark{
  background:linear-gradient(180deg,var(--svl-bg-dark) 0%,var(--svl-bg-dark-2) 100%);
  color:#E2E8F0;
}
.svl-inner{
  position:relative;z-index:1;
  max-width:var(--svl-content-max);
  margin:0 auto;padding:0 var(--svl-content-px);
}
.svl-section-head{text-align:center;max-width:720px;margin:0 auto 3.5rem;}
.svl-section-eyebrow{
  display:inline-block;
  padding:0.4rem 0.95rem;margin:0 0 1rem;
  font-size:0.6rem;font-weight:500;letter-spacing:0.14em;
  color:var(--svl-blue-700);text-transform:uppercase;
  background:rgba(59,107,245,0.08);
  border:1px solid rgba(59,107,245,0.18);
  border-radius:999px;
}
.svl-section--dark .svl-section-eyebrow{
  color:var(--svl-blue-soft);
  background:rgba(168,192,255,0.1);
  border-color:rgba(168,192,255,0.22);
}
.svl-section-title{
  margin:0 0 0.75rem;
  font-size:clamp(1.6rem,3.2vw,2.25rem);font-weight:800;
  letter-spacing:-0.025em;color:var(--svl-ink);
}
.svl-section--dark .svl-section-title{color:#F8FAFC;}
.svl-section-desc{
  margin:0;font-size:0.98rem;line-height:1.75;color:var(--svl-ink-soft);
}
.svl-section--dark .svl-section-desc{color:#CBD5E1;}

/* ─────────── E. Hero ─────────── */
.svl-hero{
  --hero-accent:var(--svl-accent);
  --hero-accent-2:var(--svl-accent-2);
  --hero-blue:#A8C0FF;--hero-blue-soft:#C7D5FF;
  --hero-text:#E5EBFA;--hero-text-mute:#B8C5E8;
  --hero-line:rgba(168,192,255,0.18);

  position:relative;overflow:hidden;
  background:
    radial-gradient(ellipse 70% 55% at 15% 15%,rgba(59,107,245,0.32),transparent 60%),
    radial-gradient(ellipse 60% 50% at 88% 85%,rgba(157,185,249,0.18),transparent 55%),
    radial-gradient(ellipse 50% 40% at 70% 20%,rgba(124,58,237,0.18),transparent 60%),
    linear-gradient(180deg,var(--svl-bg-dark) 0%,var(--svl-bg-dark-2) 100%);
  color:var(--hero-text);
}
.svl-orb{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none;z-index:0;}
.svl-orb--blue   {top:-100px;left:-80px;width:380px;height:380px;background:#3B6BF5;opacity:0.35;}
.svl-orb--soft   {bottom:-140px;right:-100px;width:320px;height:320px;background:var(--svl-accent);opacity:0.22;}
.svl-orb--violet {top:30%;right:20%;width:240px;height:240px;background:#7C3AED;opacity:0.22;}

.svl-hero__inner{
  position:relative;z-index:1;
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,0.95fr);
  align-items:center;gap:clamp(1.5rem,3vw,3rem);
  max-width:var(--svl-content-max);margin:0 auto;
  padding:clamp(3rem,6vw,4.5rem) var(--svl-content-px);
}
.svl-hero__text{min-width:0;}
.svl-hero__visual{display:flex;justify-content:center;min-width:0;}
.svl-hero-anim{width:100%;max-width:440px;height:auto;}
@media (max-width:960px){
  .svl-hero__inner{grid-template-columns:1fr;text-align:center;}
  .svl-hero__visual{order:-1;max-width:320px;margin:0 auto;}
  .svl-hero__cta{justify-content:center;}
}

.svl-hero__kicker{
  display:inline-flex;align-items:center;gap:0.5rem;margin:0 0 1rem;
  color:var(--hero-text-mute);font-size:0.8rem;font-weight:600;
  padding:0.4rem 0.85rem;
  background:rgba(168,192,255,0.08);
  border:1px solid var(--hero-line);
  border-radius:999px;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.svl-hero__title{
  font-size:clamp(1.85rem,3.8vw,2.7rem);
  line-height:1.2;font-weight:800;letter-spacing:-0.025em;
  margin:0.5rem 0 1rem;color:#fff;
}
.svl-hero__title em{
  font-style:normal;
  background:linear-gradient(135deg,var(--svl-accent) 0%,#fff 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
@supports not (background-clip:text){
  .svl-hero__title em{color:var(--svl-accent);-webkit-text-fill-color:var(--svl-accent);}
}
.svl-hero__sub{margin:0 0 1.5rem;color:var(--hero-text);font-size:0.98rem;line-height:1.7;}
.svl-hero__accent{color:var(--hero-blue-soft);font-weight:700;}
.svl-hero__cta{display:flex;gap:0.75rem;flex-wrap:wrap;margin:0;}

.svl-hero__stats{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(0.5rem,1.5vw,1rem);
  margin-top:2rem;padding-top:1.5rem;
  border-top:1px solid var(--hero-line);
}
@media (max-width:720px){.svl-hero__stats{grid-template-columns:repeat(2,1fr);gap:1.25rem;}}
.svl-hero__stat-item{
  opacity:0;transform:translateY(16px);
  transition:opacity .6s ease-out,transform .6s ease-out;
  transition-delay:calc(var(--i,0) * .1s);
  display:flex;flex-direction:column;
}
.svl-hero__stats.is-visible .svl-hero__stat-item{opacity:1;transform:none;}
.svl-hero__stat-num{
  font-size:clamp(1.6rem,2.8vw,2.1rem);font-weight:800;line-height:1.1;
  color:var(--svl-accent);display:inline-flex;align-items:baseline;
}
.svl-hero__stat-unit{font-size:0.5em;font-weight:600;color:#fff;margin-left:0.15em;}
.svl-hero__stat-label{margin-top:0.3rem;color:var(--hero-text);font-size:0.78rem;font-weight:500;}
.svl-count{font-variant-numeric:tabular-nums;}
.svl-hero__stats:not(.is-visible) .svl-count{visibility:hidden;}

/* ─────────── F. SVG Animations ─────────── */
.svl-anim-doc{transform-origin:210px 225px;animation:svlDocEnter .9s var(--svl-ease) both;}
@keyframes svlDocEnter{from{opacity:0;transform:translateY(24px) scale(.97);}to{opacity:1;}}
.svl-anim-scanline{transform-box:fill-box;animation:svlScan 5s ease-in-out .8s infinite;}
@keyframes svlScan{
  0%,99%,100%{opacity:0;}
  4%,45%{opacity:1;}
  45%,55%{transform:translateY(270px);}
  55%{opacity:0;}
}
.svl-anim-row{opacity:.55;animation:svlRowLight .5s ease-out forwards;animation-delay:var(--row-d);}
.svl-anim-row--1{--row-d:1.5s;}.svl-anim-row--2{--row-d:2s;}
.svl-anim-row--3{--row-d:2.5s;}.svl-anim-row--4{--row-d:3s;}
@keyframes svlRowLight{to{opacity:1;}}
.svl-row-indicator{animation:svlIndFill .35s ease-out forwards;animation-delay:var(--ind-d);}
.svl-row-indicator--1{--ind-d:1.9s;--ind-c:#10B981;}
.svl-row-indicator--2{--ind-d:2.4s;--ind-c:#10B981;}
.svl-row-indicator--3{--ind-d:2.9s;--ind-c:#10B981;}
/* 4번째도 블루 톤으로 통일 (기존 오렌지 → 소프트 블루) */
.svl-row-indicator--4{--ind-d:3.4s;--ind-c:rgb(157,185,249);}
@keyframes svlIndFill{to{fill:var(--ind-c);}}
.svl-anim-progress{transform-origin:left center;transform:scaleX(0);animation:svlProgress 2.2s var(--svl-ease) 1.5s forwards;}
@keyframes svlProgress{to{transform:scaleX(.75);}}
.svl-anim-pct  {opacity:0;animation:svlFadeIn .5s ease-out 3.5s forwards;}
.svl-anim-links{opacity:0;animation:svlFadeIn .6s ease-out 1s forwards;}
@keyframes svlFadeIn{to{opacity:1;}}
.svl-anim-core{animation:svlFloat 4s ease-in-out infinite;}
@keyframes svlFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
.svl-anim-ring-outer{transform-box:fill-box;transform-origin:center;animation:svlSpin 22s linear infinite;}
@keyframes svlSpin{to{transform:rotate(360deg);}}
.svl-anim-pulse-ring{transform-box:fill-box;transform-origin:center;animation:svlPulse 2.6s ease-out infinite;}
@keyframes svlPulse{0%{r:22;opacity:.55;}100%{r:46;opacity:0;}}
.svl-anim-shield{
  opacity:0;transform:scale(0);transform-box:fill-box;transform-origin:center;
  animation:svlShieldPop .6s cubic-bezier(.34,1.56,.64,1) 4s forwards,
            svlFloat 4s ease-in-out 4.6s infinite;
}
@keyframes svlShieldPop{to{opacity:1;transform:scale(1);}}
.svl-shield-check{stroke-dasharray:22;stroke-dashoffset:22;animation:svlDraw .4s ease-out 4.5s forwards;}
@keyframes svlDraw{to{stroke-dashoffset:0;}}

/* ─────────── G. Scroll Reveal ─────────── */
.svl-reveal{opacity:0;transform:translateY(28px);
  transition:opacity .7s var(--svl-ease),transform .7s var(--svl-ease);}
.svl-reveal.is-in{opacity:1;transform:none;}
.svl-reveal-group.is-in > *{
  animation:svlRevealUp .7s var(--svl-ease) both;
  animation-delay:calc(var(--i,0) * .08s);
}
@keyframes svlRevealUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;}}

/* ─────────── H. SECTION 1: 통합 ─────────── */
.svl-section--combo::before,
.svl-section--combo::after{
  content:"";position:absolute;border-radius:50%;
  filter:blur(100px);pointer-events:none;z-index:0;
}
.svl-section--combo::before{top:-80px;left:-100px;width:380px;height:380px;background:rgba(59,107,245,0.18);}
.svl-section--combo::after {bottom:-100px;right:-80px;width:320px;height:320px;background:rgba(124,58,237,0.12);}

.svl-doc-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1.25rem;
}
@media (max-width:1024px){.svl-doc-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.svl-doc-grid{grid-template-columns:1fr;}}

.svl-doc-card{
  --card-accent:var(--svl-blue);
  position:relative;padding:1.75rem 1.5rem;
  background:rgba(255,255,255,0.7);
  border:1px solid rgba(255,255,255,0.8);
  border-radius:var(--svl-radius-lg);overflow:hidden;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:var(--svl-shadow-card);
  transition:transform var(--svl-dur) var(--svl-ease),
             box-shadow var(--svl-dur) var(--svl-ease),
             border-color var(--svl-dur) var(--svl-ease),
             background var(--svl-dur) var(--svl-ease);
}
.svl-doc-card::before{
  content:"";position:absolute;top:-30px;right:-30px;
  width:120px;height:120px;border-radius:50%;
  background:radial-gradient(circle,var(--card-accent) 0%,transparent 70%);
  opacity:.15;transition:opacity var(--svl-dur) var(--svl-ease),transform var(--svl-dur) var(--svl-ease);
}
.svl-doc-card:hover{
  transform:translateY(-8px);
  background:rgba(255,255,255,0.92);
  border-color:rgba(var(--card-accent-rgb,59 107 245)/.4);
  box-shadow:var(--svl-shadow-hover);
}
.svl-doc-card:hover::before{opacity:.3;transform:scale(1.2);}
.svl-doc-card:hover .svl-doc-card__icon{
  transform:translateY(-4px);
  box-shadow:0 12px 24px -8px rgba(var(--card-accent-rgb,59 107 245)/.45);
}

.svl-doc-card--blue  {--card-accent:#3B6BF5;--card-accent-rgb:59 107 245;}
.svl-doc-card--violet{--card-accent:#7C3AED;--card-accent-rgb:124 58 237;}
.svl-doc-card--green {--card-accent:#15803D;--card-accent-rgb:21 128 61;}
.svl-doc-card--soft  {--card-accent:rgb(120,156,240);--card-accent-rgb:120 156 240;}

.svl-doc-card__icon{
  position:relative;z-index:1;
  display:inline-flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:16px;margin-bottom:1.1rem;
  transition:transform var(--svl-dur) var(--svl-ease),
             box-shadow var(--svl-dur) var(--svl-ease);
}
.svl-doc-card__icon .icon{font-size:28px;}
.svl-doc-card__icon--blue  {background:linear-gradient(135deg,#DBEAFE,#EFF6FF);}
.svl-doc-card__icon--violet{background:linear-gradient(135deg,#EDE9FE,#F5F3FF);}
.svl-doc-card__icon--green {background:linear-gradient(135deg,#DCFCE7,#F0FDF4);}
.svl-doc-card__icon--soft  {background:linear-gradient(135deg,#DCE6FB,#EEF3FE);}

.svl-doc-card__tag{
  position:relative;z-index:1;
  display:inline-block;padding:0.28rem 0.7rem;margin-bottom:0.85rem;
  font-size:0.7rem;font-weight:700;letter-spacing:0.1em;border-radius:999px;
}
.svl-doc-card__tag--blue  {background:#EFF6FF;color:#1D4ED8;}
.svl-doc-card__tag--violet{background:#F5F3FF;color:#6D28D9;}
.svl-doc-card__tag--green {background:#F0FDF4;color:#15803D;}
.svl-doc-card__tag--soft  {background:#EEF3FE;color:rgb(80,116,200);}

.svl-doc-card__title{
  position:relative;z-index:1;
  margin:0 0 0.6rem;font-size:1.125rem;font-weight:700;color:var(--svl-ink);
}
.svl-doc-card__desc{
  position:relative;z-index:1;
  margin:0;font-size:0.875rem;line-height:1.75;color:var(--svl-ink-soft);
  min-height:3.1em;
  word-break: keep-all !important;
  line-break: strict !important;
  overflow-wrap: normal !important;
  word-wrap: normal !important;
  white-space: normal !important;
}
/* 랜딩 페이지 — 서류 카드 링크 래퍼 */
.svl-doc-card-link{
  display:block;
  text-decoration:none;
  color:inherit;
  border-radius:inherit;
  outline:none;
  -webkit-tap-highlight-color:transparent;
  cursor:pointer;
}
.svl-doc-card-link > .svl-doc-card{
  height:100%;
  transition:transform .25s ease, box-shadow .25s ease;
}
.svl-doc-card-link:hover > .svl-doc-card{
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(11,28,71,.10);
}
.svl-doc-card-link:focus-visible > .svl-doc-card{
  outline:2px solid #3B6BF5;
  outline-offset:3px;
  border-radius:14px;
}
@media (prefers-reduced-motion: reduce){
  .svl-doc-card-link > .svl-doc-card,
  .svl-doc-card-link:hover > .svl-doc-card{ transform:none; transition:none; }
}


/* ─────────── I. Process ─────────── */
.svl-process-block{margin-top:5rem;}
.svl-process{
  position:relative;display:grid;grid-template-columns:repeat(4,1fr);
  gap:1.5rem;
}
.svl-process::before{
  content:"";position:absolute;
  top:48px;left:12.5%;right:12.5%;height:2px;
  background-image:linear-gradient(to right,rgba(59,107,245,.35) 50%,transparent 50%);
  background-size:14px 2px;background-repeat:repeat-x;
  z-index:0;
}
@media (max-width:860px){
  .svl-process{grid-template-columns:repeat(2,1fr);gap:2rem 1.25rem;}
  .svl-process::before{display:none;}
}
@media (max-width:480px){.svl-process{grid-template-columns:1fr;}}

.svl-step{
  position:relative;z-index:1;text-align:center;
  padding:1.5rem 1rem 1.25rem;
  background:rgba(255,255,255,0.65);
  border:1px solid rgba(255,255,255,0.8);
  border-radius:var(--svl-radius);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  transition:transform var(--svl-dur) var(--svl-ease),
             box-shadow var(--svl-dur) var(--svl-ease),
             background var(--svl-dur) var(--svl-ease);
}
.svl-step:hover{
  transform:translateY(-6px);
  background:rgba(255,255,255,0.92);
  box-shadow:var(--svl-shadow-hover);
}
.svl-step__icon{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;
  width:88px;height:88px;
  margin:0 auto 1.1rem;
  background:linear-gradient(135deg,#EFF4FF 0%,#DEE9FF 100%);
  border:1px solid rgba(59,107,245,0.15);
  border-radius:50%;
  transition:transform var(--svl-dur) var(--svl-ease),
             box-shadow var(--svl-dur) var(--svl-ease);
}
.svl-step:hover .svl-step__icon{
  transform:translateY(-3px);
  box-shadow:0 14px 28px -10px rgba(59,107,245,0.4);
}
.svl-step__icon svg{width:44px;height:44px;}
/* STEP 배지: 오렌지 → 블루 그라디언트 */
.svl-step__num-badge{
  position:absolute;top:-6px;right:-6px;
  display:inline-flex;align-items:center;justify-content:center;
  min-width:26px;height:26px;padding:0 0.4rem;
  background:linear-gradient(135deg,var(--svl-blue),var(--svl-accent-deep));
  color:#fff;font-size:0.7rem;font-weight:800;
  border-radius:999px;
  box-shadow:0 4px 10px -2px rgba(59,107,245,0.5);
}
.svl-step__title{margin:0 0 0.45rem;font-size:1.05rem;font-weight:700;color:var(--svl-ink);}
.svl-step__desc{margin:0;font-size:0.875rem;line-height:1.65;color:var(--svl-ink-mute);}

/* ─────────── J. SECTION 2: Features (Dark) ─────────── */
.svl-section--dark::before,
.svl-section--dark::after{
  content:"";position:absolute;border-radius:50%;
  filter:blur(100px);pointer-events:none;z-index:0;
}
.svl-section--dark::before{top:-140px;left:-120px;width:400px;height:400px;background:var(--svl-blue);opacity:0.28;}
.svl-section--dark::after {bottom:-140px;right:-100px;width:340px;height:340px;background:var(--svl-accent);opacity:0.18;}

.svl-feature-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.25rem;
}
@media (max-width:960px){.svl-feature-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.svl-feature-grid{grid-template-columns:1fr;}}

.svl-feature-item{
  position:relative;display:flex;align-items:flex-start;gap:1rem;
  padding:1.6rem 1.4rem;
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(168,192,255,0.18);
  border-radius:var(--svl-radius);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  transition:transform var(--svl-dur) var(--svl-ease),
             background var(--svl-dur) var(--svl-ease),
             border-color var(--svl-dur) var(--svl-ease),
             box-shadow var(--svl-dur) var(--svl-ease);
}
.svl-feature-item:hover{
  transform:translateY(-5px);
  background:rgba(255,255,255,0.09);
  border-color:rgba(168,192,255,0.4);
  box-shadow:0 18px 36px -14px rgba(59,107,245,0.4);
}
.svl-feature-item:hover .svl-feature-item__icon{
  transform:translateY(-2px);
  background:linear-gradient(135deg,rgba(168,192,255,0.32),rgba(59,107,245,0.2));
  box-shadow:0 10px 22px -8px rgba(59,107,245,0.6);
}
.svl-feature-item__icon{
  flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  width:48px;height:48px;border-radius:14px;
  background:linear-gradient(135deg,rgba(168,192,255,0.2),rgba(59,107,245,0.1));
  border:1px solid rgba(168,192,255,0.25);
  color:#C7D5FF;
  transition:transform var(--svl-dur) var(--svl-ease),
             background var(--svl-dur) var(--svl-ease),
             box-shadow var(--svl-dur) var(--svl-ease);
}
.svl-feature-item__icon .icon{font-size:24px;}
.svl-feature-item__title{margin:0 0 0.45rem;font-size:1.02rem;font-weight:700;color:#F1F5F9;}
.svl-feature-item__desc{margin:0;font-size:0.86rem;line-height:1.7;color:#CBD5E1;}

/* ─────────── K. SECTION 3: CTA ─────────── */
.svl-cta{
  position:relative;
  padding:clamp(4rem,9vw,6.5rem) var(--svl-content-px);
  text-align:center;overflow:hidden;
  background:
    radial-gradient(ellipse at 30% 20%,rgba(59,107,245,0.16),transparent 55%),
    radial-gradient(ellipse at 70% 80%,rgba(157,185,249,0.18),transparent 55%),
    linear-gradient(180deg,#F4F7FE 0%,#E8EFFD 100%);
}
.svl-cta::before{
  content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(59,107,245,0.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(59,107,245,0.05) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);
  pointer-events:none;
}
.svl-cta > *{position:relative;z-index:1;}
.svl-cta__eyebrow{
  display:inline-block;padding:0.45rem 1rem;margin:0 0 1.25rem;
  font-size:0.6rem;font-weight:700;letter-spacing:0.18em;
  color:var(--svl-blue-700);
  background:rgba(59,107,245,0.1);
  border:1px solid rgba(59,107,245,0.22);
  border-radius:999px;
}
.svl-cta__title{
  margin:0 0 1rem;
  font-size:clamp(1.85rem,4.2vw,2.6rem);font-weight:800;
  letter-spacing:-0.025em;color:var(--svl-ink);
}
.svl-cta__sub{margin:0 0 2.25rem;font-size:1rem;line-height:1.75;color:var(--svl-ink-soft);}
.svl-cta__actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}

.svl-notice{
  display:flex;align-items:flex-start;gap:1rem;
  max-width:720px;margin:2.75rem auto 0;padding:1.25rem 1.5rem;
  background:rgba(255,255,255,0.75);
  border:1px solid rgba(59,107,245,0.18);
  border-left:3px solid var(--svl-blue);
  border-radius:14px;text-align:left;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.svl-notice__icon{flex-shrink:0;font-size:22px !important;color:var(--svl-blue);margin-top:1px;}
.svl-notice__title{margin:0 0 0.35rem;font-size:0.9rem;font-weight:700;color:var(--svl-ink);}
.svl-notice__body{margin:0;font-size:0.83rem;line-height:1.75;color:var(--svl-ink-soft);}
.svl-notice__body strong{color:var(--svl-blue-700);font-weight:700;}

/* ─────────── L. Skip Link ─────────── */
.skip{position:absolute;left:-9999px;}
.skip:focus{
  left:1rem;top:1rem;z-index:9999;padding:0.6rem 1rem;
  background:var(--svl-blue);color:#fff;border-radius:6px;
  text-decoration:none;font-weight:700;
}

/* ─────────── M. Reduced Motion ─────────── */
@media (prefers-reduced-motion:reduce){
  .svl-hero *,.svl-hero-anim *,
  .svl-reveal,.svl-reveal-group > *{
    animation:none !important;transition:none !important;
    opacity:1 !important;transform:none !important;stroke-dashoffset:0 !important;
  }
  .svl-anim-progress{transform:scaleX(.75) !important;}
  .svl-row-indicator--1,.svl-row-indicator--2,.svl-row-indicator--3{fill:#10B981 !important;}
  .svl-row-indicator--4{fill:rgb(157,185,249) !important;}
  .svl-anim-scanline{display:none !important;}
  .svl-doc-card:hover,.svl-step:hover,.svl-feature-item:hover,
  .svl-btn-primary:hover,.svl-btn-ghost:hover{transform:none !important;}
}


.svl-core-rotate {
  transform-origin: 410px 100px;
  animation: svl-rotate 14s linear infinite;
}
.svl-core-rotate-rev {
  transform-origin: 410px 100px;
  animation: svl-rotate 9s linear infinite reverse;
}
.svl-anim-pulse-ring {
  transform-origin: 410px 100px;
  animation: svl-pulse 2.4s ease-out infinite;
}
.svl-core-blink {
  animation: svl-blink 1.2s ease-in-out infinite;
}

@keyframes svl-rotate { to { transform: rotate(360deg); } }
@keyframes svl-pulse {
  0%   { transform: scale(1);   opacity: 0.6; }
  100% { transform: scale(1.9); opacity: 0;   }
}
@keyframes svl-blink {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.25; }
}



/* ── Scroll Reveal ─────────────────────────────────────────── */
[data-reveal]{
  opacity: 0 !important;
  transform: translateY(22px);
  transition:
    opacity .65s cubic-bezier(.22,.61,.36,1),
    transform .65s cubic-bezier(.22,.61,.36,1);
  transition-delay: calc(var(--reveal-delay, 0) * 110ms);
  will-change: opacity, transform;
}
[data-reveal].is-in{
  opacity: 1 !important;
  transform: none;
}
@media (prefers-reduced-motion: reduce){
  [data-reveal]{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}



@keyframes svlCorePulse{
  0%,100%{ transform:scale(1);  opacity:1; }
  50%   { transform:scale(1.25); opacity:.85; }
}
.svl-hero-anim .svl-core-pulse{
  transform-box:fill-box;
  transform-origin:center;
  animation: svlCorePulse 1.6s ease-in-out infinite;
}

@keyframes svlNetBlink{
  0%,100%{ opacity:.95; }
  50%   { opacity:.55; }
}
.svl-hero-anim .svl-core-net{
  animation: svlNetBlink 2.2s ease-in-out infinite;
}

/* 모션 최소화 환경에서는 펄스 정지 */
@media (prefers-reduced-motion: reduce){
  .svl-hero-anim .svl-core-pulse,
  .svl-hero-anim .svl-core-net{ animation:none !important; }
}

/* ════════════════════════════════════════════════════════════════════
   FINAL OVERRIDE: 칩(.chip) · 뱃지(.badge) 사이즈 스케일 + 상태 변형
   ─ 본 파일에는 .chip / .badge 가 여러 차례 중복 정의되어 있어
     반드시 파일 끝에서 단일 진실 공급원으로 재정의해 시안 일관성 확보.
   ─ 사이즈: xs / sm / md(기본) / lg
   ─ 상태 변형: ok(적정·완료 · #10B981 계열) / bad(미흡·부적정·반려 · #dc2626)
                warn(확인요 · #d97706) / info(진행중) / neutral(미신청·—) / brand(신청완료)
   ─ ⚠ specificity 주의: 베이스를 `.chip` 단독으로 두어야 size modifier(.chip--xs 등)가
                       동일 specificity로 cascade 순서로 이김. `span.chip` 등 element
                       qualifier 추가 금지.
   ════════════════════════════════════════════════════════════════════ */
.chip {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 4px;
  border-radius: 999px;
  font-weight: 700;
  white-space: nowrap;
  letter-spacing: 0;
  /* 기본 = MD */
  min-height: 24px !important;
  padding: 2px 10px !important;
  font-size: 12px !important;
  background: #f1f5f9;
  color: #475569;
  border: 1px solid transparent;
  line-height: 1.2;
  box-sizing: border-box;
}
/* ⬇ 사이즈 — !important로 portal.css 앞부분의 중복 .chip 정의들을 확실히 이김 */
.chip.chip--xs { min-height: 18px !important; padding: 0 7px !important;  font-size: 10px !important; }
.chip.chip--sm { min-height: 22px !important; padding: 1px 9px !important; font-size: 11px !important; }
.chip.chip--md { min-height: 24px !important; padding: 2px 10px !important; font-size: 12px !important; }
.chip.chip--lg { min-height: 30px !important; padding: 4px 14px !important; font-size: 14px !important; }

/* 상태 변형 — Foundation 상태색(#10B981/#dc2626/#d97706)에서 파생한 가독성 친화 페어 */
.chip.chip--ok      { background: #dcfce7; color: #166534; border-color: rgba(16,185,129,.30); } /* 적정·완료 ─ 파운데이션 #10B981 */
.chip.chip--bad     { background: #fee2e2; color: #b91c1c; border-color: rgba(220,38,38,.30); }  /* 미흡·부적정·반려 ─ 파운데이션 #dc2626 */
.chip.chip--warn    { background: #fef3c7; color: #92400e; border-color: rgba(217,119,6,.30); } /* 확인요 ─ 파운데이션 #d97706 */
.chip.chip--info    { background: #dbeafe; color: #1d4ed8; border-color: rgba(59,130,246,.30); } /* 진행중 */
.chip.chip--neutral { background: #f1f5f9; color: #475569; border-color: var(--border); }       /* 미신청·— */
.chip.chip--brand   { background: #eef4ff; color: #1d4ed8; border-color: rgba(26,107,255,.30); } /* 신청완료 */
.chip.chip--run     { background: #dbeafe; color: #1d4ed8; border-color: rgba(59,130,246,.30); } /* alias of info */

/* 아이콘 사이즈 동반 */
.chip .icon { font-size: 14px; }
.chip.chip--xs .icon { font-size: 11px; }
.chip.chip--sm .icon { font-size: 12px; }
.chip.chip--lg .icon { font-size: 16px; }


/* ─────────────────── badge ─────────────────── */
.badge {
  display: inline-flex !important;
  align-items: center;
  gap: 4px;
  border-radius: 999px;
  font-weight: 700;
  white-space: nowrap;
  /* 기본 = MD */
  min-height: 22px !important;
  padding: 2px 10px !important;
  font-size: 11px !important;
  color: var(--brand-700, #1d4ed8);
  background: #eef4ff;
  border: 1px solid #c7dafe;
  line-height: 1.2;
  box-sizing: border-box;
}
.badge.badge--xs { min-height: 16px !important; padding: 0 6px !important;  font-size: 9px !important;  letter-spacing: 0.2px; }
.badge.badge--sm { min-height: 18px !important; padding: 1px 8px !important; font-size: 10px !important; letter-spacing: 0.2px; }
.badge.badge--md { min-height: 22px !important; padding: 2px 10px !important; font-size: 11px !important; }
.badge.badge--lg { min-height: 30px !important; padding: 4px 14px !important; font-size: 14px !important; }

/* 색상 변형 — Foundation 컬러 토큰 매핑 */
.badge.badge--brand  { color: #1d4ed8; background: #eef4ff; border-color: #c7dafe; }
.badge.badge--teal   { color: #0f766e; background: #ccfbf1; border-color: #99f6e4; }
.badge.badge--purple { color: #6b21a8; background: #f3e8ff; border-color: #e9d5ff; }
.badge.badge--green  { color: #166534; background: #dcfce7; border-color: #bbf7d0; } /* 적정 #10B981 */
.badge.badge--amber  { color: #92400e; background: #fef3c7; border-color: #fde68a; } /* 확인요 #d97706 */
.badge.badge--rose   { color: #b91c1c; background: #fee2e2; border-color: #fecaca; } /* 미흡 #dc2626 */
.badge.badge--gray   { color: #475569; background: #f1f5f9; border-color: var(--border); }
.badge.badge--save   { color: #15803d; background: #dcfce7; border-color: #bbf7d0; }

.badge .icon { font-size: 13px; }
.badge.badge--xs .icon { font-size: 10px; }
.badge.badge--sm .icon { font-size: 11px; }
.badge.badge--lg .icon { font-size: 15px; }

/* ═════ 챗봇 아바타 통일 — common/img/nedcb-fab.svg ═════ */
/* 모든 AI 챗봇 아바타는 NEDCB FAB 마스코트 SVG를 사용. */
.avatar--ai,
.rev-chat-avatar--ai,
.ai-avatar {
  background-image: url("../img/nedcb-fab.svg") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 110% 110% !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.avatar--ai > .icon,
.avatar--ai > svg,
.rev-chat-avatar--ai > .icon,
.rev-chat-avatar--ai > svg,
.ai-avatar > .icon,
.ai-avatar > svg { display: none !important; }

