:root{--color-green-950: #0f2a23;--color-white: #ffffff;--accent-green: #7ae6a3;--accent-green-hover: #90efb3;--accent-green-soft: rgba(122, 230, 163, 0.16);--accent-green-border: rgba(122, 230, 163, 0.32);--text-primary: rgba(255, 255, 255, 0.85);--text-secondary: rgba(255, 255, 255, 0.65);--text-muted: rgba(255, 255, 255, 0.45);--text-inverse: #0f2a23;--text-white: rgba(255, 255, 255, 1);--surface-1: rgba(255, 255, 255, 0.045);--surface-2: rgba(255, 255, 255, 0.07);--surface-3: rgba(255, 255, 255, 0.10);--border-soft: rgba(255, 255, 255, 0.10);--border-medium: rgba(255, 255, 255, 0.16);--danger: #e67a7a;--success: #7ae6a3;--warning: #e6c77a;--info: #7abde6;--font-display: 'Space Grotesk', system-ui, sans-serif;--font-sans: Inter, Helvetica, Arial, sans-serif;--font-size-xs: 0.8125rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.0625rem;--font-size-xl: 1.125rem;--font-size-2xl: 1.375rem;--font-size-3xl: 1.5rem;--space-1: 0.25rem;--space-2: 0.5rem;--space-3: 0.625rem;--space-4: 0.75rem;--space-5: 0.875rem;--space-6: 1rem;--space-7: 1.125rem;--space-8: 1.25rem;--space-9: 1.375rem;--space-10: 1.5rem;--space-11: 1.75rem;--space-12: 2rem;--space-15: 2.5rem;--space-17: 3rem;--space-18: 3.5rem;--space-20: 5rem;--radius-sm: 12px;--radius-md: 18px;--radius-lg: 28px;--radius-pill: 999px;--shadow-soft: 0 12px 80px rgba(0, 0, 0, 0.20);--shadow-panel: 0 12px 120px rgba(0, 0, 0, 0.28);--blur-panel: blur(18px)}*,*::before,*::after{box-sizing:border-box}html{min-height:100%}body{margin:0;min-height:100vh;font-family:var(--font-sans);color:var(--text-primary);background:var(--color-green-950);-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}img,svg{display:block;max-width:100%}button,input,textarea,select{font:inherit}a{color:inherit}.page{min-height:100vh;color:var(--text-primary);background:linear-gradient(180deg, #0d261f 0%, #071b16 100%);position:relative}.page:before{content:"";background-image:url(/assets/bg-texture-02f624621ba10dc70087f7638df2578e4002a130ec6214a6356e48006c72a984.png);background-position:center;background-repeat:repeat;inset:0;opacity:.015;position:absolute;pointer-events:none}.page:after{content:"";inset:0;opacity:.8;position:absolute;pointer-events:none;background:radial-gradient(circle at center, rgba(255, 255, 255, 0.04) 0%, rgba(120, 120, 120, 0.065) 35%, rgba(60, 60, 60, 0) 70%),radial-gradient(circle at center, rgba(0, 0, 0, 0.08) 0%, rgba(0, 0, 0, 0.18) 65%, rgba(0, 0, 0, 0.32) 100%)}.page>*{position:relative;z-index:1}.auth-page{display:grid;min-height:100vh;padding:var(--space-17)}.auth-page a,.auth-page a:hover,.auth-page a:hover *,.auth-page a.btn,.auth-page a.btn:hover{text-decoration:none}.auth-shell{width:min(100%,30rem);margin:auto;display:grid;gap:var(--space-10)}.auth-shell--wide{width:min(100%,52rem)}.auth-card{border-radius:var(--space-12);border:1px solid hsla(0,0%,100%,.12);background:linear-gradient(180deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.035));box-shadow:inset 0 1px 0 hsla(0,0%,100%,.08),var(--shadow-panel);backdrop-filter:blur(22px);overflow:hidden}.auth-card__header{display:grid;gap:var(--space-5);padding:var(--space-12) var(--space-12) var(--space-8)}.auth-card__body{padding:0 var(--space-12) var(--space-12)}.auth-heading{margin:0;color:var(--text-primary);font-family:var(--font-display);font-size:clamp(2rem,6vw,2.75rem);line-height:1.05;font-weight:650}.auth-copy{margin:0;color:var(--text-secondary);font-size:var(--font-size-base);line-height:1.625rem}.logo{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-8);text-decoration:none;width:fit-content}.logo__icon{width:2.6rem;height:2.6rem;display:flex;margin-right:var(--space-2);opacity:.85}.logo__text{color:var(--text-white);font-family:var(--font-display);font-weight:900;font-size:var(--font-size-xl);opacity:.9}.logo:focus{outline:none;box-shadow:none}.form{display:grid;gap:var(--space-7)}.field,.input{display:grid;gap:var(--space-2)}.input{margin:0}.label,.input>label,.field label{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500}.field input:not([type=checkbox]):not([type=file]),.field select,.field textarea,.input input,.input select,.input textarea,.auth-input,.input-field{width:100%;border-radius:var(--space-6);border:1px solid var(--border-soft);background:hsla(0,0%,100%,.055);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--font-size-base);outline:none;transition:border-color 160ms ease,background 160ms ease,box-shadow 160ms ease}.field input:not([type=checkbox]):not([type=file]),.field select,.input input,.input select,.auth-input,.input-field{height:3.25rem;padding:0 var(--space-6)}.field textarea,.input textarea{min-height:8.75rem;padding:var(--space-6);resize:vertical}.field input::placeholder,.input input::placeholder,.auth-input::placeholder,.input-field::placeholder{color:hsla(0,0%,100%,.34)}.field input:focus,.field select:focus,.field textarea:focus,.input input:focus,.input select:focus,.input textarea:focus,.auth-input:focus,.input-field:focus{border-color:var(--accent-green-border);background:hsla(0,0%,100%,.075);box-shadow:0 0 0 4px rgba(122,230,163,.08)}.input .hint{color:var(--text-muted);font-size:var(--font-size-sm)}.input .error{color:var(--danger);font-size:var(--font-size-sm)}.form-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--space-7)}.form-grid--single{grid-template-columns:minmax(0, 1fr)}.form__actions{display:flex;flex-wrap:wrap;gap:var(--space-5);align-items:center;margin-top:var(--space-2)}.form__actions--stack{display:grid}.checkbox{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--text-secondary);font-size:var(--font-size-sm)}.checkbox input,.checkbox__input{width:1rem;height:1rem;accent-color:var(--accent-green)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:3.25rem;padding:0 var(--space-9);border-radius:var(--radius-pill);font-size:var(--font-size-base);font-weight:600;letter-spacing:-0.01em;text-decoration:none;border:1px solid rgba(0,0,0,0);cursor:pointer;transition:transform 180ms ease,background 180ms ease,border-color 180ms ease,color 180ms ease,opacity 180ms ease}.btn:hover{transform:translateY(-1px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(122,230,163,.16)}.btn--primary{color:var(--text-inverse);background:var(--accent-green);border-color:var(--accent-green)}.btn--primary:hover{background:var(--accent-green-hover)}.btn--secondary,.btn--tertiary{color:var(--text-primary);background:hsla(0,0%,100%,.055);border-color:hsla(0,0%,100%,.14)}.btn--secondary:hover,.btn--tertiary:hover{background:hsla(0,0%,100%,.085);border-color:hsla(0,0%,100%,.2)}.btn--full{width:100%}.auth-links{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-6);margin-top:var(--space-8)}.auth-link,.link{color:var(--accent-green);text-decoration:none;font-size:var(--font-size-sm);font-weight:600}.auth-link:hover,.link:hover{color:var(--accent-green-hover)}.auth-alert,.toast,.alert,#error_explanation{padding:var(--space-6);border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--border-soft);color:var(--text-secondary)}.auth-alert{display:flex;justify-content:space-between;gap:var(--space-6);align-items:center}.toast--warning,.toast--error,.alert--danger-light,#error_explanation{border-color:rgba(230,122,122,.35);color:var(--danger)}.toast--success{border-color:var(--accent-green-border);color:var(--success)}.toast--info,.toast--notice{border-color:rgba(122,189,230,.35);color:var(--info)}#error_explanation{margin-bottom:var(--space-7)}#error_explanation h2{margin:0 0 var(--space-4);color:var(--danger);font-size:var(--font-size-base)}#error_explanation ul{margin:0;padding-left:var(--space-8)}.avatar-upload{display:grid;gap:var(--space-5)}.dropzone{min-height:8rem;border-radius:var(--radius-md);border:1px dashed var(--border-medium);background:var(--surface-1);display:grid;place-items:center;padding:var(--space-8)}.auth-note{color:var(--text-muted);font-size:var(--font-size-sm);font-style:italic}@media(max-width: 720px){.auth-page{padding:var(--space-8)}.auth-card__header,.auth-card__body{padding-inline:var(--space-8)}.auth-card__header{padding-top:var(--space-8)}.auth-card__body{padding-bottom:var(--space-8)}.form-grid{grid-template-columns:minmax(0, 1fr)}.form__actions .btn{width:100%}}
