:root{--color-bg: #0f1117;--color-surface: #1a1d27;--color-surface-raised: #22263a;--color-border: #2e3348;--color-accent: #0078D4;--color-accent-hover: #106ebe;--color-text: #e8eaf0;--color-text-muted: #7c8299;--color-success: #2ecc71;--color-warning: #f39c12;--color-error: #e74c3c;--font-sans: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--radius: 8px;--shadow: 0 4px 24px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}.auth-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:16px;color:var(--color-text-muted);font-size:14px}.auth-loading__spinner{width:28px;height:28px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:radial-gradient(ellipse at 20% 50%,rgba(0,120,212,.08) 0%,transparent 60%),var(--color-bg)}.login-screen__card{width:100%;max-width:400px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:48px 40px;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;gap:16px}.login-screen__logo{margin-bottom:8px}.login-screen__title{font-size:24px;font-weight:700;letter-spacing:-.5px;color:var(--color-text)}.login-screen__subtitle{font-size:13px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:1px;margin-top:-8px}.login-screen__file{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 20px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;margin:8px 0}.login-screen__file-label{font-size:11px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.8px}.login-screen__file-name{font-size:14px;font-weight:600;color:var(--color-text)}.login-screen__button{display:flex;align-items:center;justify-content:center;width:100%;padding:12px 20px;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s ease;margin-top:8px}.login-screen__button:hover:not(:disabled){background:var(--color-accent-hover)}.login-screen__button:disabled{opacity:.6;cursor:not-allowed}.login-screen__spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;margin-right:8px}.login-screen__note{font-size:12px;color:var(--color-text-muted);text-align:center;line-height:1.7}.app-shell{display:flex;flex-direction:column;height:100vh}.app-shell__header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.app-shell__title{display:flex;align-items:center;gap:12px}.app-shell__logo{font-size:15px;font-weight:700;color:var(--color-text);letter-spacing:-.3px}.app-shell__file{font-size:13px;color:var(--color-text-muted);padding:2px 10px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:20px}.app-shell__user{display:flex;align-items:center;gap:12px}.app-shell__user-name{font-size:13px;color:var(--color-text-muted)}.app-shell__logout{font-size:12px;color:var(--color-text-muted);background:none;border:1px solid var(--color-border);border-radius:var(--radius);padding:4px 12px;cursor:pointer;transition:color .15s,border-color .15s}.app-shell__logout:hover{color:var(--color-text);border-color:var(--color-text-muted)}.app-shell__main{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden}.app-shell__placeholder{text-align:center;display:flex;flex-direction:column;gap:12px;max-width:480px}.app-shell__placeholder h2{font-size:20px;font-weight:700}.app-shell__placeholder p{font-size:14px;color:var(--color-text-muted)}.app-shell__next{margin-top:8px;font-size:13px;color:var(--color-accent)!important}@keyframes spin{to{transform:rotate(360deg)}}
