
:root{--blue:#1B6BB5;--dark:#292929;--yellow:#FFD823;--green:#93C524;--orange:#E46A00;--light-blue:#E8F1FB;--light-gray:#F5F5F5;--white:#fff;--line:#dfe5eb;--head:"Comic Neue",system-ui,sans-serif;--body:"Open Sans",system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--light-gray);color:var(--dark);font-family:var(--body);line-height:1.5}a{color:var(--blue)}.portal-shell{max-width:1180px;margin:auto;padding:24px}.portal-head{background:var(--white);border-bottom:4px solid var(--yellow)}.portal-head .inner{max-width:1180px;margin:auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--dark)}.brand img{width:46px;height:46px;object-fit:contain}.brand strong{font:700 1.15rem var(--head)}.portal-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.portal-nav a,.portal-nav button,.btn{border:0;border-radius:9px;padding:9px 14px;font:700 .86rem var(--body);text-decoration:none;cursor:pointer}.portal-nav a{color:var(--dark)}.btn-primary{background:var(--blue);color:white}.btn-secondary{background:white;color:var(--blue);border:1px solid var(--blue)}.btn-danger{background:white;color:#b3261e;border:1px solid #e6b8b5}.hero{padding:42px 0 22px}.eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--blue)}h1,h2,h3{font-family:var(--head)}h1{font-size:2.3rem;margin:.2rem 0}.muted{color:#66717d}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:white;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 2px 12px rgba(0,0,0,.035)}.card h2,.card h3{margin-top:0}.card-link{text-decoration:none;color:inherit;transition:.15s}.card-link:hover{transform:translateY(-2px);border-color:var(--blue)}.locked{opacity:.55}.notice{background:var(--light-blue);border-left:4px solid var(--blue);padding:14px 16px;border-radius:8px;margin:16px 0}.error{background:#fff0ef;border-left-color:#b3261e}.success{background:#eff8df;border-left-color:var(--green)}.hidden{display:none!important}.form-grid{display:grid;gap:14px}.field{display:grid;gap:5px}.field label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.field input,.field select{padding:10px;border:1px solid #cfd6dd;border-radius:8px;font:inherit}.login-wrap{max-width:460px;margin:70px auto}.login-card{background:white;border-radius:16px;padding:28px;border:1px solid var(--line)}.login-card img{width:64px;display:block;margin:0 auto 10px}.login-card h1{text-align:center}.login-card .btn{width:100%;margin-top:8px}.status{font-size:.86rem}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);font-size:.86rem}th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#66717d}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:800px){.cards,.two-col{grid-template-columns:1fr}.portal-head .inner{align-items:flex-start;flex-direction:column}.portal-shell{padding:18px}h1{font-size:1.9rem}}
.auth-form{display:grid;gap:14px;margin-top:20px}.auth-form .btn{width:100%}.auth-actions{display:flex;justify-content:center;margin-top:14px}.auth-link{border:0;background:none;color:var(--blue);font:600 .86rem var(--body);cursor:pointer;text-decoration:underline}.login-card img{height:64px;object-fit:contain}.password-hint{font-size:.8rem;color:#66717d;margin:-6px 0 0}.button-row{display:flex;gap:10px}.button-row .btn{flex:1}
