/* QR CCSI: only the styles used by the document workspace. No external fonts/plugins. */
:root{--nav:#142c40;--nav-soft:#203b50;--accent:#087d77;--accent-dark:#05635f;--ink:#1c3044;--muted:#68798b;--line:#e4eaf0;--bg:#f4f7fa;--radius:12px;font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}*{box-sizing:border-box}body{margin:0}a{color:var(--accent);text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}:focus-visible{outline:3px solid #43bab4;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:30px;line-height:1.2;letter-spacing:-1px;margin-bottom:9px}h2{font-size:19px;margin-bottom:8px}p{line-height:1.65}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link:focus{position:fixed;top:10px;left:10px;padding:15px;background:white;z-index:100}.sidebar{position:fixed;inset:0 auto 0 0;width:234px;background:var(--nav);color:#dce7ef;display:flex;flex-direction:column;padding:30px 18px;z-index:20}.brand{display:flex;align-items:center;gap:12px;color:white;font-weight:750;font-size:21px;letter-spacing:-.5px;padding:0 10px 40px}.brand small{display:block;font-size:10px;font-weight:400;letter-spacing:.5px;color:#b5c8d7;margin-top:5px}.brand-mark{width:37px;height:37px;display:grid;place-items:center;border-radius:10px;background:#2fcec1;color:var(--nav);font-size:35px;line-height:1}.nav-label{font-size:10px;letter-spacing:1.9px;color:#91a7b8;padding:10px 16px 18px}.nav-item{display:flex;align-items:center;gap:13px;padding:13px 16px;margin-bottom:7px;border-radius:8px;color:#c4d3df;font-weight:500}.nav-item>span{font-size:21px;line-height:1;min-width:22px}.nav-item:hover{background:var(--nav-soft);color:white}.nav-item.active{background:#25475a;color:white;box-shadow:inset 3px 0 #41cabc}.sidebar-bottom{margin-top:auto;padding:20px 10px 0;border-top:1px solid #2d4355;font-size:10px;color:#a4bacb;display:flex;align-items:center;gap:9px}.connection-dot{width:6px;height:6px;background:#57c8b9;border-radius:50%}.workspace{margin-left:234px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:82px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 38px}.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb span{padding:0 12px;color:#b3c0cb}.breadcrumb strong{font-weight:600;color:var(--ink)}.account{display:flex;gap:12px;align-items:center;font-weight:600;font-size:12px}.account small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:3px}.avatar{display:grid;place-items:center;width:35px;height:35px;background:#e6f3f1;border-radius:50%;color:var(--accent)}.account form{margin-left:8px}.main{padding:34px 38px 30px;flex:1;min-width:0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:27px}.eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:1.7px;color:var(--accent);margin-bottom:12px}.page-heading p{margin:0;color:var(--muted);font-size:13px}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;border:1px solid var(--accent);background:var(--accent);color:white;padding:11px 17px;border-radius:7px;font-size:12px;font-weight:600;line-height:1.2;transition:background .15s}.button:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:white}.button.secondary{background:white;color:var(--ink);border-color:#ccd7e1}.button.secondary:hover{background:#f2f6f8;border-color:#9dabb9}.button.ghost{color:var(--accent);background:#edf7f5;border-color:transparent}.button.ghost:hover{background:#dcefeb}.button.danger{color:#ac4343;background:#fff3f3;border-color:#f4dddd}.button.danger:hover{background:#fce6e6}.button.small{padding:7px 10px;font-size:11px}.small{font-size:11px}.text-link{font-weight:600;font-size:12px}.text-link:hover{text-decoration:underline}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 3px 10px #172e4503;overflow:hidden}.card-heading{padding:22px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.card-heading h2{margin:0;font-size:15px}.filters{padding:23px 24px;display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;border-bottom:1px solid var(--line);background:#fff}.filters label{flex:1 1 145px;margin:0}.file-filters label{flex-basis:130px}.filter-actions{display:flex;align-items:center;gap:15px;min-height:39px;flex-wrap:wrap}.filter-actions .button{padding:11px 15px}label{display:block;font-size:12px;font-weight:600;margin:17px 0;color:#3b5064}input,select{display:block;width:100%;border:1px solid #d5dfe7;background:white;border-radius:6px;color:var(--ink);padding:10px 11px;margin-top:7px;min-height:39px;outline-offset:1px}input::placeholder{color:#98a7b4;font-size:12px}input:hover,select:hover{border-color:#a5b9c9}label small{display:block;font-weight:400;font-size:11px;color:var(--muted);margin-top:7px;line-height:1.6}.table-wrap{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{background:#f9fbfc;color:#728496;font-size:10px;text-transform:uppercase;letter-spacing:.65px;font-weight:650;padding:15px 20px;white-space:nowrap;border-bottom:1px solid var(--line)}td{padding:17px 20px;border-bottom:1px solid #edf1f5;vertical-align:middle;line-height:1.5}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfdfd}.primary-cell{font-weight:600;max-width:240px;overflow-wrap:anywhere}.date-cell{white-space:nowrap;font-size:11px;color:var(--muted)}.file-link{display:inline-block;font-weight:600;max-width:330px;overflow-wrap:anywhere;min-width:110px}.file-link span{opacity:.6}.badge{display:inline-flex;gap:6px;align-items:center;font-size:10px;font-weight:650;padding:5px 9px;border-radius:5px;white-space:nowrap}.badge span{font-size:7px}.positive{background:#e8f6ef;color:#297e58}.muted-badge{background:#f1f3f6;color:#6d7c8c}.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:200px}.row-actions form{display:inline-flex;margin:0}.row-actions button{font-size:10px}.you-label{font-size:9px;color:var(--muted);background:#f0f4f7;padding:3px 6px;border-radius:4px;margin-left:6px}.table-footer{padding:17px 24px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px;color:var(--muted);font-size:11px}.pagination{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.pagination a,.pagination span{display:grid;place-items:center;min-width:29px;min-height:29px;padding:5px;border:1px solid var(--line);border-radius:5px}.pagination .current{background:var(--accent);border-color:var(--accent);color:#fff}.pagination [aria-disabled]{opacity:.45}.pagination a:hover{background:#edf7f5}.empty-state{text-align:center;padding:45px 20px;color:var(--muted)}.empty-state strong{font-size:15px;color:var(--ink)}.empty-state p{font-size:12px;margin:10px 0 0}.notice{padding:15px 20px;border-radius:8px;margin-bottom:24px;font-size:12px}.notice.success{background:#e7f5ee;border:1px solid #bce0cd;color:#276648}.notice.error{background:#fff1f1;border:1px solid #f0d0d0;color:#933b3b}.notice ul{margin-bottom:0;padding-left:18px;line-height:1.8}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:27px}.stat-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:23px;position:relative;overflow:hidden}.stat-card .stat-icon{position:absolute;right:18px;top:18px;font-size:19px;display:grid;place-items:center;width:34px;height:34px;background:#edf7f5;color:var(--accent);border-radius:9px}.stat-card span:not(.stat-icon){display:block;color:var(--muted);font-size:12px}.stat-card strong{display:block;font-size:32px;letter-spacing:-1px;margin:15px 0 8px}.stat-card small{font-size:10px;color:var(--muted)}.quick-actions{display:flex;gap:12px;margin-bottom:27px;flex-wrap:wrap}.help{font-size:11px;color:var(--muted);margin:15px 0;line-height:1.7}.mono{font-family:ui-monospace,monospace;font-size:11px}.nowrap{white-space:nowrap}.device-cell{max-width:440px;overflow-wrap:anywhere;font-size:11px;color:var(--muted)}.page-footer{padding:20px 38px;border-top:1px solid var(--line);font-size:10px;color:var(--muted);display:flex;justify-content:space-between}.modal{width:min(550px,calc(100% - 32px));border:0;border-radius:14px;padding:28px;max-height:90vh;overflow:auto;box-shadow:0 30px 100px #0b23343d;color:var(--ink)}.modal::backdrop{background:#102a3e80;backdrop-filter:blur(3px)}.modal.compact{max-width:430px}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.modal-header p{font-size:12px;color:var(--muted);margin-bottom:4px}.icon-button{border:0;background:transparent;color:var(--muted);width:30px;height:30px;font-size:22px;display:grid;place-items:center;border-radius:5px}.icon-button:hover{background:#edf2f6}.modal-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.file-picker{border:1px dashed #b6c8d5;background:#f8fbfc;padding:17px;border-radius:8px}.file-picker input{background:transparent;border:0;padding:7px 0}.field-error{color:#9d3535;font-size:12px}.mobile-nav{display:none}.guest-main{min-height:100vh;display:grid;place-content:center;padding:28px}.guest-main>.notice{max-width:450px}.login-layout{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}.login-story{background:var(--nav);color:white;padding:65px 9%;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-story .brand{position:absolute;top:50px;left:9%;padding:0}.login-story h1{font-size:clamp(32px,3.2vw,51px);letter-spacing:-1.7px;line-height:1.2;max-width:490px}.login-story p{color:#aec5d5;max-width:370px;font-size:14px;margin-top:15px}.login-story .eyebrow{color:#60d3c5;margin-bottom:25px}.login-story-footer{position:absolute;bottom:38px;font-size:11px;color:#91a9ba}.qr-art{position:absolute;right:-40px;bottom:60px;font-size:260px;opacity:.035;line-height:1;transform:rotate(-12deg)}.login-panel{display:flex;justify-content:center;align-items:center;padding:60px 35px;background:#fff}.login-box{max-width:350px;width:100%}.login-box h2{font-size:27px;letter-spacing:-.7px}.login-box>p{color:var(--muted);font-size:13px;margin:10px 0 28px}.login-box .button{width:100%;padding:13px;margin-top:12px;font-size:13px}.login-box .help{text-align:center;margin-top:25px}.login-panel .brand{display:none}.error-page{max-width:450px;text-align:center}.error-page .error-code{font-size:70px;font-weight:750;color:#c0d8dd;letter-spacing:-4px}.error-page p{color:var(--muted)}
@media(min-width:1500px){.main{padding:40px 48px}.topbar{padding:0 48px}}
@media(max-width:1100px){.sidebar{width:205px;padding-left:12px;padding-right:12px}.workspace{margin-left:205px}.main{padding:28px 23px}.topbar{padding:0 23px}.stats{gap:12px}.stat-card{padding:18px}.stat-card .stat-icon{display:none}.table-footer{flex-wrap:wrap}.account form{margin-left:0}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:230px}.nav-open .sidebar{transform:translateX(0);box-shadow:10px 0 40px #122b4033}.workspace{margin-left:0}.mobile-nav{display:grid}.topbar{height:70px;padding:0 18px;gap:12px}.breadcrumb{display:none}.account{margin-left:auto}.account>span:not(.avatar){max-width:140px;overflow:hidden;text-overflow:ellipsis}.main{padding:25px 17px}.page-heading{gap:12px;align-items:flex-start}.page-heading>.button{margin-top:22px}h1{font-size:25px}.page-heading p{font-size:12px;max-width:270px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card strong{font-size:29px}.filters{padding:20px 17px;gap:12px}.filters label{flex-basis:42%}.filter-actions{width:100%}td,th{padding:14px 16px}.table-footer{padding:15px 17px}.page-footer{padding:20px 17px}.page-footer span{display:none}.modal{padding:23px}.login-layout{grid-template-columns:1fr}.login-story{display:none}.login-panel{min-height:100vh;padding:40px 25px}.login-panel .brand{display:flex;color:var(--ink);padding:0 0 45px}.login-panel .brand small{color:var(--muted)}.login-panel .brand-mark{color:white;background:var(--accent)}}
.sidebar-close{position:absolute;right:10px;top:10px;color:#dce7ef}
.ccsi-logo{display:block;width:100%;height:auto;object-fit:contain}
.brand-logo{flex-direction:column;align-items:flex-start;gap:9px;padding-bottom:33px}
.brand-logo .ccsi-logo{max-width:183px}
.brand-logo>span{font-size:11px;font-weight:500;letter-spacing:.5px;color:#c4d3df}
.login-identity{width:100%;max-width:420px}
.login-identity>.ccsi-logo{max-width:350px;margin-bottom:20px}
.login-story .login-company{color:#d5e2ec;font-size:19px;line-height:1.6;margin:0 0 28px;max-width:380px}
.login-identity h1{font-size:38px;letter-spacing:-1px;margin:0}
.login-mobile-identity{display:none}
@media(max-width:760px){.login-mobile-identity{display:block;margin-bottom:33px}.login-logo-plate{width:220px;background:var(--nav);padding:12px 16px;border-radius:8px}.login-mobile-identity p{font-size:12px;color:var(--muted);line-height:1.6;margin:16px 0 0;max-width:290px}.page-footer{gap:12px;flex-wrap:wrap}.page-footer span{display:inline}}
.table-scroll-hint{display:none}
.role-guide-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:25px}
.role-guide-card{padding:23px}
.role-guide-card .eyebrow{font-size:9px;letter-spacing:1px;line-height:1.6}
.role-guide-card p{font-size:12px;color:var(--muted);margin:0;line-height:1.8}
.role-guide-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:25px}
.role-matrix{min-width:620px}
.role-matrix thead th:not(:first-child),.role-matrix td{text-align:center}
.role-matrix tbody th[scope="row"]{background:white;color:var(--ink);text-transform:none;font-size:12px;font-weight:500;letter-spacing:0;white-space:normal;width:43%}
.role-matrix .permission-group th{background:#edf4f6;color:#4b6679;padding-top:12px;padding-bottom:12px}
@media(max-width:900px){.role-guide-cards{grid-template-columns:1fr}.role-guide-notes{grid-template-columns:1fr}.role-guide-card{padding:20px}}
@media(max-width:760px){.sidebar{visibility:hidden}.nav-open .sidebar{visibility:visible}.table-scroll-hint{display:block;font-size:10px;color:var(--muted);padding:12px 17px;margin:0;background:#f9fbfc;border-bottom:1px solid var(--line)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
