@font-face{font-family:YekanBakh;src:url("./fonts/YekanBakh/Yekan%20Bakh%20Variable/webfonts/YekanBakhFaNum-VF.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{
--font-family:YekanBakh,Tahoma,sans-serif;--font-xs:0.75rem;--font-sm:0.875rem;--font-base:0.9375rem;--font-md:1rem;--font-lg:1.125rem;--font-xl:1.25rem;--font-title:1.625rem;--font-nav:0.875rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;
--color-bg:#020617;--color-shell:#0f172a;--color-surface:#1e293b;--color-border:#253246;--color-text:#f8fafc;--color-muted:#94a3b8;--color-nav:#cbd5e1;--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-soft:#142040;--color-primary-text:#60a5fa;--color-danger:#f87171;--color-success:#4ade80;--color-overlay:rgb(0 0 0 / 65%);--color-shadow:rgb(0 0 0 / 25%);--color-on-primary:#fff;
--sidebar-width:256px;--header-height:64px;--radius:10px;--bs-body-font-family:var(--font-family);--bs-body-font-size:var(--font-base);--bs-body-color:var(--color-text);--bs-body-bg:var(--color-bg);--bs-secondary-color:var(--color-muted);--bs-border-color:var(--color-border);--bs-link-color:var(--color-primary-text);--bs-link-hover-color:var(--color-primary);
color-scheme:dark
}
:root[data-theme="light"]{--color-bg:#f5f7fb;--color-shell:#fff;--color-surface:#eef2f7;--color-border:#e2e8f0;--color-text:#0f172a;--color-muted:#64748b;--color-nav:#334155;--color-primary-soft:#eff6ff;--color-primary-text:#2563eb;--color-danger:#b91c1c;--color-success:#15803d;--color-shadow:rgb(15 23 42 / 10%);color-scheme:light}
html{font-size:16px}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-family);font-size:var(--font-base);line-height:1.7;font-weight:var(--weight-regular);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,textarea,select{font-family:inherit;font-size:var(--font-base)}h1{font-size:var(--font-title)}h2{font-size:var(--font-xl)}h3{font-size:var(--font-lg)}small{font-size:var(--font-sm)}a{text-decoration:none;color:var(--color-primary-text)}button,a,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--color-primary-text);outline-offset:4px}.layout-icon{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.icon-button{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--color-nav);width:44px;height:44px;padding:10px;border-radius:10px;flex-shrink:0}.icon-button:hover{background:var(--color-surface);color:var(--color-text)}.skip-link{position:fixed;top:-100px;inset-inline-start:20px;z-index:500;background:var(--color-primary);color:var(--color-on-primary);padding:12px}.skip-link:focus{top:12px}
.layout-sidebar{position:fixed;inset-block:0;inset-inline-start:0;width:var(--sidebar-width);height:100vh;height:100dvh;background:var(--color-shell);border-inline-end:1px solid var(--color-border);z-index:100;display:flex;flex-direction:column;transition:transform .22s ease;overflow:hidden}
.sidebar-brand{height:var(--header-height);min-height:var(--header-height);padding-inline:24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border)}.sidebar-brand>a,.guest-brand{display:flex;align-items:center;gap:12px;color:var(--color-text);font-size:var(--font-xl);font-weight:700}.brand-symbol{width:34px;height:34px;border-radius:10px;display:inline-grid;place-items:center;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:var(--color-on-primary);font-size:var(--font-xl);font-weight:800;flex-shrink:0}.brand-caption{display:block;color:var(--color-muted);font-size:var(--font-xs);font-weight:400;line-height:1.2}.sidebar-close{display:none}
.sidebar-navigation{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 12px;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.nav-group{margin-bottom:4px}.nav-group>summary,.nav-link-single{display:flex;align-items:center;gap:11px;min-height:44px;padding:9px 12px;color:var(--color-nav);font-size:var(--font-nav);font-weight:var(--weight-medium);border-radius:8px;position:relative;list-style:none;cursor:pointer}.nav-group>summary::-webkit-details-marker{display:none}.nav-group>summary>.layout-icon:last-child{margin-inline-start:auto;width:17px;height:17px;transition:transform .18s}.nav-group[open]>summary>.layout-icon:last-child{transform:rotate(180deg)}.nav-group>summary:hover,.nav-link-single:hover,.nav-children a:hover{background:var(--color-primary-soft);color:var(--color-primary-text)}
.nav-group.has-active>summary,.nav-link-single.active,.nav-children a.active{background:var(--color-primary-soft);color:var(--color-primary-text)}.nav-group.has-active>summary:before,.nav-link-single.active:before,.nav-children a.active:before{content:"";position:absolute;inset-inline-start:0;top:13px;bottom:13px;width:3px;border-radius:3px;background:var(--color-primary)}.nav-children{padding:4px 20px 2px 0}.nav-children a{position:relative;display:flex;align-items:center;gap:10px;min-height:40px;padding:7px 14px;border-radius:10px;color:var(--color-muted);font-size:var(--font-sm);margin-block:2px}.nav-children .layout-icon{width:17px;height:17px}
.sidebar-user{border-top:1px solid var(--color-border);display:flex;align-items:center;gap:10px;padding:14px;flex-shrink:0;padding-bottom:max(14px,env(safe-area-inset-bottom))}.user-avatar{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;color:var(--color-on-primary);background:linear-gradient(135deg,var(--color-primary-text),var(--color-primary-hover));font-size:var(--font-md);font-weight:700;flex-shrink:0}.user-copy{display:flex;flex-direction:column;min-width:0;text-align:start;line-height:1.5}.user-copy strong{font-size:var(--font-base);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}.user-copy small{color:var(--color-muted);font-size:var(--font-sm)}.sidebar-user .user-copy{flex:1}.sidebar-user form{margin:0}
.workspace{margin-inline-start:var(--sidebar-width);transition:margin .22s ease;min-width:0}.layout-header{height:var(--header-height);position:sticky;top:0;z-index:50;border-bottom:1px solid var(--color-border);background:var(--color-shell);display:flex;align-items:center;justify-content:space-between;gap:16px;padding-inline:24px}.header-start,.header-actions{display:flex;align-items:center;gap:12px;min-width:0}.header-search{display:flex;align-items:center;gap:12px;min-height:38px;width:300px;border:1px solid transparent;border-radius:11px;background:var(--color-surface);color:var(--color-muted);padding:6px 12px;text-align:start;font-size:var(--font-sm)}.header-search kbd{margin-inline-start:auto;border:1px solid var(--color-border);border-radius:5px;background:var(--color-shell);color:var(--color-muted);padding:1px 8px;font-size:var(--font-xs)}.header-search:hover{border-color:var(--color-primary)}.header-account{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;padding:4px;border-radius:10px}.header-popover>summary::-webkit-details-marker{display:none}.header-popover{position:relative}.popover-panel{position:absolute;inset-inline-end:0;top:calc(100% + 14px);width:250px;padding:18px;background:var(--color-shell);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 12px 40px var(--color-shadow);font-size:var(--font-sm)}.popover-panel strong{display:block;margin-bottom:8px;color:var(--color-text)}.popover-panel p{margin:0;color:var(--color-muted)}.popover-panel a,.account-logout{display:flex;align-items:center;gap:10px;padding:10px 0;font:inherit;min-height:44px}.account-logout{border:0;background:none;color:var(--color-danger)}.popover-panel form{margin:0}.theme-options{display:flex;gap:6px}.theme-options button{border:1px solid var(--color-border);border-radius:8px;min-height:44px;flex:1;background:var(--color-surface);color:var(--color-text);font-size:var(--font-sm)}.theme-options button[aria-pressed="true"]{color:var(--color-primary-text);border-color:var(--color-primary)}.mobile-search{display:none}
#main-content{padding:22px 26px 32px;min-width:0;outline:none}.layout-breadcrumb{display:flex;align-items:center;gap:14px;font-size:var(--font-sm);margin-bottom:20px;color:var(--color-text)}.layout-breadcrumb>a{display:flex;color:var(--color-muted);padding:4px}.layout-breadcrumb>.layout-icon{width:14px;height:14px;transform:rotate(90deg);color:var(--color-muted)}.guest #main-content{max-width:1200px;margin:auto}.sidebar-hidden .layout-sidebar{transform:translateX(100%)}.sidebar-hidden .workspace{margin-inline-start:0}.sidebar-backdrop{display:none}
.search-dialog{width:min(560px,calc(100% - 32px));max-height:80dvh;border:1px solid var(--color-border);border-radius:16px;padding:20px;background:var(--color-shell);color:var(--color-text);box-shadow:0 20px 70px var(--color-shadow)}.search-dialog::backdrop{background:var(--color-overlay)}.search-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.search-dialog h2{font-size:var(--font-lg);margin:0}.search-input-wrap{display:flex;align-items:center;gap:12px;padding:10px 0;margin-block:12px;border-bottom:1px solid var(--color-border);color:var(--color-muted)}.search-input-wrap input{background:none;border:0;color:var(--color-text);width:100%;min-height:44px;outline:none}.search-dialog nav{max-height:50dvh;overflow:auto}.search-dialog nav a{display:flex;align-items:center;gap:12px;padding:12px;color:var(--color-nav);border-radius:8px}.search-dialog nav a:hover{background:var(--color-primary-soft);color:var(--color-primary-text)}
/* Bootstrap components inherit the same palette and type scale. */
.card,.table-responsive{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.table{--bs-table-bg:var(--color-surface);--bs-table-color:var(--color-text);--bs-table-border-color:var(--color-border)}.form-control,.form-select{background-color:var(--color-shell);border-color:var(--color-border);color:var(--color-text);font-size:var(--font-base)}.form-control:focus,.form-select:focus{background-color:var(--color-shell);color:var(--color-text);border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.form-control::placeholder{color:var(--color-muted)}.btn{font-size:var(--font-base)}.btn-success{--bs-btn-bg:var(--color-primary);--bs-btn-border-color:var(--color-primary);--bs-btn-hover-bg:var(--color-primary-hover);--bs-btn-hover-border-color:var(--color-primary-hover);--bs-btn-active-bg:var(--color-primary-hover);--bs-btn-active-border-color:var(--color-primary-hover);--bs-btn-color:var(--color-on-primary)}.btn-outline-success{--bs-btn-color:var(--color-primary-text);--bs-btn-border-color:var(--color-primary);--bs-btn-hover-bg:var(--color-primary);--bs-btn-hover-border-color:var(--color-primary);--bs-btn-hover-color:var(--color-on-primary)}.btn-light{--bs-btn-bg:var(--color-surface);--bs-btn-color:var(--color-text);--bs-btn-border-color:var(--color-border);--bs-btn-hover-bg:var(--color-primary-soft);--bs-btn-hover-color:var(--color-text)}.text-danger{color:var(--color-danger)!important}.text-muted{color:var(--color-muted)!important}
@media(max-width:1199px){:root{--sidebar-width:244px}.header-search{width:260px}.header-actions{gap:6px}.header-account .user-copy{display:none}}
@media(max-width:991px){:root{--header-height:64px}.workspace,.sidebar-hidden .workspace{margin-inline-start:0}.layout-sidebar{width:min(288px,calc(100vw - 48px));transform:translateX(100%);z-index:200}.menu-open .layout-sidebar{transform:translateX(0)}.sidebar-close{display:inline-flex}.sidebar-brand{padding-inline:20px}.sidebar-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:190;background:var(--color-overlay);border:0;padding:0}.menu-open{overflow:hidden}.layout-header{padding-inline:16px}.header-search{width:240px}.header-actions{gap:8px}.header-account .user-copy{display:none}#main-content{padding:24px 20px}.popover-panel{position:fixed;top:calc(var(--header-height) + 8px);inset-inline:16px auto;width:min(300px,calc(100vw - 32px))}}
@media(max-width:575px){.header-search{display:none}.mobile-search{display:inline-flex}.header-start{gap:0}.layout-header{gap:8px;padding-inline:12px}.header-actions{gap:4px}.user-avatar{width:40px;height:40px}.header-account{padding:2px}.layout-breadcrumb{margin-bottom:24px}.sidebar-user{padding:18px}.brand-caption{font-size:var(--font-xs)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Mobile pages must remain the scrolling surface; only the open drawer locks it. */
html{min-height:100%;overflow-y:auto}body{min-height:100dvh;overflow-x:hidden;overflow-y:auto}.workspace{min-height:100dvh}
@media(max-width:991px){#main-content{min-height:calc(100dvh - var(--header-height));overflow:visible}.menu-open{overflow:hidden!important}}
/* Shared typographic hierarchy and restrained dashboard surfaces. */
/* Footer stays in document flow so it never covers mobile forms or tables. */
#layout-workspace{display:flex;flex-direction:column;min-height:100dvh}
#layout-workspace>.layout-header{flex-shrink:0}
#layout-workspace>#main-content{flex:1;min-height:0}
.layout-footer{flex-shrink:0;padding:16px 24px;padding-bottom:max(16px,env(safe-area-inset-bottom));border-top:1px solid var(--color-border);color:var(--color-muted);text-align:center;line-height:1.8}
.layout-footer small{font-size:var(--font-xs)}
h1,h2,h3{font-weight:var(--weight-semibold);line-height:1.45} .hero p{color:var(--color-muted);font-size:var(--font-base);margin-bottom:0}.dashboard-grid .card{transition:border-color .18s,background-color .18s}.dashboard-grid .card h2{font-size:var(--font-lg);margin-bottom:8px}.dashboard-grid .card p{font-size:var(--font-sm);color:var(--color-muted);margin:0}.dashboard-grid .card:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.user-copy strong{font-size:var(--font-sm)}.user-copy small{font-size:var(--font-xs)}
@media(max-width:991px){.nav-children a{min-height:44px}.nav-group>summary,.nav-link-single{min-height:46px}.form-control,.form-select{font-size:1rem}}

