@import "https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css";:root{--gray-0:#000;--gray-50:#0a0a0c;--gray-100:#111114;--gray-150:#18181c;--gray-200:#1e1e23;--gray-250:#252529;--gray-300:#2c2c32;--gray-350:#35353d;--gray-400:#42424d;--gray-450:#52525e;--gray-500:#63637a;--gray-550:#7a7a8f;--gray-600:#9191a4;--gray-650:#a8a8b8;--gray-700:#bfbfcc;--gray-750:#d1d1db;--gray-800:#e2e2e9;--gray-850:#ededf2;--gray-900:#f5f5f7;--gray-950:#fafafa;--gray-1000:#fff;--brand-50:#2a1218;--brand-100:#3d1a25;--brand-200:#5c2838;--brand-300:#8a3c55;--brand-400:#b84e68;--brand-500:#d4617a;--brand-600:#de8498;--brand-700:#e8a7b5;--brand-800:#f1cad2;--brand-900:#f9e8ec;--accent-50:#0a2a2e;--accent-100:#103d43;--accent-200:#17585f;--accent-300:#1e8a94;--accent-400:#22b8c7;--accent-500:#36d2e0;--accent-600:#5edde8;--accent-700:#8ee8ef;--accent-800:#bef2f6;--accent-900:#e6fafb;--success-50:#0a2917;--success-100:#103d22;--success-200:#1a5c34;--success-300:#22804a;--success-400:#2da862;--success-500:#3cc97a;--success-600:#65d99a;--success-700:#8fe4b5;--success-800:#b8eed1;--success-900:#e2f8ec;--warning-50:#2a1f0a;--warning-100:#3d2c0e;--warning-200:#5c4214;--warning-300:#8a6820;--warning-400:#c29329;--warning-500:#eab308;--warning-600:#f0c53c;--warning-700:#f5d76e;--warning-800:#f9e8a0;--warning-900:#fdf6d8;--error-50:#2a0f0f;--error-100:#3d1515;--error-200:#5c2020;--error-300:#8a3030;--error-400:#c24040;--error-500:#ef4444;--error-600:#f47272;--error-700:#f8a0a0;--error-800:#fbc8c8;--error-900:#fde8e8;--info-50:#0a1a2e;--info-100:#0e2743;--info-200:#143c66;--info-300:#1d5a99;--info-400:#2878cc;--info-500:#3b8ff0;--info-600:#65a8f5;--info-700:#8fc1f8;--info-800:#b8d9fb;--info-900:#e2f0fd;--status-pending:#8b8fa3;--status-in-review:#eab308;--status-revision:#f97316;--status-approved:#22c55e;--status-rejected:#ef4444;--status-final:#d4617a;--font-sans:"Pretendard Variable", "Pretendard", -apple-system, BlinkMacSystemFont, "Noto Sans KR", system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", ui-monospace, "SF Mono", SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;--text-2xs:.625rem;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:1.75;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--space-0:0;--space-px:1px;--space-0-5:.125rem;--space-1:.25rem;--space-1-5:.375rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--radius-none:0;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-full:9999px;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 3px #0000004d, 0 1px 2px #0003;--shadow-md:0 4px 6px -1px #0000004d, 0 2px 4px -2px #0003;--shadow-lg:0 10px 15px -3px #0000004d, 0 4px 6px -4px #0003;--shadow-xl:0 20px 25px -5px #0000004d, 0 8px 10px -6px #0003;--shadow-2xl:0 25px 50px -12px #00000080;--shadow-inner:inset 0 2px 4px #0003;--ring-width:2px;--ring-offset:2px;--ring-color:var(--brand-500);--duration-instant:50ms;--duration-fast:.1s;--duration-normal:.2s;--duration-slow:.3s;--duration-slower:.5s;--duration-lazy:.7s;--ease-default:cubic-bezier(.4, 0, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--ease-spring:cubic-bezier(.22, 1.5, .36, 1);--z-below:-1;--z-base:0;--z-raised:1;--z-dropdown:10;--z-sticky:20;--z-overlay:30;--z-modal:40;--z-popover:50;--z-toast:60;--z-tooltip:70;--z-command-palette:80;--canvas-grid-size:20px;--canvas-grid-color:#ffffff08;--canvas-grid-color-strong:#ffffff0f;--canvas-min-zoom:.1;--canvas-max-zoom:3;--canvas-snap-threshold:8px}:root,[data-theme=dark]{--surface-ground:var(--gray-50);--surface-base:var(--gray-100);--surface-raised:var(--gray-200);--surface-overlay:var(--gray-250);--surface-sunken:var(--gray-50);--surface-canvas:var(--gray-100);--surface-sidebar:var(--gray-100);--surface-hover:#ffffff0a;--surface-active:#ffffff14;--surface-selected:#d4617a1f;--text-primary:var(--gray-900);--text-secondary:var(--gray-650);--text-tertiary:var(--gray-550);--text-disabled:var(--gray-450);--text-inverse:var(--gray-100);--text-on-brand:var(--gray-1000);--text-link:var(--brand-500);--text-link-hover:var(--brand-600);--border-default:var(--gray-300);--border-subtle:var(--gray-250);--border-strong:var(--gray-400);--border-hover:var(--gray-400);--border-focus:var(--brand-500);--border-disabled:var(--gray-250);--bg-brand:var(--brand-500);--bg-brand-hover:var(--brand-400);--bg-brand-active:var(--brand-300);--bg-brand-subtle:#d4617a1f;--bg-brand-subtle-hover:#d4617a2e;--bg-success:var(--success-500);--bg-success-subtle:#3cc97a1f;--bg-warning:var(--warning-500);--bg-warning-subtle:#eab3081f;--bg-error:var(--error-500);--bg-error-subtle:#ef44441f;--bg-info:var(--info-500);--bg-info-subtle:#3b8ff01f;--icon-primary:var(--gray-700);--icon-secondary:var(--gray-550);--icon-tertiary:var(--gray-450);--icon-disabled:var(--gray-400);--icon-brand:var(--brand-500);--icon-success:var(--success-500);--icon-warning:var(--warning-500);--icon-error:var(--error-500);--scrollbar-track:transparent;--scrollbar-thumb:var(--gray-350);--scrollbar-thumb-hover:var(--gray-450);--skeleton-base:var(--gray-250);--skeleton-shine:var(--gray-300)}[data-theme=light]{--surface-ground:var(--gray-900);--surface-base:var(--gray-1000);--surface-raised:var(--gray-1000);--surface-overlay:var(--gray-1000);--surface-sunken:var(--gray-850);--surface-canvas:var(--gray-900);--surface-sidebar:var(--gray-950);--surface-hover:#0000000a;--surface-active:#00000014;--surface-selected:#d4617a14;--text-primary:var(--gray-100);--text-secondary:var(--gray-450);--text-tertiary:var(--gray-500);--text-disabled:var(--gray-600);--text-inverse:var(--gray-950);--text-on-brand:var(--gray-1000);--text-link:var(--brand-400);--text-link-hover:var(--brand-300);--border-default:var(--gray-800);--border-subtle:var(--gray-850);--border-strong:var(--gray-750);--border-hover:var(--gray-700);--border-focus:var(--brand-400);--border-disabled:var(--gray-850);--bg-brand:var(--brand-400);--bg-brand-hover:var(--brand-300);--bg-brand-active:var(--brand-200);--bg-brand-subtle:#d4617a14;--bg-brand-subtle-hover:#d4617a1f;--bg-success:var(--success-400);--bg-success-subtle:#2da86214;--bg-warning:var(--warning-500);--bg-warning-subtle:#eab30814;--bg-error:var(--error-400);--bg-error-subtle:#c2404014;--bg-info:var(--info-400);--bg-info-subtle:#2878cc14;--icon-primary:var(--gray-300);--icon-secondary:var(--gray-450);--icon-tertiary:var(--gray-550);--icon-disabled:var(--gray-650);--icon-brand:var(--brand-400);--icon-success:var(--success-400);--icon-warning:var(--warning-500);--icon-error:var(--error-400);--scrollbar-track:transparent;--scrollbar-thumb:var(--gray-750);--scrollbar-thumb-hover:var(--gray-700);--skeleton-base:var(--gray-850);--skeleton-shine:var(--gray-800);--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-md:0 4px 6px -1px #00000014, 0 2px 4px -2px #0000000a;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a;--shadow-xl:0 20px 25px -5px #00000014, 0 8px 10px -6px #0000000a;--shadow-2xl:0 25px 50px -12px #00000026;--canvas-grid-color:#0000000a;--canvas-grid-color-strong:#00000014}:root,[data-theme=dark]{--btn-primary-bg:var(--bg-brand);--btn-primary-bg-hover:var(--bg-brand-hover);--btn-primary-text:var(--text-on-brand);--btn-secondary-bg:var(--surface-raised);--btn-secondary-bg-hover:var(--gray-300);--btn-secondary-text:var(--text-primary);--btn-ghost-bg:transparent;--btn-ghost-bg-hover:var(--surface-hover);--btn-ghost-text:var(--text-secondary);--btn-danger-bg:var(--bg-error);--btn-danger-bg-hover:var(--error-400);--btn-danger-text:var(--gray-1000);--btn-border-radius:var(--radius-lg);--btn-padding-sm:var(--space-1-5) var(--space-3);--btn-padding-md:var(--space-2) var(--space-4);--btn-padding-lg:var(--space-3) var(--space-6);--input-bg:var(--surface-raised);--input-bg-hover:var(--gray-250);--input-bg-focus:var(--surface-raised);--input-text:var(--text-primary);--input-placeholder:var(--text-tertiary);--input-border:var(--border-default);--input-border-hover:var(--border-hover);--input-border-focus:var(--border-focus);--input-border-error:var(--error-500);--input-border-radius:var(--radius-lg);--input-padding:var(--space-2) var(--space-3);--card-bg:var(--surface-base);--card-bg-hover:var(--surface-raised);--card-border:var(--border-subtle);--card-border-radius:var(--radius-xl);--card-padding:var(--space-4);--card-shadow:var(--shadow-sm);--modal-bg:var(--surface-overlay);--modal-border:var(--border-default);--modal-border-radius:var(--radius-2xl);--modal-shadow:var(--shadow-2xl);--modal-backdrop:#0009;--modal-backdrop-blur:4px;--sidebar-width:240px;--sidebar-width-collapsed:60px;--sidebar-bg:var(--surface-sidebar);--sidebar-border:var(--border-subtle);--sidebar-item-radius:var(--radius-md);--sidebar-item-padding:var(--space-2) var(--space-3);--badge-border-radius:var(--radius-full);--badge-padding:var(--space-0-5) var(--space-2);--badge-font-size:var(--text-xs);--tabs-border:var(--border-subtle);--tabs-active-color:var(--brand-500);--tabs-inactive-color:var(--text-tertiary);--tooltip-bg:var(--gray-300);--tooltip-text:var(--gray-900);--tooltip-border-radius:var(--radius-md);--tooltip-padding:var(--space-1-5) var(--space-3);--frame-card-width:280px;--frame-card-aspect-ratio:16 / 9;--frame-card-bg:var(--surface-base);--frame-card-border:var(--border-subtle);--frame-card-border-selected:var(--brand-500);--frame-card-border-radius:var(--radius-lg);--frame-card-shadow:var(--shadow-md);--frame-card-gap:var(--space-4);--minimap-width:200px;--minimap-height:140px;--minimap-bg:#111114d9;--minimap-border:var(--border-default);--minimap-viewport-border:var(--brand-500);--minimap-border-radius:var(--radius-lg);--comment-pin-size:28px;--comment-pin-bg:var(--brand-500);--comment-pin-text:var(--gray-1000);--comment-panel-width:320px;--comment-panel-bg:var(--surface-overlay);--comment-bubble-bg:var(--surface-raised);--comment-bubble-radius:var(--radius-xl);--approval-chain-connector:var(--gray-400);--approval-chain-connector-active:var(--brand-500);--approval-step-size:36px}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-feature-settings:"kern" 1, "liga" 1;font-size:16px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{min-height:100svh;font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-regular);line-height:var(--leading-normal);letter-spacing:var(--tracking-normal);color:var(--text-secondary);background-color:var(--surface-ground);word-break:keep-all;overflow-wrap:break-word;overflow-x:hidden}:lang(ko){line-height:var(--leading-relaxed);word-spacing:-.02em}h1:lang(ko),h2:lang(ko),h3:lang(ko){word-break:keep-all;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);text-wrap:balance}h1{font-size:var(--text-4xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-tighter)}h2{font-size:var(--text-2xl);line-height:var(--leading-tight)}h3{font-size:var(--text-xl);line-height:var(--leading-snug)}h4{font-size:var(--text-lg);line-height:var(--leading-snug)}h5{font-size:var(--text-md);line-height:var(--leading-normal)}h6{font-size:var(--text-base);line-height:var(--leading-normal)}p{text-wrap:pretty;max-width:72ch}small{font-size:var(--text-sm)}strong,b{font-weight:var(--weight-semibold)}a{color:var(--text-link);transition:color var(--duration-fast) var(--ease-default);text-decoration:none}a:hover{color:var(--text-link-hover)}a:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset);border-radius:var(--radius-sm)}img,picture,video,canvas,svg{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer;background:0 0;border:none}input::placeholder,textarea::placeholder{color:var(--input-placeholder);opacity:1}input[type=search]::-webkit-search-decoration{display:none}input[type=search]::-webkit-search-cancel-button{display:none}input[type=search]::-webkit-search-results-button{display:none}input[type=search]::-webkit-search-results-decoration{display:none}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}fieldset{border:none}ul,ol{list-style:none}table{border-collapse:collapse;border-spacing:0}code,kbd,samp,pre{font-family:var(--font-mono);font-size:var(--text-sm)}code{padding:var(--space-0-5) var(--space-1);background-color:var(--surface-raised);border-radius:var(--radius-sm);color:var(--text-primary)}pre{padding:var(--space-4);background-color:var(--surface-raised);border-radius:var(--radius-lg);overflow-x:auto}pre code{background-color:#0000;border-radius:0;padding:0}::selection{background-color:var(--bg-brand-subtle);color:var(--text-primary)}:focus{outline:none}:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{display:none}#root{isolation:isolate;flex-direction:column;min-height:100svh;display:flex}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes skeleton-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skeleton{background-color:var(--skeleton-base);border-radius:var(--radius-md);animation:skeleton-pulse 2s var(--ease-in-out) infinite}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (width<=1024px){:root{--sidebar-width:60px}}@media (width<=768px){:root{--btn-padding-md:var(--space-3) var(--space-4);--input-padding:var(--space-3) var(--space-4);--frame-card-width:240px}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}}@media (width>=1536px){:root{--sidebar-width:280px;--frame-card-width:320px;--comment-panel-width:360px}}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--btn-border-radius);font-family:var(--font-sans);font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default), color var(--duration-fast) var(--ease-default), opacity var(--duration-fast) var(--ease-default);-webkit-user-select:none;user-select:none;border:1px solid #0000;line-height:1;display:inline-flex}.btn:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--sm{padding:var(--btn-padding-sm);font-size:var(--text-sm)}.btn--md{padding:var(--btn-padding-md);font-size:var(--text-base)}.btn--lg{padding:var(--btn-padding-lg);font-size:var(--text-md)}.btn--primary{background-color:var(--btn-primary-bg);color:var(--btn-primary-text)}.btn--primary:hover:not(:disabled){background-color:var(--btn-primary-bg-hover)}.btn--secondary{background-color:var(--btn-secondary-bg);color:var(--btn-secondary-text);border-color:var(--border-default)}.btn--secondary:hover:not(:disabled){background-color:var(--btn-secondary-bg-hover)}.btn--ghost{background-color:var(--btn-ghost-bg);color:var(--btn-ghost-text)}.btn--ghost:hover:not(:disabled){background-color:var(--btn-ghost-bg-hover)}.btn--danger{background-color:var(--btn-danger-bg);color:var(--btn-danger-text)}.btn--danger:hover:not(:disabled){background-color:var(--btn-danger-bg-hover)}.btn--outline{color:var(--text-primary);border-color:var(--border-default);background-color:#0000}.btn--outline:hover:not(:disabled){background-color:var(--surface-hover);border-color:var(--border-hover)}.btn--loading{position:relative}.btn__spinner{justify-content:center;align-items:center;display:inline-flex}.btn__spinner-icon{width:1em;height:1em;animation:.8s linear infinite btn-spin}@keyframes btn-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn__icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.btn__icon svg{width:1em;height:1em}.btn__label{align-items:center;display:inline-flex}.input{gap:var(--space-1-5);flex-direction:column;width:100%;display:flex}.input__label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary)}.input__field{width:100%;padding:var(--input-padding);background-color:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-border-radius);color:var(--input-text);font-size:var(--text-base);font-family:var(--font-sans);line-height:var(--leading-normal);transition:border-color var(--duration-fast) var(--ease-default), background-color var(--duration-fast) var(--ease-default)}.input__field:hover:not(:disabled){background-color:var(--input-bg-hover);border-color:var(--input-border-hover)}.input__field:focus{background-color:var(--input-bg-focus);border-color:var(--input-border-focus);outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.input__field:disabled{opacity:.5;cursor:not-allowed}.input__field::placeholder{color:var(--input-placeholder)}.input__field--error{border-color:var(--input-border-error)}.input__field--error:focus{border-color:var(--input-border-error);outline-color:var(--error-500)}.input__error{font-size:var(--text-sm);color:var(--error-500);line-height:var(--leading-normal)}textarea.input__field{resize:vertical;min-height:5rem}.login-page{min-height:100vh;padding:var(--space-4);background-color:var(--surface-ground);justify-content:center;align-items:center;display:flex}.login-page__card{width:100%;max-width:400px;padding:var(--space-8);background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-2xl);animation:fade-in var(--duration-slow) var(--ease-out)}.login-page__header{text-align:center;margin-bottom:var(--space-8)}.login-page__logo{border-radius:var(--radius-xl);background-color:var(--bg-brand);width:48px;height:48px;color:var(--text-on-brand);font-weight:var(--weight-bold);font-size:var(--text-xl);margin-bottom:var(--space-4);justify-content:center;align-items:center;display:inline-flex}.login-page__title{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--text-primary);margin-bottom:var(--space-2);letter-spacing:var(--tracking-wide)}.login-page__subtitle{font-size:var(--text-sm);color:var(--text-tertiary)}.login-page__error{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background-color:var(--bg-error-subtle);border:1px solid var(--error-300);border-radius:var(--radius-lg);color:var(--error-500);font-size:var(--text-sm);justify-content:space-between;align-items:center;display:flex}.login-page__error-close{color:var(--error-500);font-size:var(--text-lg);cursor:pointer;padding:0 var(--space-1);line-height:1}.login-page__form{gap:var(--space-4);flex-direction:column;display:flex}.login-page__submit{width:100%;margin-top:var(--space-2)}.login-page__footer{text-align:center;margin-top:var(--space-6);font-size:var(--text-sm);color:var(--text-tertiary)}.login-page__footer a{color:var(--text-link);font-weight:var(--weight-medium)}.login-page__footer a:hover{color:var(--text-link-hover)}.register-page{min-height:100vh;padding:var(--space-4);background-color:var(--surface-ground);justify-content:center;align-items:center;display:flex}.register-page__card{width:100%;max-width:400px;padding:var(--space-8);background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-2xl);animation:fade-in var(--duration-slow) var(--ease-out)}.register-page__header{text-align:center;margin-bottom:var(--space-8)}.register-page__logo{border-radius:var(--radius-xl);background-color:var(--bg-brand);width:48px;height:48px;color:var(--text-on-brand);font-weight:var(--weight-bold);font-size:var(--text-xl);margin-bottom:var(--space-4);justify-content:center;align-items:center;display:inline-flex}.register-page__title{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--text-primary);margin-bottom:var(--space-2);letter-spacing:var(--tracking-wide)}.register-page__subtitle{font-size:var(--text-sm);color:var(--text-tertiary)}.register-page__error{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background-color:var(--bg-error-subtle);border:1px solid var(--error-300);border-radius:var(--radius-lg);color:var(--error-500);font-size:var(--text-sm);justify-content:space-between;align-items:center;display:flex}.register-page__error-close{color:var(--error-500);font-size:var(--text-lg);cursor:pointer;padding:0 var(--space-1);line-height:1}.register-page__form{gap:var(--space-4);flex-direction:column;display:flex}.register-page__submit{width:100%;margin-top:var(--space-2)}.register-page__footer{text-align:center;margin-top:var(--space-6);font-size:var(--text-sm);color:var(--text-tertiary)}.register-page__footer a{color:var(--text-link);font-weight:var(--weight-medium)}.register-page__footer a:hover{color:var(--text-link-hover)}.sidebar{width:var(--sidebar-width);background-color:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);z-index:var(--z-sticky);transition:width var(--duration-normal) var(--ease-default);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.sidebar--collapsed{width:var(--sidebar-width-collapsed)}.sidebar-toggle{top:var(--space-3);left:var(--space-3);z-index:var(--z-overlay);border-radius:var(--radius-md);background-color:var(--surface-raised);border:1px solid var(--border-default);width:36px;height:36px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;display:none;position:fixed}.sidebar-toggle:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.sidebar__logo{align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-4);display:flex}.sidebar__logo-mark{border-radius:var(--radius-lg);background-color:var(--bg-brand);width:32px;height:32px;color:var(--text-on-brand);font-weight:var(--weight-bold);font-size:var(--text-md);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar__logo-text{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text-primary);letter-spacing:var(--tracking-wide)}.sidebar__workspace{padding:0 var(--space-4) var(--space-3)}.sidebar__workspace-name{font-size:var(--text-sm);color:var(--text-tertiary);display:block}.sidebar__nav{gap:var(--space-1);padding:var(--space-2) var(--space-2);flex-direction:column;flex:1;display:flex;overflow-y:auto}.sidebar__nav-item{align-items:center;gap:var(--space-3);padding:var(--sidebar-item-padding);border-radius:var(--sidebar-item-radius);color:var(--text-secondary);font-size:var(--text-base);font-weight:var(--weight-medium);transition:background-color var(--duration-fast) var(--ease-default), color var(--duration-fast) var(--ease-default);text-decoration:none;display:flex}.sidebar__nav-item:hover{background-color:var(--surface-hover);color:var(--text-primary)}.sidebar__nav-item--active{background-color:var(--surface-selected);color:var(--brand-500)}.sidebar__nav-icon{flex-shrink:0;display:inline-flex}.sidebar__nav-label{white-space:nowrap}.sidebar__footer{padding:var(--space-3) var(--space-3);border-top:1px solid var(--sidebar-border);justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.sidebar__user{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}.sidebar__avatar{border-radius:var(--radius-full);background-color:var(--bg-brand-subtle);width:32px;height:32px;color:var(--brand-500);font-size:var(--text-sm);font-weight:var(--weight-semibold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar__user-info{flex-direction:column;min-width:0;display:flex}.sidebar__user-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary)}.sidebar__user-email{font-size:var(--text-2xs);color:var(--text-tertiary)}.sidebar__logout{border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar__logout:hover{background-color:var(--surface-hover);color:var(--text-primary)}.sidebar__logout:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}@media (width<=768px){.sidebar-toggle{display:inline-flex}.sidebar{transition:transform var(--duration-normal) var(--ease-default), width var(--duration-normal) var(--ease-default);transform:translate(-100%)}.sidebar:not(.sidebar--collapsed){width:240px;transform:translate(0)}.sidebar--collapsed{transform:translate(-100%)}}.page-layout{min-height:100vh;display:flex}.page-layout__main{margin-left:var(--sidebar-width);min-width:0;transition:margin-left var(--duration-normal) var(--ease-default);flex-direction:column;flex:1;display:flex}@media (width<=768px){.page-layout__main{margin-left:0}}.header{padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--border-subtle);background-color:var(--surface-base);justify-content:space-between;align-items:center;min-height:56px;display:flex}.header__breadcrumbs{align-items:center;gap:var(--space-1);font-size:var(--text-sm);display:flex}.header__breadcrumb-item{align-items:center;gap:var(--space-1);display:inline-flex}.header__breadcrumb-separator{color:var(--text-disabled);margin:0 var(--space-1)}.header__breadcrumb-link{color:var(--text-tertiary);transition:color var(--duration-fast) var(--ease-default);text-decoration:none}.header__breadcrumb-link:hover{color:var(--text-primary)}.header__breadcrumb-current{color:var(--text-primary);font-weight:var(--weight-medium)}.header__actions{align-items:center;gap:var(--space-2);display:flex}@media (width<=768px){.header{padding:var(--space-3) var(--space-4);padding-left:calc(var(--space-4) + 44px)}}.card{background-color:var(--card-bg);border-radius:var(--card-border-radius);transition:background-color var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default), box-shadow var(--duration-fast) var(--ease-default)}.card--pad-none{padding:0}.card--pad-sm{padding:var(--space-3)}.card--pad-md{padding:var(--card-padding)}.card--pad-lg{padding:var(--space-6)}.card--default{border:1px solid var(--card-border)}.card--elevated{border:1px solid var(--card-border);box-shadow:var(--card-shadow)}.card--outlined{border:1px solid var(--border-default);background-color:#0000}.card--interactive{border:1px solid var(--card-border);cursor:pointer}.card--interactive:hover{background-color:var(--card-bg-hover);border-color:var(--border-hover)}.card--interactive:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.card--interactive:active{background-color:var(--surface-active)}.badge{border-radius:var(--badge-border-radius);font-weight:var(--weight-medium);white-space:nowrap;justify-content:center;align-items:center;line-height:1;display:inline-flex}.badge--sm{padding:var(--space-0-5) var(--space-1-5);font-size:var(--text-2xs)}.badge--md{padding:var(--badge-padding);font-size:var(--badge-font-size)}.badge--default{background-color:var(--surface-raised);color:var(--text-secondary);border:1px solid var(--border-subtle)}.badge--brand{background-color:var(--bg-brand-subtle);color:var(--brand-500)}.badge--success{background-color:var(--bg-success-subtle);color:var(--success-500)}.badge--warning{background-color:var(--bg-warning-subtle);color:var(--warning-500)}.badge--error{background-color:var(--bg-error-subtle);color:var(--error-500)}.badge--info{background-color:var(--bg-info-subtle);color:var(--info-500)}.modal-backdrop{background-color:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-backdrop-blur));backdrop-filter:blur(var(--modal-backdrop-blur));z-index:var(--z-modal);animation:modal-fade-in var(--duration-normal) var(--ease-out);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background-color:var(--modal-bg);border:1px solid var(--modal-border);border-radius:var(--modal-border-radius);box-shadow:var(--modal-shadow);max-height:85vh;animation:modal-scale-in var(--duration-normal) var(--ease-out);overflow-y:auto}.modal--sm{width:100%;max-width:400px}.modal--md{width:100%;max-width:560px}.modal--lg{width:100%;max-width:720px}.modal__header{padding:var(--space-5) var(--space-6) var(--space-3);justify-content:space-between;align-items:center;display:flex}.modal__title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary);margin:0}.modal__close{border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default);justify-content:center;align-items:center;display:inline-flex}.modal__close:hover{background-color:var(--surface-hover);color:var(--text-primary)}.modal__close:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.modal__body{padding:var(--space-3) var(--space-6) var(--space-6)}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (width<=640px){.modal--sm,.modal--md,.modal--lg{max-width:calc(100vw - var(--space-8));margin:var(--space-4)}}.dashboard{padding:var(--space-6);flex:1}.dashboard__header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);display:flex}.dashboard__title{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--text-primary)}.dashboard__empty{text-align:center;padding:var(--space-16) var(--space-4);justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.dashboard__empty-icon{color:var(--text-disabled);margin-bottom:var(--space-2)}.dashboard__empty-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary)}.dashboard__empty-text{font-size:var(--text-base);color:var(--text-tertiary);max-width:360px}.dashboard__grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.dashboard__project-name{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);margin-bottom:var(--space-2)}.dashboard__project-desc{font-size:var(--text-sm);color:var(--text-tertiary);margin-bottom:var(--space-3)}.dashboard__new-project-form{gap:var(--space-4);flex-direction:column;display:flex}.dashboard__new-project-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}@media (width<=640px){.dashboard{padding:var(--space-4)}.dashboard__grid{grid-template-columns:1fr}}
