:root {
 --ink:var(--color-text); --green:var(--color-primary); --green-dark:var(--color-secondary);
 --paper:var(--color-background); --surface:var(--color-surface); --radius:16px;
 --muted:color-mix(in srgb,var(--ink) 68%,var(--surface));
 --line:color-mix(in srgb,var(--ink) 12%,var(--surface));
 --mint:color-mix(in srgb,var(--green) 10%,var(--surface));
 --sidebar-muted:color-mix(in srgb,var(--color-on-sidebar) 70%,var(--color-sidebar));
 --sidebar-line:color-mix(in srgb,var(--color-on-sidebar) 20%,var(--color-sidebar));
 --secondary-muted:color-mix(in srgb,var(--color-on-secondary) 78%,var(--color-secondary));
 --color-danger:#b44a40; --color-danger-surface:#fbece9;
 --bs-body-color:var(--ink); --bs-body-bg:var(--paper); --bs-border-color:var(--line);
}
body { margin:0; background:var(--paper); color:var(--ink); font:14px/1.5 "Segoe UI",Arial,sans-serif; }
a { color:var(--green); text-decoration:none; }
button,a,input { touch-action:manipulation; }
:focus-visible { outline:3px solid var(--color-accent); outline-offset:3px; }
.text-muted { color:var(--muted)!important; }
.app-sidebar { width:242px; position:fixed; inset:0 auto 0 0; display:flex; flex-direction:column; padding:32px 19px 18px; background:var(--color-sidebar); color:var(--color-on-sidebar); z-index:30; }
.brand { display:flex; gap:10px; align-items:center; color:inherit; font-size:20px; font-weight:650; letter-spacing:-.5px; overflow-wrap:anywhere; }
.brand>span:last-child { min-width:0; }
.brand:hover { color:inherit; }
.brand-symbol { display:inline-grid; place-items:center; width:39px; height:39px; border-radius:11px; background:var(--color-accent); color:var(--color-on-accent); font-size:23px; font-weight:700; flex-shrink:0; }
.brand small { display:block; margin-top:3px; font-size:8px; color:var(--sidebar-muted); letter-spacing:1.4px; }
.sidebar-logo { width:45px; height:45px; object-fit:contain; flex-shrink:0; }
.workspace-tag { display:flex; align-items:center; gap:12px; border:1px solid var(--sidebar-line); border-radius:11px; margin:35px 0 22px; padding:12px; font-size:12px; }
.workspace-tag small { display:block; color:var(--sidebar-muted); font-size:10px; margin-top:3px; }
.workspace-mark { font-size:24px; color:var(--color-accent); }
.nav-label { font-size:9px; letter-spacing:1.7px; color:var(--sidebar-muted); margin:18px 12px 9px; }
.menu-scroll { flex:1; overflow-y:auto; }
.app-sidebar nav a { display:flex; align-items:center; gap:13px; padding:11px 12px; margin:4px 0; font-size:13px; border-radius:8px; color:inherit; }
.app-sidebar nav a.active { background:var(--color-accent); color:var(--color-on-accent); font-weight:600; }
.app-sidebar nav a:not(.active):hover { background:var(--sidebar-line); }
.app-sidebar nav a span { font-size:19px; width:20px; }
.sidebar-foot { padding:24px 12px; font-size:12px; }
.sidebar-foot small { display:block; color:var(--sidebar-muted); font-size:10px; margin-top:5px; }
.profile { display:flex; align-items:center; gap:10px; border-top:1px solid var(--sidebar-line); padding:18px 4px 0; font-size:12px; overflow-wrap:anywhere; }
.profile small { display:block; color:var(--sidebar-muted); font-size:10px; }
.avatar { width:34px; height:34px; border-radius:50%; display:inline-grid; place-items:center; flex-shrink:0; background:var(--color-accent); color:var(--color-on-accent); font-weight:650; }
.app-main { margin-left:242px; }
.topbar { min-height:75px; padding:14px 38px; background:var(--surface); border-bottom:1px solid var(--line); display:flex; gap:14px; align-items:center; justify-content:space-between; }
.topbar form { flex-shrink:0; }
.breadcrumb { display:flex; flex-wrap:nowrap; align-items:center; gap:13px; margin:0; min-width:0; font-size:12px; color:var(--muted); }
.breadcrumb-brand { max-width:160px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.breadcrumb strong { color:var(--ink); font-weight:500; }
#main { padding:32px 38px; min-height:calc(100vh - 131px); }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:26px; }
.eyebrow { display:block; font-size:10px; font-weight:650; letter-spacing:1.8px; color:var(--green); overflow-wrap:anywhere; }
h1 { font-size:29px; line-height:1.25; font-weight:600; letter-spacing:-.9px; margin:7px 0 9px; overflow-wrap:anywhere; }
.page-heading p { font-size:13px; color:var(--muted); margin:0; }
h2 { font-size:17px; font-weight:600; } h3 { font-size:14px; font-weight:600; }
.welcome-card { display:flex; justify-content:space-between; align-items:center; gap:20px; border-radius:var(--radius); background:var(--color-secondary); color:var(--color-on-secondary); padding:32px; margin-bottom:26px; overflow:hidden; }
.welcome-card .eyebrow { color:var(--secondary-muted); }
.welcome-card h2 { font-size:28px; line-height:1.3; letter-spacing:-.6px; margin:16px 0; }
.welcome-card p { color:var(--secondary-muted); margin:0; max-width:470px; font-size:13px; }
.welcome-mark { min-width:150px; text-align:center; color:var(--color-accent); font-size:92px; font-weight:650; line-height:1; padding:0 20px; }
.welcome-mark span { display:block; font-size:11px; letter-spacing:4px; margin-top:12px; }
.welcome-mark img { width:130px; height:100px; object-fit:contain; }
.card { border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; margin-bottom:20px; background:var(--surface); color:var(--ink); }
.card-header { background:var(--surface); border-bottom:1px solid var(--line); padding:22px; }
.card-header h2 { margin:0; } .card-header p { margin:5px 0 0; color:var(--muted); font-size:12px; }
.card-body { padding:22px; }
.module-row { display:flex; gap:14px; align-items:center; padding:22px; border-bottom:1px solid var(--line); }
.module-row:last-child { border:0; }
.module-number { display:grid; place-items:center; background:var(--mint); color:var(--green); border-radius:10px; width:38px; height:38px; flex-shrink:0; font-weight:600; font-size:12px; }
.module-row h3 { margin:0 0 5px; } .module-row p { margin:0; color:var(--muted); font-size:12px; }
.status-pill,.pending-pill { display:inline-block; padding:4px 9px; border-radius:6px; font-size:11px; background:var(--mint); color:var(--ink); white-space:nowrap; }
.pending-pill { background:var(--paper); color:var(--muted); margin-left:auto; }
.session-details { font-size:12px; overflow-wrap:anywhere; margin-bottom:0; }
.session-details dt { font-weight:400; color:var(--muted); margin-top:14px; } .session-details dd { margin-top:4px; }
.info-note { padding:22px; background:var(--mint); border-radius:var(--radius); } .info-note p { margin:0; font-size:12px; color:var(--muted); }
.btn { border-radius:8px; font-size:13px; min-height:40px; padding:9px 16px; }
.btn-sm { min-height:34px; padding:6px 12px; font-size:12px; }
.btn-primary {
 --bs-btn-bg:var(--green); --bs-btn-color:var(--color-on-primary); --bs-btn-border-color:var(--green);
 --bs-btn-hover-bg:var(--color-secondary); --bs-btn-hover-color:var(--color-on-secondary); --bs-btn-hover-border-color:var(--color-secondary);
 --bs-btn-active-bg:var(--color-secondary); --bs-btn-active-color:var(--color-on-secondary); --bs-btn-active-border-color:var(--color-secondary);
 --bs-btn-disabled-bg:var(--green); --bs-btn-disabled-border-color:var(--green); --bs-btn-disabled-color:var(--color-on-primary);
}
.btn-outline-primary { --bs-btn-color:var(--ink); --bs-btn-border-color:var(--line); --bs-btn-hover-bg:var(--green); --bs-btn-hover-color:var(--color-on-primary); --bs-btn-hover-border-color:var(--green); --bs-btn-active-bg:var(--green); --bs-btn-active-color:var(--color-on-primary); }
.btn:focus-visible { box-shadow:0 0 0 3px var(--color-accent); }
.form-label { font-size:12px; font-weight:500; }
.form-control { border:1px solid var(--line); border-radius:8px; min-height:44px; font-size:14px; background:var(--surface); color:var(--ink); }
.form-control:focus { background:var(--surface); color:var(--ink); border-color:var(--green); box-shadow:0 0 0 3px var(--mint); }
.form-control::file-selector-button { background:var(--mint); color:var(--ink); }
.alert-success { color:var(--ink); background:var(--mint); border-color:var(--line); }
.alert-danger { color:var(--color-danger); background:var(--color-danger-surface); border-color:var(--color-danger); }
.table { --bs-table-bg:var(--surface); --bs-table-color:var(--ink); --bs-table-border-color:var(--line); font-size:12px; }
.table > :not(caption) > * > * { padding:12px 16px; }
.table th { font-size:10px; text-transform:uppercase; letter-spacing:.65px; background:var(--paper); white-space:nowrap; color:var(--muted); }
.audit-detail { min-width:220px; max-width:400px; padding:12px 0; } .audit-detail pre { white-space:pre-wrap; overflow-wrap:anywhere; }
.app-footer { display:flex; gap:18px; justify-content:space-between; padding:18px 38px; font-size:11px; color:var(--muted); border-top:1px solid var(--line); overflow-wrap:anywhere; }
.icon-button { background:transparent; border:0; border-radius:8px; min-width:40px; min-height:40px; color:var(--ink); }
.mobile-menu { display:none; }
.skip-link { position:fixed; top:-60px; left:16px; background:var(--surface); padding:10px; z-index:100; } .skip-link:focus { top:10px; }
.sidebar-scrim { display:none; }
.login-page { display:grid; grid-template-columns:1fr 1fr; min-height:100vh; background:var(--surface); }
.login-story { background:var(--color-secondary); color:var(--color-on-secondary); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:48px; position:relative; min-width:0; }
.login-brand { display:flex; flex-direction:column; align-items:center; width:100%; }
.login-logo { max-width:280px; width:100%; height:160px; object-fit:contain; margin-bottom:24px; }
.login-brand .brand-symbol { width:72px; height:72px; font-size:44px; border-radius:20px; margin-bottom:20px; }
.login-brand strong { font-size:36px; letter-spacing:-1px; max-width:100%; overflow-wrap:anywhere; }
.login-brand small { color:var(--secondary-muted); font-size:10px; letter-spacing:4px; margin-top:5px; }
.login-story p { color:var(--secondary-muted); font-size:14px; margin-top:35px; line-height:1.8; }
.story-footer { position:absolute; bottom:35px; font-size:11px; color:var(--secondary-muted); }
.login-panel { display:flex; align-items:center; justify-content:center; padding:48px; min-width:0; }
.login-card { width:100%; max-width:380px; }
.login-symbol { display:grid; place-items:center; width:46px; height:46px; border-radius:12px; background:var(--mint); color:var(--green); font-size:25px; font-weight:600; margin-bottom:25px; }
.login-card h1 { font-size:28px; margin-top:10px; }
.login-note { color:var(--muted); font-size:11px; margin:25px 0 0; line-height:1.7; }
.login-card .btn { min-height:46px; }
.branding-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.brand-upload { min-width:0; } .brand-upload input { font-size:12px; }
.brand-preview { height:130px; display:grid; place-items:center; border:1px dashed var(--line); border-radius:12px; background:var(--paper); margin-bottom:12px; padding:16px; color:var(--muted); font-size:12px; }
.brand-preview img { max-width:100%; max-height:96px; object-fit:contain; }
.field-help { font-size:12px; color:var(--muted); margin:10px 0 0; }
.color-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.color-field { display:flex; align-items:center; gap:10px; }
.form-control-color { width:60px; flex-shrink:0; padding:5px; cursor:pointer; }
.color-field output { font-size:12px; color:var(--muted); }
.settings-actions { display:flex; gap:20px; align-items:center; justify-content:space-between; padding-bottom:10px; }
@media(max-width:1100px) { #main { padding:28px 24px; } .module-row { flex-wrap:wrap; } .pending-pill { margin-left:52px; } .welcome-mark { display:none; } .branding-grid { grid-template-columns:1fr; } .color-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:800px) {
 .app-sidebar { transform:translateX(-100%); visibility:hidden; transition:transform .15s; }
 .app-sidebar.is-open { transform:translateX(0); visibility:visible; }
 .app-main { margin-left:0; } .mobile-menu { display:inline-grid; place-items:center; flex-shrink:0; }
 .topbar { padding:12px 16px; } .breadcrumb { gap:8px; } .breadcrumb-brand { display:none; }
 #main { padding:26px 18px; }
 .sidebar-scrim:not([hidden]) { display:block; position:fixed; inset:0; background:color-mix(in srgb,var(--color-sidebar) 55%,transparent); border:0; z-index:20; }
 .welcome-card { padding:26px; } .welcome-card h2 { font-size:24px; }
 .app-footer { padding:18px; } .page-heading { align-items:flex-start; } h1 { font-size:25px; }
 .login-page { grid-template-columns:1fr; } .login-story { min-height:200px; padding:28px; }
 .login-brand .brand-symbol { width:42px; height:42px; font-size:25px; margin-bottom:10px; border-radius:12px; }
 .login-brand strong { font-size:27px; } .login-story p,.story-footer { display:none; }
 .login-logo { height:80px; max-width:200px; margin-bottom:14px; }
 .login-panel { padding:36px 24px; } .login-symbol { display:none; }
 .settings-actions { align-items:stretch; flex-direction:column; } .settings-actions .btn { width:100%; }
}
@media(max-width:380px) { .color-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { * { transition:none!important; } }
.error-page { min-height:100vh; display:grid; place-items:center; padding:24px; }
.error-card { max-width:580px; padding:32px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
