:root { --blue:#1f5592; --blue-deep:#123e70; --yellow:#f7ce65; --green:#008456; --red:#da4f40; --ink:#142d48; --muted:#627488; --paper:#f3f6f9; --surface:#fff; --line:#d5dfe9; --display:"Manrope",sans-serif; --body:"DM Sans",sans-serif; --mono:"Roboto Mono",monospace; }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; min-height:100dvh; overflow-x:hidden; color:var(--ink); background:var(--paper); font-family:var(--body); line-height:1.5; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
[hidden] { display:none !important; }
.skip-link { position:fixed; top:-70px; left:16px; z-index:100; padding:10px 14px; color:var(--ink); background:var(--yellow); }.skip-link:focus{top:12px}
.eyebrow { margin:0; color:var(--green); font:700 11px var(--mono); letter-spacing:.14em; text-transform:uppercase; }
.login-view { min-height:100dvh; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(430px,.9fr); }
.login-identity { min-height:100dvh; padding:clamp(28px,5vw,70px); display:flex; flex-direction:column; color:white; background:var(--blue); }
.institution-link { display:flex; align-items:center; gap:20px; color:white; text-decoration:none; }.institution-link img{width:150px;height:64px;object-fit:contain;background:white;padding:5px}.institution-link span{padding-left:20px;border-left:1px solid rgba(255,255,255,.25)}.institution-link b,.institution-link small{display:block}.institution-link b{font:800 24px var(--display)}.institution-link small{color:#c7d8e8}
.login-copy { margin:auto 0; max-width:700px; }.login-copy .eyebrow{color:var(--yellow)}.login-copy h1{margin:14px 0 24px;font:800 clamp(48px,7vw,92px)/.98 var(--display);letter-spacing:-.06em}.login-copy>p:last-child{max-width:620px;color:#d3e1ee;font-size:clamp(18px,2vw,23px)}.authorship{margin:0;color:#b8cee2;font-size:12px}
.login-panel { padding:40px; display:grid; place-items:center; background:var(--surface); }.login-panel form{width:min(430px,100%)}.login-panel h2{margin:10px 0 8px;font:800 38px var(--display);letter-spacing:-.04em}.form-intro{margin:0 0 30px;color:var(--muted)}.login-panel label:not(.location-consent){display:grid;gap:7px;margin-top:18px;font-weight:700}.login-panel input{min-height:50px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#f8fafc}.login-panel input:focus{outline:3px solid rgba(0,132,86,.2);border-color:var(--green)}.location-consent{margin:22px 0;display:grid;grid-template-columns:auto 1fr;align-items:start;gap:10px;color:var(--muted);font-size:13px}.location-consent input{min-height:auto;margin-top:3px}.login-panel button[type=submit]{width:100%;min-height:52px;border:0;border-radius:10px;color:white;background:var(--blue);font-weight:700}.login-panel form>a{display:block;margin-top:18px;color:var(--blue);text-align:center;font-weight:700;text-decoration:none}.form-message{min-height:23px;color:var(--red);font-size:13px}
.admin-shell { min-height:100dvh; display:grid; grid-template-columns:260px minmax(0,1fr); }.admin-sidebar{height:100dvh;padding:28px 18px;display:flex;flex-direction:column;position:sticky;top:0;color:white;background:var(--blue-deep)}.sidebar-brand{padding:0 12px 28px;color:white;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.14)}.sidebar-brand span,.sidebar-brand small{display:block}.sidebar-brand span{font:800 25px var(--display)}.sidebar-brand small{color:#bcd0e4}.admin-sidebar nav{margin-top:30px;display:grid;gap:5px}.admin-sidebar nav button{min-height:46px;padding:10px 13px;border:0;border-radius:9px;color:#c9d8e8;background:transparent;text-align:left;font-weight:700}.admin-sidebar nav button:hover,.admin-sidebar nav button.active{color:var(--ink);background:var(--yellow)}.sidebar-session{margin-top:auto;padding:18px 12px 0;border-top:1px solid rgba(255,255,255,.14)}.sidebar-session span,.sidebar-session b{display:block}.sidebar-session span{color:#9fb9d2;font:600 10px var(--mono);text-transform:uppercase}.sidebar-session b{margin:4px 0 12px}.sidebar-session button{padding:0;border:0;color:#c9d8e8;background:transparent;text-decoration:underline}
.admin-workspace{min-width:0}.admin-topbar{min-height:94px;padding:20px clamp(20px,4vw,54px);display:flex;align-items:center;gap:18px;background:var(--surface);border-bottom:1px solid var(--line)}.admin-topbar div{margin-right:auto}.admin-topbar p{margin:0;color:var(--green);font:600 10px var(--mono);text-transform:uppercase;letter-spacing:.1em}.admin-topbar h1{margin:2px 0 0;font:800 27px var(--display)}.admin-topbar>button{min-height:42px;padding:8px 13px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:var(--surface);font-weight:700}#admin-menu{display:none}.admin-notice{min-height:0;padding:0 clamp(20px,4vw,54px);color:var(--green);font-size:13px}.admin-notice.show{padding-top:14px}.admin-panel{display:none;padding:clamp(32px,5vw,64px) clamp(20px,4vw,54px)}.admin-panel.active{display:block}.admin-workspace footer{padding:26px 54px;color:var(--muted);border-top:1px solid var(--line);font-size:12px}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric{padding:22px;border:1px solid var(--line);background:var(--surface)}.metric span{display:block;color:var(--muted);font:600 10px var(--mono);text-transform:uppercase}.metric b{display:block;margin-top:12px;font:800 36px var(--display)}.metric small{color:var(--muted)}
.section-block{margin-top:42px}.section-heading{margin-bottom:18px;display:flex;align-items:end;justify-content:space-between;gap:20px}.section-heading h2{margin:6px 0 0;font:800 clamp(26px,3vw,38px) var(--display);letter-spacing:-.035em}.section-heading p{max-width:440px;margin:0;color:var(--muted)}.data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.data-card,.empty-state,.admin-form{padding:22px;border:1px solid var(--line);background:var(--surface)}.data-card h3{margin:0;font:700 19px var(--display)}.data-card p{margin:6px 0 0;color:var(--muted)}.data-card small,.tag{font:600 10px var(--mono);text-transform:uppercase}.tag{display:inline-block;margin-bottom:12px;padding:5px 8px;color:var(--blue);background:#e7eef7}.empty-state{color:var(--muted)}
.admin-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-form h3,.admin-form .form-wide{grid-column:1/-1}.admin-form h3{margin:0 0 4px;font:700 21px var(--display)}.admin-form label{display:grid;gap:6px;color:var(--ink);font-weight:700}.admin-form input,.admin-form select,.admin-form textarea{width:100%;min-height:46px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#f8fafc}.admin-form textarea{min-height:90px;resize:vertical}.admin-form button{min-height:46px;border:0;border-radius:8px;color:white;background:var(--blue);font-weight:700}.admin-form .form-message{margin:0}.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus{outline:3px solid rgba(0,132,86,.18);border-color:var(--green)}
.table-wrap{overflow:auto;border:1px solid var(--line);background:var(--surface)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:13px 15px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{color:var(--muted);font:600 10px var(--mono);text-transform:uppercase;background:#f7f9fb}.status-active{color:var(--green)}.status-inactive{color:var(--red)}.table-action{min-height:34px;padding:6px 10px;border:1px solid var(--line);border-radius:7px;color:var(--blue-deep);background:var(--surface);font-weight:700;white-space:nowrap}.table-action:hover{border-color:var(--blue)}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.login-view{grid-template-columns:1fr}.login-identity{min-height:46dvh}.login-panel{min-height:54dvh}}
@media(max-width:760px){.admin-shell{display:block}.admin-sidebar{width:min(300px,86vw);position:fixed;z-index:30;left:-310px;visibility:hidden;pointer-events:none;transition:left .2s ease,visibility 0s linear .2s}.admin-sidebar.open{left:0;visibility:visible;pointer-events:auto;transition:left .2s ease}#admin-menu{display:block}.admin-topbar{padding-inline:16px}.admin-panel{padding-inline:16px}.admin-workspace footer{padding-inline:16px}.metric-grid,.data-grid,.admin-form{grid-template-columns:1fr}.admin-form h3,.admin-form .form-wide{grid-column:auto}.section-heading{align-items:start;flex-direction:column}.login-panel{padding:36px 20px}.login-identity{padding:28px 20px}.institution-link img{width:116px;height:52px}.institution-link span{padding-left:12px}.login-copy h1{font-size:48px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
