@import url("/assets/brand/fonts/brand-fonts.css");

/* Shared CSS foundations for both Admin and Apply surfaces. */

/* Put reset, design tokens, page chrome, buttons, generic forms, modals, loading, and utilities here. */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--navy:#0E204A;--navy-light:#152759;--navy-lighter:#1a3068;--navy-dark:#0a1736;--gold:#B28B5D;--gold-light:#c9a87e;--gold-dim:rgba(178,139,93,0.15);--gold-border:rgba(178,139,93,0.25);--blue:#004681;--blue-light:#0a5a9e;--white:#FFF;--text-light:#E8E4DD;--text-mid:#a8b0c4;--text-muted:#7a839e;--text-faint:#515a76;--border:rgba(255,255,255,0.08);--surface:rgba(255,255,255,0.04);--surface-hover:rgba(255,255,255,0.06);--green:#4ade80;--yellow:#fbbf24;--orange:#fb923c;--red:#f87171}
html{min-height:100%}
body{background:var(--navy-dark);color:var(--text-light);font-family:var(--brand-font-body);min-height:100vh;line-height:1.5;overflow-x:hidden;padding-top:72px;transition:background .2s ease}
body.modal-scroll-lock{overflow:hidden}
body.light-mode{background:linear-gradient(180deg,#f8f7f4 0,#f3f5f8 46%,#e9edf4 100%);color:var(--navy)}
body.server-offline,body.light-mode.server-offline,body.apply-mode.server-offline{background:#b91c1c;color:var(--navy)}
.header{background:var(--navy);border-bottom:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;right:0;z-index:1000;box-shadow:0 8px 24px rgba(10,23,54,.16)}
.header-top{width:100%;min-height:72px;padding:0 32px;display:grid;grid-template-columns:minmax(280px,max-content) minmax(0,1fr);align-items:center;gap:18px;min-width:0}
.header-left{display:flex;align-items:center;gap:20px;min-width:0}
.header-logo{height:40px}
.header-divider{width:1px;height:32px;background:rgba(255,255,255,0.12)}
.header-title{font-size:16px;font-weight:600;color:var(--white);white-space:nowrap}
.header-sub{font-size:11px;color:var(--gold);font-weight:500;letter-spacing:.5px;white-space:nowrap}
.btn{padding:12px 28px;border:none;border-radius:12px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit}
.btn-gold{background:var(--gold);color:var(--navy-dark)}.btn-gold:hover{background:var(--gold-light)}.btn-gold:disabled{background:var(--text-faint);color:var(--navy);cursor:not-allowed;opacity:.5}
.btn-blue{background:var(--blue);color:var(--white);box-shadow:0 10px 24px rgba(0,70,129,.18);border:1px solid rgba(255,255,255,.08)}.btn-blue:hover{background:var(--blue-light);transform:translateY(-1px);box-shadow:0 14px 30px rgba(0,70,129,.22)}.btn-blue:active{transform:translateY(0) scale(.98)}.btn-blue:disabled{background:#4b5563;color:#cbd5e1;cursor:not-allowed;opacity:.72;box-shadow:none;transform:none}
.btn.btn-blue.btn-sm,.btn.btn-danger.btn-sm{padding:10px 18px}
.btn-outline{padding:10px 20px;background:transparent;color:var(--text-mid);border:1px solid var(--border);border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s}.btn-outline:hover{border-color:var(--gold-border);color:var(--gold-light)}
.btn-sm{padding:8px 16px;font-size:12px}
.document-actions{display:flex;gap:8px;flex:0 0 auto;flex-wrap:nowrap;align-items:center;justify-content:flex-end}.document-actions .btn-outline{white-space:nowrap}
.application-documents{margin-bottom:22px}
.document-list{display:grid;grid-template-columns:1fr;gap:8px}
.document-item{display:flex;justify-content:space-between;align-items:center;gap:14px;background:var(--navy-dark);border:1px solid var(--border);border-radius:10px;padding:14px 16px}
.document-item-main{min-width:0;flex:1 1 auto}
.document-item-title{font-size:13px;font-weight:600;color:var(--white);overflow-wrap:anywhere}
.document-item-meta{font-size:11px;color:var(--text-muted);margin-top:2px}
.audit-trail.expanded .audit-list{max-height:230px;overflow-y:auto;padding-right:8px}
.audit-trail.expanded .audit-item{display:block}
.btn-danger,.btn-danger-solid{background:linear-gradient(135deg,#991b1b,#dc2626);border:1px solid #7f1d1d;border-radius:12px;box-shadow:0 12px 28px rgba(185,28,28,.24);color:#fff;font-weight:700}.btn-danger:hover,.btn-danger-solid:hover{background:linear-gradient(135deg,#7f1d1d,#b91c1c);border-color:#7f1d1d;color:#fff;transform:translateY(-1px);box-shadow:0 16px 34px rgba(185,28,28,.32)}.btn-danger:active,.btn-danger-solid:active{transform:translateY(0) scale(.98)}.btn-danger:disabled,.btn-danger-solid:disabled{background:#9aa6b8;border-color:#9aa6b8;box-shadow:none;color:#eef2f7;cursor:not-allowed;opacity:.86;transform:none}
.container{max-width:1120px;margin:0 auto;padding:42px 24px}
.hero{text-align:center;margin-bottom:48px}
.hero h1{font-family:var(--brand-font-display);font-size:38px;font-weight:600;font-style:italic;line-height:1.08;margin-bottom:12px;color:var(--white)}
.hero h1 span{color:var(--gold)}
.hero p{color:var(--text-muted);font-size:15px;max-width:520px;margin:0 auto;line-height:1.7}

select,input[type="text"],input[type="password"],input[type="email"],input[type="tel"],input[type="number"]{width:100%;padding:10px 14px;background:var(--navy-light);border:1px solid var(--border);border-radius:8px;color:var(--text-light);font-size:14px;font-family:inherit;outline:none;transition:border-color .2s}
select:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="email"]:focus,input[type="tel"]:focus,input[type="number"]:focus{border-color:var(--gold-border)}
select option{background:var(--navy);color:var(--text-light)}
label{display:block;font-size:12px;font-weight:600;color:var(--text-faint);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}
.upload-zone{background:var(--navy);border:2px dashed var(--border);border-radius:14px;padding:32px;text-align:center;cursor:pointer;transition:all .2s}
.upload-zone:hover{border-color:var(--gold-border);background:rgba(178,139,93,0.04)}
.upload-zone.has-file{border-color:rgba(74,222,128,0.2);border-style:solid}
.file-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.file-tag{display:flex;align-items:center;gap:8px;background:var(--navy-light);border:1px solid var(--border);padding:6px 12px;border-radius:8px;font-size:12px;color:var(--text-mid)}
.file-tag button{background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:15px}.file-tag button:hover{color:var(--red)}
.error-box{background:rgba(248,113,113,0.08);border:1px solid rgba(248,113,113,0.2);border-radius:10px;padding:10px 14px;font-size:13px;color:#fca5a5;margin-bottom:20px}
/* Analysing */
.spinner{display:inline-block;width:56px;height:56px;border:3px solid var(--navy-lighter);border-top-color:var(--gold);border-radius:50%;animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s;overflow:hidden;overscroll-behavior:contain}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal{background:var(--navy);border:1px solid var(--border);border-radius:16px;padding:32px;width:90%;max-width:520px;max-height:80vh;overflow-y:auto;overscroll-behavior:contain}
.modal h3{font-family:var(--brand-font-heading);font-size:22px;font-weight:600;margin-bottom:16px;color:var(--white)}
.dialog-message{font-size:14px;color:var(--text-muted);line-height:1.6;margin-bottom:18px}
.dialog-actions{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:12px;justify-content:flex-end;max-width:440px;margin-left:auto}
.dialog-actions-single{grid-template-columns:minmax(180px,260px);justify-content:center;margin-left:auto;margin-right:auto}
.app-alert-modal .dialog-message{text-align:center}
.dialog-action-btn{width:100%;min-height:46px;display:inline-flex;align-items:center;justify-content:center;text-align:center;font-size:14px;font-weight:800;border-width:2px}
.dialog-actions .btn-outline{background:#fff;color:var(--navy);border-color:rgba(14,32,74,.26)}
.dialog-actions .btn-outline:hover{background:#eef5fb;border-color:rgba(0,70,129,.36);color:var(--blue)}
.app-tooltip{position:fixed;z-index:5000;max-width:min(360px,calc(100vw - 28px));padding:10px 13px;border:2px solid var(--gold);border-radius:8px;background:#fff;color:var(--blue);box-shadow:0 16px 38px rgba(14,32,74,.18),0 0 0 1px rgba(255,255,255,.88) inset;font-family:var(--brand-font-body);font-size:14px;font-weight:800;line-height:1.35;letter-spacing:0;white-space:pre-line;overflow-wrap:anywhere;pointer-events:none;opacity:0;transform:translate(-50%,-100%) translateY(-10px);transition:opacity .12s ease,transform .12s ease}
.app-tooltip.app-tooltip-card{width:min(420px,calc(100vw - 28px));max-width:min(420px,calc(100vw - 28px));padding:13px 15px 12px;white-space:normal}
.app-tooltip-card-heading{color:var(--blue);font-size:17px;font-weight:900;line-height:1.22;margin-bottom:10px}
.app-tooltip-card dl{display:grid;gap:7px;margin:0}
.app-tooltip-card dl div{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px;align-items:start}
.app-tooltip-card dt{color:#66738a;font-size:10px;font-weight:900;letter-spacing:.08em;line-height:1.25;text-transform:uppercase}
.app-tooltip-card dd{color:var(--navy);font-size:13px;font-weight:850;line-height:1.3;margin:0;overflow-wrap:anywhere}
.app-tooltip.visible{opacity:1;transform:translate(-50%,-100%) translateY(-14px)}
.app-tooltip::after{content:"";position:absolute;left:50%;bottom:-7px;width:12px;height:12px;background:#fff;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:translateX(-50%) rotate(45deg)}

.header-auth{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-left:2px;white-space:normal;flex-wrap:wrap;min-width:0}
.header-auth-separator{width:1px;height:24px;background:rgba(255,255,255,.12);display:inline-block}
.server-health{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 12px;color:var(--text-muted);font-size:12px;font-weight:700;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(255,255,255,.025);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.server-health-light{width:9px;height:9px;border-radius:999px;background:var(--text-faint);box-shadow:0 0 0 3px rgba(255,255,255,0.04)}
.server-health.online .server-health-light{background:var(--green);box-shadow:0 0 0 3px rgba(74,222,128,0.12)}
.server-health.offline .server-health-light{background:var(--red);box-shadow:0 0 0 3px rgba(248,113,113,0.12)}
.server-health.online .server-health-text{color:var(--green)}
.server-health.offline .server-health-text{color:var(--red)}
.session-countdown{display:none;align-items:center;gap:8px;min-height:34px;padding:0 12px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(255,255,255,.025);color:var(--text-muted);font-size:12px;font-weight:800;letter-spacing:.04em;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.session-countdown::before{content:"";width:15px;height:15px;border:2px solid currentColor;border-radius:999px;box-sizing:border-box;background:radial-gradient(circle at center,currentColor 0 1.5px,transparent 2px),linear-gradient(currentColor,currentColor) 50% 3px/2px 6px no-repeat,linear-gradient(currentColor,currentColor) 50% 50%/5px 2px no-repeat}
.session-countdown.warning{border-color:rgba(191,145,82,.55);background:rgba(191,145,82,.12);color:var(--gold-light)}
.session-timeout-warning{position:fixed;top:74px;left:0;right:0;z-index:1500;width:100%;min-height:33vh;display:flex;align-items:center;justify-content:center;gap:42px;padding:32px clamp(24px,7vw,120px);border-bottom:1px solid rgba(191,145,82,.46);background:linear-gradient(180deg,#fff 0%,#f7f9fc 100%);box-shadow:0 28px 90px rgba(14,32,74,.28);color:var(--navy);animation:sessionWarningSlide .26s ease-out}
.session-timeout-warning>div{max-width:920px}
.session-timeout-warning strong{display:block;font-size:clamp(18px,2vw,30px);font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:12px}
.session-timeout-warning span{display:block;font-size:clamp(30px,4vw,62px);font-weight:900;line-height:1.08;color:var(--navy)}
.session-timeout-warning button{flex:0 0 auto;min-height:58px;padding:0 30px;border:1px solid rgba(0,70,129,.28);border-radius:10px;background:var(--blue);color:#fff;font-family:inherit;font-size:16px;font-weight:900;cursor:pointer}
.session-timeout-warning button:hover{background:#0a5a9e}
@keyframes sessionWarningSlide{from{transform:translateY(-100%);opacity:.2}to{transform:translateY(0);opacity:1}}
.maintenance-warning{position:fixed;top:74px;left:0;right:0;z-index:9000;width:100%;min-height:30vh;display:flex;align-items:center;justify-content:center;gap:42px;padding:32px clamp(24px,7vw,120px);border-bottom:1px solid rgba(191,145,82,.62);background:linear-gradient(180deg,#fff 0%,#f7f9fc 100%);box-shadow:0 34px 110px rgba(14,32,74,.34);color:var(--navy);animation:sessionWarningSlide .26s ease-out}
.maintenance-warning>div{max-width:980px}
.maintenance-warning strong{display:block;font-size:clamp(18px,2vw,30px);font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:12px}
.maintenance-warning span{display:block;font-size:clamp(28px,3.6vw,58px);font-weight:900;line-height:1.08;color:var(--navy)}
.maintenance-warning small{display:block;margin-top:14px;color:#59657d;font-size:clamp(15px,1.5vw,21px);font-weight:800;line-height:1.4}
.maintenance-warning button{flex:0 0 auto;min-height:58px;padding:0 30px;border:1px solid rgba(0,70,129,.28);border-radius:10px;background:var(--blue);color:#fff;font-family:inherit;font-size:16px;font-weight:900;cursor:pointer}
.maintenance-warning button:hover{background:#0a5a9e}
.maintenance-warning.maintenance-in-progress{border-bottom-color:rgba(248,113,113,.46);background:linear-gradient(180deg,#fff 0%,#fff5f5 100%)}
.maintenance-warning.maintenance-in-progress strong{color:var(--red)}
.auth-user{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 12px;color:var(--gold);font-size:13px;font-weight:700;line-height:1;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(255,255,255,.025);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.auth-user::before{content:"";width:19px;height:19px;background:currentColor;display:inline-block;flex:0 0 19px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='17' r='14' fill='black'/%3E%3Cpath d='M8 60V50c0-14 10.5-24 24-24s24 10 24 24v10H8z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='17' r='14' fill='black'/%3E%3Cpath d='M8 60V50c0-14 10.5-24 24-24s24 10 24 24v10H8z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat}
.database-connection-wrap{position:relative;display:inline-flex;align-items:center}
.database-connection-pill{min-height:42px;display:inline-flex;align-items:center;gap:9px;max-width:210px;padding:6px 10px;border:1px solid rgba(10,90,158,.52);border-radius:8px;background:rgba(255,255,255,.025);color:var(--text-mid);font-family:inherit;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 0 1px rgba(10,90,158,.08);transition:color .16s,border-color .16s,background .16s,box-shadow .16s,transform .08s}
.database-connection-pill:hover,.database-connection-pill[aria-expanded="true"]{border-color:rgba(10,90,158,.78);background:rgba(10,90,158,.18);color:var(--white);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 0 3px rgba(10,90,158,.16)}
.database-connection-pill:active{transform:translateY(1px) scale(.99)}
.database-connection-pill.warning{border-color:rgba(251,191,36,.72);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 0 2px rgba(251,191,36,.11)}
.database-connection-pill.danger{border-color:rgba(248,113,113,.82);background:rgba(248,113,113,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 0 2px rgba(248,113,113,.14)}
.database-connection-pill.production{border-color:rgba(74,222,128,.68);background:rgba(74,222,128,.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 0 2px rgba(74,222,128,.1)}
.database-connection-icon{width:18px;height:18px;display:inline-block;flex:0 0 18px;background:var(--blue-light);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cellipse cx='32' cy='12' rx='21' ry='8' fill='black'/%3E%3Cpath d='M11 12v32c0 4.5 9.4 8 21 8s21-3.5 21-8V12c0 4.5-9.4 8-21 8s-21-3.5-21-8z' fill='black'/%3E%3Cellipse cx='32' cy='44' rx='21' ry='8' fill='black'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cellipse cx='32' cy='12' rx='21' ry='8' fill='black'/%3E%3Cpath d='M11 12v32c0 4.5 9.4 8 21 8s21-3.5 21-8V12c0 4.5-9.4 8-21 8s-21-3.5-21-8z' fill='black'/%3E%3Cellipse cx='32' cy='44' rx='21' ry='8' fill='black'/%3E%3C/svg%3E") center/contain no-repeat}
.database-connection-pill.warning .database-connection-icon{background:var(--yellow)}
.database-connection-pill.danger .database-connection-icon{background:var(--red)}
.database-connection-pill.production .database-connection-icon{background:var(--green)}
.database-connection-copy{min-width:0;display:grid;gap:2px;text-align:left;line-height:1}
.database-connection-copy span{color:var(--text-muted);font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.database-connection-copy strong{max-width:138px;color:var(--white);font-size:12px;font-weight:850;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.database-connection-panel{position:absolute;top:calc(100% + 10px);right:0;z-index:1600;width:min(390px,calc(100vw - 28px));padding:14px;border:1px solid rgba(10,90,158,.45);border-radius:10px;background:linear-gradient(180deg,#10265a 0%,#0a1736 100%);box-shadow:0 24px 60px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.06);color:var(--text-light)}
.database-connection-panel.warning{border-color:rgba(251,191,36,.54)}
.database-connection-panel.danger{border-color:rgba(248,113,113,.66)}
.database-connection-panel.production{border-color:rgba(74,222,128,.48)}
.database-connection-panel-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;margin-bottom:12px}
.database-connection-panel-head>div{min-width:0;display:grid;gap:3px}
.database-connection-panel-head span:not(.database-connection-icon){color:var(--text-muted);font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.database-connection-panel-head strong{color:#fff;font-size:17px;font-weight:900;line-height:1.15;overflow-wrap:anywhere}
.database-connection-badge{align-self:start;border:1px solid rgba(74,222,128,.34);border-radius:999px;background:rgba(74,222,128,.12);color:var(--green);font-size:10px;font-style:normal;font-weight:900;letter-spacing:.06em;line-height:1;padding:6px 8px;text-transform:uppercase;white-space:nowrap}
.database-connection-badge.warning,.database-connection-badge.local,.database-connection-badge.neutral{border-color:rgba(251,191,36,.34);background:rgba(251,191,36,.1);color:var(--yellow)}
.database-connection-badge.danger{border-color:rgba(248,113,113,.42);background:rgba(248,113,113,.12);color:#fecaca}
.database-connection-badge.development{border-color:rgba(10,90,158,.5);background:rgba(10,90,158,.18);color:#bfdbfe}
.database-connection-warning{margin-bottom:12px;padding:9px 10px;border:1px solid rgba(251,191,36,.34);border-radius:8px;background:rgba(251,191,36,.09);color:#fde68a;font-size:12px;font-weight:800;line-height:1.35}
.database-connection-warning.danger{border-color:rgba(248,113,113,.42);background:rgba(248,113,113,.12);color:#fecaca}
.database-connection-details{display:grid;gap:0;border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden}
.database-connection-row{display:grid;grid-template-columns:124px minmax(0,1fr);gap:10px;padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035)}
.database-connection-row:nth-child(even){background:rgba(255,255,255,.02)}
.database-connection-row:last-child{border-bottom:0}
.database-connection-row dt{color:var(--text-muted);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.database-connection-row dd{color:#fff;font-size:12px;font-weight:800;line-height:1.35;margin:0;overflow-wrap:anywhere}
.database-connection-footer{display:flex;align-items:center;gap:9px;margin-top:12px;color:var(--text-muted);font-size:11px;font-weight:800;line-height:1.35}
.database-connection-footer span{width:18px;height:18px;border:1px solid rgba(255,255,255,.24);border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:var(--blue-light);font-size:12px;font-weight:900;flex:0 0 18px}
.database-connection-loading{padding:14px;color:var(--text-mid);font-size:12px;font-weight:800;text-align:center}
.auth-role{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.18);border-radius:8px;color:var(--text-mid);font-size:12px;font-weight:700;font-family:inherit;padding:8px 10px;line-height:1;cursor:default;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.auth-user-view{display:none}
.auth-role.clickable{cursor:pointer;border-color:rgba(255,255,255,.22)}
.auth-role.clickable:hover{border-color:rgba(10,90,158,.55);background:rgba(10,90,158,.18);color:var(--white)}
.auth-role.impersonating{color:var(--gold);border-color:var(--gold-border);background:rgba(178,139,93,.08)}
.auth-role-caret{font-size:12px;font-weight:900;color:var(--text-mid);line-height:1}
.auth-logout{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:rgba(255,255,255,.025);color:var(--text-muted);border:1px solid rgba(255,255,255,.2);border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:color .16s,border-color .16s,background .16s,transform .08s,box-shadow .16s;padding:0 12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.auth-logout-icon{font-size:15px;line-height:1}
.auth-lock-icon{position:relative;display:inline-block;width:13px;height:11px;border:2px solid currentColor;border-radius:3px;margin-top:4px;opacity:.9}
.auth-lock-icon::before{content:"";position:absolute;left:1px;top:-8px;width:7px;height:7px;border:2px solid currentColor;border-bottom:0;border-radius:7px 7px 0 0}
.auth-logout:hover{color:var(--gold-light);border-color:var(--gold-border);background:var(--surface-hover)}
.auth-logout:active{transform:translateY(1px) scale(.98);background:rgba(178,139,93,.14);border-color:rgba(191,145,82,.58);box-shadow:inset 0 2px 5px rgba(0,0,0,.2)}
.blocking-session-recovery{display:grid;gap:10px;margin:12px 0 18px;padding:14px 16px;border:1px solid rgba(191,145,82,.58);border-radius:10px;background:rgba(191,145,82,.12);color:var(--text-mid);line-height:1.45}
.blocking-session-recovery strong{color:var(--gold-light);font-size:13px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.blocking-session-recovery span{color:var(--text-muted);font-size:13px}
.blocking-session-recovery .blocking-session-action{width:100%;justify-content:center;border-color:rgba(191,145,82,.72);color:var(--gold-light);background:rgba(14,32,74,.2)}
.blocking-session-recovery .blocking-session-action:hover{border-color:var(--gold-light);background:rgba(191,145,82,.18);color:#fff}
.auth-session-modal-overlay{z-index:2400;background:rgba(5,12,31,.76);backdrop-filter:blur(3px)}
.auth-session-confirm-modal{max-width:560px;border:1px solid rgba(191,145,82,.42);box-shadow:0 28px 90px rgba(0,0,0,.38),0 0 0 1px rgba(255,255,255,.05) inset}
.auth-session-modal-kicker{display:block;color:var(--gold-light);font-size:11px;font-weight:900;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:8px}
.auth-session-confirm-modal h3{margin-bottom:10px}
.auth-session-confirm-modal p{color:var(--text-mid);font-size:14px;line-height:1.6;margin:0 0 16px}
.auth-session-modal-warning{display:grid;gap:4px;margin:16px 0 20px;padding:14px 16px;border:1px solid rgba(248,113,113,.42);border-radius:10px;background:rgba(248,113,113,.1)}
.auth-session-modal-warning strong{color:#fecaca;font-size:13px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.auth-session-modal-warning span{color:var(--text-mid);font-size:13px;line-height:1.45}
.auth-session-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.auth-session-modal-actions .btn,.auth-session-modal-actions .btn-outline{min-height:46px;justify-content:center}

@media(max-width:1320px){
  body{padding-top:96px}
  .header-top{min-height:96px;padding-top:10px;padding-bottom:10px;align-items:center}
  .header-left{align-self:center}
  .header-sub{display:none}
  .header-auth{row-gap:8px}
}

@media(max-width:1100px){
  body{padding-top:118px}
  .header-top{grid-template-columns:1fr;min-height:118px;padding:12px 20px;gap:10px}
  .header-left{justify-content:flex-start}
  .header-auth{justify-content:flex-start;margin-left:0}
}

@media(max-width:700px){
  .container{padding:24px 14px}
  .document-item{align-items:flex-start;flex-direction:column}
  .document-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}
  .header-auth-separator{display:none!important}
  .session-timeout-warning{top:66px;min-height:36vh;flex-direction:column;align-items:flex-start;gap:22px}
  .session-timeout-warning button{width:100%}
  .dialog-actions{grid-template-columns:1fr;max-width:none}
  .modal{padding:24px;width:94%;max-height:86vh}
}

@media(max-width:520px){
  body{padding-top:112px}
  .header-top{min-height:112px;padding:10px 14px}
  .header-left{gap:12px}
  .header-auth{gap:6px;margin-left:0}
  .header-logo{height:34px}
  .header-divider{display:none}
  .header-title{font-size:15px}
  .header-sub{font-size:10px;letter-spacing:.2px}
  .auth-user,.auth-role{font-size:12px}
  .database-connection-pill{max-width:176px;min-height:36px}
  .database-connection-copy span{display:none}
  .database-connection-copy strong{max-width:104px;font-size:11px}
  .database-connection-panel{left:0;right:auto;width:min(360px,calc(100vw - 28px))}
  .database-connection-row{grid-template-columns:104px minmax(0,1fr)}
  .server-health-text{display:none}
  .auth-logout{min-height:32px;padding:0 10px;font-size:12px}
  .auth-logout-text{display:none}
  .btn,.btn-outline{width:auto;max-width:100%}
}

.hidden{display:none!important}
/* Loading overlay */
.loading-overlay{position:fixed;inset:0;background:rgba(10,23,54,0.85);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:200;animation:fadeIn .2s}
.loading-panel{width:min(90vw,520px);display:flex;flex-direction:column;align-items:center}
.loading-overlay .spinner{margin-bottom:20px}
.loading-overlay h3{font-family:var(--brand-font-heading);font-size:20px;font-weight:600;color:var(--white);margin-bottom:8px}
.loading-overlay p{font-size:13px;color:var(--text-muted);text-align:center;max-width:420px;white-space:pre-line}
.loading-overlay .loading-hint{font-size:11px;line-height:1.45;max-width:360px;margin-top:10px;opacity:.72}
.loading-entertainment{width:min(420px,78vw);margin-top:22px;padding:8px;border:1px solid rgba(201,168,126,.28);border-radius:8px;background:rgba(255,255,255,.06);box-shadow:0 18px 42px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.08);touch-action:none}
.loading-entertainment canvas{display:block;width:100%;height:auto;aspect-ratio:30/17;border-radius:5px;background:#071431;cursor:ns-resize}
.loading-pong-score{height:18px;min-width:84px;margin:6px auto 0;color:var(--gold-light);font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.18em;text-align:center}
.loading-activity-log{width:min(520px,84vw);max-height:260px;margin-top:22px;border:1px solid rgba(201,168,126,.28);border-radius:8px;background:rgba(255,255,255,.06);box-shadow:0 18px 42px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.08);overflow:hidden}
.loading-activity-log-title{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.1);color:var(--gold-light);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.loading-activity-log-entries{max-height:214px;overflow:auto;padding:8px 10px}
.loading-activity-log-entry{display:grid;grid-template-columns:72px 1fr;gap:8px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.08);text-align:left}
.loading-activity-log-entry:last-child{border-bottom:0}
.loading-activity-log-entry span{color:rgba(232,228,221,.62);font-size:10px;font-weight:800;font-variant-numeric:tabular-nums}
.loading-activity-log-entry strong{color:var(--white);font-size:11px;font-weight:800}
.loading-activity-log-entry p{grid-column:2;color:rgba(232,228,221,.72);font-size:10px;line-height:1.35;text-align:left;max-width:none;margin:0}
.loading-activity-log-empty{padding:18px 10px;color:rgba(232,228,221,.66);font-size:11px;text-align:center}
.panel-use-lock{display:inline-flex;align-items:center;gap:6px;min-height:30px;margin:0;padding:5px 12px;border:2px solid var(--gold);border-radius:999px;background:var(--navy);color:var(--gold-light);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;box-shadow:0 8px 18px rgba(10,31,68,.16)}
.panel-use-lock strong{color:var(--white);font-weight:900;letter-spacing:0;text-transform:none}
.role-title>.panel-use-lock{margin-left:12px;vertical-align:middle}
.candidate-row>.panel-use-lock{margin:0 4px 0 auto;flex:0 0 auto}
.panel-locked-by-other{position:relative}
.panel-locked-by-other .admin-section-body,.panel-locked-by-other.detail-panel{opacity:.78}
.panel-locked-by-other button:disabled,.panel-locked-by-other input:disabled,.panel-locked-by-other select:disabled,.panel-locked-by-other textarea:disabled{cursor:not-allowed;filter:saturate(.55);opacity:.62}
