:root{--color-violet-900:#242259;--color-violet-800:#353385;--color-violet-700:#4744b2;--color-violet-600:#5955de;--color-violet-500:#7a77e5;--color-violet-400:#9b99eb;--color-violet-300:#bdbbf2;--color-violet-200:#deddf8;--color-violet-100:#eeeefc;--color-red-900:#5e0411;--color-red-800:#8c051a;--color-red-700:#bb0722;--color-red-600:#ea092b;--color-red-500:#ee3a55;--color-red-400:#f26b80;--color-red-300:#f79daa;--color-red-200:#fbced5;--color-red-100:#fde6ea;--color-teal-900:#044637;--color-teal-800:#056853;--color-teal-700:#078b6e;--color-teal-600:#09ae8a;--color-teal-500:#3abea1;--color-teal-400:#6bceb9;--color-teal-300:#9ddfd0;--color-teal-200:#ceefe8;--color-teal-100:#e6f7f3;--color-neutral-900:#18171d;--color-neutral-800:#3b3a3f;--color-neutral-700:#5d5d61;--color-neutral-600:#807f82;--color-neutral-500:#a2a1a3;--color-neutral-400:#c5c4c5;--color-neutral-300:#dcdbdc;--color-neutral-200:#ebeaeb;--color-neutral-100:#f9f8f8;--color-amber-900:#604004;--color-amber-800:#8f6007;--color-amber-700:#bf8009;--color-amber-600:#efa00b;--color-amber-500:#f2b33c;--color-amber-400:#f5c66d;--color-amber-300:#f9d99d;--color-amber-200:#fcecce;--color-amber-100:#fdf5e7;--color-blue-900:#12325d;--color-blue-800:#1c4a8c;--color-blue-700:#2563ba;--color-blue-600:#2e7ce9;--color-blue-500:#5896ed;--color-blue-400:#82b0f2;--color-blue-300:#abcbf6;--color-blue-200:#d5e5fb;--color-blue-100:#eaf2fd;--font-heading:"Plus Jakarta Sans", system-ui, sans-serif;--font-body:"Plus Jakarta Sans", system-ui, sans-serif;--font-ui:"Aeonik Pro", system-ui, sans-serif;--text-h1-size:2rem;--text-h1-line:2.25rem;--text-h1-weight:700;--text-h1-tracking:-.03125rem;--text-h2-size:1.75rem;--text-h2-line:2rem;--text-h2-weight:700;--text-h2-tracking:-.03125rem;--text-h3-size:1.5rem;--text-h3-line:1.75rem;--text-h3-weight:700;--text-h3-tracking:-.03125rem;--text-h4-size:1.375rem;--text-h4-line:1.625rem;--text-h4-weight:700;--text-h4-tracking:-.03125rem;--text-h5-size:1.25rem;--text-h5-line:1.5rem;--text-h5-weight:700;--text-h5-tracking:-.015625rem;--text-h6-size:1.125rem;--text-h6-line:1.375rem;--text-h6-weight:700;--text-h6-tracking:-.015625rem;--text-body-l-size:1.125rem;--text-body-l-line:1.625rem;--text-body-l-weight:400;--text-body-m-size:1rem;--text-body-m-line:1.5rem;--text-body-m-weight:400;--text-body-s-size:.875rem;--text-body-s-line:1.375rem;--text-body-s-weight:400;--text-body-xs-size:.75rem;--text-body-xs-line:1.25rem;--text-body-xs-weight:400;--text-body-size:var(--text-body-s-size);--text-body-line:var(--text-body-s-line);--text-body-weight:var(--text-body-s-weight);--text-ui-size:var(--text-body-s-size);--text-ui-line:var(--text-body-s-line);--text-ui-tracking:.0125rem;--scale-100:4px;--scale-200:8px;--scale-300:12px;--scale-400:16px;--scale-500:20px;--scale-600:24px;--scale-800:32px;--scale-900:40px;--scale-1000:48px;--border-width-s:1px;--border-width-m:1.5px;--border-radius-s:4px;--border-radius-m:6px;--border-radius-l:8px;--border-radius-xl:12px;--color-primary:var(--color-teal-600);--color-primary-hover:var(--color-teal-700);--color-primary-light:var(--color-teal-100);--color-text:var(--color-neutral-900);--color-text-body:var(--color-neutral-800);--color-text-secondary:var(--color-neutral-700);--color-text-label:var(--color-neutral-800);--color-text-muted:var(--color-neutral-600);--color-bg:var(--color-neutral-100);--color-surface:#fff;--color-border:var(--color-neutral-200);--color-border-focus:var(--color-teal-600);--color-surface-action:var(--color-violet-600);--color-surface-action-hover:var(--color-violet-700);--color-surface-action-disabled:var(--color-neutral-400);--color-text-on-action:#fff;--color-border-action:var(--color-violet-600);--color-border-action-hover:var(--color-violet-700);--color-border-action-disabled:var(--color-neutral-400);--color-input-bg:var(--color-neutral-100);--color-input-border:var(--color-neutral-300);--color-input-placeholder:var(--color-neutral-600);--color-input-text:var(--color-neutral-800);--color-error-bg:var(--color-red-100);--color-error-text:var(--color-red-700);--color-error-border:var(--color-red-200);--color-success-bg:var(--color-teal-100);--color-success-text:var(--color-teal-700);--color-success-border:var(--color-teal-200);--color-info-bg:var(--color-blue-100);--color-info-text:var(--color-blue-700);--color-info-border:var(--color-blue-200)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);font-size:var(--text-body-s-size);line-height:var(--text-body-s-line);background:var(--color-bg);color:var(--color-text-body);min-height:100vh}.page{justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.auth-page{background:var(--color-surface);justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.auth-panel{align-items:center;gap:var(--scale-900);flex-direction:column;width:400px;max-width:100%;display:flex}.auth-header{align-items:center;gap:var(--scale-200);flex-direction:column;width:100%;display:flex}.auth-logo-wrap{background:var(--color-violet-100);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;display:flex;overflow:hidden}.auth-logo-wrap img{width:100%;height:100%;display:block}.auth-app-name{font-family:var(--font-heading);font-size:var(--text-h5-size);letter-spacing:var(--text-h5-tracking);color:var(--color-neutral-800);text-align:center;font-weight:600;line-height:1}.auth-subtitle{font-family:var(--font-body);font-size:var(--text-body-xs-size);line-height:var(--text-body-xs-line);color:var(--color-text-muted);text-align:center}.auth-form{gap:var(--scale-500);flex-direction:column;width:100%;display:flex}.auth-back{font-family:var(--font-ui);font-size:var(--text-ui-size);color:var(--color-text-muted);cursor:pointer;text-align:left;align-items:center;gap:var(--scale-100);background:0 0;border:none;padding:0;display:flex}.auth-back:hover{color:var(--color-text-body)}.auth-field-group{gap:var(--scale-300);flex-direction:column;width:100%;display:flex}.auth-hint{font-family:var(--font-body);font-size:var(--text-body-xs-size);color:var(--color-text-muted);line-height:1.25}.auth-terms{font-family:var(--font-body);font-size:var(--text-body-xs-size);color:var(--color-text-body);line-height:1.25}.auth-terms a{color:var(--color-text-body);font-size:inherit;letter-spacing:0;font-family:inherit;text-decoration:underline}.auth-subtitle--confirm{text-align:center;flex-direction:column;align-items:center;gap:0;display:flex}.auth-subtitle__email{color:var(--color-text-body)}.auth-resend{text-align:center;width:100%;font-family:var(--font-body);font-size:var(--text-body-xs-size);color:var(--color-text-muted);gap:var(--scale-200);flex-direction:column;line-height:1.25;display:flex}.auth-resend__link{font-family:var(--font-body);font-size:var(--text-body-xs-size);color:var(--color-text-body);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;line-height:1.25;text-decoration:underline}.card{background:var(--color-surface);border-radius:12px;width:100%;max-width:420px;padding:2.5rem;box-shadow:0 2px 16px #00000014}.brand{align-items:center;gap:.5rem;margin-bottom:2rem;display:flex}.brand-logo{flex-shrink:0;width:48px;height:48px}.brand-name{color:var(--color-primary);letter-spacing:-.02em;font-size:1.25rem;font-weight:700}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--color-text);margin-bottom:.4rem;font-weight:700}h1{font-size:var(--text-h1-size);line-height:var(--text-h1-line);letter-spacing:var(--text-h1-tracking)}h2{font-size:var(--text-h2-size);line-height:var(--text-h2-line);letter-spacing:var(--text-h2-tracking)}h3{font-size:var(--text-h3-size);line-height:var(--text-h3-line);letter-spacing:var(--text-h3-tracking)}h4{font-size:var(--text-h4-size);line-height:var(--text-h4-line);letter-spacing:var(--text-h4-tracking)}h5{font-size:var(--text-h5-size);line-height:var(--text-h5-line);letter-spacing:var(--text-h5-tracking)}h6{font-size:var(--text-h6-size);line-height:var(--text-h6-line);letter-spacing:var(--text-h6-tracking)}.subtitle{font-size:var(--text-body-s-size);color:var(--color-text-secondary);margin-bottom:1.75rem}.body-l{font-size:var(--text-body-l-size);line-height:var(--text-body-l-line);font-weight:var(--text-body-l-weight);color:var(--color-text-body)}.body-m{font-size:var(--text-body-m-size);line-height:var(--text-body-m-line);font-weight:var(--text-body-m-weight);color:var(--color-text-body)}.body-s{font-size:var(--text-body-s-size);line-height:var(--text-body-s-line);font-weight:var(--text-body-s-weight);color:var(--color-text-body)}.body-xs{font-size:var(--text-body-xs-size);line-height:var(--text-body-xs-line);font-weight:var(--text-body-xs-weight);color:var(--color-text-body)}a,.link{font-family:var(--font-ui);font-size:var(--text-ui-size);line-height:var(--text-ui-line);letter-spacing:var(--text-ui-tracking);color:var(--color-violet-600)}.text-success{font-family:var(--font-ui);font-size:var(--text-ui-size);line-height:var(--text-ui-line);letter-spacing:var(--text-ui-tracking);color:var(--color-success-text)}.text-error{font-family:var(--font-ui);font-size:var(--text-ui-size);line-height:var(--text-ui-line);letter-spacing:var(--text-ui-tracking);color:var(--color-error-text)}.form{flex-direction:column;gap:1rem;display:flex}.field{flex-direction:column;gap:.35rem;display:flex}label{font-size:var(--text-body-xs-size);line-height:var(--text-body-xs-line);color:var(--color-text-label);font-weight:600}input[type=email]:not(.input-field),input[type=password]:not(.input-field),input[type=text]:not(.input-field){border:1.5px solid var(--color-border);width:100%;color:var(--color-text);background:var(--color-surface);border-radius:8px;outline:none;padding:.65rem .875rem;font-size:.95rem;transition:border-color .15s}input:not(.input-field):focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px #09ae8a1f}input:not(.input-field)[readonly]{background:var(--color-bg);color:var(--color-text-muted);cursor:default}input:not(.input-field)[disabled]{opacity:.6;cursor:not-allowed}.password-hint{color:var(--color-text-muted);margin-top:.1rem;font-size:.78rem}.btn{cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:.25rem;padding:.7rem 1rem;font-size:.95rem;font-weight:600;transition:opacity .15s,background .15s}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-action-full{width:100%;height:var(--scale-1000);border:var(--border-width-s) solid var(--color-border-action-disabled);border-radius:var(--border-radius-l);background:var(--color-surface-action-disabled);font-family:var(--font-body);font-size:var(--text-body-s-size);line-height:var(--text-body-s-line);color:var(--color-text-on-action);cursor:not-allowed;justify-content:center;align-items:center;font-weight:600;transition:background .2s,border-color .2s;display:flex}.btn-action-full:not(:disabled){background:var(--color-surface-action);border-color:var(--color-border-action);cursor:pointer}.btn-action-full:not(:disabled):hover{background:var(--color-surface-action-hover);border-color:var(--color-border-action-hover)}.btn-ghost{color:var(--color-primary);cursor:pointer;background:0 0;border:none;width:auto;padding:.4rem;font-size:.875rem;font-weight:500;text-decoration:underline}.btn-action{align-items:center;gap:var(--scale-200);width:100%;height:var(--scale-1000);padding:var(--scale-200) var(--scale-600) var(--scale-200) var(--scale-200);border:var(--border-width-s) solid var(--color-border-action);border-radius:var(--border-radius-l);background:var(--color-surface-action);cursor:pointer;transition:background .15s,border-color .15s;display:flex}.btn-action:hover:not(:disabled){background:var(--color-surface-action-hover);border-color:var(--color-border-action-hover)}.btn-action:disabled{opacity:.55;cursor:not-allowed}.btn-action__icon-wrap{background:var(--color-text-on-action);border-radius:var(--border-radius-s);padding:var(--scale-100);flex-shrink:0;justify-content:center;align-items:center;display:flex}.btn-action__label{text-align:center;font-family:var(--font-body);font-size:var(--text-body-s-size);line-height:var(--text-body-s-line);color:var(--color-text-on-action);flex:1;font-weight:600}.input-wrap{width:100%;height:var(--scale-1000);background:var(--color-input-bg);border:var(--border-width-s) solid var(--color-input-border);border-radius:var(--border-radius-l);padding:var(--scale-300) var(--scale-600);align-items:center;gap:var(--scale-200);transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.input-wrap:focus-within{border-color:var(--color-border-focus);box-shadow:0 0 0 3px #09ae8a1f}.input-wrap .input-field{min-width:0;font-family:var(--font-body);font-size:var(--text-body-s-size);line-height:var(--text-body-s-line);color:var(--color-input-text);background:0 0;border:none;outline:none;flex:1;padding:0;font-weight:400}.input-wrap .input-field::placeholder{color:var(--color-input-placeholder)}.input-wrap .input-field:disabled{opacity:.6;cursor:not-allowed}.input-eye{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.alert{border-radius:8px;padding:.75rem 1rem;font-size:.875rem;line-height:1.5}.alert-error{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border)}.alert-success{background:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-border)}.alert-info{background:var(--color-info-bg);color:var(--color-info-text);border:1px solid var(--color-info-border)}.link-row{text-align:center;color:var(--color-text-secondary);margin-top:1.25rem;font-size:.875rem}.link-row a{color:var(--color-primary);font-weight:500;text-decoration:none}.link-row a:hover{text-decoration:underline}.steps{gap:.5rem;margin-bottom:1.75rem;display:flex}.step-dot{background:var(--color-border);border-radius:2px;flex:1;height:4px;transition:background .2s}.step-dot.active{background:var(--color-primary)}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:36px;height:36px;margin:0 auto 1rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-block{text-align:center;color:var(--color-text-muted);font-size:.9rem}.dashboard{background:var(--color-bg);min-height:100vh}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;height:56px;padding:0 2rem;display:flex}.topbar-brand{align-items:center;gap:.5rem;display:flex}.topbar-brand .brand-logo{width:36px;height:36px}.topbar-brand .brand-name{font-size:1.1rem}.topbar-right{align-items:center;gap:1rem;display:flex}.topbar-email{color:var(--color-text-muted);font-size:.85rem}.btn-signout{border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-label);cursor:pointer;border-radius:6px;padding:.4rem .875rem;font-size:.85rem;font-weight:500;transition:border-color .15s}.btn-signout:hover{border-color:var(--color-primary);color:var(--color-primary)}.dashboard-body{max-width:720px;margin:0 auto;padding:2.5rem 1.5rem}.welcome-card{background:var(--color-surface);border-radius:12px;margin-bottom:1.5rem;padding:2rem;box-shadow:0 2px 8px #0000000f}.welcome-card h1{margin-bottom:.5rem;font-size:1.4rem}.welcome-card p{color:var(--color-text-secondary);font-size:.9rem;line-height:1.6}.info-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.info-item{background:var(--color-surface);border-radius:10px;padding:1.25rem 1.5rem;box-shadow:0 2px 8px #0000000f}.info-item-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem;font-size:.78rem;font-weight:500}.info-item-value{color:var(--color-text);font-size:1rem;font-weight:600}
