:root{--indigo-50: #eef2ff;--indigo-100: #e0e7ff;--indigo-200: #c7d2fe;--indigo-400: #818cf8;--indigo-500: #6366f1;--indigo-600: #4f46e5;--indigo-700: #4338ca;--indigo-800: #3730a3;--teal-50: #f0fdfa;--teal-100: #ccfbf1;--teal-500: #14b8a6;--teal-600: #0d9488;--teal-700: #0f766e;--violet-500: #8b5cf6;--violet-600: #7c3aed;--violet-700: #6d28d9;--gray-0: #ffffff;--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--red-50: #fef2f2;--red-100: #fee2e2;--red-600: #dc2626;--red-700: #b91c1c;--amber-50: #fffbeb;--amber-100: #fef3c7;--amber-600: #d97706;--amber-700: #b45309;--green-50: #f0fdf4;--green-100: #dcfce7;--green-600: #16a34a;--green-700: #15803d;--blue-50: #eff6ff;--blue-100: #dbeafe;--blue-600: #2563eb;--color-bg: var(--gray-50);--color-surface: var(--gray-0);--color-surface-2: var(--gray-100);--color-surface-3: var(--gray-200);--color-border: var(--gray-200);--color-border-strong: var(--gray-300);--color-text: var(--gray-900);--color-text-muted: var(--gray-600);--color-text-subtle: var(--gray-500);--color-text-inverse: var(--gray-0);--color-primary: var(--indigo-600);--color-primary-hover: var(--indigo-700);--color-primary-active: var(--indigo-800);--color-primary-soft: var(--indigo-50);--color-primary-contrast: #ffffff;--color-accent: var(--teal-600);--color-success: var(--green-700);--color-success-bg: var(--green-50);--color-success-border: var(--green-100);--color-warning: var(--amber-700);--color-warning-bg: var(--amber-50);--color-warning-border: var(--amber-100);--color-danger: var(--red-700);--color-danger-bg: var(--red-50);--color-danger-border: var(--red-100);--color-info: var(--blue-600);--color-info-bg: var(--blue-50);--color-info-border: var(--blue-100);--color-focus-ring: rgba(79, 70, 229, .45);--gradient-brand: linear-gradient(135deg, var(--indigo-600) 0%, var(--violet-600) 100%);--gradient-brand-hover: linear-gradient(135deg, var(--indigo-700) 0%, var(--violet-700) 100%);--gradient-deep: linear-gradient(150deg, #171a3a 0%, #2b2a72 55%, #3b2f8f 100%);--bg-wash: radial-gradient(900px 420px at 88% -8%, rgba(99, 102, 241, .09), transparent 62%), radial-gradient(720px 380px at -10% 22%, rgba(20, 184, 166, .07), transparent 58%);--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 22px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .12);--shadow-card: 0 1px 2px rgba(15, 23, 42, .04), 0 10px 28px -14px rgba(15, 23, 42, .14);--shadow-card-hover: 0 2px 4px rgba(15, 23, 42, .05), 0 18px 40px -16px rgba(15, 23, 42, .2);--shadow-primary: 0 8px 22px -8px rgba(79, 70, 229, .45);--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Noto Sans SC", "Noto Sans TC", sans-serif;--font-display: var(--font-sans);--font-mono: ui-monospace, "SFMono-Regular", "Menlo", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--text-display: clamp(2.1rem, 1.2rem + 3.2vw, 3.4rem);--leading-tight: 1.25;--leading-normal: 1.55;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--control-h-sm: 32px;--control-h-md: 40px;--control-h-lg: 48px;--z-base: 1;--z-sticky: 100;--z-dropdown: 1000;--z-overlay: 1100;--z-modal: 1200;--z-toast: 1300;--ease-standard: cubic-bezier(.2, 0, 0, 1);--duration-fast: .12s;--duration-normal: .2s}[data-theme=dark]{--color-bg: var(--gray-900);--color-surface: var(--gray-800);--color-surface-2: var(--gray-700);--color-surface-3: var(--gray-600);--color-border: #2b3852;--color-border-strong: #3b496a;--color-text: var(--gray-50);--color-text-muted: var(--gray-300);--color-text-subtle: var(--gray-400);--color-primary: var(--indigo-500);--color-primary-hover: var(--indigo-400);--color-primary-soft: rgba(99, 102, 241, .16);--color-success-bg: rgba(22, 163, 74, .16);--color-warning-bg: rgba(217, 119, 6, .16);--color-danger-bg: rgba(220, 38, 38, .18);--color-info-bg: rgba(37, 99, 235, .16);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .6);--shadow-card: 0 1px 2px rgba(0, 0, 0, .35), 0 10px 28px -14px rgba(0, 0, 0, .55);--shadow-card-hover: 0 2px 4px rgba(0, 0, 0, .4), 0 18px 40px -16px rgba(0, 0, 0, .65);--gradient-brand: linear-gradient(135deg, var(--indigo-500) 0%, var(--violet-500) 100%);--gradient-brand-hover: linear-gradient(135deg, var(--indigo-400) 0%, var(--violet-500) 100%);--bg-wash: radial-gradient(900px 420px at 88% -8%, rgba(99, 102, 241, .14), transparent 62%), radial-gradient(720px 380px at -10% 22%, rgba(20, 184, 166, .1), transparent 58%)}@media (prefers-reduced-motion: reduce){:root{--duration-fast: 0ms;--duration-normal: 0ms}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--bg-wash),var(--color-bg);background-attachment:fixed,fixed;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{line-height:var(--leading-tight);margin:0 0 var(--space-3);font-weight:var(--weight-bold);letter-spacing:-.015em;color:var(--color-text)}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}p{margin:0 0 var(--space-3)}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--font-mono);font-size:.85em}:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--color-primary-soft)}.container{width:100%;max-width:1120px;margin:0 auto;padding:var(--space-6) var(--space-4)}.grid{display:grid;gap:var(--space-4)}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.row{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.stack>*+*{margin-top:var(--space-4)}.spacer{flex:1}.muted{color:var(--color-text-muted)}.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}@media (max-width: 980px){.grid.cols-4,.grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}.card,.ui-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-card)}.card-hover,a.card,article.card[data-testid]{transition:transform var(--duration-normal) var(--ease-standard),box-shadow var(--duration-normal) var(--ease-standard),border-color var(--duration-normal) var(--ease-standard)}.card-hover:hover,article.card[data-testid]:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover);border-color:var(--color-border-strong)}.ui-stat{display:flex;flex-direction:column;gap:var(--space-1)}.ui-stat .ui-stat-value{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text)}.ui-stat .ui-stat-label{font-size:var(--text-sm);color:var(--color-text-muted)}button,.ui-btn{font:inherit;font-weight:var(--weight-semibold);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-h-md);padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;background:var(--gradient-brand);color:var(--color-primary-contrast);box-shadow:var(--shadow-primary);transition:filter var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard)}button:hover:not(:disabled),.ui-btn:hover:not(:disabled){background:var(--gradient-brand-hover);transform:translateY(-1px)}button:active:not(:disabled),.ui-btn:active:not(:disabled){transform:translateY(0);filter:brightness(.97)}button.secondary,.ui-btn.secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}button.secondary:hover:not(:disabled),.ui-btn.secondary:hover:not(:disabled){background:var(--color-primary-soft);border-color:var(--color-primary)}button.ghost,.ui-btn.ghost{background:transparent;border-color:transparent;color:var(--color-primary);box-shadow:none}button.ghost:hover:not(:disabled),.ui-btn.ghost:hover:not(:disabled){background:var(--color-primary-soft)}button.danger,.ui-btn.danger{background:var(--color-danger);border-color:var(--color-danger);box-shadow:none}button.danger:hover:not(:disabled),.ui-btn.danger:hover:not(:disabled){background:var(--red-600)}button.sm,.ui-btn.sm{height:var(--control-h-sm);padding:0 var(--space-3);font-size:var(--text-sm)}button:disabled,.ui-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.ui-icon-btn{width:var(--control-h-md);padding:0}label{display:block;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);margin-bottom:var(--space-1)}input,select,textarea,.ui-input{width:100%;height:var(--control-h-md);padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font:inherit;background:var(--color-surface);color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}textarea{height:auto;padding:var(--space-3);min-height:96px}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true]{border-color:var(--color-danger)}.field{margin-bottom:var(--space-4)}.field-error,.ui-field-error{color:var(--color-danger);font-size:var(--text-sm);margin-top:var(--space-1)}.badge,.ui-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);background:var(--color-surface-2);color:var(--color-text-muted);border:1px solid var(--color-border)}.ui-badge.success,.badge.rec{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.ui-badge.warning{background:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning-border)}.ui-badge.danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}.ui-badge.info{background:var(--color-info-bg);color:var(--color-info);border-color:var(--color-info-border)}.tag{display:inline-flex;align-items:center;gap:4px;padding:3px var(--space-2);border-radius:var(--radius-full);background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--text-xs);font-weight:var(--weight-medium);margin:0 var(--space-1) var(--space-1) 0}.tag.plain{background:var(--color-surface-2);color:var(--color-text-muted)}.tag.ok{background:var(--color-success-bg);color:var(--color-success)}.tag.gap{background:var(--color-warning-bg);color:var(--color-warning)}.meta-row{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);color:var(--color-text-muted);font-size:var(--text-sm);align-items:center}.meta-item{display:inline-flex;align-items:center;gap:6px}.meta-item svg{color:var(--color-text-subtle);flex-shrink:0}.ui-avatar-mark{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);color:#fff;font-weight:var(--weight-bold);font-size:var(--text-base);flex-shrink:0;text-transform:uppercase}.ui-avatar-mark.lg{width:56px;height:56px;border-radius:var(--radius-lg);font-size:var(--text-xl)}.ui-avatar-mark.round{border-radius:var(--radius-full)}.icon-chip{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);background:var(--color-primary-soft);color:var(--color-primary);flex-shrink:0}.icon-chip.teal{background:var(--teal-50);color:var(--teal-700)}.icon-chip.violet{background:#8b5cf61f;color:var(--violet-600)}.icon-chip.lg{width:64px;height:64px;border-radius:var(--radius-full)}[data-theme=dark] .icon-chip.teal{background:#14b8a629;color:var(--teal-500)}[data-theme=dark] .icon-chip.violet{background:#8b5cf633;color:var(--violet-500)}.grad-text{background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:var(--space-10);align-items:center;padding:var(--space-10) 0 var(--space-8)}.hero-eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px var(--space-3);border-radius:var(--radius-full);background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold);margin-bottom:var(--space-5)}.hero-title{font-size:var(--text-display);font-weight:var(--weight-bold);letter-spacing:-.03em;line-height:1.12;margin-bottom:var(--space-4)}.hero-sub{font-size:var(--text-lg);color:var(--color-text-muted);max-width:34em;margin-bottom:var(--space-6)}.hero-props{display:flex;gap:var(--space-6);flex-wrap:wrap;margin-top:var(--space-8)}.hero-prop{display:flex;flex-direction:column;gap:2px}.hero-prop b{font-size:var(--text-lg);letter-spacing:-.01em}.hero-prop span{color:var(--color-text-muted);font-size:var(--text-sm)}.hero-visual{position:relative;min-height:380px}.hero-visual .blob{position:absolute;top:8%;right:4%;bottom:8%;left:4%;border-radius:40% 60% 55% 45%/50% 45% 55% 50%;background:var(--gradient-brand);opacity:.14;filter:blur(38px)}.float-card{position:absolute;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card-hover);padding:var(--space-4)}.float-card.a{top:4%;left:6%;width:min(320px,78%);animation:floaty 7s ease-in-out infinite}.float-card.b{bottom:6%;right:2%;width:min(300px,74%);animation:floaty 8s ease-in-out 1.2s infinite}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.cta-band{background:var(--gradient-deep);color:#fff;border-radius:var(--radius-xl);padding:var(--space-10) var(--space-8);text-align:center;position:relative;overflow:hidden}.cta-band:before{content:"";position:absolute;top:-40%;right:-20%;bottom:-40%;left:-20%;background:radial-gradient(circle at 30% 20%,rgba(129,140,248,.35),transparent 45%)}.cta-band>*{position:relative}.cta-band h2{color:#fff;font-size:var(--text-3xl);letter-spacing:-.02em}.cta-band p{color:var(--indigo-100);max-width:40em;margin:0 auto var(--space-6)}.cta-band .ui-btn.inverse,.cta-band button.inverse{background:#fff;color:var(--indigo-700);box-shadow:0 10px 26px -10px #00000073}.section-eyebrow{color:var(--color-primary);font-weight:var(--weight-semibold);font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--space-2)}.step-num{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-full);background:var(--gradient-brand);color:#fff;font-weight:var(--weight-bold);flex-shrink:0}@media (max-width: 960px){.hero{grid-template-columns:1fr;padding-top:var(--space-6);gap:var(--space-8)}.hero-visual{min-height:320px}}.auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--space-8);align-items:stretch;max-width:1040px;margin:var(--space-6) auto}.auth-brand{background:var(--gradient-deep);border-radius:var(--radius-xl);color:#fff;padding:var(--space-8);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-brand:after{content:"";position:absolute;right:-60px;bottom:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(129,140,248,.35),transparent 70%)}.auth-brand h2{color:#fff;font-size:var(--text-2xl);letter-spacing:-.02em}.auth-brand p{color:var(--indigo-100)}.auth-point{display:flex;gap:var(--space-3);align-items:flex-start;margin-top:var(--space-4);position:relative}.auth-point svg{color:var(--teal-500);flex-shrink:0;margin-top:2px}.auth-point span{color:var(--indigo-100);font-size:var(--text-sm)}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-card)}@media (max-width: 900px){.auth-layout{grid-template-columns:1fr;max-width:520px}.auth-brand{display:none}}.ui-alert{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-2);font-size:var(--text-sm)}.ui-alert.danger{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger)}.ui-alert.success{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}.ui-alert.warning{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning)}.ui-alert.info{background:var(--color-info-bg);border-color:var(--color-info-border);color:var(--color-info)}.state{padding:var(--space-8) var(--space-4);text-align:center;color:var(--color-text-muted)}.ui-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-10) var(--space-4);color:var(--color-text-muted);text-align:center}.score{font-weight:var(--weight-bold);color:var(--color-primary)}.list-reset{list-style:none;padding:0;margin:0}.divider{border:0;border-top:1px solid var(--color-border);margin:var(--space-5) 0}.score-ring{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.score-ring svg{transform:rotate(-90deg)}.score-ring .score-ring-num{position:absolute;font-weight:var(--weight-bold);letter-spacing:-.02em}.ui-skeleton{background:linear-gradient(90deg,var(--color-surface-2),var(--color-surface-3),var(--color-surface-2));background-size:200% 100%;border-radius:var(--radius-sm);animation:ui-shimmer 1.4s ease-in-out infinite}@keyframes ui-shimmer{to{background-position:-200% 0}}.ui-spinner{width:20px;height:20px;border:2px solid var(--color-border-strong);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:ui-spin .7s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.ui-skeleton,.ui-spinner,.float-card.a,.float-card.b{animation:none}.card-hover,article.card[data-testid],button,.ui-btn{transition:none}}table,.ui-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.ui-table th,.ui-table td,table th,table td{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:middle}.ui-table th,table th{font-weight:var(--weight-semibold);color:var(--color-text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;background:transparent}.ui-table tbody tr:hover,table tbody tr:hover{background:var(--color-surface-2)}.ui-table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.msg{padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-sm);background:var(--color-surface-2);margin-bottom:var(--space-2);max-width:80%;width:fit-content;box-shadow:var(--shadow-sm)}.msg.mine{background:var(--gradient-brand);color:#fff;margin-left:auto;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-sm)}.msg.mine .muted{color:#ffffffbf}.ui-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:var(--z-overlay);animation:ui-fade var(--duration-normal) var(--ease-standard)}.ui-dialog{position:fixed;z-index:var(--z-modal);top:50%;left:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - var(--space-8)));max-height:85vh;overflow:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-6)}.ui-menu{z-index:var(--z-dropdown);min-width:200px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-1)}.ui-menu-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;outline:none}.ui-menu-item[data-highlighted]{background:var(--color-primary-soft);color:var(--color-primary)}.ui-tooltip{z-index:var(--z-dropdown);background:var(--gray-900);color:var(--gray-0);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);box-shadow:var(--shadow-md)}@keyframes ui-fade{0%{opacity:0}}.ui-tabs-list{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4)}.ui-tab{padding:var(--space-2) var(--space-3);border:none;background:none;color:var(--color-text-muted);border-bottom:2px solid transparent;border-radius:0;height:auto;box-shadow:none}.ui-tab[data-state=active]{color:var(--color-primary);border-bottom-color:var(--color-primary)}.ui-switch{width:40px;height:22px;border-radius:var(--radius-full);background:var(--color-border-strong);position:relative;border:none;padding:0;box-shadow:none}.ui-switch[data-state=checked]{background:var(--color-primary)}.ui-switch .ui-switch-thumb{display:block;width:18px;height:18px;background:#fff;border-radius:var(--radius-full);transform:translate(2px);transition:transform var(--duration-fast) var(--ease-standard)}.ui-switch[data-state=checked] .ui-switch-thumb{transform:translate(20px)}.ui-checkbox{width:20px;height:20px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);display:inline-flex;align-items:center;justify-content:center;padding:0;box-shadow:none}.ui-checkbox[data-state=checked]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px 1fr;grid-template-rows:auto 1fr;grid-template-areas:"sidebar topbar" "sidebar main"}.app-sidebar{grid-area:sidebar;background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1)}.app-sidebar .brand,.brand{font-weight:var(--weight-bold);font-size:var(--text-lg);letter-spacing:-.02em;padding:var(--space-2);margin-bottom:var(--space-2);display:flex;align-items:center;gap:var(--space-2)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:var(--gradient-brand);color:#fff;flex-shrink:0;box-shadow:var(--shadow-primary)}.app-nav-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);font-weight:var(--weight-medium);text-decoration:none;position:relative;transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.app-nav-link:hover{background:var(--color-surface-2);color:var(--color-text);text-decoration:none}.app-nav-link.active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:var(--weight-semibold)}.app-nav-link.active:before{content:"";position:absolute;left:-4px;top:20%;bottom:20%;width:4px;border-radius:var(--radius-full);background:var(--gradient-brand)}.app-topbar{grid-area:topbar;display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);row-gap:var(--space-2);padding:var(--space-3) var(--space-6);background:color-mix(in srgb,var(--color-surface) 82%,transparent);backdrop-filter:blur(10px) saturate(1.5);-webkit-backdrop-filter:blur(10px) saturate(1.5);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:var(--z-sticky)}.app-main{grid-area:main;padding:var(--space-8) var(--space-6);max-width:1200px;width:100%;margin-inline:auto}.page-header{margin-bottom:var(--space-6)}.page-header h1{margin-bottom:var(--space-1);font-size:var(--text-3xl);letter-spacing:-.025em}.app-mobilenav{display:none}@media (max-width: 900px){.app-shell{grid-template-columns:1fr;grid-template-areas:"topbar" "main"}.app-sidebar{display:none}.app-mobilenav{display:flex}.app-main{padding:var(--space-4)}.app-topbar{padding:var(--space-3) var(--space-4)}.page-header h1{font-size:var(--text-2xl)}}@media (max-width: 640px){.app-public-nav{display:none}}.ui-filterbar{display:flex;gap:var(--space-3);align-items:flex-end;flex-wrap:wrap}.ui-filterbar .field{margin-bottom:0;flex:1 1 160px}@media (max-width: 760px){.ui-responsive-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.ui-responsive-table tr{display:block;border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3);padding:var(--space-2)}.ui-responsive-table td{display:flex;justify-content:space-between;gap:var(--space-3);border:none;padding:var(--space-1) var(--space-2);text-align:right}.ui-responsive-table td:before{content:attr(data-label);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-align:left}}p a:not(.ui-btn),.muted a:not(.ui-btn){text-decoration:underline;text-underline-offset:2px}.skill-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-1) var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.skill-row:last-child{border-bottom:none}.level-bar{grid-column:1 / -1;height:6px;border-radius:var(--radius-full);background:var(--color-surface-3);overflow:hidden}.level-fill{height:100%;border-radius:var(--radius-full);background:var(--gradient-brand)}.prof-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full)}.prof-badge.beginner{background:var(--color-surface-2);color:var(--color-text-muted)}.prof-badge.intermediate{background:var(--color-info-bg);color:var(--color-info)}.prof-badge.advanced{background:var(--color-primary-soft);color:var(--color-primary)}.prof-badge.expert{background:var(--color-success-bg);color:var(--color-success)}
