/* Authentication presentation only; Django owns the form and validation. */
body.tawazon-login{--login-bg:#f3f6f4;--login-surface:#fff;--login-ink:#16303a;--login-muted:#586d75;--login-line:#dce5e3;--login-field:#f8faf9;--login-focus:#087d6c;--login-error-bg:#fff0ef;--login-error:#a72e2a;background:radial-gradient(ellipse at 50% 0,#4eb79820,transparent 55%),var(--login-bg);min-height:100vh;margin:0;padding:32px 16px;box-sizing:border-box;display:grid;align-items:center}
html[data-theme=dark] body.tawazon-login{--login-bg:#091b27;--login-surface:#102733;--login-ink:#edf5f3;--login-muted:#b4c8ce;--login-line:#36515c;--login-field:#15313e;--login-focus:#80dec0;--login-error-bg:#43282c;--login-error:#ffc7c0}
@media(prefers-color-scheme:dark){html[data-theme=auto] body.tawazon-login{--login-bg:#091b27;--login-surface:#102733;--login-ink:#edf5f3;--login-muted:#b4c8ce;--login-line:#36515c;--login-field:#15313e;--login-focus:#80dec0;--login-error-bg:#43282c;--login-error:#ffc7c0}}
body.tawazon-login #container{width:min(420px,100%);max-width:100%;min-width:0;margin:0 auto;padding:0;border:0;background:none;box-shadow:none}
.tawazon-login #header,.tawazon-login #footer{display:none}.tawazon-login .main,.tawazon-login #content,.tawazon-login #content-start{padding:0;margin:0;width:100%;min-width:0}.tawazon-login #content>.clear{display:none}
body.tawazon-login .main>#content-start>#content{padding:0}
body.tawazon-login{position:relative}
.tw-login-controls{position:fixed;z-index:5;top:16px;inset-inline-end:16px;display:flex;gap:8px;align-items:center}
.tw-lang-switch,.tw-theme-switch{display:flex;margin:0;padding:3px;gap:2px;background:var(--login-surface);border:1px solid var(--login-line);border-radius:10px}
.tw-login-controls button{min-width:36px;min-height:32px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:var(--login-muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer;display:grid;place-items:center;transition:background .15s,color .15s}.tw-login-controls button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tw-login-controls button:hover{background:var(--login-field);color:var(--login-ink)}.tw-login-controls button[aria-pressed=true]{background:var(--login-ink);color:var(--login-surface)}
.tw-login-layout{display:flex;flex-direction:column;align-items:stretch;gap:22px;min-width:0}
.tawazon-login .tw-logo{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--login-ink)!important;font-size:22px;font-weight:700;text-decoration:none!important}.tw-logo-mark{position:relative;display:block;width:72px;height:72px;border-radius:18px;overflow:hidden;isolation:isolate;box-shadow:0 8px 24px #08202c26;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}.tw-logo-mark img{display:block;width:72px;height:72px}
.tw-logo-mark:after{content:'';position:absolute;inset:-20% -60%;z-index:1;background:linear-gradient(105deg,transparent 40%,#ffffff66 50%,transparent 60%);transform:translateX(-70%);opacity:0;pointer-events:none}
.tw-logo-name{transition:color .3s,text-shadow .3s}
@keyframes tw-logo-sheen{0%{transform:translateX(-70%)}65%,100%{transform:translateX(70%)}}
@keyframes tw-logo-glow{from{box-shadow:0 0 0 1px #80dec066,0 0 18px #4ebcaa59,0 0 34px #4ebcaa33}to{box-shadow:0 0 0 1px #80dec0b3,0 0 26px #4ebcaa99,0 0 58px #4ebcaa66}}
.tawazon-login .tw-logo:is(:hover,:focus-visible) .tw-logo-mark{box-shadow:0 0 0 1px #80dec099,0 0 26px #4ebcaa80,0 0 50px #4ebcaa4d;animation:tw-logo-glow 1.4s ease-in-out infinite alternate}.tawazon-login .tw-logo:is(:hover,:focus-visible) .tw-logo-mark:after{opacity:1;animation:tw-logo-sheen 1.8s cubic-bezier(.4,0,.2,1) infinite}.tawazon-login .tw-logo:is(:hover,:focus-visible) .tw-logo-name{color:var(--login-focus);text-shadow:0 0 18px color-mix(in srgb,var(--login-focus) 45%,transparent)}
.tawazon-login .tw-logo:focus-visible{outline:0}
.tw-login-panel{background:var(--login-surface);color:var(--login-ink);border:1px solid var(--login-line);border-radius:20px;padding:30px 30px 32px;box-shadow:0 20px 60px #00182414;min-width:0}
.tawazon-login #tw-login-title{font-size:20px;color:var(--login-ink);margin:0 0 24px;font-weight:700;line-height:1.5;text-align:center}
.tawazon-login #content-main{width:100%;float:none}.tawazon-login #login-form{margin:0}.tawazon-login .form-row{padding:0;margin-bottom:18px;border:0;overflow:visible}.tawazon-login .form-row label{display:block;padding:0;font-size:13.5px;line-height:1.6;color:var(--login-ink);margin-bottom:8px;font-weight:600}
.tawazon-login .form-row #id_username,.tawazon-login .form-row #id_password{box-sizing:border-box;width:100%;min-height:50px;padding:12px 15px;font-size:16px;border:1px solid var(--login-line);border-radius:10px;background:var(--login-field);color:var(--login-ink);text-align:start;transition:border-color .15s,box-shadow .15s}
.tawazon-login .form-row input:hover{border-color:var(--login-muted)}
.tawazon-login .form-row input:focus{border-color:var(--login-focus);outline:0;box-shadow:0 0 0 4px color-mix(in srgb,var(--login-focus) 22%,transparent)}
.tw-field{position:relative}.tw-field-icon{position:absolute;inset-inline-start:15px;top:0;bottom:0;display:grid;place-items:center;color:var(--login-muted);pointer-events:none}.tw-field-icon svg,.tw-password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tawazon-login .form-row .tw-field #id_username,.tawazon-login .form-row .tw-field #id_password{padding-inline-start:46px}.tw-field.has-toggle #id_password{padding-inline-end:52px}
.tawazon-login .tw-password-toggle{position:absolute;inset-inline-end:6px;top:50%;transform:translateY(-50%);width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--login-muted);cursor:pointer}.tw-password-toggle:hover{background:var(--login-line);color:var(--login-ink)}
.tawazon-login .form-row:focus-within .tw-field-icon{color:var(--login-focus)}
.tawazon-login .submit-row{padding:6px 0 0;margin:0;background:none;border:0;text-align:start}.tawazon-login .submit-row input{width:100%;min-height:50px;border-radius:10px;background:linear-gradient(180deg,#0a8b78,#087969);color:#fff;font-size:16px;font-weight:650;cursor:pointer;margin:0;border:1px solid #087969;box-shadow:0 6px 16px #08796933;transition:background .15s,box-shadow .15s}.tawazon-login .submit-row input:hover{background:linear-gradient(180deg,#087a69,#066454)}.tawazon-login .submit-row input:active{transform:translateY(1px)}
.tawazon-login :is(a,button,input):focus-visible{outline:3px solid var(--login-focus);outline-offset:3px}
.tawazon-login .errornote,.tawazon-login .errorlist{font-size:13px;line-height:1.8;padding:12px 15px;border-radius:9px;overflow-wrap:anywhere;background:var(--login-error-bg);color:var(--login-error);border:1px solid color-mix(in srgb,var(--login-error) 35%,transparent)}
.tawazon-login .errornote{font-weight:500;margin:0 0 16px}.tawazon-login .errornote strong{display:block;font-size:14px;font-weight:700;margin-bottom:2px}.tawazon-login .errornote p{margin:8px 0 0;font-weight:500}.tawazon-login .tw-lock-note~p.errornote{display:none}.tawazon-login .errornote #js-lockout-countdown{display:block;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;direction:ltr;text-align:start;margin-top:6px}
.tw-caps-warning{font-size:13px;color:var(--login-ink);border-inline-start:3px solid #e2a922;padding-inline-start:10px;margin-top:10px}
@media(max-width:480px){body.tawazon-login{padding:24px 12px;align-items:start}body.tawazon-login #container{padding-top:76px}.tw-login-controls{top:12px;inset-inline-end:12px}.tw-login-panel{padding:24px 20px 26px}}
@media(prefers-reduced-motion:reduce){.tawazon-login *,.tawazon-login *:after{scroll-behavior:auto;transition:none!important;animation:none!important}}
