:root{--ink:#172a46;--muted:#78869c;--line:#e7edf5;--blue:#315eea;--bg:#f5f8fd;--soft:#ebf0ff;--nav-w:252px}html,body{min-height:100%}body{font-family:Inter,'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}a{text-decoration:none}.app-shell{min-height:100vh}.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--nav-w);background:#fff;border-right:1px solid var(--line);padding:25px 15px 16px;display:flex;flex-direction:column;z-index:1050;overflow:auto}.brand{display:flex;align-items:center;gap:12px;padding:0 9px 25px}.brand-mark{width:43px;height:43px;border-radius:12px;background:#315eea;color:#fff;display:grid;place-items:center;font-weight:900;letter-spacing:-.08em;font-size:20px}.brand-name{font-size:20px;font-weight:800;letter-spacing:-.05em;line-height:1.1}.brand-subtitle{color:var(--muted);font-size:10px;margin-top:5px}.nav-label{font-size:10px;color:#97a3b7;font-weight:800;letter-spacing:.13em;text-transform:uppercase;padding:24px 13px 8px}.app-nav a{display:flex;align-items:center;gap:11px;border-radius:11px;padding:10px 13px;color:#596b85;font-size:13px;font-weight:600;margin-bottom:2px}.app-nav a:hover,.app-nav a.is-current{background:var(--soft);color:#244edb}.ui-icon{flex:none}.nav-foot{border-top:1px solid var(--line);margin-top:auto;padding:18px 13px 0}.nav-name,.nav-role{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-name{font-weight:800;font-size:13px}.nav-role{font-size:11px;color:var(--muted)}.sidebar-logout{margin-top:10px;border:0;background:transparent;color:#64748b;padding:7px 0;display:flex;gap:8px;align-items:center;font-size:13px}.sidebar-logout:hover{color:#b91c1c}.app-main{margin-left:var(--nav-w);width:calc(100% - var(--nav-w));min-width:0}.app-topbar{height:87px;background:#fff;border-bottom:1px solid var(--line);padding:0 35px;display:flex;align-items:center;justify-content:space-between;gap:12px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.13em;color:#93a2b9}.topbar-title{font-size:20px;font-weight:800}.topbar-right{display:flex;align-items:center;gap:12px}.version-chip{border:1px solid #e2e9fa;border-radius:20px;padding:6px 10px;background:#f6f8ff;color:#5270a7;font-size:11px;font-weight:700}.profile-avatar{width:34px;height:34px;border-radius:10px;background:#eef2ff;color:#315eea;display:grid;place-items:center;font-weight:900}.nav-toggle{display:none;border:0;background:transparent;font-size:24px;color:var(--ink)}.app-content{max-width:1600px;margin:0 auto;padding:27px 35px}.notice-risk{padding:11px 15px;border:1px solid #e8d9ad;border-left:3px solid #c19a3c;border-radius:10px;background:#fffaf0;color:#806b3b;font-size:12px;margin-bottom:22px}.page-header{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:20px}.page-header h1{font-size:23px;font-weight:800;letter-spacing:-.025em;margin:0}.page-header p{font-size:13px;color:var(--muted);margin:6px 0 0}.panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:24px;box-shadow:0 9px 34px #273e6907;margin-bottom:22px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.panel-heading h2{font-size:15px;font-weight:800;margin:0}.panel-heading p{font-size:12px;color:var(--muted);margin:5px 0 0}.panel-heading+.table-responsive{margin:0 -2px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:23px}.metric{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}.metric .metric-label{font-size:12px;font-weight:600;color:var(--muted)}.metric .metric-value{font-size:27px;font-weight:800;letter-spacing:-.04em;word-break:break-word;margin:8px 0}.metric .metric-note{font-size:11px;color:var(--muted)}.data-table{font-size:12.5px;margin-bottom:0}.data-table thead th{font-weight:750;font-size:11px;color:#8592a6;background:#f7f9fe;padding:13px;white-space:normal;border-bottom:1px solid var(--line)}.data-table tbody td{padding:13px;vertical-align:middle;border-color:#f0f4fa;overflow-wrap:anywhere}.empty-state{text-align:center;color:var(--muted);padding:35px!important}.form-label{font-size:12px;font-weight:750;color:#516077}.form-control,.form-select{min-height:39px;border-color:#dfe7f2;border-radius:9px;font-size:13px}.form-control:focus,.form-select:focus{border-color:#7f9bfc;box-shadow:0 0 0 3px #ebf0ff}.btn{font-weight:600}.btn-primary{background:var(--blue);border-color:var(--blue)}.btn-primary:hover{background:#244bd1;border-color:#244bd1}.status-pill{display:inline-block;border-radius:22px;padding:5px 9px;font-size:11px;font-weight:750;background:#ecf3ff;color:#3460ad;white-space:normal}.status-success{background:#e8f9f1;color:#08875a}.status-warning{background:#fff5df;color:#a7740f}.status-danger{background:#fff0ed;color:#c04c32}.status-neutral{background:#ecf3ff;color:#3460ad}.helper{font-size:12px;color:var(--muted)}.app-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted);padding:18px 0}.inline-form{display:inline-block;margin:2px 2px 2px 0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-actions{grid-column:1/-1;margin-top:4px}.preflight{border:1px solid var(--line);border-radius:10px;background:#f7f9fe;padding:10px;font-size:13px}.preflight.pass{color:#087654}.preflight.fail{color:#b03527}.setup-body{background:var(--bg)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(880px,100%);display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 15px 65px #273e6913}.auth-brand{padding:55px 42px;background:linear-gradient(140deg,#edf3ff,#f8fbff)}.auth-brand h1{font-size:36px;font-weight:800;letter-spacing:-.04em;margin:28px 0 15px}.auth-form{padding:65px 44px}.auth-form h2{font-size:23px;font-weight:800}.report-toolbar{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin-bottom:12px}.column-picker{min-width:250px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f9fbff;margin-top:6px}.column-picker label{display:flex;align-items:center;gap:8px;margin:7px 0}.table-responsive{max-width:100%;overflow-x:auto}details summary{list-style:none;display:inline-block;cursor:pointer}details summary::-webkit-details-marker{display:none}.callout{border-radius:12px;padding:14px 16px;border:1px solid #d7e5ff;background:#f4f8ff;font-size:13px;color:#42618b}.notice-block{background:#fff8ed;border:1px solid #f1e1be;border-radius:12px;padding:16px;color:#805b23}.muted-hint{color:#64748b;font-size:12px}.table-responsive{scrollbar-width:thin}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid #7f9bfc;outline-offset:2px}.sidebar-backdrop{display:none}@media(max-width:1150px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-content{padding:24px}}@media(max-width:900px){.app-sidebar{transform:translateX(-102%);transition:transform .2s ease}.app-sidebar.is-open{transform:translateX(0)}.app-main{margin-left:0;width:100%}.nav-toggle{display:block}.app-topbar{padding:0 18px;height:72px}.app-content{padding:20px 14px}.sidebar-backdrop.is-open{position:fixed;inset:0;background:#172a4670;display:block;z-index:1040}}@media(max-width:600px){.panel{padding:16px}.metric{padding:16px}.metric .metric-value{font-size:23px}.page-header h1{font-size:20px}.form-grid,.form-grid.three{grid-template-columns:1fr}.auth-card{grid-template-columns:1fr}.auth-brand{padding:28px}.auth-brand h1{font-size:26px;margin:12px 0}.auth-form{padding:30px}.data-table{font-size:12px}.app-footer{flex-direction:column}.topbar-title{font-size:16px}.notice-risk{font-size:11px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}

@media(max-width:600px){.data-table,.data-table tbody,.data-table tr{display:block;width:100%}.data-table thead{display:none}.data-table tbody tr{border:1px solid var(--line);border-radius:12px;margin:0 0 12px;background:#fff;padding:5px 10px}.data-table tbody td{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:9px 3px!important;white-space:normal;word-break:break-word}.data-table tbody td::before{content:attr(data-label);color:#75839c;font-weight:700;flex:0 0 38%;font-size:11px}.data-table tbody td.empty-state{display:block;text-align:center}.data-table tbody td.empty-state::before{display:none}.data-table .inline-form{margin:0}.data-table tbody td > a{word-break:break-all}}
