:root{--font-family-ui: "IBM Plex Sans", "Noto Sans KR", sans-serif;--font-family-mono: "IBM Plex Mono", "SFMono-Regular", monospace;--font-size-14: 14px;--font-size-16: 16px;--font-size-20: 20px;--line-height-normal: 1.5;--font-weight-medium: 500;--font-weight-semibold: 600;--space-8: 8px;--space-10: 10px;--space-12: 12px;--space-14: 14px;--space-16: 16px;--space-20: 20px;--radius-sm: 8px;--radius-md: 12px;--shadow-sm: 0 2px 8px rgba(16, 24, 40, .08);--shadow-md: 0 8px 20px rgba(16, 24, 40, .12);--surface-base-bg: #ffffffcc;--surface-base-border: #ccd8e6;--surface-success-bg: #eaf7ee;--surface-success-border: #9ed9af;--surface-warn-bg: #fff4e5;--surface-warn-border: #f5c97a;--surface-danger-bg: #fdecec;--surface-danger-border: #f0a1a1;--surface-danger-text: #7a1f1f;--surface-muted-text: #354755;--risk-normal-surface: #eaf7ee;--risk-normal-border: #9ed9af;--risk-normal-text: #1e5a2e;--risk-normal-badge-bg: #d6f0de;--risk-normal-badge-text: #1a4a27;--risk-caution-surface: #fff4e5;--risk-caution-border: #f5c97a;--risk-caution-text: #7a4a00;--risk-caution-badge-bg: #ffe8c7;--risk-caution-badge-text: #6a3e00;--risk-tilt-surface: #fdecec;--risk-tilt-border: #f0a1a1;--risk-tilt-text: #7a1f1f;--risk-tilt-badge-bg: #fad7d7;--risk-tilt-badge-text: #641818;--severity-info-surface: #eaf3ff;--severity-info-border: #9fc3f8;--severity-info-text: #1e4d8c;--severity-info-badge-bg: #ddebff;--severity-info-badge-text: #173c6d;--severity-warn-surface: #fff6e8;--severity-warn-border: #f3cb89;--severity-warn-text: #7a4c00;--severity-warn-badge-bg: #ffe8c7;--severity-warn-badge-text: #6a3e00;--severity-block-surface: #fdebec;--severity-block-border: #ee9ca3;--severity-block-text: #7a1f2a;--severity-block-badge-bg: #fbd6da;--severity-block-badge-text: #651923;--state-loading-shimmer: #e7edf3;--state-empty-illustration: #c7d3df;--state-error-surface: var(--surface-danger-bg);--state-offline-surface: #eef2f6;--state-pro-surface: #f3f0ff;--focus-ring-default: 0 0 0 3px rgba(31, 111, 235, .35);--focus-ring-danger: 0 0 0 3px rgba(224, 67, 54, .35);--focus-risk-ring: 0 0 0 3px rgba(245, 201, 122, .45)}:root{color-scheme:light;font-family:var(--font-family-ui);color:#123;background:radial-gradient(circle at top right,#cde8ff,#f6fbff 45%,#f4f7f5)}*{box-sizing:border-box}body{margin:0}a{color:#0f5fcf;text-decoration:none}a[aria-disabled=true]{pointer-events:auto;color:#7a8694;cursor:not-allowed}.app-shell{display:flex;flex-direction:column;min-height:100vh;padding-bottom:70px}.app-header{padding:var(--space-16) var(--space-20);background:#fffc;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.05);position:sticky;top:0;z-index:10}.app-header h1{margin:0;font-size:1.25rem}.app-header p{margin:4px 0 0;color:var(--surface-muted-text);font-size:.85rem}.app-nav{position:fixed;bottom:0;left:0;right:0;height:64px;background:#fffffff2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid rgba(0,0,0,.1);display:flex;justify-content:space-around;align-items:center;z-index:40;padding:0 10px}.app-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;color:var(--surface-muted-text);gap:4px;flex:1}.app-nav a:hover,.app-nav a.active{color:#0f5fcf;font-weight:600}.app-nav .icon{font-size:20px}.fab-container{position:absolute;top:-24px;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center}.fab-button{background:linear-gradient(135deg,#0f5fcf,#4f9cff);color:#fff;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;box-shadow:0 4px 12px #0f5fcf66;border:none;cursor:pointer;transition:transform .2s}.fab-button:hover{transform:scale(1.05)}.main-content{flex:1;padding:var(--space-16) var(--space-20)}.page{max-width:100%;margin:0 auto;display:grid;gap:16px;align-content:start}.page>h1{margin:0;font-size:clamp(1.75rem,2.5vw,2.3rem);letter-spacing:-.02em}.page>p{margin:0}@media(min-width:768px){.app-shell{flex-direction:row;padding-bottom:0}.app-nav{position:sticky;top:0;width:240px;height:100vh;border-top:none;border-right:1px solid rgba(0,0,0,.1);flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:var(--space-20);gap:var(--space-12)}.app-header{border-bottom:none;padding:0 0 var(--space-20) 0;margin-bottom:var(--space-10)}.app-nav a{flex-direction:row;width:100%;justify-content:flex-start;padding:10px 12px;font-size:14px;border-radius:8px;flex:none;transition:background .2s}.app-nav a:hover,.app-nav a.active{background:#0f5fcf1a}.app-nav .icon{margin-right:10px}.fab-container{display:none}.main-content{flex:1;padding:var(--space-32);display:flex;justify-content:center;align-items:flex-start}.page{width:100%;max-width:860px}}.page-primary-tokenized{--page-token-accent: var(--surface-base-border);border-top:3px solid var(--page-token-accent);padding-top:var(--space-12)}.page-primary-risk{--page-token-accent: var(--risk-caution-border)}.page-primary-severity{--page-token-accent: var(--severity-warn-border)}.page-primary-state{--page-token-accent: var(--state-offline-surface)}.page-secondary-risk .card:first-of-type{box-shadow:0 0 0 1px var(--risk-normal-border),var(--shadow-sm)}.page-secondary-severity .card:first-of-type{box-shadow:0 0 0 1px var(--severity-warn-border),var(--shadow-sm)}.page-secondary-state .card:first-of-type{box-shadow:0 0 0 1px var(--surface-base-border),var(--shadow-sm)}.card,.banner{border-radius:var(--radius-md);border:1px solid var(--surface-base-border);background:var(--surface-base-bg);padding:var(--space-14);box-shadow:var(--shadow-sm)}.banner.warning{border-color:var(--risk-caution-border);background:var(--risk-caution-surface);color:var(--risk-caution-text)}.banner.success,.banner-risk-normal{border-color:var(--risk-normal-border);background:var(--risk-normal-surface);color:var(--risk-normal-text)}.banner-risk-caution{border-color:var(--risk-caution-border);background:var(--risk-caution-surface);color:var(--risk-caution-text)}.banner-risk-tilt{border-color:var(--risk-tilt-border);background:var(--risk-tilt-surface);color:var(--risk-tilt-text)}.banner-severity-info{border-color:var(--severity-info-border);background:var(--severity-info-surface);color:var(--severity-info-text)}.banner-severity-warn{border-color:var(--severity-warn-border);background:var(--severity-warn-surface);color:var(--severity-warn-text)}.banner-severity-block{border-color:var(--severity-block-border);background:var(--severity-block-surface);color:var(--severity-block-text)}.banner-state-loading{border-color:var(--surface-base-border);background:var(--state-loading-shimmer);color:var(--surface-muted-text)}.banner-state-empty{border-color:var(--surface-base-border);background:var(--state-empty-illustration);color:var(--surface-muted-text)}.banner-state-error{border-color:var(--surface-danger-border);background:var(--state-error-surface);color:var(--surface-danger-text)}.banner-state-offline{border-color:var(--surface-base-border);background:var(--state-offline-surface);color:var(--surface-muted-text)}.banner-state-pro{border-color:var(--surface-base-border);background:var(--state-pro-surface);color:var(--surface-muted-text)}.banner-surface-success{border-color:var(--surface-success-border);background:var(--surface-success-bg);color:var(--risk-normal-text)}.banner-surface-warn{border-color:var(--surface-warn-border);background:var(--surface-warn-bg);color:var(--risk-caution-text)}.banner-surface-danger{border-color:var(--surface-danger-border);background:var(--surface-danger-bg);color:var(--surface-danger-text)}.stack{display:grid}.gap-8{gap:var(--space-8)}.gap-16{gap:var(--space-16)}.top-gap{margin-top:var(--space-12)}.onboarding-page{max-width:760px;gap:var(--space-20)}.onboarding-step{font-size:.96rem;line-height:1.55;max-width:62ch}.onboarding-card{padding:clamp(18px,2.3vw,28px);background:#ffffffeb}.onboarding-actions{display:flex;flex-wrap:wrap;gap:var(--space-10)}label{display:grid;gap:4px}label.inline{display:flex;align-items:center;gap:8px}.inline{display:flex;flex-wrap:wrap;gap:8px;align-items:center}input,select,textarea,button{font:inherit}textarea{min-height:90px;resize:vertical}button{width:fit-content;padding:var(--space-8) var(--space-12);border:1px solid var(--surface-base-border);border-radius:var(--radius-sm);background:#fff}.button-primary{border-color:transparent;background:linear-gradient(135deg,#0f5fcf,#2f7fe8);color:#fff;font-weight:600}.button-primary:hover{filter:brightness(1.02)}.button-secondary{background:#f6f9fc}.muted{color:var(--surface-muted-text)}.error{color:var(--surface-danger-text)}.error-summary-panel{border-radius:var(--radius-md);border:1px solid var(--surface-danger-border);background:var(--surface-danger-bg);color:var(--surface-danger-text);padding:var(--space-12)}.component-tokenized.component-primary-state{border-color:var(--state-error-surface)}.component-tokenized.component-secondary-severity{box-shadow:inset 0 0 0 1px var(--severity-warn-border)}.error-summary-heading{margin:0}.error-summary-list{margin:0;padding-left:1.2rem;display:grid;gap:var(--space-8)}.error-summary-item{display:flex;gap:var(--space-8);align-items:baseline;justify-content:space-between}.error-summary-link{color:inherit;text-decoration:underline;text-underline-offset:2px}.error-summary-link:hover{text-decoration-thickness:2px}.error-summary-severity{border-radius:999px;border:1px solid transparent;padding:1px 6px;font-size:12px;font-weight:600;white-space:nowrap}.error-summary-severity.severity-badge-info{border-color:var(--severity-info-border);background:var(--severity-info-badge-bg);color:var(--severity-info-badge-text)}.error-summary-severity.severity-badge-warn{border-color:var(--severity-warn-border);background:var(--severity-warn-badge-bg);color:var(--severity-warn-badge-text)}.error-summary-severity.severity-badge-block{border-color:var(--severity-block-border);background:var(--severity-block-badge-bg);color:var(--severity-block-badge-text)}.error-summary-panel:focus-visible{outline:none;box-shadow:var(--focus-ring-danger)}.sync-state-banner{display:grid;gap:var(--space-10)}.sync-state-banner h2{margin:0;font-size:var(--font-size-16);line-height:var(--line-height-normal)}.sync-state-banner p{margin:0}.sync-state-banner-retry{font-weight:var(--font-weight-medium)}.action-checklist{display:grid;gap:var(--space-10)}.action-checklist h3{margin:0;font-size:var(--font-size-16)}.action-checklist-items{margin:0;padding-left:1.2rem;display:grid;gap:var(--space-8)}.action-checklist-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8)}.quarantine-artifact-list{display:grid;gap:var(--space-10)}.quarantine-artifact-list h3{margin:0;font-size:var(--font-size-16)}.quarantine-artifact-items{margin:0;padding-left:0;list-style:none;display:grid;gap:var(--space-8)}.quarantine-artifact-item{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-10);border:1px solid var(--surface-base-border);border-radius:var(--radius-sm);padding:var(--space-10)}.quarantine-artifact-path{border:none;background:transparent;padding:0;color:#0f5fcf;text-align:left;text-decoration:underline;text-underline-offset:2px}.snapshot-restore-selector{display:grid;gap:var(--space-10)}.snapshot-restore-selector h3{margin:0;font-size:var(--font-size-16)}.snapshot-restore-items{margin:0;padding-left:0;list-style:none;display:grid;gap:var(--space-8)}.snapshot-restore-item{display:grid;grid-template-columns:minmax(120px,auto) 1fr auto auto;align-items:center;gap:var(--space-8);border:1px solid var(--surface-base-border);border-radius:var(--radius-sm);padding:var(--space-10)}.restore-action-bar{display:grid;gap:var(--space-10)}.restore-warning-copy{margin:0;font-weight:var(--font-weight-medium)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:none;box-shadow:var(--focus-ring-default)}.hist-row{display:grid;grid-template-columns:110px minmax(120px,1fr) 40px;align-items:center;gap:8px}.hist-label,.hist-count{font-variant-numeric:tabular-nums}.hist-track{position:relative;height:10px;border-radius:999px;background:#e6edf6;overflow:hidden}.hist-bar{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1f6ae0,#4f9cff)}
