:root { --sidebar-width:282px;--sidebar-bg:#102a30;--sidebar-fg:#e9f8f5;--sidebar-muted:#9bc2bb;--topbar-bg:rgba(255,255,255,.9);--focus:#0c77d4 }
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .secondary,html[data-theme="dark"] code{background:var(--surface);color:var(--ink);border-color:var(--line)}
.skip-link{position:fixed;inset-inline-start:12px;top:-80px;z-index:100;background:var(--ink);color:var(--surface);padding:10px 16px;border-radius:8px}.skip-link:focus{top:12px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) var(--sidebar-width);grid-template-areas:"content sidebar";direction:ltr}.shell-content{grid-area:content;min-width:0;direction:rtl}.app-sidebar{grid-area:sidebar;position:sticky;top:0;height:100vh;overflow-y:auto;background:linear-gradient(180deg,var(--sidebar-bg),#0a1e23);color:var(--sidebar-fg);padding:20px 16px;z-index:30;direction:rtl}.app-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;min-height:68px;padding:10px clamp(16px,3vw,36px);background:var(--topbar-bg);border-bottom:1px solid var(--line);backdrop-filter:blur(14px);direction:rtl}.global-search{display:flex;gap:8px;max-width:620px;flex:1;margin-inline:auto}.global-search input{min-width:180px}.topbar-context{display:flex;gap:8px;align-items:center}.environment-badge,.safe-badge,.danger-badge{display:inline-flex;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:800;text-transform:uppercase}.environment-badge{background:#e6edf4;color:#44556b}.safe-badge{background:#dcf5eb;color:#08705f}.danger-badge{background:#fde7e7;color:#a22222}.icon-button{width:42px;height:42px;padding:0;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.sidebar-brand{display:flex;align-items:center;justify-content:space-between;padding:4px 6px 22px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand>a{display:flex;gap:11px;align-items:center;color:inherit;text-decoration:none}.sidebar-brand strong,.sidebar-brand small,.sidebar-user strong,.sidebar-user small{display:block}.sidebar-brand small,.sidebar-user small{color:var(--sidebar-muted)}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,#29bea1,#0a8f78);font-weight:900;font-size:1.25rem}.sidebar-nav{display:grid;gap:4px;margin-top:18px}.sidebar-nav a{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;color:var(--sidebar-fg);text-decoration:none}.sidebar-nav a:hover,.sidebar-nav a:focus-visible{background:rgba(255,255,255,.1)}.sidebar-nav a span{width:22px;text-align:center;color:#74dfca}.nav-section{margin:16px 10px 5px;color:var(--sidebar-muted);font-size:.72rem;font-weight:800;letter-spacing:.06em}.sidebar-user{margin-top:24px;padding:14px 12px;border-top:1px solid rgba(255,255,255,.1)}
.public-topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px max(20px,calc((100vw - 1180px)/2));background:var(--surface);border-bottom:1px solid var(--line)}.public-topbar nav{display:flex;align-items:center;gap:14px}.public-topbar a{text-decoration:none}.public-container{min-height:calc(100vh - 160px)}.drawer-backdrop,.mobile-only{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.container{max-width:1440px}.table-wrap{overflow:auto}.panel{margin-bottom:18px}html[dir="ltr"] .shell-content,html[dir="ltr"] .app-sidebar,html[dir="ltr"] .app-topbar{direction:ltr}html[dir="ltr"] th,html[dir="ltr"] td{text-align:left}
@media(max-width:980px){.app-shell{display:block}.mobile-only{display:inline-flex}.app-sidebar{position:fixed;inset-block:0;inset-inline-end:0;width:min(88vw,var(--sidebar-width));transform:translateX(110%);transition:transform .2s ease}.app-shell.drawer-open .app-sidebar{transform:translateX(0)}.drawer-backdrop{position:fixed;inset:0;z-index:25;border:0;border-radius:0;background:rgba(0,0,0,.46)}.app-shell.drawer-open .drawer-backdrop{display:block}.global-search{display:none}.app-topbar{min-height:60px}.topbar-context{margin-inline-end:auto}.environment-badge{display:none}}
@media(max-width:520px){.safe-badge,.danger-badge{display:none}.container{padding-inline:14px}.app-topbar{padding-inline:12px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.brand-mark{min-width:40px;width:auto;padding-inline:7px;border-radius:var(--button-radius);background:linear-gradient(135deg,var(--accent),var(--brand));color:var(--on-primary);font-size:1.05rem}
.brand-mark img{width:28px;height:28px;object-fit:contain}.brand-logo{display:block;max-width:180px;max-height:48px;object-fit:contain}.brand-logo-dark{display:none}html[data-theme=dark] .brand-logo-light{display:none}html[data-theme=dark] .brand-logo-dark{display:block}@media(prefers-color-scheme:dark){html[data-theme=system] .brand-logo-light{display:none}html[data-theme=system] .brand-logo-dark{display:block}}
.public-login-art{width:100%;max-height:280px;object-fit:cover;border-radius:var(--radius);margin-bottom:20px;box-shadow:0 12px 32px rgba(8,32,36,var(--shadow-strength))}
.locale-switch{display:inline-flex;gap:3px;align-items:center}.locale-switch .link-button{padding:5px 7px;min-width:auto;border:1px solid var(--line);border-radius:7px}
.button.primary,button:not(.link-button):not(.icon-button){background:var(--brand);color:var(--on-primary);border-radius:var(--button-radius)}
a{color:var(--link)}input,select,textarea{border-radius:var(--input-radius)}
.panel{box-shadow:0 12px 32px rgba(8,32,36,var(--shadow-strength));background:var(--surface)}
.notice.success,.safe-badge{background:var(--success);color:var(--on-success)}.notice.warning{background:var(--warning);color:var(--on-warning)}.notice.error,.danger-badge{background:var(--danger);color:var(--on-danger)}.notice.info{background:var(--info);color:var(--on-info)}
tbody td{padding-block:var(--table-pad)}html{font-size:calc(100% * var(--font-scale))}.stack{gap:calc(12px * var(--compact-factor))}
