.placeholder{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-xl) var(--gutter-mobile)}.placeholder__card{width:100%;max-width:420px;background:var(--surface-card);border:1px solid var(--border-whisper);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden;text-align:center}.placeholder__header{background:var(--gradient-signature);padding:var(--space-xl) var(--space-lg) var(--space-lg);display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.placeholder__logo{width:72px;height:72px;object-fit:contain;border-radius:var(--radius-hero);background:#ffffffeb;padding:var(--space-sm);box-shadow:var(--shadow-card)}.placeholder__title{font-family:var(--font-display);font-weight:700;letter-spacing:var(--tracking-display);font-size:clamp(1.35rem,5vw,1.75rem);margin:0;color:#fff}.placeholder__body{padding:var(--space-lg) var(--space-lg) var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md)}.placeholder__subtitle{font-family:var(--font-body);font-size:.95rem;line-height:1.5;color:var(--text-ink-muted);margin:0}.placeholder__status{display:inline-flex;align-items:center;gap:var(--space-sm);align-self:center;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-pill);background:var(--color-brand-50);color:var(--color-brand-700);font-family:var(--font-body);font-weight:600;font-size:.8rem}@media(prefers-color-scheme:dark){.placeholder__status{background:#0d9cc229;color:var(--color-brand-300)}}.placeholder__status-dot{width:8px;height:8px;border-radius:50%;background:var(--color-signal-cyan)}.protected-route-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text-ink-muted);font-family:var(--font-body)}.touch-target{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);border:none;border-radius:var(--radius-control);padding:0 var(--space-md);background:var(--surface-card);color:var(--text-ink);font-family:var(--font-body);font-weight:600;font-size:1rem;line-height:1;cursor:pointer;touch-action:manipulation;box-shadow:var(--shadow-card);transition:transform .15s ease,box-shadow .15s ease}.touch-target--primary{border-radius:var(--radius-hero);background:var(--gradient-signature);color:#fff;font-family:var(--font-display);font-size:1.05rem;letter-spacing:var(--tracking-display)}.touch-target:active{transform:scale(.96);box-shadow:var(--shadow-selected)}.touch-target:disabled{opacity:.5;cursor:not-allowed;transform:none}@media(prefers-reduced-motion:reduce){.touch-target{transition:none}}.login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-xl) var(--gutter-mobile);padding-top:calc(var(--space-xl) + var(--safe-top));padding-bottom:calc(var(--space-xl) + var(--safe-bottom));text-align:center;max-width:var(--content-max-width);margin:0 auto}.login__mark{width:72px;height:72px;border-radius:var(--radius-hero);background:var(--gradient-signature);box-shadow:var(--shadow-card)}.login h1{font-family:var(--font-display);font-weight:700;letter-spacing:var(--tracking-display);font-size:clamp(1.5rem,5vw,2rem);margin:0;color:var(--text-ink)}.login p{font-family:var(--font-body);color:var(--text-ink-muted);margin:0;max-width:32ch}.login__form{width:100%;max-width:360px;display:flex;flex-direction:column;align-items:stretch;gap:var(--space-md);margin-top:var(--space-md)}.login__label{text-align:left;font-weight:600;color:var(--text-ink);font-size:.9rem}.login__input{min-height:var(--touch-min-default);border:1px solid var(--border-whisper);border-radius:var(--radius-control);padding:0 var(--space-md);font-size:1rem;font-family:var(--font-body);background:var(--surface-card);color:var(--text-ink)}.login__input:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:2px}.login__error{color:var(--color-amber-deep);font-weight:600;margin:0;text-align:left}.login__submit{width:100%}:root{--color-brand-50: #e7f7fb;--color-brand-100: #cdeef7;--color-brand-200: #a1e1f0;--color-brand-300: #67cde6;--color-brand-400: #2eb8d9;--color-brand-500: #0d9cc2;--color-brand-600: #0b7fa0;--color-brand-700: #0e6a85;--color-brand-800: #0e576c;--color-brand-900: #0c4453;--color-signal-cyan: #06bfe5;--color-amber: #f59e0b;--color-amber-deep: #d97706;--color-canvas-light: #f6fafb;--color-canvas-dark: #0a161b;--color-surface-light: #ffffff;--color-surface-dark: #12262d;--color-ink-light: #1a202c;--color-ink-dark: #edf2f7;--color-ink-muted-light: #4a5568;--color-ink-muted-dark: #a0aec0;--color-border-whisper-light: #edf2f7;--color-border-whisper-dark: rgba(255, 255, 255, .2);--gradient-signature: linear-gradient(135deg, #0d9cc2 0%, #0e576c 100%);--font-display: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--tracking-display: -.02em;--radius-control: 12px;--radius-hero: 16px;--radius-card: 20px;--radius-sheet: 24px;--radius-pill: 9999px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 20px;--space-xl: 32px;--card-padding: 16px;--card-padding-md: 20px;--content-max-width: 960px;--gutter-mobile: 16px;--gutter-md: 32px;--shadow-card: 0 1px 2px rgba(10, 30, 36, .04), 0 8px 24px -8px rgba(10, 30, 36, .08);--shadow-card-hover: 0 10px 20px -5px rgba(13, 156, 194, .18), 0 20px 30px -10px rgba(10, 30, 36, .1);--shadow-selected: 0 0 0 2px rgba(13, 156, 194, .45), 0 10px 20px -5px rgba(13, 156, 194, .2);--touch-min-default: 56px;--touch-min-primary: 64px;--touch-min-gap: 12px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--surface-canvas: var(--color-canvas-light);--surface-card: var(--color-surface-light);--text-ink: var(--color-ink-light);--text-ink-muted: var(--color-ink-muted-light);--border-whisper: var(--color-border-whisper-light)}@media(prefers-color-scheme:dark){:root{--surface-canvas: var(--color-canvas-dark);--surface-card: var(--color-surface-dark);--text-ink: var(--color-ink-dark);--text-ink-muted: var(--color-ink-muted-dark);--border-whisper: var(--color-border-whisper-dark)}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;touch-action:manipulation;overscroll-behavior:none;background:var(--surface-canvas);color:var(--text-ink);font-family:var(--font-body)}#root{min-height:100vh}
