:root{--bs-primary:#4f46e5;--bs-primary-rgb:79, 70, 229;--bs-primary-bg-subtle:#eef2ff;--bs-primary-border-subtle:#c7d2fe;--bs-link-color:#4338ca;--bs-link-hover-color:#3730a3;--bs-body-font-family:"Instrument Sans", system-ui, -apple-system, sans-serif;--bs-body-font-size:.875rem;--bs-body-color:#1f2937;--bs-border-color:#e5e7eb;--bs-border-radius:.5rem;--bs-border-radius-sm:.375rem;--bs-border-radius-lg:.625rem;--bs-card-border-color:#e5e7eb;--bs-card-cap-bg:#f9fafb;--bs-secondary-color:#6b7280;--bs-table-border-color:#f3f4f6;--bs-table-striped-bg:#fafafa}.form-control:focus,.form-select:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.btn-primary{--bs-btn-bg:#4f46e5;--bs-btn-border-color:#4f46e5;--bs-btn-hover-bg:#4338ca;--bs-btn-hover-border-color:#3730a3;--bs-btn-active-bg:#3730a3;--bs-btn-focus-shadow-rgb:99, 102, 241}.btn{font-size:.825rem}.btn-sm{font-size:.775rem}.table{font-size:.825rem}.table>thead>tr>th{text-transform:uppercase;letter-spacing:.05em;color:#6b7280;border-bottom-width:1px;padding-top:8px;padding-bottom:8px;font-size:.7rem;font-weight:600}.table>tbody>tr>td{color:#374151;vertical-align:middle}.table-sm>:not(caption)>*>*{padding:.3rem .5rem}.card{box-shadow:0 1px 2px #0000000a}.card-header{color:#374151;letter-spacing:.01em;font-size:.8rem;font-weight:600}.form-control,.form-select{font-size:.85rem}.form-label{color:#374151;margin-bottom:.3rem;font-size:.8rem;font-weight:600}.form-text{font-size:.75rem}.alert{border-radius:.5rem;font-size:.835rem}.badge{font-size:.7rem;font-weight:600}body{background:#f3f4f6;font-family:Instrument Sans,system-ui,-apple-system,sans-serif}.app-header{z-index:300;background:#fff;border-bottom:1px solid #e5e7eb;align-items:center;height:52px;display:flex;position:sticky;top:0}.app-header-inner{justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:1600px;margin:0 auto;padding:0 16px;display:flex}.app-header-left{align-items:center;gap:8px;min-width:0;display:flex}.app-brand{color:#111827;flex-shrink:0;align-items:center;gap:8px;text-decoration:none;display:flex}.app-brand img{width:auto;height:24px}.app-brand span{letter-spacing:-.02em;white-space:nowrap;font-size:14px;font-weight:700}.app-login-btn{color:#fff;white-space:nowrap;background:#4f46e5;border-radius:6px;padding:5px 14px;font-size:12.5px;text-decoration:none;transition:background .12s}.app-login-btn:hover{color:#fff;background:#4338ca}.sidebar-toggle-btn{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:18px;transition:background .12s,color .12s;display:flex}.sidebar-toggle-btn:hover{color:#111827;background:#f3f4f6}.ds-page{min-height:calc(100vh - 52px);display:flex;position:relative}.ds-sidebar{z-index:200;background:#fff;border-right:1px solid #e5e7eb;flex-direction:column;flex-shrink:0;width:232px;min-width:232px;max-width:232px;height:calc(100vh - 52px);transition:width .22s,min-width .22s,border-color .22s;display:flex;position:sticky;top:52px;overflow:hidden}.ds-sidebar.is-closed{border-color:#0000;width:0;min-width:0}@media (width<=767px){.ds-sidebar{width:260px;min-width:260px;max-width:260px;height:calc(100vh - 52px);transition:transform .25s;position:fixed;top:52px;left:0;transform:translate(0);box-shadow:4px 0 24px #0000001f}.ds-sidebar.is-closed{border-color:#e5e7eb;width:260px;min-width:260px;transform:translate(-100%)}}.ds-backdrop{z-index:199;cursor:pointer;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#00000073;display:none;position:fixed;inset:52px 0 0}@media (width<=767px){html:not(.sidebar-closed) .ds-backdrop{display:block}}.ds-user{color:#6b7280;white-space:nowrap;background:#f9fafb;border-bottom:1px solid #f0f0f0;flex-shrink:0;align-items:center;gap:8px;padding:10px 14px;font-size:12px;display:flex;overflow:hidden}.ds-user>.bi-person-fill{color:#9ca3af;flex-shrink:0;font-size:13px}.ds-user>span{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.ds-close-btn{cursor:pointer;color:#9ca3af;background:0 0;border:none;border-radius:4px;flex-shrink:0;margin-left:auto;padding:3px 5px;font-size:12px;line-height:1;transition:background .12s,color .12s}.ds-close-btn:hover{color:#374151;background:#e5e7eb}.ds-nav{scrollbar-width:thin;scrollbar-color:#d1d5db transparent;flex:1;padding:8px 6px;overflow-y:auto}.ds-nav::-webkit-scrollbar{width:3px}.ds-nav::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.ds-sec-btn{cursor:pointer;text-align:left;color:#6b7280;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;gap:7px;width:100%;padding:6px 10px;font-size:11px;font-weight:700;transition:background .13s,color .13s;display:flex}.ds-sec-btn:hover{color:#374151;background:#f3f4f6}.ds-sec-btn.sec-open{color:#4338ca}.sec-icon{flex-shrink:0;font-size:13px}.sec-chev{opacity:.45;flex-shrink:0;margin-left:auto;font-size:9px;transition:transform .2s}.ds-sec-btn.sec-open .sec-chev{opacity:.8;transform:rotate(90deg)}.ds-children{border-left:2px solid #e5e7eb;margin:2px 0 4px 25px;padding:0;list-style:none}.ds-children a{color:#6b7280;white-space:nowrap;text-overflow:ellipsis;border-radius:5px;padding:5px 10px;font-size:13px;text-decoration:none;transition:background .1s,color .1s;display:block;overflow:hidden}.ds-children a:hover{color:#111827;background:#f3f4f6}.ds-active{color:#4338ca!important;background:#eef2ff!important;font-weight:600!important}.ds-sidebar-footer{border-top:1px solid #f0f0f0;flex-shrink:0;padding:10px 12px}.ds-logout{color:#ef4444;white-space:nowrap;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;text-decoration:none;transition:background .12s;display:flex}.ds-logout:hover{color:#dc2626;background:#fef2f2}.ds-main{flex:1;min-width:0;padding:20px;transition:none}.ds-card{background:#fff;border-radius:10px;min-height:calc(100vh - 92px);padding:20px 24px;box-shadow:0 1px 3px #0000000f,0 0 0 1px #0000000a}@media (width<=767px){.ds-main{padding:12px}.ds-card{border-radius:8px;padding:14px 16px}.ds-main{width:100%}}@media (width<=480px){.app-brand span{display:none}.ds-main{padding:8px}.ds-card{padding:12px}}
