:root{--primary:#5f35f2;--ink:#252c4a;--muted:#7b829d;--bg:#f4f6fb;--line:#edf0f7;--white:#fff;--success:#1bbf83;--warning:#ff9f43;--danger:#ea5455}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:Outfit,Arial,sans-serif;color:var(--ink)}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:255px;background:#fff;padding:25px 16px;display:flex;flex-direction:column;z-index:10;box-shadow:4px 0 22px #20264b0a}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;font-weight:700;font-size:21px;line-height:18px;padding:0 10px 34px}.brand small{font-size:9px;letter-spacing:3px;color:var(--primary)}.brand-mark{background:linear-gradient(135deg,#7754ff,var(--primary));color:white;border-radius:12px;width:40px;height:40px;display:grid;place-items:center;font-size:24px}nav{display:grid;gap:7px}nav a{padding:13px 15px;border-radius:9px;text-decoration:none;color:#646b85;font-weight:500;display:flex;gap:14px;align-items:center}nav a i{font-size:21px}nav a.active,nav a:hover{background:#eeeaff;color:var(--primary)}.sidebar-footer{margin-top:auto;font-size:12px;color:#9298ac;padding:12px}.main{margin-left:255px;padding:0 30px 35px}.topbar{height:102px;display:flex;align-items:center;justify-content:space-between}.page-title h1{margin:0;font-size:25px}.page-title p{margin:5px 0 0;color:var(--muted);font-size:14px}.profile{display:flex;align-items:center;gap:10px;font-size:13px}.profile small{color:var(--muted);display:block}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e8e2ff;color:var(--primary);font-weight:700}.logout{font-size:20px;color:#8b92a8;margin-left:10px}.menu-toggle{display:none;border:0;background:none;font-size:26px}.grid{display:grid;gap:20px}.stats{grid-template-columns:repeat(4,1fr)}.card{background:#fff;border-radius:13px;padding:22px;box-shadow:0 3px 12px #242b5708}.stat{display:flex;justify-content:space-between;align-items:center}.stat h3{font-size:29px;margin:7px 0}.stat p,.card-title p{margin:0;color:var(--muted);font-size:13px}.stat-icon{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;font-size:25px}.purple{background:#eeeaff;color:var(--primary)}.green{background:#dcf7ed;color:var(--success)}.orange{background:#fff0df;color:var(--warning)}.red{background:#ffe5e7;color:var(--danger)}.two-col{grid-template-columns:1.55fr 1fr;margin-top:20px}.card-head{display:flex;align-items:start;justify-content:space-between;margin-bottom:18px}.card-title h2{margin:0;font-size:17px}.btn{border:0;border-radius:8px;padding:10px 14px;background:var(--primary);color:#fff;text-decoration:none;font-family:inherit;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.btn-outline{background:#f0edff;color:var(--primary)}.btn-success{background:var(--success)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:#8a90a5;font-weight:500;background:#fafbfe}th,td{padding:13px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.badge{font-size:11px;border-radius:20px;padding:5px 9px;font-weight:600;text-transform:capitalize}.scheduled{background:#eeeaff;color:var(--primary)}.completed,.resolved{background:#ddf7ed;color:#139b68}.ongoing,.in-progress{background:#fff0dc;color:#d9821e}.cancelled,.rejected{background:#ffe5e5;color:#d84048}.pending{background:#e9eff8;color:#5b7294}.progress-row{margin:17px 0}.progress-row span{font-size:13px}.progress-label{display:flex;justify-content:space-between;margin-bottom:7px}.bar{height:8px;background:#f0f1f5;border-radius:9px;overflow:hidden}.bar b{height:100%;display:block;background:var(--primary);border-radius:9px}.form-card{max-width:1000px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}label{font-size:13px;font-weight:600;color:#555d78}input,select,textarea{width:100%;border:1px solid #e3e6ef;border-radius:8px;padding:11px 12px;color:var(--ink);font:14px Outfit;background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:#9c88ff;box-shadow:0 0 0 3px #5f35f214}textarea{min-height:95px;resize:vertical}.section-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.filters{display:flex;gap:10px;align-items:center}.filters select{min-width:160px;padding:9px}.alert{border-radius:9px;padding:13px 16px;margin-bottom:18px}.alert.success{background:#ddf8ee;color:#158458}.alert.error{background:#ffebed;color:#b92c3b}.login-body{min-height:100vh;background:linear-gradient(120deg,#f0edff,#f8f9fe);display:grid;place-items:center;padding:20px}.login-box{width:min(940px,100%);background:#fff;border-radius:20px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 18px 60px #4435a526}.login-intro{padding:55px;background:linear-gradient(145deg,#7857f7,#4523d5);color:white}.login-intro h1{font-size:38px;margin:70px 0 15px}.login-intro p{opacity:.8;line-height:1.7}.login-form{padding:70px 55px}.login-form h2{font-size:28px;margin:0 0 8px}.login-form>p{color:var(--muted);margin:0 0 30px}.login-form .btn{width:100%;justify-content:center;margin-top:12px}.login-note{font-size:12px;color:#9499aa;text-align:center;margin-top:25px}.empty{text-align:center;color:var(--muted);padding:25px}.chart-box{height:275px}@media(max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.sidebar{width:220px}.main{margin-left:220px}}@media(max-width:720px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.main{margin:0;padding:0 16px}.menu-toggle{display:block}.topbar{height:82px}.page-title p{display:none}.stats{grid-template-columns:1fr 1fr;gap:12px}.card{padding:16px}.stat h3{font-size:23px}.profile>div:not(.avatar){display:none}.form-grid{grid-template-columns:1fr}.section-actions{align-items:flex-start;gap:12px}.filters{flex-wrap:wrap}.login-box{grid-template-columns:1fr}.login-intro{display:none}.login-form{padding:42px 28px}}
.contact-actions{display:flex;gap:5px;align-items:center}.contact-actions a{width:29px;height:29px;display:grid;place-items:center;border-radius:7px;background:#f1efff;color:var(--primary);text-decoration:none;font-size:17px}.contact-actions a:hover{background:var(--primary);color:#fff}.check-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.check-list label{display:flex;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:7px;font-weight:500}.check-list input{width:auto}
body,button,input,select,textarea{font-family:Kokila,"Noto Sans Devanagari",Outfit,Arial,sans-serif!important}
.person-link{color:var(--primary);font-weight:700;text-decoration:none}.person-link:hover{text-decoration:underline}
.dashboard-tabs{display:flex;gap:8px;margin-bottom:20px;padding:10px}.dashboard-tabs a{padding:9px 13px;border-radius:8px;background:#f2f3f8;color:var(--ink);text-decoration:none;font-size:13px}.dashboard-tabs a.active,.dashboard-tabs a:hover{background:var(--primary);color:#fff}

/* Accessible, compact portal frame and three user-selectable colour palettes. */
html[data-theme="blue"]{--primary:#20577d;--primary-dark:#153d59;--primary-soft:#e8f2f8;--bg:#f5f8fa;--ink:#1e3345;--muted:#526578;--line:#d6e2e9;--sidebar-bg:#fff;--sidebar-text:#344e62;--focus-ring:#20577d38}
html[data-theme="green"]{--primary:#1b654c;--primary-dark:#134936;--primary-soft:#e8f5ed;--bg:#f5f9f6;--ink:#203a31;--muted:#526a60;--line:#d8e7dd;--sidebar-bg:#fff;--sidebar-text:#365a49;--focus-ring:#1b654c38}
html[data-theme="saffron"]{--primary:#86420f;--primary-dark:#653109;--primary-soft:#fff0e1;--bg:#fbf8f4;--ink:#3c3027;--muted:#6b5b4c;--line:#eadfd1;--sidebar-bg:#fff;--sidebar-text:#624732;--focus-ring:#86420f38}
.sidebar{height:100vh;height:100dvh;background:var(--sidebar-bg);padding:20px 12px 12px;border-right:1px solid var(--line);box-shadow:3px 0 18px #18354c0b}
.brand{flex:none;padding:4px 12px 20px;margin-bottom:4px;border-bottom:1px solid var(--line)}
.brand-mark{background:linear-gradient(135deg,var(--primary),var(--primary-dark))}
.sidebar-nav{display:block;min-height:0;flex:1;overflow-y:auto;overflow-x:hidden;padding:10px 4px 12px;scrollbar-width:thin;scrollbar-color:#9eb1be transparent;overscroll-behavior:contain}
.sidebar-nav::-webkit-scrollbar{width:8px}.sidebar-nav::-webkit-scrollbar-thumb{background:#b5c4cc;border-radius:12px;border:2px solid var(--sidebar-bg)}
.sidebar-nav a,.nav-group-toggle{font-size:15px;line-height:1.3;color:var(--sidebar-text)}
.sidebar-nav a{gap:11px;padding:10px 12px;margin:2px 0;border-radius:9px}
.sidebar-nav a i,.nav-group-toggle>i:first-child{font-size:19px;flex:none}
.sidebar-nav a:hover,.sidebar-nav a.active{background:var(--primary-soft);color:var(--primary)}
.nav-group{margin-top:6px}.nav-group-toggle{list-style:none;cursor:pointer;display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:9px;font-weight:700;user-select:none}
.nav-group-toggle::-webkit-details-marker{display:none}.nav-group-toggle:hover,.nav-group[open]>.nav-group-toggle{background:var(--primary-soft);color:var(--primary)}
.nav-chevron{margin-left:auto;font-size:18px;transition:transform .2s}.nav-group[open] .nav-chevron{transform:rotate(180deg)}
.nav-submenu{border-left:1px solid var(--line);margin:3px 0 10px 20px;padding-left:8px}.nav-submenu a{padding:8px 9px;font-size:14px;gap:9px}.nav-submenu a i{font-size:17px}
.sidebar-footer{flex:none;border-top:1px solid var(--line);margin-top:0;padding:12px 5px 2px;color:var(--muted)}
.theme-label{font-size:13px;font-weight:700;margin:0 7px 8px}.theme-options{display:flex;gap:3px}.theme-choice{width:auto;flex:1;border:1px solid transparent;background:transparent;color:var(--sidebar-text);border-radius:8px;padding:6px 3px;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:4px;cursor:pointer}
.theme-choice:hover,.theme-choice[aria-pressed="true"]{border-color:var(--line);background:var(--primary-soft);color:var(--primary)}
.theme-dot{height:11px;width:11px;border-radius:50%;display:inline-block;flex:none}.theme-dot-blue{background:#20577d}.theme-dot-green{background:#1b654c}.theme-dot-saffron{background:#86420f}
.topbar{height:88px;border-bottom:1px solid var(--line);margin-bottom:24px}.page-title h1{color:var(--ink)}.card{box-shadow:0 3px 16px #1f3f5510;border:1px solid var(--line)}
.avatar,.purple,.scheduled,.contact-actions a{background:var(--primary-soft);color:var(--primary)}.btn-outline{background:var(--primary-soft);color:var(--primary)}.dashboard-tabs a.active,.dashboard-tabs a:hover{background:var(--primary)}
input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring)}
.sidebar-nav a:focus-visible,.nav-group-toggle:focus-visible,.theme-choice:focus-visible,.menu-toggle:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.sidebar-backdrop{display:none}
@media(max-width:720px){.sidebar{width:min(290px,85vw);z-index:30;transition:transform .22s ease}.sidebar-backdrop:not([hidden]){display:block;position:fixed;inset:0;background:#102a3d80;z-index:29}.topbar{height:76px;margin-bottom:16px}.menu-toggle{cursor:pointer;color:var(--primary);padding:6px}.sidebar.open{box-shadow:8px 0 32px #102a3d33}}
@media(prefers-reduced-motion:reduce){.sidebar,.nav-chevron{transition:none}}

/* Language switch remains visible across portal pages, including narrow screens. */
.topbar-actions{display:flex;align-items:center;gap:16px;min-width:0}
.language-switch{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--line);border-radius:10px;background:#fff;white-space:nowrap;box-shadow:0 2px 8px #1f3f550b}
.language-switch button{width:auto;border:0;background:transparent;color:var(--sidebar-text);border-radius:7px;padding:6px 9px;line-height:1.1;font-size:13px;font-weight:600;cursor:pointer}
.language-switch button:hover,.language-switch button.active{background:var(--primary-soft);color:var(--primary)}
.language-switch button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
html[lang="en"] body,html[lang="en"] button,html[lang="en"] input,html[lang="en"] select,html[lang="en"] textarea{font-family:Outfit,Arial,sans-serif!important}
@media(max-width:900px){.topbar-actions{gap:8px}.language-switch button{padding:6px}.profile{gap:5px}.logout{margin-left:3px}}
@media(max-width:720px){.topbar{gap:8px}.page-title{flex:1;min-width:0}.page-title h1{font-size:19px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{gap:5px}.language-switch button{font-size:12px;padding:5px}.profile .avatar,.profile small,.profile strong{display:none}.logout{font-size:19px}}
.login-language{float:right;margin:-36px -20px 28px 0}.login-intro{background:linear-gradient(145deg,var(--primary),var(--primary-dark))}.login-body{background:linear-gradient(120deg,var(--primary-soft),var(--bg))}.login-intro .brand{border:0;color:#fff}.login-intro .brand small{color:#fff}
@media(max-width:720px){.login-language{float:none;margin:0 0 24px auto;width:max-content}}

/* Janseva Abhiyan identity: the supplied transparent logo stays on a light surface. */
.portal-brand{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:3px 6px 14px;color:var(--ink);line-height:1.2}
.portal-logo{display:block;width:150px;max-width:100%;height:120px;object-fit:contain;filter:drop-shadow(0 3px 3px #162e2a19)}
.portal-brand-copy{display:flex;flex-direction:column;align-items:center;gap:3px;white-space:nowrap}
.portal-brand-copy strong{font-size:21px;color:#174c77;font-weight:700}
.portal-brand-copy small{font-size:14px;letter-spacing:0;color:#287348;font-weight:700}
.topbar-brand{display:flex;align-items:center;justify-content:center;flex:none;width:68px;height:64px;margin-right:12px;border-radius:12px;background:#fff;border:1px solid var(--line)}
.topbar-brand img{width:62px;height:58px;object-fit:contain}
.topbar .page-title{flex:1;min-width:0}
.portal-footer{padding:24px 0 4px;margin-top:30px;border-top:1px solid var(--line);font-size:12px;text-align:center;color:var(--muted);letter-spacing:.1px}
.login-body{align-content:center;justify-items:center;gap:14px}
.login-intro{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:linear-gradient(145deg,#edf6f2,#e8f2f8);color:#203449}
.login-identity{width:100%}
.login-logo{display:block;width:min(260px,100%);height:225px;object-fit:contain;margin:0 auto 6px;filter:drop-shadow(0 5px 8px #15405a22)}
.login-intro .login-identity h1{font-size:37px;color:#174c77;margin:8px 0 0;line-height:1.25}
.login-tagline{font-size:22px;font-weight:700;color:#24735d;margin:7px 0 0!important;opacity:1!important}
.login-description{max-width:310px;color:#435a70;opacity:1!important;margin:24px auto 0;line-height:1.6}
.login-credit{text-align:center;font-size:12px;color:var(--muted);max-width:940px;padding:0 14px}
@media(max-width:1000px){.portal-logo{width:128px;height:102px}.portal-brand-copy strong{font-size:19px}}
@media(max-width:720px){.topbar{height:auto;min-height:92px;display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:4px 7px;padding:7px 0}.topbar-brand{width:46px;height:46px;margin-right:2px}.topbar-brand img{width:43px;height:42px}.topbar .page-title p{display:none}.topbar-actions{grid-column:1/-1;display:flex;justify-content:space-between;width:100%}.login-body{display:flex;flex-direction:column;justify-content:center}.login-box{width:min(460px,100%)}.login-intro{display:flex;padding:22px 28px 8px}.login-logo{width:115px;height:95px;margin-bottom:0}.login-intro .login-identity h1{font-size:25px;margin:0}.login-tagline{font-size:16px;margin:0!important}.login-description{display:none}.login-form{padding-top:20px}.login-credit{font-size:11px}}

/* Logo-coordinated, readable portal defaults. Text controls scale the main UI without changing stored data. */
:root{--primary:#20577d;--primary-dark:#153d59;--primary-soft:#e8f2f8;--bg:#f5f8fa;--ink:#1e3345;--muted:#526578;--line:#d6e2e9;--sidebar-bg:#fff;--sidebar-text:#344e62;--focus-ring:#20577d38;--success:#16724f;--warning:#9a4d12;--danger:#b3363d;--text-factor:1}
html[data-text-size="large"]{--text-factor:1.12}
html[data-text-size="extra"]{--text-factor:1.25}
body{font-size:calc(18px * var(--text-factor));line-height:1.55}
.main{min-width:0}
.sidebar-nav a,.nav-group-toggle{font-size:calc(16px * var(--text-factor));line-height:1.45}
.nav-submenu a{font-size:calc(15px * var(--text-factor))}
.page-title h1{font-size:calc(26px * var(--text-factor));line-height:1.3}
.page-title p,.stat p,.card-title p,.profile,.profile small,.progress-row span,.portal-footer{font-size:calc(14px * var(--text-factor))}
.card-title h2{font-size:calc(19px * var(--text-factor));line-height:1.35}
.stat h3{font-size:calc(29px * var(--text-factor))}
table{font-size:calc(16px * var(--text-factor))}
th{color:var(--ink);font-weight:700;background:var(--bg)}
td{color:var(--ink)}
label{font-size:calc(16px * var(--text-factor));color:var(--ink)}
input,select,textarea{font-size:calc(17px * var(--text-factor));line-height:1.45;border-color:#aabcc8;min-height:42px}
input::placeholder,textarea::placeholder{color:#617386;opacity:1}
.btn{font-size:calc(16px * var(--text-factor));line-height:1.4;min-height:42px;justify-content:center;background:var(--primary)}
.btn:hover{background:var(--primary-dark)}
.btn-outline{background:var(--primary-soft);color:var(--primary)}
.btn-outline:hover{background:var(--line);color:var(--primary-dark)}
.btn-success{background:var(--success)}
.badge{font-size:calc(13px * var(--text-factor));line-height:1.3}
.scheduled{background:var(--primary-soft);color:var(--primary)}
.completed,.resolved{background:#e2f4e9;color:#176347}
.ongoing,.in-progress{background:#fff1dc;color:#8a4a0b}
.cancelled,.rejected{background:#fbe9ea;color:#a82e38}
.pending{background:#e8eff5;color:#405d75}
.alert.success{background:#e2f4e9;color:#176347}
.alert.error{background:#fbe9ea;color:#a82e38}
.dashboard-tabs a,.report-tabs a{font-size:calc(15px * var(--text-factor))}
.sidebar-nav a:focus-visible,.nav-group-toggle:focus-visible,.theme-choice:focus-visible,.text-size-options button:focus-visible,.menu-toggle:focus-visible,.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.theme-label{font-size:calc(14px * var(--text-factor));color:var(--ink)}
.theme-choice{font-size:calc(13px * var(--text-factor));min-height:36px}
.text-size-options{display:flex;gap:5px;margin-top:9px}
.text-size-options button{flex:1;min-width:0;min-height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--sidebar-text);font:700 16px Kokila,"Noto Sans Devanagari",sans-serif;cursor:pointer}
.text-size-options button:hover,.text-size-options button[aria-pressed="true"]{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.portal-brand-copy strong,.login-intro .login-identity h1{color:#174c77}
.portal-brand-copy small,.login-tagline{color:#1b654c}
html[lang="en"] body{font-size:calc(16px * var(--text-factor))}
@media(max-width:720px){.page-title h1{font-size:calc(20px * var(--text-factor))}.section-actions{flex-wrap:wrap}.filters{width:100%;flex-wrap:wrap}.filters select{min-width:min(160px,100%)}.login-form{padding:24px}.sidebar{width:min(320px,90vw)}}
@media(max-width:520px){.stats{grid-template-columns:1fr}.topbar-actions{flex-wrap:wrap}.language-switch{max-width:100%}.card{padding:16px}.main{padding:0 12px 28px}}
html[data-font="noto"] body,html[data-font="noto"] button,html[data-font="noto"] input,html[data-font="noto"] select,html[data-font="noto"] textarea{font-family:"Noto Sans Devanagari",Kokila,Arial,sans-serif!important}
html[data-font="kokila"] body,html[data-font="kokila"] button,html[data-font="kokila"] input,html[data-font="kokila"] select,html[data-font="kokila"] textarea{font-family:Kokila,"Noto Sans Devanagari",Arial,sans-serif!important}
html[lang="en"] body,html[lang="en"] button,html[lang="en"] input,html[lang="en"] select,html[lang="en"] textarea{font-family:Outfit,Arial,sans-serif!important}
.font-options{display:flex;gap:5px;margin-top:7px}
.font-options button{flex:1;min-height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--sidebar-text);font-size:calc(13px * var(--text-factor));font-weight:700;cursor:pointer}
.font-options button:hover,.font-options button[aria-pressed="true"]{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.font-options button:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
@media(min-width:721px) and (max-width:900px){.login-form{padding:48px 28px}}
@media(min-width:721px) and (max-width:1100px){.topbar{height:auto;min-height:104px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;padding:10px 0}.topbar-brand{grid-column:1;grid-row:1}.topbar .page-title{grid-column:2;grid-row:1}.topbar .page-title p{display:none}.topbar-actions{grid-column:1/-1;grid-row:2;justify-content:flex-end;width:100%}}

/* Compact, keyboard-accessible appearance controls in the page header. */
.preferences-menu{position:relative;flex:none}
.preferences-trigger{list-style:none;display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--primary);font-size:calc(15px * var(--text-factor));font-weight:700;line-height:1.3;cursor:pointer;user-select:none;white-space:nowrap;box-shadow:0 2px 8px #1f3f550b}
.preferences-trigger::-webkit-details-marker{display:none}
.preferences-trigger:hover,.preferences-menu[open]>.preferences-trigger{background:var(--primary-soft);border-color:var(--primary)}
.preferences-trigger .bx{font-size:19px}
.preferences-trigger .bx-chevron-down{font-size:16px;transition:transform .2s}
.preferences-menu[open] .bx-chevron-down{transform:rotate(180deg)}
.preferences-trigger:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.preferences-panel{position:absolute;right:0;top:calc(100% + 9px);width:min(350px,calc(100vw - 24px));max-height:min(68vh,600px);overflow-y:auto;z-index:40;padding:16px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 40px #163b552b;scrollbar-width:thin}
.preferences-heading{display:grid;gap:2px;padding:0 2px 11px;border-bottom:1px solid var(--line)}
.preferences-heading strong{font-size:calc(17px * var(--text-factor));color:var(--ink)}
.preferences-heading small{font-size:calc(12px * var(--text-factor));color:var(--muted);line-height:1.4}
.preference-field{display:grid;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}
.preference-field:last-child{border-bottom:0;padding-bottom:0}
.preference-label{font-size:calc(14px * var(--text-factor));font-weight:700;color:var(--ink)}
.preferences-panel .language-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;box-shadow:none}
.preferences-panel .language-switch button{min-height:35px;font-size:calc(13px * var(--text-factor))}
.preferences-panel .theme-options{gap:6px}
.preferences-panel .theme-choice{min-height:37px;border-color:var(--line);background:#fff}
.preferences-panel .theme-choice[aria-pressed="true"]{border-color:var(--primary);background:var(--primary-soft)}
.preferences-panel .text-size-options,.preferences-panel .font-options{margin:0}
.preferences-panel .text-size-options button,.preferences-panel .font-options button{min-height:37px}
@media(max-width:720px){.preferences-panel{left:0;right:auto}.topbar-actions{align-items:center}.preferences-trigger{padding:7px 9px}}
@media(prefers-reduced-motion:reduce){.preferences-trigger .bx-chevron-down{transition:none}}
.absence-reason-input{min-width:240px}
.media-layout{grid-template-columns:minmax(250px,.85fr) minmax(0,1.4fr);align-items:start}
.media-layout-single{grid-template-columns:minmax(0,1fr)}
.media-item{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.media-preview{display:block;margin-bottom:12px;border-radius:9px;overflow:hidden;background:#fff}
.media-preview img{display:block;width:100%;max-height:260px;object-fit:contain}
.media-item-details{min-width:0}
.media-item-details a{overflow-wrap:anywhere}
.media-item-details p{margin:7px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.media-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:start;margin-top:14px}
.media-edit summary{width:max-content;max-width:100%}
.media-edit-form{display:grid;gap:12px;margin-top:12px}
.media-delete{color:var(--danger);background:#fbe9ea}
.media-delete:hover{color:#8e2530;background:#f5d8db}
@media(max-width:1000px){.media-layout{grid-template-columns:1fr}}
