:root{--blue: #1b4d9b;--blue-2: #3d74c9;--blue-50: #eaf1fb;--amber: #f2a93b;--ink: #16213a;--muted: #5a6478;--line: #dce3ee;--ground: #f4f6fa;--white: #ffffff;--green: #1e7f4f;--green-50: #e7f5ee;--red: #b42318;--red-50: #fdecea;--warn: #8a5300;--warn-50: #fff4e2;--radius: 14px;--shadow: 0 1px 2px rgba(22, 33, 58, .06), 0 8px 24px rgba(22, 33, 58, .06)}*{box-sizing:border-box}html,body{margin:0;background:var(--ground);color:var(--ink);font-family:Plus Jakarta Sans,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--blue);font-weight:600}a:hover{color:var(--ink)}h1,h2,p{margin:0}.muted{color:var(--muted)}.logo{display:inline-flex;align-items:center;gap:8px;font-weight:800;letter-spacing:.08em}.btn{min-height:46px;padding:0 18px;border:0;border-radius:12px;font:inherit;font-size:15px;font-weight:700;cursor:pointer}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--blue);color:var(--white)}.btn-primary:hover:not(:disabled){background:#163f80}.btn-soft{min-height:40px;background:var(--blue-50);color:var(--blue);font-size:14px}.btn-ghost-light{min-height:40px;background:#ffffff24;color:var(--white);font-size:14px}.btn:focus-visible,input:focus-visible,.password-toggle:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:14px;font-weight:700}.field input{height:48px;padding:0 14px;border:1px solid var(--line);border-radius:12px;font:inherit;font-size:16px;color:var(--ink);background:var(--white)}.field input[aria-invalid=true]{border-color:var(--red)}.field-error{font-size:13px;color:var(--red);font-weight:600}.field-hint{font-size:13px;color:var(--muted)}.password-field{position:relative}.password-toggle{position:absolute;right:6px;top:28px;height:40px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--blue);font:inherit;font-size:13px;font-weight:700;cursor:pointer}.password-field input{padding-right:84px}.alert{padding:12px 14px;border-radius:12px;font-size:14px;font-weight:600;margin-bottom:16px}.alert-error{background:var(--red-50);color:var(--red)}.alert-info{background:var(--blue-50);color:var(--blue)}.alert-success{background:var(--green-50);color:var(--green)}.auth-wrap{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.auth-card{width:100%;max-width:420px;background:var(--white);border-radius:20px;padding:32px 24px;box-shadow:var(--shadow)}.auth-head{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;margin-bottom:24px}.auth-head h1{font-size:22px;font-weight:800;margin-top:8px}.auth-links{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:20px;font-size:14px;text-align:center}.app{min-height:100vh}.app-header{background:var(--blue);color:var(--white);padding:18px 16px 24px;padding-top:max(18px,env(safe-area-inset-top))}.app-header-row,.app-greeting,.app-main{max-width:960px;margin:0 auto}.app-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.app-greeting{display:flex;flex-direction:column;margin-top:16px}.app-greeting span{font-size:14px;opacity:.85}.app-greeting strong{font-size:24px;font-weight:800}.app-main{padding:16px;display:flex;flex-direction:column;gap:16px}.banner{padding:12px 14px;border-radius:12px;font-size:14px}.banner-info{background:var(--blue-50);color:var(--blue)}.banner-warn{background:var(--warn-50);color:var(--warn)}.section{display:flex;flex-direction:column;gap:12px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-head h2{font-size:18px;font-weight:800}.empty{background:var(--white);border:1px dashed var(--line);border-radius:var(--radius);padding:32px 20px;text-align:center;display:flex;flex-direction:column;gap:6px}.empty-title{font-weight:800}.loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:600}
