:root{--bg:#f4f6f8;--panel:#fff;--ink:#172033;--muted:#667085;--line:#d9e0ea;--primary:#2563eb;--primary-dark:#1d4ed8;--sidebar:#111827;--danger:#b42318;--success:#087443}*{box-sizing:border-box}body{min-height:100vh;margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--primary-dark)}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.sidebar{display:flex;position:sticky;top:0;flex-direction:column;height:100vh;padding:24px 18px;background:var(--sidebar);color:#fff}.brand{display:flex;gap:12px;align-items:center;margin-bottom:28px;color:#fff;text-decoration:none}.brand>span:last-child{display:grid}.brand small,.sidebar-user small{color:#b8c2d6}.brand-mark{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid rgba(255,255,255,.17);border-radius:11px;background:#0b1628;color:#fff;font-weight:800}.side-nav{display:grid;gap:3px}.nav-link{padding:10px 12px;border-radius:8px;color:#d6dceb;text-decoration:none}.nav-link:hover,.nav-link.is-active{background:#1f2937;color:#fff}.nav-section{margin:20px 12px 5px;color:#8590a6;font-size:.73rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.sidebar-user{display:grid;margin-top:auto;padding:16px 12px 0;border-top:1px solid rgba(255,255,255,.12)}.content{min-width:0;padding:28px}.topbar,.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.topbar h1,.section-heading h2{margin:0;font-size:1.55rem}.topbar form{margin:0}.module-switch{display:inline-block;margin-top:4px;color:var(--muted);font-size:.9rem}.panel,.welcome-panel,.module-card,.login-panel{border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 10px 28px rgba(15,23,42,.05)}.panel{padding:22px}.welcome-panel{padding:26px;margin-bottom:18px;background:linear-gradient(135deg,#fff,#eef4ff)}.welcome-panel h2{margin:3px 0 6px;font-size:1.7rem}.welcome-panel p{margin:0;color:var(--muted)}.eyebrow{color:var(--primary)!important;font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.module-card{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;min-height:150px;padding:22px;color:var(--ink);text-decoration:none;border-top:4px solid var(--module-color)}.module-card:hover{transform:translateY(-2px);box-shadow:0 16px 35px rgba(15,23,42,.1)}.module-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:12px;background:var(--module-color);color:#fff;font-size:1.3rem;font-weight:800}.module-copy{display:grid;gap:5px}.module-copy strong{font-size:1.2rem}.module-copy small{color:var(--muted);line-height:1.4}.module-arrow{color:var(--module-color);font-size:1.5rem}.module-placeholder{border-top:5px solid var(--module-color)}.module-placeholder h2{font-size:2rem;margin:14px 0 5px}.module-placeholder>p,.muted,.section-heading p{color:var(--muted)}.placeholder-note{margin-top:26px;padding:18px;border-radius:10px;background:#f8fafc}.placeholder-note p{margin-bottom:0;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 15px;border:1px solid transparent;border-radius:8px;cursor:pointer;font-weight:700;text-decoration:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{border-color:var(--line);background:#fff;color:var(--ink)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#8f1c13}.btn-small{min-height:36px;padding:7px 12px}.btn-large{min-height:50px;font-size:1.05rem}.alert{margin-bottom:16px;padding:13px 15px;border:1px solid;border-radius:9px}.alert-success{border-color:#a6e2c4;background:#ecfdf3;color:var(--success)}.alert-danger{border-color:#f4b8b2;background:#fff1f0;color:var(--danger)}.status-pill{display:inline-flex;padding:4px 9px;border-radius:999px;background:#e7f8ef;color:var(--success);font-size:.78rem;font-weight:750}.muted-pill{background:#eef0f3;color:var(--muted)}.section-heading p{margin:4px 0 0}.table-wrap{overflow:auto;padding:0}table{width:100%;border-collapse:collapse}th,td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{background:#f8fafc;color:#475467;font-size:.78rem;text-transform:uppercase}td small{display:block;margin-top:3px;color:var(--muted)}tr:last-child td{border-bottom:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stacked-form{display:grid;gap:18px}label{display:grid;gap:7px;color:#344054;font-size:.9rem;font-weight:650}input,select,textarea{width:100%;min-height:44px;padding:9px 11px;border:1px solid #cbd2dc;border-radius:8px;background:#fff;color:var(--ink)}input:focus,select:focus{outline:3px solid rgba(37,99,235,.14);border-color:var(--primary)}.check-label{display:flex;align-items:center;gap:9px}.check-label input{width:18px;min-height:18px}.full-width{grid-column:1/-1}fieldset{padding:18px;border:1px solid var(--line);border-radius:10px}legend{padding:0 7px;font-weight:750}.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.form-actions{display:flex;justify-content:flex-end}.two-column{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);align-items:start;gap:18px}.unit-create-form{align-self:start}.unit-groups{display:grid;gap:14px}.unit-group{overflow:hidden;border:1px solid var(--line);border-radius:10px}.unit-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 14px}.unit-row span{display:grid;gap:3px}.unit-row small{color:var(--muted)}.unit-row-area{background:#f8fafc}.unit-row-child{margin-left:22px;border-top:1px solid var(--line)}.unit-row-child:before{content:"↳";color:var(--muted)}.unit-row-child span{margin-right:auto}.unit-empty{margin:0;padding:10px 14px 12px 36px;color:var(--muted);font-size:.88rem}.unit-edit-form{max-width:760px}.danger-zone{display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:760px;margin-top:18px;border-color:#f4b8b2;background:#fffafa}.danger-zone h2{margin:0;color:var(--danger);font-size:1.15rem}.danger-zone p{margin:5px 0 0;color:var(--muted)}.login-page{display:grid;place-items:center;min-height:100vh;padding:22px;background:radial-gradient(circle at top left,#dbeafe,transparent 38%),var(--bg)}.login-panel{width:min(440px,100%);padding:32px}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:27px}.login-brand h1{margin:0}.login-brand p{margin:3px 0 0;color:var(--muted)}.login-brand .brand-mark{background:var(--sidebar)}.auth-alert{position:fixed;z-index:10;top:18px;left:50%;width:min(440px,calc(100% - 36px));transform:translateX(-50%)}.empty-state{text-align:center}.app-footer{margin-top:35px;padding:18px;color:var(--muted);text-align:center;font-size:.85rem}.mobile-shellbar,.sidebar-backdrop{display:none}@media(max-width:900px){.module-grid,.role-grid{grid-template-columns:1fr}.two-column{grid-template-columns:1fr}.app-shell{display:block}.mobile-shellbar{display:flex;position:sticky;z-index:40;top:0;align-items:center;gap:14px;height:62px;padding:9px 16px;background:var(--sidebar);color:#fff}.mobile-menu-button{display:grid;gap:4px;place-content:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#1f2937}.mobile-menu-button span{width:18px;height:2px;background:#fff}.sidebar{position:fixed;z-index:60;inset:0 auto 0 0;width:min(310px,86vw);transform:translateX(-105%);transition:transform .2s}.menu-open .sidebar{transform:translateX(0)}.sidebar-backdrop{position:fixed;z-index:50;inset:0;background:rgba(15,23,42,.54)}.menu-open .sidebar-backdrop{display:block}.content{padding:20px}.form-grid{grid-template-columns:1fr}.topbar{align-items:flex-start}.module-card{min-height:120px}.danger-zone{align-items:stretch;flex-direction:column}}@media(max-width:560px){.content{padding:16px}.topbar,.section-heading{align-items:stretch;flex-direction:column}.topbar form .btn,.section-heading>.btn{width:100%}.login-panel{padding:24px}.module-card{grid-template-columns:auto 1fr}.module-arrow{display:none}.unit-row{align-items:stretch;flex-direction:column}.unit-row-child{margin-left:12px}.unit-row-child:before{display:none}}
