@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Manrope:wght@300;400;500;600;700&display=swap";.login-page{display:flex;flex-direction:column;min-height:100vh;background:#fbfbfb}.login-header{background:#fff;padding:16px 32px;min-height:72px;position:relative}.brand-container{display:flex;align-items:center;gap:12px}.brand{display:flex;align-items:center;gap:10px}.brand-logo{height:28px;width:28px;object-fit:contain}.brand-name{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:20px;font-weight:600;color:#000;letter-spacing:-.02em}.product-name{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:20px;font-weight:400;color:#666;margin-left:6px}.header-bottom-line{width:100vw;height:1px;background:#000;margin:0;position:absolute;bottom:0;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw}.login-main{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 20px}.login-container{width:100%;max-width:420px}.login-form-header{text-align:center;margin-bottom:40px}.login-form-header h1{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:32px;font-weight:600;color:#000;margin:0 0 12px;letter-spacing:-.02em}.login-form-header p{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;color:#666;margin:0;font-weight:400}.login-form{display:flex;flex-direction:column;gap:24px}.error-message{background:#fed7d7;color:#c53030;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;text-align:center;margin-bottom:4px}.google-auth-section{display:flex;flex-direction:column;align-items:center;gap:24px;padding:16px 0}.google-auth-description{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;color:#4a5568;text-align:center;margin:0;line-height:1.6;max-width:400px}.google-login-wrapper{width:100%;display:flex;justify-content:center}.loading-indicator{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px}.spinner{width:32px;height:32px;border:3px solid #e2e8f0;border-top-color:#000;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-indicator p{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;color:#666;margin:0}.google-auth-note{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;color:#718096;text-align:center;margin:0;font-style:italic}.login-error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center}.login-error-container h1{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:24px;font-weight:600;color:#c53030;margin:0 0 16px}.login-error-container p{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;color:#666;margin:8px 0}.error-hint{background:#f7fafc;padding:16px;border-radius:8px;margin-top:16px;font-size:14px!important;color:#4a5568!important}.error-hint code{background:#e2e8f0;padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:13px}.login-footer{background:#fff;position:relative}.footer-bottom-line{width:100vw;height:1px;background:#000;margin:0;position:absolute;top:0;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw}.footer-content{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;min-height:48px}.footer-brand{display:flex;align-items:center;gap:8px}.footer-logo{height:20px;width:20px;object-fit:contain}.footer-brand-name{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;font-weight:600;color:#000;letter-spacing:-.02em}.footer-copyright{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:12px;font-weight:400;color:#666}@media(max-width:768px){.login-main{padding:20px 16px}.login-header{padding:16px 20px}.footer-content{padding:16px 20px;flex-direction:column;gap:12px;text-align:center}}:root.dark .login-page{background:#0d0d0d}:root.dark .login-header{background:#1a1a1a}:root.dark .brand-name{color:#fff}:root.dark .product-name{color:#a3a3a3}:root.dark .header-bottom-line{background:#fff}:root.dark .login-form-header h1{color:#fff}:root.dark .login-form-header p{color:#a3a3a3}:root.dark .google-auth-description{color:#d4d4d4}:root.dark .spinner{border-color:#404040;border-top-color:#fff}:root.dark .loading-indicator p{color:#a3a3a3}:root.dark .google-auth-note{color:#a3a3a3}:root.dark .error-hint{background:#262626;color:#d4d4d4!important}:root.dark .error-hint code{background:#404040}:root.dark .login-footer{background:#1a1a1a}:root.dark .footer-bottom-line{background:#fff}:root.dark .footer-brand-name{color:#fff}:root.dark .footer-copyright{color:#a3a3a3}.portal-selector-page{display:flex;flex-direction:column;min-height:100vh;background:#fff}.portal-selector-header{background:#fff;padding:16px 32px;min-height:72px;border-bottom:1px solid #000000;display:flex;align-items:center;justify-content:space-between}.portal-selector-brand-container{display:flex;align-items:center;gap:12px}.portal-selector-brand{display:flex;align-items:center;gap:10px}.portal-selector-brand-logo{height:28px;width:28px;object-fit:contain}.portal-selector-brand-name{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:20px;font-weight:600;color:#000;letter-spacing:-.02em}.portal-selector-product-name{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:20px;font-weight:400;color:#666;margin-left:6px}.portal-selector-main{flex:1;display:flex;align-items:center;justify-content:center;padding:60px 20px}.portal-selector-container{max-width:1000px;width:100%}.portal-selector-title-section{text-align:center;margin-bottom:48px}.portal-selector-title{font-size:32px;font-weight:600;color:#000;margin:0 0 12px;letter-spacing:-.02em}.portal-selector-subtitle{font-size:16px;color:#666;margin:0}.portal-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:40px}.portal-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:32px 24px;cursor:pointer;transition:all .2s ease;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.portal-card:hover{border-color:#000;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.portal-card-icon{width:56px;height:56px;border-radius:12px;background:#f7fafc;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.portal-card-icon svg{color:#000;width:28px;height:28px}.portal-card-title{font-size:20px;font-weight:600;color:#000;margin:0 0 8px}.portal-card-description{font-size:14px;color:#666;line-height:1.5;margin:0 0 12px}.portal-card-badge{display:inline-block;padding:6px 16px;background:#000;color:#fff;font-size:11px;font-weight:600;border-radius:6px;text-transform:uppercase;letter-spacing:.5px;margin-top:auto}.logout-button{background:transparent;color:#000;border:1px solid #e2e8f0;padding:8px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.logout-button:hover{background:#f7fafc;border-color:#000}@media(max-width:768px){.portal-selector-title{font-size:28px}.portal-cards-grid{grid-template-columns:1fr;gap:16px}.portal-card{padding:24px 20px}.portal-selector-header{padding:16px 20px}}:root.dark .portal-selector-page{background:#0d0d0d}:root.dark .portal-selector-header{background:#1a1a1a;border-bottom-color:#fff}:root.dark .portal-selector-brand-name{color:#fff}:root.dark .portal-selector-product-name{color:#a3a3a3}:root.dark .portal-selector-title{color:#fff}:root.dark .portal-selector-subtitle{color:#a3a3a3}:root.dark .portal-card{background:#1a1a1a;border-color:#404040}:root.dark .portal-card:hover{border-color:#fff;box-shadow:0 4px 12px #0006}:root.dark .portal-card-icon{background:#262626}:root.dark .portal-card-icon svg{color:#fff}:root.dark .portal-card-title{color:#fff}:root.dark .portal-card-description{color:#a3a3a3}:root.dark .portal-card-badge{background:#fff;color:#000}:root.dark .logout-button{color:#fff;border-color:#404040}:root.dark .logout-button:hover{background:#262626;border-color:#fff}.toast-container{position:fixed;top:80px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;min-width:320px;padding:16px;background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000026;pointer-events:auto;animation:slideIn .3s ease;border-left:4px solid}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{border-left-color:#10b981}.toast-success .toast-icon{color:#10b981}.toast-error{border-left-color:#ef4444}.toast-error .toast-icon{color:#ef4444}.toast-warning{border-left-color:#f59e0b}.toast-warning .toast-icon{color:#f59e0b}.toast-info{border-left-color:#3b82f6}.toast-info .toast-icon{color:#3b82f6}.toast-message{flex:1;font-size:14px;font-weight:500;color:var(--color-text-primary)}.toast-close{padding:4px;background:transparent;border:none;cursor:pointer;color:var(--color-text-secondary);border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.toast-close:hover{background:#f3f4f6}@media(max-width:640px){.toast-container{right:16px;left:16px}.toast{min-width:auto}}:root.dark .toast{background:#262626;box-shadow:0 4px 12px #0006}:root.dark .toast-close:hover{background:#404040}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fbfbfb;color:#1a1a1a;font-size:16px;line-height:1.5}#root{height:100vh;overflow:hidden}:root{--color-primary: #1a1a1a;--color-primary-dark: #000000;--color-black: #1a1a1a;--color-white: #ffffff;--color-bg: #fbfbfb;--color-surface: #fbfbfb;--color-subtle: #f5f5f5;--color-text: #1a1a1a;--color-text-primary: #1a1a1a;--color-text-secondary: #666666;--color-text-muted: #a0aec0;--color-text-error: #c53030;--color-border: #333333;--color-border-hover: #666666;--color-border-focus: #1a1a1a;--color-bg-primary: #fbfbfb;--color-bg-secondary: #f7fafc;--color-bg-tertiary: #edf2f7;--color-bg-hover: #f7fafc;--color-accent-green: #517e51;--color-accent-purple: #896895;--color-accent-pink: #929292;--color-accent-blue: #a8c5d5;--color-accent: #666666;--color-success: #48bb78;--color-success-light: #e8f5e9;--color-success-dark: #2e7d32;--color-warning: #ed8936;--color-warning-light: #fff3cd;--color-error: #f44336;--color-error-light: #ffebee;--color-error-dark: #c62828;--color-info: #2196f3;--color-info-light: #e3f2fd;--color-info-dark: #1565c0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 40px;--spacing-3xl: 48px;--spacing-4xl: 64px;--spacing-5xl: 80px;--spacing-6xl: 96px;--radius-sm: 2px;--radius-base: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-3xl: 24px;--radius-full: 9999px;--shadow-xs: 0 0 0 1px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-base: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .06);--font-heading: "Space Grotesk", sans-serif;--font-body: "Manrope", sans-serif;--font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-6xl: 3.75rem;--font-size-7xl: 4.5rem;--font-size-8xl: 6rem;--font-size-9xl: 8rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-none: 1;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--letter-spacing-tighter: -.05em;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0;--letter-spacing-wide: .025em;--letter-spacing-wider: .05em;--letter-spacing-widest: .1em;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--transition-standard: .3s cubic-bezier(.4, 0, .2, 1);--transition-smooth: .5s cubic-bezier(.4, 0, .2, 1);--header-height: 72px;--sidebar-width: 64px}:root.dark{--color-primary: #ffffff;--color-primary-dark: #e5e5e5;--color-black: #ffffff;--color-white: #1a1a1a;--color-bg: #0d0d0d;--color-surface: #1a1a1a;--color-subtle: #262626;--color-text: #f5f5f5;--color-text-primary: #f5f5f5;--color-text-secondary: #a3a3a3;--color-text-muted: #737373;--color-text-error: #f87171;--color-border: #404040;--color-border-hover: #525252;--color-border-focus: #737373;--color-bg-primary: #0d0d0d;--color-bg-secondary: #171717;--color-bg-tertiary: #262626;--color-bg-hover: #262626;--color-accent-green: #6baa6b;--color-accent-purple: #a785b3;--color-accent-pink: #b0b0b0;--color-accent-blue: #7db3cc;--color-accent: #a3a3a3;--color-success: #4ade80;--color-success-light: #14532d;--color-success-dark: #86efac;--color-warning: #fb923c;--color-warning-light: #451a03;--color-error: #f87171;--color-error-light: #450a0a;--color-error-dark: #fca5a5;--color-info: #60a5fa;--color-info-light: #1e3a5f;--color-info-dark: #93c5fd;--shadow-xs: 0 0 0 1px rgba(255, 255, 255, .05);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-base: 0 1px 3px 0 rgba(0, 0, 0, .4), 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -2px rgba(0, 0, 0, .3);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 10px 10px -5px rgba(0, 0, 0, .3);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .6);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .3)}:root.dark body{background:#0d0d0d;color:#f5f5f5}:root.dark ::-webkit-scrollbar-track{background:#262626}:root.dark ::-webkit-scrollbar-thumb{background:#525252}:root.dark ::-webkit-scrollbar-thumb:hover{background:#737373}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight);color:var(--color-text-primary)}.h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);letter-spacing:-.02em;line-height:var(--line-height-tight)}.h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);letter-spacing:-.01em;line-height:var(--line-height-tight)}.h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.text-body{font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text-primary)}.text-small{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:14px 36px;border:none;border-radius:var(--radius-lg);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:.5px;cursor:pointer;transition:var(--transition-standard);outline:none;text-decoration:none;text-transform:none}.btn-primary{background:var(--color-primary);color:var(--color-surface)}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);transform:translateY(-2px);box-shadow:0 8px 20px #00000026}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:transparent;color:var(--color-primary);border:2px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary);transform:translateY(-2px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.card{background:var(--color-white);border:none;border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-base);transition:var(--transition-standard)}.card-hover:hover{transform:translateY(-4px);box-shadow:0 12px 30px #00000014}.input{width:100%;padding:var(--spacing-md) var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-white);transition:var(--transition-base);outline:none}.input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #6666661a}.input::placeholder{color:var(--color-text-muted)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px}.badge-success{background:var(--color-success-light);color:var(--color-success-dark)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}.badge-error{background:var(--color-error-light);color:var(--color-error-dark)}.badge-info{background:var(--color-info-light);color:var(--color-info-dark)}.badge-qc-pending{background:#e0e7ff;color:#4338ca}.badge-revision{background:#fed7aa;color:#9a3412}.badge-qc-revision{background:#fee2e2;color:#991b1b}.badge-client-revision{background:#fef3c7;color:#92400e}.badge-delivered{background:#f3f4f6;color:#374151}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.w-full{width:100%}.btn.w-full{display:flex}.h-full{height:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-subtle)}::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-in{animation:slideIn var(--transition-smooth)}.animate-fade-in{animation:fadeIn var(--transition-smooth)}.animate-slide-up{animation:slideUp var(--transition-smooth)}.grid-pattern{background-image:linear-gradient(rgba(0,0,0,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.02) 1px,transparent 1px);background-size:20px 20px}.subtle-grid{background-size:40px 40px;opacity:.03}.pattern-dots{background-image:radial-gradient(circle,rgba(0,0,0,.05) 1px,transparent 1px);background-size:20px 20px}.pattern-diagonal{background-image:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(0,0,0,.02) 10px,rgba(0,0,0,.02) 20px)}.accent-text{background:linear-gradient(135deg,var(--color-accent-purple),var(--color-accent-green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.focus-visible:focus{outline:none;ring:2px solid rgba(102,102,102,.4);ring-offset:2px;ring-offset-color:#fbfbfb}:root.dark .badge-qc-pending{background:#312e81;color:#a5b4fc}:root.dark .badge-revision{background:#7c2d12;color:#fed7aa}:root.dark .badge-qc-revision{background:#7f1d1d;color:#fecaca}:root.dark .badge-client-revision{background:#78350f;color:#fde68a}:root.dark .badge-delivered{background:#374151;color:#d1d5db}:root.dark .card{background:#1a1a1a;border:1px solid #333333}:root.dark .input{background:#1a1a1a;border-color:#404040;color:#f5f5f5}:root.dark .input:focus{border-color:#737373;box-shadow:0 0 0 3px #73737333}:root.dark .input::placeholder{color:#737373}:root.dark .grid-pattern{background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px)}:root.dark .pattern-dots{background-image:radial-gradient(circle,rgba(255,255,255,.08) 1px,transparent 1px)}:root.dark .pattern-diagonal{background-image:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(255,255,255,.03) 10px,rgba(255,255,255,.03) 20px)}:root.dark .focus-visible:focus{ring-offset-color:#0d0d0d}
