/* =====================================
   CSP style-src cleanup: mechanically-extracted inline styles
   =====================================
   Auto-generated from static (non-templated) style="..." attributes
   found across templates/. Each class is a content-addressed hash of
   its exact original declaration block, so the computed style for any
   element is byte-identical to what its inline style= used to produce.
   Not meant to be hand-edited or reused semantically -- if you want a
   real utility/semantic class for new markup, add one to a proper
   stylesheet instead of hand-writing a csp-u-* class name. */

.csp-u-00576548 { display:flex;align-items:flex-start;padding:0 10px 10px;overflow-x:hidden; }
.csp-u-01aeeca9 { margin-top: 1.5rem; padding: 1rem; background: #f8f8f8; border-radius: 4px; }
.csp-u-01d56541 { width:14px;height:14px;border-radius:50%;border:2px solid var(--brand);background:var(--surface);flex-shrink:0; }
.csp-u-01f382cc { font-family: monospace; white-space: nowrap; }
.csp-u-02188f23 { white-space:nowrap;width:110px; }
.csp-u-023c6a24 { background-color: var(--color-success); color: white; }
.csp-u-025c863c { background: var(--color-surface); padding: 15px; border-radius: 5px; margin-top: 10px; }
.csp-u-0303d539 { width: 100%; padding: 0.65rem 0.875rem; border: 1.5px solid #CCCCCC; border-radius: 8px; font-size: 0.9rem; color: #1A3C34; background: #ffffff; outline: none; box-sizing: border-box; transition: border-color 0.15s, box-shadow 0.15s; }
.csp-u-03375b45 { width: 8%; }
.csp-u-034359d7 { width: 0%; }
.csp-u-045aac89 { margin-bottom: 16px; }
.csp-u-0464df77 { table-layout:fixed;width:100%;min-width:700px; }
.csp-u-04c14b55 { max-height: 300px; overflow-y: auto; }
.csp-u-04d13551 { width: 14rem; }
.csp-u-04d5f583 { margin: 0; cursor: pointer; font-weight: normal; }
.csp-u-04d7871b { border-left: 4px solid var(--color-module-equipment); }
.csp-u-0510f285 { color:inherit;text-decoration:underline; }
.csp-u-053deed6 { background: blue; color: white; padding: 10px; }
.csp-u-05e08aef { font-size: 1.5rem; font-weight: 700; color: var(--color-text-primary); margin: 0 0 0.25rem; }
.csp-u-064a2f98 { border-left-color:var(--color-warning); }
.csp-u-06eeebc8 { max-width: 100%; height: auto; }
.csp-u-07245a83 { min-width: 200px; max-width: 300px; }
.csp-u-07ba112d { font-size: 1.6rem; font-weight: 700; color: #ffffff; line-height: 1.3; margin-bottom: 0.6rem; letter-spacing: -0.01em; }
.csp-u-09a2dcdd { background: var(--color-text-muted); }
.csp-u-09dd4b92 { font-size:11px; color:var(--color-text-muted); text-transform:uppercase; letter-spacing:.4px; margin-bottom:4px; }
.csp-u-0a2d872d { min-width: 90px; width: 150px; }
.csp-u-0a77833b { width: 16%; }
.csp-u-0a9e77da { width: 150px; }
.csp-u-0ab02769 { margin-top: 40px; color: var(--color-danger); font-weight: bold; font-size: 12pt; }
.csp-u-0aeac2b3 { color:var(--color-primary-dark); }
.csp-u-0afe0fca { margin-left: 250px; transition: margin-left 0.3s; }
.csp-u-0b02c5e8 { background-color: var(--color-info-bg); }
.csp-u-0c3b7231 { margin: 4px 0 0 0; color: var(--color-text-muted); font-size: 13px; }
.csp-u-0c8a27e1 { font-size:10px; }
.csp-u-0cd28ce9 { display:inline; }
.csp-u-0d132221 { border-left:1px solid var(--color-border);padding-left:16px; }
.csp-u-0d5237f2 { width: 37%; }
.csp-u-0d5be05f { font-size:10px; }
.csp-u-0d8e8d76 { width:15%; }
.csp-u-101dd695 { width:30%; }
.csp-u-10512c41 { max-width:760px;margin:2rem auto; }
.csp-u-1069d5c3 { width:72px; }
.csp-u-10f8f743 { color:#fff; font-size:9px; font-weight:600; white-space:nowrap; overflow:hidden; }
.csp-u-11a50812 { font-size:11px; }
.csp-u-11c4d510 { height: 60px; z-index: 1030; }
.csp-u-11d63732 { color: var(--color-text-secondary, #444444); font-weight: 500; }
.csp-u-125867a2 { padding: 1rem 1.5rem; border-top: 1px solid var(--color-border); }
.csp-u-13459d4b { color:var(--color-success); }
.csp-u-1361905d { padding: 0.5rem 0.75rem; font-size: 0.875rem; color: var(--color-text-secondary); }
.csp-u-1365828c { table-layout:fixed;width:100%; }
.csp-u-13fa92ef { width:35%; }
.csp-u-148b84d6 { width: 110px; }
.csp-u-14d44b79 { font-size: 24px; font-weight: 700; color: var(--color-danger); }
.csp-u-154b322c { margin-top: 30px; font-size: 14px; color: #6c757d; }
.csp-u-15d9f296 { display:none; margin-top:0.75rem; }
.csp-u-15e81c54 { font-size:0.95rem;font-weight:700;color:var(--color-text-primary); }
.csp-u-1727de9b { background:var(--color-success-bg);border-radius:4px 0 0 4px; }
.csp-u-176f0b3e { margin-right: 1.5rem; }
.csp-u-177da839 { color:#BA7517;font-size:11px; }
.csp-u-17d8c5ec { white-space: pre-wrap; }
.csp-u-183a026b { display:flex;justify-content:space-between;align-items:center;padding:10px 14px 6px; }
.csp-u-18964fb8 { margin-left: 250px; margin-top: 60px; min-height: calc(100vh - 120px); transition: margin-left 0.3s; }
.csp-u-1902ad5d { background: var(--color-danger); color: #fff; padding: 0.65rem; }
.csp-u-19050be5 { max-width:100%; height:auto; display:block; }
.csp-u-1930c2a3 { color: var(--color-danger, #C0392B); font-size: 0.8rem; margin: 0.3rem 0 0; display: flex; align-items: center; gap: 0.3rem; }
.csp-u-193b979f { min-width: 80px; }
.csp-u-196a6eda { max-width: 680px; }
.csp-u-19eab8d5 { margin-top: 15px; padding: 10px; background: var(--color-info-bg); border-radius: 4px; border: 1px solid var(--color-primary); }
.csp-u-1a256603 { font-size: 16px; font-weight: 600; color: var(--color-info); margin: 0; }
.csp-u-1a3ecb21 { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.csp-u-1a91ef9e { width:80px; }
.csp-u-1ae00777 { background:var(--color-module-environmental); }
.csp-u-1b3b3079 { width: 80px; }
.csp-u-1b48dde1 { width:14px;height:14px;border-radius:50%;border:2px solid var(--border);background:var(--surface-2);flex-shrink:0; }
.csp-u-1b524fc6 { margin: 0 0.35rem; }
.csp-u-1ba580b2 { color: red; font-weight: bold; }
.csp-u-1c1fac23 { color:var(--color-module-environmental); background:var(--color-module-environmental-bg); }
.csp-u-1d726da6 { text-align: left; vertical-align: middle; border: none; padding: 0; }
.csp-u-1ecc6d25 { max-height: 90px; overflow-y: auto; }
.csp-u-1f138e77 { table-layout: fixed; }
.csp-u-1f53712e { border-left-color:var(--color-danger); }
.csp-u-1f629376 { color: var(--color-danger); }
.csp-u-1f77fca2 { color: var(--color-info); font-weight: 600; }
.csp-u-2042e17b { font-size: 1.5rem; font-weight: 700; color: var(--color-text-primary); margin-bottom: 0.5rem; }
.csp-u-205c002f { font-size: 1.4rem; font-weight: 700; color: var(--color-text-primary, #1A3C34); margin-bottom: 0.35rem; }
.csp-u-20d43445 { font-size:.78rem; }
.csp-u-2254d13b { font-size: 0.4rem; }
.csp-u-22b62ca4 { font-size: 0.8rem; }
.csp-u-22d055cd { font-size:0.85rem; }
.csp-u-22f61d20 { margin-left: 10px; }
.csp-u-231d52b0 { width: 39%; }
.csp-u-232a32b6 { font-size: 0.688rem; padding: 0.125rem 0.375rem; }
.csp-u-232d20a2 { width: 6%; }
.csp-u-23846e6d { color:var(--color-success);font-size:14px; }
.csp-u-242dca85 { background: #F8F9FA; }
.csp-u-24ae44b0 { max-width: 300px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.csp-u-25289253 { color:var(--color-primary); border-color:var(--color-primary); background:none; cursor:pointer; }
.csp-u-253b3940 { color: var(--color-text-muted); font-size: 9pt; margin-top: 10px; max-width: 600px; margin-left: auto; margin-right: auto; }
.csp-u-253dcec1 { color: var(--color-text-muted); margin-bottom: 20px; }
.csp-u-254b77fc { width: 100%; border: none; }
.csp-u-25b3fef2 { margin-top: 40px; padding-top: 20px; border-top: 2px solid var(--color-border); color: var(--color-text-muted); font-size: 8pt; text-align: center; }
.csp-u-25febc30 { width: 13%; }
.csp-u-2713c4ba { min-height: 400px; }
.csp-u-27652d97 { width: 130px; }
.csp-u-27895aa4 { font-size: 0.9rem; }
.csp-u-28c0f6ec { width:160px; }
.csp-u-2931fcd6 { width: 11%; }
.csp-u-294c138c { margin: 0 0 10px 0; color: var(--color-primary); font-weight: bold; }
.csp-u-297c2aaf { color:var(--color-module-environmental); }
.csp-u-29aa5f66 { white-space:nowrap;width:80px; }
.csp-u-2a3ab1e8 { color: var(--color-info, var(--color-module-kpi)); }
.csp-u-2a3b66a5 { font-size:0.8125rem;color:var(--text);flex:1; }
.csp-u-2a475464 { max-width: 46rem; }
.csp-u-2b2250e8 { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--color-surface); }
.csp-u-2b9d297b { border: none; padding: 0; }
.csp-u-2cb6eb9b { color:var(--color-danger); }
.csp-u-2cd52ab9 { min-width: 0; }
.csp-u-2d98adf5 { margin-bottom: 10px; }
.csp-u-2d9ca87c { box-shadow: 0 -2px 10px rgba(0,0,0,0.1); }
.csp-u-2dcd9049 { width: 180px; height: 180px; border: 4px solid var(--color-primary-light); border-radius: 8px; }
.csp-u-2e370a87 { display: none; position: fixed; top: 0; left: 0; right: 0; z-index: 10; background: linear-gradient(90deg, var(--color-primary-dark, #1A3C34) 0%, #0f2a44 100%); padding: 0.875rem 1.25rem; align-items: center; gap: 0.75rem; }
.csp-u-2e6e9971 { width: 18%; }
.csp-u-2e751cbb { margin-top: 30px; font-size: 9pt; color: var(--color-text-muted); }
.csp-u-2eac3fc2 { color: blue; }
.csp-u-2ed2d86e { border: 2px solid red; padding: 10px; }
.csp-u-2ee23fa1 { background:var(--color-warning-bg); }
.csp-u-2ee4b179 { overflow:hidden;white-space:nowrap;text-overflow:ellipsis; }
.csp-u-2ef9e0bf { color: var(--color-module-environmental); }
.csp-u-2f1b6247 { background: var(--color-surface); padding: 12px; border-radius: 6px; margin-bottom: 16px; }
.csp-u-2f9019b3 { margin: 0 0 10px 0; color: var(--color-primary); }
.csp-u-2f95f539 { padding: 0.5rem 0.75rem; border: 1px solid var(--color-border); border-radius: 0.375rem; font-size: 0.875rem; text-decoration: none; color: var(--color-text-secondary); background: white; transition: all 0.2s; }
.csp-u-30d76ad8 { color:var(--color-warning); }
.csp-u-3123bf5c { font-size:10px; padding:1px 6px; border-radius:3px; background:var(--color-primary-light,#E1F5EE); color:var(--color-primary,#1D9E75); font-weight:600; margin-left:4px; }
.csp-u-31981a7d { color: red; }
.csp-u-3198e927 { width: 35%; }
.csp-u-3199e189 { width: 21%; }
.csp-u-31b6dc76 { white-space:nowrap;font-size:11px;color:#888; }
.csp-u-34867be1 { height: 52px; width: auto; filter: brightness(0) invert(1); opacity: 0.92; }
.csp-u-34ba7aa9 { background-color: var(--color-info); }
.csp-u-35cabf67 { max-height: 600px; overflow: auto; }
.csp-u-35fa1087 { display: block; width: 100%; padding: 10px 20px; background: var(--color-text-muted); color: white;
                   border: none; border-radius: 6px; font-size: 14px; font-weight: 500;
                   text-align: center; margin-top: auto; cursor: not-allowed; }
.csp-u-36285c3b { max-height: 150px; }
.csp-u-3653ba6b { text-align: center; color: var(--color-text-muted, #888780); font-size: 0.8rem; margin-top: 1.75rem; margin-bottom: 0; }
.csp-u-367da999 { min-width:0; }
.csp-u-36b4f4b5 { background: yellow; padding: 20px; border: 3px solid red; }
.csp-u-36f18c59 { height: 20px; }
.csp-u-37897668 { width:45px; }
.csp-u-37e18337 { padding-right: 2rem; }
.csp-u-37f83849 { width:13%; }
.csp-u-37fa0d81 { padding:0 14px 10px; }
.csp-u-3822ae62 { width: 100%; padding: 0.78rem; background: var(--color-primary, #1D9E75); color: #ffffff; font-size: 0.95rem; font-weight: 600; border: none; border-radius: 8px; cursor: pointer; letter-spacing: 0.01em; margin-top: 0.25rem; transition: background 0.15s, transform 0.1s; }
.csp-u-3854f2e9 { width: 130px; }
.csp-u-3893bf39 { color:var(--color-module-quality); }
.csp-u-3907588b { margin-bottom: 14px; }
.csp-u-39b559e2 { min-width:160px;max-width:220px; }
.csp-u-39cea9d4 { margin-bottom: 0.5rem; font-size: 0.75rem; }
.csp-u-3a20c08c { display: flex; justify-content: flex-end; margin-top: -0.25rem; }
.csp-u-3b225f0c { flex: 0 0 200px; }
.csp-u-3b229192 { max-width: 250px; }
.csp-u-3b30d038 { width:10%; }
.csp-u-3b4cd38e { font-size: 0.65rem; }
.csp-u-3b58c6e0 { font-size:12px; color: var(--color-text-muted); }
.csp-u-3b8199bb { display: block; padding: 10px 20px; background: var(--color-danger); color: white; 
              text-decoration: none; border-radius: 6px; font-size: 14px; font-weight: 500; 
              text-align: center; transition: all 0.3s ease; margin-top: auto; }
.csp-u-3b873058 { font-size:11px;color:var(--danger); }
.csp-u-3bd5b53f { width:42px;height:42px; }
.csp-u-3c762078 { --module-accent: var(--color-module-audits, #BA7517); }
.csp-u-3d0aa5bd { width: 100%; padding: 0.65rem 2.75rem 0.65rem 0.875rem; border: 1.5px solid #CCCCCC; border-radius: 8px; font-size: 0.9rem; color: #1A3C34; background: #ffffff; outline: none; box-sizing: border-box; transition: border-color 0.15s, box-shadow 0.15s; }
.csp-u-3de8e480 { font-size: 0.875rem; color: var(--color-text-muted); margin-bottom: 1rem; }
.csp-u-3dfddf17 { background: var(--color-module-environmental-bg); color: var(--color-module-environmental); }
.csp-u-3e1fcc8e { background:var(--color-danger-bg);border-radius:0 4px 4px 0; }
.csp-u-3e6e35d6 { border-bottom: 1px solid var(--color-border); padding-bottom: 1rem; }
.csp-u-3f71fd63 { font-size: 0.875rem; }
.csp-u-3fc9ffba { background: var(--color-surface); min-height: 100vh; }
.csp-u-3fd5dedd { font-size: 0.8rem; color: var(--color-primary, #1D9E75); text-decoration: none; font-weight: 500; }
.csp-u-40b72592 { font-size: 14px; font-weight: 700; color: var(--color-text-secondary); }
.csp-u-4119a066 { max-width:22rem; }
.csp-u-41640c91 { width: 42%; background: linear-gradient(160deg, var(--color-primary-dark, #1A3C34) 0%, #0f2a44 100%); display: flex; flex-direction: column; justify-content: center; padding: 3rem 3.5rem; position: relative; overflow: hidden; }
.csp-u-418db28a { background: var(--color-primary-light); }
.csp-u-41c529fa { font-size: 16px; font-weight: 600; color: var(--color-module-standards); margin: 0; }
.csp-u-41d7d7e2 { padding:0; }
.csp-u-427e02e2 { font-size: 0.78rem; color: var(--color-text-muted); margin-top: 3px; }
.csp-u-42952e02 { width: 13%; }
.csp-u-429e1a58 { background:var(--color-danger-bg); }
.csp-u-42acc71e { border-color:var(--color-module-environmental); }
.csp-u-42d3df9a { font-size: 12px; color: var(--color-text-muted); margin-bottom: 15px; }
.csp-u-42d4450c { overflow-x: auto; }
.csp-u-4342edbb { display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border); }
.csp-u-434fc32e { display: inline; }
.csp-u-435c5190 { height: 44px; cursor: pointer; }
.csp-u-4377aed3 { padding: 0.25rem 0.5rem; font-size: 0.813rem; }
.csp-u-4392f332 { height: 30px; }
.csp-u-44228f0c { width: 40px; height: 40px; }
.csp-u-445cbfd4 { white-space:nowrap;width:70px; }
.csp-u-44a44877 { background: none; }
.csp-u-44a8846e { display:flex;align-items:center;gap:10px;background:rgba(31,138,112,0.08);border:1px solid var(--accent);border-radius:8px;padding:10px 14px;margin-bottom:1rem; }
.csp-u-467b6f25 { display: flex; justify-content: space-between; gap: 16px; }
.csp-u-4717931f { background: var(--color-success-bg); }
.csp-u-48134532 { background: var(--color-warning-bg); }
.csp-u-4824bc64 { font-size: 4rem; }
.csp-u-489e5d08 { color: var(--color-text-muted, #888780); font-size: 0.875rem; margin-bottom: 1.75rem; }
.csp-u-48ec7393 { display: block; font-size: 0.78rem; font-weight: 600; color: var(--color-text-secondary, #444444); margin-bottom: 0.4rem; letter-spacing: 0.04em; text-transform: uppercase; }
.csp-u-4941e8ae { font-size:0.8125rem;font-weight:600;margin-bottom:3px;color:var(--text); }
.csp-u-4946524c { width: 9%; }
.csp-u-49d1996d { font-size: 16px; font-weight: 600; color: var(--color-warning); margin: 0; }
.csp-u-49e4866e { margin-top: 5px; }
.csp-u-49f0a39e { --tile-accent: var(--color-module-documents); }
.csp-u-4a0488bb { margin-top: 5px; font-size: 9pt; }
.csp-u-4a050427 { background: linear-gradient(135deg, var(--color-info) 0%, var(--color-info) 100%); }
.csp-u-4a0518a5 { font-size:13px;color:var(--color-text-muted); }
.csp-u-4a16b95f { font-size: 1.5rem; color: var(--color-primary); }
.csp-u-4b2b1a19 { border-left:4px solid var(--color-warning); background:var(--color-warning-bg); }
.csp-u-4c1370c8 { display: flex; gap: 12px; padding-top: 16px; border-top: 2px solid var(--color-border); }
.csp-u-4c462afd { font-size:12px;color:var(--text-muted); }
.csp-u-4c81d3a0 { background: var(--color-warning-bg); border-left: 4px solid var(--color-warning); }
.csp-u-4c96f010 { width:115px; }
.csp-u-4d1f8387 { padding: 0.25rem 0.5rem; font-size: 0.813rem; border-width: 1px; }
.csp-u-4e108a3d { transition: all 0.2s ease; }
.csp-u-4f861f19 { background:#EAF3DE;color:#3B6D11;font-size:11px; }
.csp-u-4fb48a53 { display: block; padding: 10px 20px; background: var(--color-module-standards); color: white; 
              text-decoration: none; border-radius: 6px; font-size: 14px; font-weight: 500; 
              text-align: center; transition: all 0.3s ease; margin-top: auto; }
.csp-u-512f19db { display: flex; flex-direction: column; height: 100%; padding: 20px; 
            border-radius: 8px; background: linear-gradient(135deg, var(--color-warning-bg) 0%, var(--color-warning-bg) 100%);
            border: 2px solid var(--color-module-equipment); }
.csp-u-51d83c0e { color: var(--color-info); }
.csp-u-51fc3e67 { background: var(--color-info-bg); }
.csp-u-52128865 { padding-left: 2rem !important; }
.csp-u-521e6b89 { width: 100%; max-width: 400px; }
.csp-u-5254b34c { color: var(--color-success); }
.csp-u-530b1cf7 { font-size: 1.1rem; color: var(--color-primary-dark); }
.csp-u-545d1ee6 { font-size:14px;color:var(--color-danger); }
.csp-u-5480c57d { background:var(--color-danger-bg); color:var(--color-danger); }
.csp-u-54e9b596 { color: var(--color-module-standards); border-color: var(--color-module-standards-bg); }
.csp-u-54eb5222 { max-width: 860px; margin: 0 auto; padding: 1.5rem 1rem; }
.csp-u-54f51dc2 { position: absolute; top: -80px; right: -80px; width: 320px; height: 320px; border-radius: 50%; background: rgba(255,255,255,0.04); pointer-events: none; }
.csp-u-55b2e172 { width:18%; }
.csp-u-55f56d4e { height: 56px; width: auto; display: block; margin: 0 auto 1rem; }
.csp-u-56556346 { font-size: 1.25rem; flex-shrink: 0; }
.csp-u-574e55e3 { width:14px;height:14px;border-radius:50%;background:var(--accent);flex-shrink:0;display:flex;align-items:center;justify-content:center; }
.csp-u-57aced2f { background: orange; padding: 20px; border: 3px solid blue; }
.csp-u-57de23dd { height:160px;position:relative; }
.csp-u-580b3cd4 { width: 22%; }
.csp-u-581aa2ab { font-size: 0.85rem; line-height: 1.6; }
.csp-u-581be415 { width:90px; }
.csp-u-585a6488 { min-height: 100vh; background: linear-gradient(135deg, var(--color-info-bg) 0%, var(--color-primary-light) 100%); display: flex; align-items: center; justify-content: center; padding: 2rem 1rem; }
.csp-u-5922841c { border-left:4px solid var(--color-info); background:var(--color-info-bg); }
.csp-u-593a76f6 { width:48px;flex-shrink:0; }
.csp-u-59b0a393 { color:var(--warning);margin-top:4px;border-top:1px solid var(--border);padding-top:4px; }
.csp-u-59c5de2a { color:var(--color-info-bg); }
.csp-u-59d1160d { color: var(--color-text-muted); font-size: 0.9rem; margin: 0; }
.csp-u-59fe1a1b { background:var(--color-module-environmental-bg); }
.csp-u-5c0414bb { white-space:nowrap;font-size:12px; }
.csp-u-5c05f4af { font-weight: 600; }
.csp-u-5ca3c02b { font-size: 0.7rem; background-color: var(--color-warning); color: var(--color-text-primary); padding: 0.25rem 0.5rem; border-radius: 0.25rem; }
.csp-u-5cb57137 { width: 150px; }
.csp-u-5cf80df9 { margin-top: 5px; font-size: 8px; }
.csp-u-5d0bfa65 { margin-left:160px; }
.csp-u-5dc32c24 { font-size:4rem;color:var(--color-success); }
.csp-u-5e0faad2 { font-size:13px; }
.csp-u-5e43d6bd { cursor: pointer; border: 2px dashed var(--color-border) !important; }
.csp-u-5f3eb38a { width: 50px; }
.csp-u-600f9abe { max-width:170px;flex-shrink:1; }
.csp-u-601f2bf3 { position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%); background: none; border: none; cursor: pointer; color: #888780; padding: 0; line-height: 1; display: flex; align-items: center; }
.csp-u-6036b4cd { background: var(--color-info); }
.csp-u-60746827 { width:110px; }
.csp-u-607c2bdd { width: 15%; }
.csp-u-61fc146f { max-width: 620px; }
.csp-u-6260f89d { border: 1px dotted var(--color-text-muted); border-radius: 6px; padding: 12px 16px; flex: 1; }
.csp-u-62fc0bd9 { height:4px;max-width:120px; }
.csp-u-630cdc34 { width: 24px; height: 24px; cursor: pointer; }
.csp-u-6371a41d { display: block; padding: 10px 20px; background: var(--color-warning); color: white; 
              text-decoration: none; border-radius: 6px; font-size: 14px; font-weight: 500; 
              text-align: center; transition: all 0.3s ease; margin-top: auto; }
.csp-u-6396760a { font-size: 0.7rem; margin-top: 2px; }
.csp-u-63eb400a { font-size:9px; color:var(--color-border); }
.csp-u-641e6db3 { background: var(--color-module-standards-bg); color: var(--color-module-standards); }
.csp-u-6499ea2a { border: 2px solid #C0392B; color: #C0392B; padding: 8px; font-weight: 600; }
.csp-u-64ad2bc9 { background:var(--color-info-bg); }
.csp-u-64df6a85 { font-size: 11px; color: var(--color-module-standards); margin: 4px 0 0 0; }
.csp-u-65033b80 { color: var(--color-warning); margin-right: 0.5rem; }
.csp-u-6528b271 { width: 30%; }
.csp-u-65290f64 { background: var(--color-module-standards); }
.csp-u-652db75e { font-size:.7rem; }
.csp-u-65c72e82 { min-height:32px; }
.csp-u-66f8338e { margin: 0; font-weight: normal; }
.csp-u-6711f23d { font-size:0.8125rem;color:var(--text); }
.csp-u-67122173 { width: 7%; }
.csp-u-67227480 { background-color: var(--color-surface); border-bottom: 2px solid var(--color-border); }
.csp-u-674183a0 { background-color: var(--color-success); hover:background-color: var(--color-success); }
.csp-u-681d308d { width: 19%; }
.csp-u-6851d9c2 { max-width:180px;vertical-align:bottom; }
.csp-u-69bcb527 { font-size: 12px; color: var(--color-danger); margin-top: 4px; }
.csp-u-6a4e9d92 { border: none; width: 30%; padding: 5px 10px; }
.csp-u-6abc191a { min-width:110px;flex-shrink:1; }
.csp-u-6adda5cd { width:55px; }
.csp-u-6cb285c6 { font-size:12px; }
.csp-u-6d09221a { max-width:400px; }
.csp-u-6d1e6660 { font-size: 13px; color: var(--color-text-muted); }
.csp-u-6d6b20bf { letter-spacing:.04em; }
.csp-u-6ea571b1 { word-wrap: break-word; overflow-wrap: break-word; display: inline; }
.csp-u-6eec9ad3 { color:var(--color-info); }
.csp-u-6f1e0db0 { height:20px; }
.csp-u-704b198e { font-size: 14px; color: var(--color-danger); }
.csp-u-70ae8139 { position:relative; flex:1; height:24px; background:var(--color-surface); border-radius:4px; overflow:hidden; }
.csp-u-70d0e9d2 { color:var(--danger);font-weight:600;margin-bottom:3px; }
.csp-u-71719889 { font-size:.65rem; }
.csp-u-71728c2e { table-layout:fixed; width:100%; }
.csp-u-718a08f4 { width: 3%; }
.csp-u-71aaeb1e { font-size: 1.5rem; font-weight: 700; color: #fff; }
.csp-u-71b431f0 { color: var(--color-text-muted); font-size: 11px; }
.csp-u-71b8a127 { letter-spacing: 0.3em; font-size: 1.5rem; }
.csp-u-71bc4320 { font-size: 13px; color: var(--color-text-muted); margin-top: 4px; }
.csp-u-720ff77c { background: var(--color-primary); color: #fff; padding: 0.65rem; }
.csp-u-721b6c8c { color:var(--color-text-muted); }
.csp-u-72e1d038 { background:var(--color-primary); font-size:0.75rem; }
.csp-u-7326de92 { color: var(--color-text-muted); }
.csp-u-741f9287 { background: color-mix(in srgb, var(--color-module-standards) 10%, transparent); }
.csp-u-745ab363 { width:16%; }
.csp-u-7496db18 { font-size: 1.5rem; color: var(--color-danger); }
.csp-u-759d4da2 { margin-left: auto !important; }
.csp-u-75d65ed6 { color: var(--color-primary); margin-bottom: 15px; }
.csp-u-75d77b16 { flex: 1; display: flex; align-items: center; justify-content: center; padding: 3rem 2rem; background: #f0f2f5; }
.csp-u-76085d3f { font-size: 1.25rem; }
.csp-u-76274abb { border:none;background:none;padding:2px;cursor:pointer;border-radius:4px;line-height:1;display:inline-flex;align-items:center; }
.csp-u-764563ed { margin:0;border:none; }
.csp-u-765d57b5 { max-width:560px; }
.csp-u-76829b47 { width:145px; }
.csp-u-777c2b8a { --tile-accent: var(--color-module-reports); }
.csp-u-779aaf5a { font-size: 3rem; margin-bottom: 1rem; }
.csp-u-78f1b3fc { width: 4%; }
.csp-u-7937b4f9 { font-size: 34px; color: var(--color-border); margin-bottom: 10px; }
.csp-u-7944bd7f { background: var(--color-danger-bg); border-left: 4px solid var(--color-danger); }
.csp-u-795b19c1 { background: var(--color-danger-bg); }
.csp-u-79c0b354 { color:var(--color-success); }
.csp-u-79fd6805 { background-color: var(--color-primary); color: white; }
.csp-u-7a099298 { background-color: var(--color-surface); }
.csp-u-7a224215 { position: relative;
    border: 2px dashed var(--color-primary);
    min-height: 200px;
    padding: 20px;
    margin: 20px 0;
    background: var(--color-surface); }
.csp-u-7abb4690 { border-color: var(--color-module-standards) !important; }
.csp-u-7c481d30 { border-color:var(--color-warning); }
.csp-u-7ccaf21e { width: 14%; }
.csp-u-7da948a8 { max-width: 540px; }
.csp-u-7dd2d8b2 { background: purple; color: white; padding: 10px; }
.csp-u-7e407a00 { display:flex;align-items:center;gap:4px; }
.csp-u-7f382da7 { min-width: 140px; }
.csp-u-7f4e4f9b { width:56px; }
.csp-u-7f571ff4 { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.csp-u-7ff37552 { position: absolute; bottom: -60px; left: -60px; width: 240px; height: 240px; border-radius: 50%; background: rgba(255,255,255,0.03); pointer-events: none; }
.csp-u-80586f59 { color:var(--accent);flex-shrink:0; }
.csp-u-807e5119 { width: 100px; }
.csp-u-809b2f46 { font-size:14px;color:var(--color-warning); }
.csp-u-80b15656 { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.csp-u-80f0087f { display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding:0.75rem 1rem;border-top:1px solid var(--color-border); }
.csp-u-80ff0edb { margin-top: 30px; padding: 20px; background: var(--color-surface); border: 2px dashed var(--color-border); border-radius: 5px; text-align: center; }
.csp-u-814c1fef { background:var(--color-surface);color:var(--color-text-muted); }
.csp-u-81f4af21 { display:flex;align-items:center;gap:0.5rem;flex-shrink:0; }
.csp-u-824cd122 { min-width: 200px; }
.csp-u-824d2ff5 { padding-top:4px;padding-bottom:4px; }
.csp-u-8278d25d { gap: 0.375rem; }
.csp-u-82d84d19 { font-size: 0.9em; opacity: 0.7; }
.csp-u-82f6b1d2 { font-size: 2.5rem; margin-bottom: 1rem; display: block; }
.csp-u-830fa68b { background: #f8f9fa; }
.csp-u-8351944d { margin-bottom: 2.5rem; }
.csp-u-835340e6 { display:flex;gap:4px;flex-wrap:wrap; }
.csp-u-83e3fbf6 { color: var(--color-warning); }
.csp-u-8410c989 { cursor: pointer; }
.csp-u-849fc934 { padding: 2rem; font-family: 'Times New Roman', Times, serif; }
.csp-u-84e14d64 { font-size: 2.5rem; opacity: .4; }
.csp-u-8511a912 { color:#3B6D11;font-size:11px; }
.csp-u-8526e4dd { max-width: 760px; }
.csp-u-8534f1ed { cursor:pointer; border-left:4px solid var(--color-info); }
.csp-u-855851cc { border-top: 1px solid var(--color-border, #ccc); }
.csp-u-8580f0e3 { max-height: 320px; overflow-y: auto; }
.csp-u-85b7a6be { width: 20%; }
.csp-u-8610e80d { font-size: 8px; }
.csp-u-86bafd3f { width: 100%; max-width: 480px; }
.csp-u-86cd436b { color:var(--color-text-muted);font-size:14px; }
.csp-u-86cf3ce2 { font-size:12px; margin-bottom:2px; }
.csp-u-86d76d3f { flex: 0 0 120px; }
.csp-u-873f2980 { width: 10%; }
.csp-u-87bfab03 { cursor:pointer; border-left:4px solid var(--color-warning); }
.csp-u-87fd2322 { max-height: 60vh; }
.csp-u-893b4f65 { position: relative;
        background: white;
        border: 1px solid var(--color-border);
        min-height: 150px;
        padding: 10px; }
.csp-u-895b224a { width:36px;height:36px;font-size:14px;flex-shrink:0; }
.csp-u-89797bc6 { max-width:560px;margin:4rem auto;text-align:center; }
.csp-u-8a02b7ab { border-left-color: #1D9E75; background-color: #E1F5EE; }
.csp-u-8a0b6d30 { width: 14%; }
.csp-u-8ae57e88 { font-size: 3rem; }
.csp-u-8c01d5ff { letter-spacing:.05em; }
.csp-u-8c1d8f47 { background:#FAEEDA;color:#BA7517;font-size:11px; }
.csp-u-8c23f5aa { max-width: 720px; }
.csp-u-8c4e6862 { color: var(--color-module-documents); }
.csp-u-8cbcc99b { position: relative; height: 320px; }
.csp-u-8d1f4ab8 { max-width: 200px; }
.csp-u-8d8e5fe1 { --tile-accent: var(--color-module-personnel); }
.csp-u-8ea6624a { max-width: 280px; }
.csp-u-8f17cfb3 { background: var(--color-module-environmental); }
.csp-u-8f7a2558 { width: 55%; }
.csp-u-8f96199c { width:auto;font-size:0.72rem; }
.csp-u-8fd17936 { color: rgba(255,255,255,0.80); font-size: 0.875rem; line-height: 1.4; }
.csp-u-900fb81a { font-size: 9px; }
.csp-u-9045331d { display: flex; flex-direction: column; height: 100%; padding: 20px; 
            border-radius: 8px; background: linear-gradient(135deg, var(--color-info-bg) 0%, var(--color-info-bg) 100%);
            border: 2px solid var(--color-module-documents); }
.csp-u-907337af { width:14px;height:14px;border-radius:50%;background:var(--brand);flex-shrink:0;box-shadow:0 0 0 3px rgba(102,158,215,0.3); }
.csp-u-91fcf659 { color: var(--color-success, var(--color-success)); }
.csp-u-9292dfa7 { min-width: 100px; }
.csp-u-92aac5cf { background: var(--color-info); height: 60px; position: fixed; top: 0; left: 0; right: 0; z-index: 1030; }
.csp-u-930d87fb { display: flex; flex-direction: column; gap: 12px; }
.csp-u-9377d39e { width: 11%; }
.csp-u-94253f99 { min-width:160px; }
.csp-u-943da081 { background:var(--color-danger);color:#fff;border:none;border-radius:4px;padding:2px 10px;font-size:11px;cursor:pointer; }
.csp-u-9459bdf3 { font-size: 0.8rem; line-height: 1.4; }
.csp-u-94f04460 { color: var(--color-info); font-size: 0.875rem; }
.csp-u-94f2a1bf { font-size: 0.813rem; }
.csp-u-94f618e0 { margin-top: 10px; color: var(--color-text-muted); }
.csp-u-95053b9d { width:14px;height:14px;border-radius:50%;background:var(--warning);flex-shrink:0;display:flex;align-items:center;justify-content:center; }
.csp-u-95153df4 { overflow:hidden;text-overflow:ellipsis;max-width:220px;white-space:nowrap; }
.csp-u-95d9d057 { font-size: 0.625rem; }
.csp-u-95f0460f { display: flex; flex-direction: column; height: 100%; padding: 20px; 
            border-radius: 8px; background: linear-gradient(135deg, var(--color-module-standards-bg) 0%, var(--color-module-standards-bg) 100%);
            border: 2px solid var(--color-module-standards); }
.csp-u-95f05a8b { white-space:nowrap;flex-shrink:0; }
.csp-u-96695890 { min-height: 320px; }
.csp-u-96ecbe87 { display: flex; flex-direction: column; height: 100%; padding: 20px; 
            border-radius: 8px; background: linear-gradient(135deg, var(--color-success-bg) 0%, var(--color-success-bg) 100%);
            border: 2px solid var(--color-success); }
.csp-u-973a2f6c { min-height: 100vh; display: flex; background: #f0f2f5; }
.csp-u-973c5154 { display: flex; flex-direction: column; height: 100%; padding: 20px; 
            border-radius: 8px; background: linear-gradient(135deg, var(--color-warning-bg) 0%, var(--color-warning-bg) 100%);
            border: 2px solid var(--color-warning); }
.csp-u-97445a8d { flex:1; }
.csp-u-97711f5c { width: 32px; }
.csp-u-97db3685 { background:var(--color-surface); padding: 0.4rem 1rem; border-radius: 6px; font-size: 1rem; letter-spacing: 0.15em; color: var(--color-module-standards); }
.csp-u-97e90f37 { width: 2rem; height: 2rem; background: var(--color-info-bg); border-radius: 0.5rem; display: flex; align-items: center; justify-content: center; }
.csp-u-983e7ac0 { font-size: 0.625rem; padding: 0.125rem 0.325rem; }
.csp-u-9897f1c4 { font-size: 40px; margin-bottom: 8px; }
.csp-u-98c39aaa { min-width: 90px; }
.csp-u-99554971 { display: flex; flex-direction: column; height: 100%; padding: 20px; 
            border-radius: 8px; background: linear-gradient(135deg, var(--color-danger-bg) 0%, var(--color-danger-bg) 100%);
            border: 2px solid var(--color-danger); }
.csp-u-9a14fcf1 { display: block; padding: 10px 20px; background: var(--color-module-documents); color: white; 
              text-decoration: none; border-radius: 6px; font-size: 14px; font-weight: 500; 
              text-align: center; transition: all 0.3s ease; margin-top: auto; }
.csp-u-9b2319d5 { font-size: 0.8rem; color: var(--color-text-muted); margin-top: 2px; }
.csp-u-9b342752 { font-size:.65rem; }
.csp-u-9b86909d { border: 2px solid var(--color-primary); }
.csp-u-9c3ea773 { color:var(--color-warning);font-size:14px; }
.csp-u-9c9caa58 { --module-accent: var(--color-module-kpi); }
.csp-u-9ce9ae9d { width:4%; }
.csp-u-9d1f2c46 { background-color: #1D9E75; }
.csp-u-9dba6ea4 { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); }
.csp-u-9dd41d99 { display: flex; align-items: flex-start; gap: 0.75rem; }
.csp-u-9fc7fd08 { width: 200px; height: 200px; }
.csp-u-a03f6a01 { max-width: 1000px; margin: 0 auto; }
.csp-u-a089953b { max-height: calc(80vh - 140px); }
.csp-u-a0fbf663 { position: absolute; bottom: 1.75rem; left: 3.5rem; color: rgba(255,255,255,0.45); font-size: 0.72rem; margin: 0; }
.csp-u-a1757b4e { white-space:pre-wrap;font-size:12px; }
.csp-u-a1803411 { width: 160px; height: 120px; }
.csp-u-a1a312eb { background: color-mix(in srgb, var(--color-module-equipment) 10%, transparent); }
.csp-u-a2657420 { font-size: 0.875rem; color: var(--color-text-secondary); }
.csp-u-a2b44b15 { font-size: 0.75rem; }
.csp-u-a3af683e { resize: vertical; min-height: 150px; }
.csp-u-a44902e0 { font-size:0;display:block;height:4px; }
.csp-u-a4b772ca { background:var(--color-neutral-bg);color:var(--color-text-muted); }
.csp-u-a4f37172 { background: green; color: white; padding: 10px; }
.csp-u-a5564ce2 { color:var(--color-border);font-size:14px; }
.csp-u-a5982fac { font-size:.75rem; }
.csp-u-a659372d { width: 15%; }
.csp-u-a6cebd54 { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
.csp-u-a6ed68eb { font-size: 1rem; color: var(--color-primary-dark); }
.csp-u-a7183be9 { display:flex;flex-direction:column;align-items:center;flex:1;min-width:0; }
.csp-u-a73c8252 { color: var(--color-warning, var(--color-warning)); }
.csp-u-a7643763 { display:flex;flex-direction:column;align-items:center; }
.csp-u-a843e82c { font-size: 1.125rem; font-weight: 500; margin: 0 0 0.5rem 0; }
.csp-u-a86c2d41 { text-align:center;color:var(--color-text-muted); }
.csp-u-a8772dea { flex-shrink: 0; font-size: 0.7rem; }
.csp-u-a89265e7 { text-align: center; margin-bottom: 16px; }
.csp-u-a8c265da { color: rgba(255,255,255,0.85); font-size: 0.85rem; font-weight: 600; }
.csp-u-a99eb769 { --tile-accent: var(--color-module-equipment); }
.csp-u-a9aca6f6 { height: 350px; overflow-y: auto; }
.csp-u-a9d9613e { font-size: 1.75rem; color: var(--color-primary); letter-spacing: 0.08em; }
.csp-u-aa0dd7f5 { font-size: 0.875rem; margin: 0; }
.csp-u-aaa40d12 { font-size:15px;font-weight:700;white-space:nowrap;margin-right:4px; }
.csp-u-aacf87a1 { font-size: 16px; font-weight: 600; color: var(--color-danger); margin: 0; }
.csp-u-acc32ef7 { border: 1px solid blue; margin: 5px; padding: 5px; }
.csp-u-ace71d8e { max-height: 45vh; overflow-y: auto; }
.csp-u-ace910b2 { max-width:720px; }
.csp-u-ad0bee51 { border-color: var(--color-module-standards); }
.csp-u-ad657c51 { font-size: 12px; line-height: 1.4; min-height: 34px; }
.csp-u-ad78a823 { width: 56px; height: 56px; background: var(--color-primary-light); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; }
.csp-u-adac06c1 { width: 28%; }
.csp-u-add2f63f { position:sticky;top:1rem; }
.csp-u-ae0638a2 { width: 10%; }
.csp-u-aeeed341 { background: var(--color-module-standards-bg); }
.csp-u-af3c7c60 { background-color: var(--color-primary); color: white; border-radius: 0.5rem 0.5rem 0 0; margin: -1.5rem -1.5rem 1rem -1.5rem; padding: 1rem 1.5rem; }
.csp-u-af9e3719 { width:28px;height:28px;flex-shrink:0; }
.csp-u-afb1c4d3 { width: 12%; }
.csp-u-afc57644 { width: 30%; }
.csp-u-afcf77b1 { height: 48px; width: auto; }
.csp-u-b01b56ca { font-size:4rem;color:var(--color-danger); }
.csp-u-b0323204 { color: var(--color-module-equipment); }
.csp-u-b038d6c5 { margin: 0; padding: 0; min-height: 100vh; background-color: var(--color-surface); }
.csp-u-b060462b { text-align: right; vertical-align: middle; border: none; padding: 0; white-space: nowrap; }
.csp-u-b1a94f61 { background:var(--color-surface); }
.csp-u-b26aeceb { margin-top: 14px; }
.csp-u-b26e4cf8 { width: 8%; }
.csp-u-b2890b94 { background:var(--color-success-bg);color:var(--color-primary); }
.csp-u-b492c82e { word-wrap: break-word; overflow-wrap: break-word; }
.csp-u-b4aff5fc { font-size:0.72rem;color:var(--color-danger); }
.csp-u-b4b1731f { background-color: #FFFFFF; color: var(--color-primary); border: 1px solid rgba(62, 115, 145, 0.6); }
.csp-u-b5bd6da7 { font-size: 0.85rem; color: var(--color-text-muted); margin: 0; }
.csp-u-b5dfcb6c { flex-shrink:0; font-size:11px; color:var(--color-text-muted); margin-left:8px; width:100px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.csp-u-b60493f3 { width: 2rem; height: 2rem; }
.csp-u-b6ead41e { border-left-color:var(--color-primary); }
.csp-u-b727e069 { width: 6%; }
.csp-u-b7886ca0 { padding-top: 0.5rem; padding-bottom: 1rem; }
.csp-u-b7a52e7b { margin-top: 15px; font-size: 11px; color: var(--color-text-muted); }
.csp-u-b87efa5b { font-size: 16px; }
.csp-u-b8e0b1fa { color:var(--text-muted); }
.csp-u-b8e77d4b { background:var(--color-primary-light); color:var(--color-primary); }
.csp-u-b8fd6b9d { max-height: 0; padding: 0; }
.csp-u-b98e63b1 { border-left: 4px solid var(--color-module-audits); }
.csp-u-b9963897 { font-style: italic; }
.csp-u-b99b7ebb { background: var(--color-primary, var(--color-primary)); }
.csp-u-b9e7b710 { font-family: monospace; font-size: 0.75rem; }
.csp-u-bb26df13 { color:var(--color-module-standards); }
.csp-u-bbc1f877 { width:96px; }
.csp-u-bc0eb551 { width: 40%; }
.csp-u-bc1989dc { width:12%; }
.csp-u-bc3099ce { margin: 0; color: var(--color-text-primary); font-size: 16px; }
.csp-u-bc6d2721 { border-left:4px solid var(--color-success); background:var(--color-success-bg); }
.csp-u-bc7c9b65 { max-height: 160px; overflow-y: auto; }
.csp-u-bcb1425b { width: 20px; height: 20px; border-radius: 50%; background: rgba(29,158,117,0.3); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; }
.csp-u-bcce8b88 { width:50px; }
.csp-u-bd09c419 { width:60px; }
.csp-u-bd22933b { margin: 10px 0 0 20px; color: var(--color-text-muted); }
.csp-u-bddb64f5 { background-color: var(--color-success); }
.csp-u-bde631ff { max-width: 640px; }
.csp-u-be8a43e5 { color: var(--color-primary); word-break: break-all; }
.csp-u-bf179753 { font-size:.7rem; }
.csp-u-c0068fd6 { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.csp-u-c12ef3f5 { color:#A32D2D;font-size:11px; }
.csp-u-c1bee9e2 { font-size: 0.7em; }
.csp-u-c20cefb1 { color: var(--color-module-standards); }
.csp-u-c26c9216 { background: color-mix(in srgb, var(--color-module-audits) 10%, transparent); }
.csp-u-c28ed5f7 { margin-top: 20px; padding: 15px; background: var(--color-info-bg); border-radius: 8px; border: 2px solid var(--color-success); }
.csp-u-c28f1b15 { width:12%; }
.csp-u-c2bcea08 { display: flex; justify-content: space-between; align-items: center; }
.csp-u-c2e49e34 { width:22%; }
.csp-u-c30cdb9d { font-size:1.2rem;font-weight:700;color:var(--color-text-primary); }
.csp-u-c30d8b12 { top: 60px; width: 250px; height: calc(100vh - 60px); overflow-y: auto; z-index: 1020; transition: margin-left 0.3s; }
.csp-u-c3122899 { margin-top: 0; }
.csp-u-c3918f24 { margin-top: 0; color: var(--color-primary); }
.csp-u-c3a3f8cd { background: var(--color-info-bg); padding: 0.5rem; }
.csp-u-c3acbfeb { max-height: 22rem; overflow-y: auto; }
.csp-u-c3e28758 { background:var(--color-danger-bg);color:var(--color-danger); }
.csp-u-c3f9ba91 { border-color:var(--color-success); }
.csp-u-c49ade0a { color: var(--color-info); margin-right: 0.5rem; }
.csp-u-c6fffdfe { width:130px; }
.csp-u-c8c1323b { background: var(--color-text-primary); color: var(--color-surface); padding: 15px; border-radius: 4px; font-size: 12px; }
.csp-u-c90151d3 { font-size: 14px; color: var(--color-text-muted); margin-top: 4px; }
.csp-u-c947f644 { width: 56px; height: 56px; background: var(--color-danger-bg); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; }
.csp-u-c9583ced { font-size:11px; padding:3px 10px; }
.csp-u-c9643351 { width:160px; padding-right:12px; }
.csp-u-c97152cf { margin-top: 0.25rem; }
.csp-u-c97d4831 { width: 21%; }
.csp-u-ca5dea0f { max-width: 900px; }
.csp-u-cb812303 { background:var(--color-warning-bg); }
.csp-u-cb8a8ef7 { font-size: 0.7rem; }
.csp-u-cc3d9d14 { height:6px; }
.csp-u-cc50ce22 { color: var(--color-primary); text-decoration: none; }
.csp-u-cdabf8c1 { font-size: 1.5rem; }
.csp-u-cdfc9162 { background: var(--color-text-primary); color: var(--color-surface); padding: 15px; border-radius: 4px; font-size: 12px; overflow-x: auto; }
.csp-u-ce0eadc6 { display:flex;flex-direction:column;align-items:center;text-decoration:none; }
.csp-u-ce557302 { font-size: 9px; color: var(--color-text-muted); }
.csp-u-ce8ec989 { margin: 0 auto; }
.csp-u-ce8ff612 { color: var(--color-text-muted); text-align: center; padding: 50px; }
.csp-u-cea46e59 { height: 25px; }
.csp-u-cee5c582 { margin-top: 2rem; }
.csp-u-d0eb4d30 { color:var(--color-module-kpi); }
.csp-u-d1910b88 { border: none; width: 40%; padding: 5px 0 5px 10px; }
.csp-u-d230d151 { width: 40px; }
.csp-u-d2538e0c { color: rgba(255,255,255,0.85); font-size: 0.9rem; }
.csp-u-d25a0ac8 { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.csp-u-d274da31 { margin-top: 30px; padding: 20px; background: var(--color-info-bg); border-radius: 4px; border: 1px solid var(--color-primary); }
.csp-u-d2d53968 { color: var(--color-module-audits); }
.csp-u-d3f64fb6 { width: 20%; }
.csp-u-d43beb78 { max-height: calc(100vh - 140px); overflow-y: auto; }
.csp-u-d4b18924 { table-layout: fixed; width: 100%; }
.csp-u-d4c70c34 { color:var(--color-info); }
.csp-u-d4f7536f { margin-top: 1.5rem; }
.csp-u-d52c81b6 { max-height: 800px; }
.csp-u-d5aeb0fa { background-color: var(--color-primary); }
.csp-u-d6be8689 { background:var(--color-warning-bg);color:var(--color-warning); }
.csp-u-d6ca1f3d { max-height: calc(80vh - 120px); }
.csp-u-d6ed6036 { font-size:14px;color:var(--color-text-muted); }
.csp-u-d76159ca { color: rgba(255,255,255,0.70); font-size: 0.95rem; margin-bottom: 2.5rem; font-weight: 400; }
.csp-u-d7b54390 { background: var(--color-module-environmental-bg); }
.csp-u-d8974329 { font-size: 1.1rem; margin-bottom: 1rem; }
.csp-u-d9074a97 { margin-top: 24px; font-size: 14px; }
.csp-u-d9aa3cd4 { width: 100%; max-width: 400px; background: #ffffff; border-radius: 16px; box-shadow: 0 4px 24px rgba(0,0,0,0.08), 0 1px 4px rgba(0,0,0,0.04); padding: 2.5rem 2.25rem; }
.csp-u-dab43fb9 { margin-top: 1rem; }
.csp-u-db3a526c { width: 18%; }
.csp-u-db4cf10b { width:100px; }
.csp-u-db8b4eb8 { border:none;font-size:7.5pt;color:var(--color-text-muted);padding:2pt 6pt; }
.csp-u-dbb38ace { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }
.csp-u-dcc91a0f { height: 4px; }
.csp-u-dcd38fad { color:var(--color-text-muted); border-color:var(--color-border); font-size:0.8rem; }
.csp-u-dd123da5 { margin: 0; font-size: 1.125rem; font-weight: 700; color: var(--color-text-primary); }
.csp-u-dd39da7f { display: flex; flex-direction: column; height: 100%; padding: 20px; 
            border-radius: 8px; background: linear-gradient(135deg, var(--color-module-standards-bg) 0%, var(--color-border)6FE 100%);
            border: 2px solid var(--color-module-standards); }
.csp-u-dd4584a3 { text-align: center;
            color: var(--color-text-muted);
            padding: 50px 20px;
            font-style: italic; }
.csp-u-dd5035d1 { width:48px;height:48px; }
.csp-u-dd7b204f { min-width:120px;flex-shrink:1; }
.csp-u-dd899fba { white-space:nowrap;width:90px; }
.csp-u-dd937fe6 { color: inherit; }
.csp-u-de5d5532 { border: none; width: 30%; padding: 5px 10px 5px 0; }
.csp-u-de676730 { display: inline-flex; align-items: center; justify-content: center;
              min-width: 48px; height: 38px; border-radius: 6px;
              font-size: 1.1rem; font-weight: 700;
              background: var(--color-border); color: var(--color-text-primary);
              border: 1px solid var(--color-border); padding: 0 1rem; }
.csp-u-deaf2cc0 { padding: 0.2rem 0.4rem; font-size: 0.75rem; }
.csp-u-dec715c2 { font-size:6px; }
.csp-u-df576810 { width: 12%; }
.csp-u-e026ea83 { display: grid; gap: 0.75rem; }
.csp-u-e0fa5c5f { color: var(--color-text-muted); font-style: italic; margin: 0; }
.csp-u-e115f736 { flex-shrink:0; font-size:10px; color:var(--color-text-muted); margin-left:6px; white-space:nowrap; }
.csp-u-e1404d65 { margin: 0; padding-left: 20px; color: var(--color-text-muted); }
.csp-u-e2246649 { color: var(--color-primary); }
.csp-u-e289b717 { width: 45%; }
.csp-u-e291d241 { padding: 3rem; text-align: center; }
.csp-u-e2b01b0d { max-width:640px; }
.csp-u-e3ad3ded { font-size:7px;color:#fff; }
.csp-u-e3cf8d88 { padding: 12px 24px; font-size: 14px; }
.csp-u-e3eb6377 { height: 28px; width: auto; filter: brightness(0) invert(1); opacity: 0.9; }
.csp-u-e48b0583 { font-size:11px; }
.csp-u-e550fe15 { font-size: 16px; font-weight: 600; color: var(--color-danger); margin: 0 0 8px 0; }
.csp-u-e63f1e23 { font-size:15px; }
.csp-u-e71ae94b { font-size:12px; }
.csp-u-e797ff27 { min-width: 140px; }
.csp-u-e86ee17e { max-height: 150px; overflow-y: auto; }
.csp-u-e95c0330 { background:var(--color-module-standards-bg); }
.csp-u-e978780e { flex: 1; padding: 12px 24px; font-size: 14px; }
.csp-u-e9c6d758 { color:var(--color-danger); }
.csp-u-ea1e4fe9 { color: var(--color-success); margin-right: 0.5rem; }
.csp-u-ea55d6ce { white-space:nowrap;font-family:monospace;font-size:11px; }
.csp-u-ea8d22b8 { background: var(--color-primary); color: white; }
.csp-u-ea8e337c { width:14px;height:14px;border-radius:50%;background:var(--danger);flex-shrink:0;display:flex;align-items:center;justify-content:center; }
.csp-u-eaa09ebd { width: 1.3rem; height: 1.3rem; cursor: pointer; }
.csp-u-eaf0d33e { background:var(--color-primary-light); }
.csp-u-eb196769 { max-width: 560px; }
.csp-u-eb6e6d6f { max-height: 600px; }
.csp-u-eba923c4 { display: flex; gap: 8px; align-items: center; }
.csp-u-ec060bac { width: 200px; }
.csp-u-ec480b80 { background:#FCEBEB;color:#A32D2D;font-size:11px; }
.csp-u-ec68d56b { display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px; }
.csp-u-ec7c7569 { font-size: 16px; font-weight: 600; color: var(--color-success); margin: 0; }
.csp-u-ecf02ca0 { color: var(--color-module-quality); }
.csp-u-ee57caa4 { background:var(--color-surface);border:1px solid var(--color-border); }
.csp-u-ee9247b2 { width: 3rem; height: 3rem; }
.csp-u-eec39b08 { margin-bottom:8px;padding-bottom:8px; }
.csp-u-f0242232 { width:40%; }
.csp-u-f06cc417 { color:var(--color-module-documents); }
.csp-u-f0fb0637 { width: 22%; }
.csp-u-f1be2832 { font-size: 0.875rem; font-style: italic; }
.csp-u-f1f88ed0 { color:var(--color-danger);white-space:nowrap; }
.csp-u-f20182a0 { color:var(--color-primary); }
.csp-u-f38a951c { flex-shrink:0; }
.csp-u-f3b395c8 { display: block; padding: 10px 20px; background: var(--color-module-equipment); color: white; 
              text-decoration: none; border-radius: 6px; font-size: 14px; font-weight: 500; 
              text-align: center; transition: all 0.3s ease; margin-top: auto; }
.csp-u-f44f8a06 { font-size: 0.82rem; color: var(--color-text-muted); margin-bottom: 0.4rem; }
.csp-u-f49557bf { color: var(--color-primary-dark); }
.csp-u-f4f5786d { font-size:12px;color:var(--color-text-muted);font-weight:600; }
.csp-u-f5605611 { width:95px; }
.csp-u-f5ee3d4f { max-height: 600px; overflow-y: auto; }
.csp-u-f68c82f1 { font-size: 48px; color: var(--color-border); }
.csp-u-f6f9c4f7 { background:var(--color-success-bg); }
.csp-u-f6fad117 { font-size: 1.5rem; font-weight: 700; color: #fff; margin-bottom: 0.25rem; }
.csp-u-f7a64d87 { display: flex; flex-direction: column; gap: 1.1rem; }
.csp-u-f7b558f2 { width: 17%; }
.csp-u-f7c93d56 { border-color:var(--color-danger); }
.csp-u-f84d00a3 { max-width: 820px; }
.csp-u-f85cff2e { color:var(--color-warning); }
.csp-u-f8d354e0 { padding: 20px; }
.csp-u-f905465a { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1rem; }
.csp-u-f90e34ff { width: 17%; }
.csp-u-f9f0ebc1 { padding-top:10px; }
.csp-u-f9fa0734 { border-radius: 12px; }
.csp-u-fa011c12 { width: 16%; }
.csp-u-faa36dac { width:52px;height:52px;flex-shrink:0; }
.csp-u-fad4c478 { background: var(--color-danger-bg); color: var(--color-danger); }
.csp-u-faf40ddf { color: var(--color-info); border-color: var(--color-info); }
.csp-u-fc154e9b { border-left: 4px solid var(--color-module-standards); }
.csp-u-fc38f5ee { display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:0.65rem;font-weight:800;cursor:help;flex-shrink:0;line-height:1;user-select:none;text-decoration:none;font-style:normal; }
.csp-u-fd14ca83 { width:14%; }
.csp-u-fd838e55 { min-width: 90px; }
.csp-u-fda589fb { gap: 0.25rem; border-left: 3px solid var(--bs-primary); padding-left: 0.75rem; }
.csp-u-fda5afb1 { font-size:11px;padding:1px 6px; }
.csp-u-fddc1a87 { min-width: 70px; }
.csp-u-fee18fca { width: 5%; }
.csp-u-ff074145 { background: var(--color-warning-bg); color: var(--color-warning); }

/* CSP style-src Phase 2: pre-enumerated percentage utility classes
   for dynamic width/left values (0-100, integer). Use with
   {{ value|floatformat:0 }} in the class name to pick the right rule
   instead of an inline style="width: N%" attribute. */
.csp-pct-w-0{width:0%;}
.csp-pct-w-1{width:1%;}
.csp-pct-w-2{width:2%;}
.csp-pct-w-3{width:3%;}
.csp-pct-w-4{width:4%;}
.csp-pct-w-5{width:5%;}
.csp-pct-w-6{width:6%;}
.csp-pct-w-7{width:7%;}
.csp-pct-w-8{width:8%;}
.csp-pct-w-9{width:9%;}
.csp-pct-w-10{width:10%;}
.csp-pct-w-11{width:11%;}
.csp-pct-w-12{width:12%;}
.csp-pct-w-13{width:13%;}
.csp-pct-w-14{width:14%;}
.csp-pct-w-15{width:15%;}
.csp-pct-w-16{width:16%;}
.csp-pct-w-17{width:17%;}
.csp-pct-w-18{width:18%;}
.csp-pct-w-19{width:19%;}
.csp-pct-w-20{width:20%;}
.csp-pct-w-21{width:21%;}
.csp-pct-w-22{width:22%;}
.csp-pct-w-23{width:23%;}
.csp-pct-w-24{width:24%;}
.csp-pct-w-25{width:25%;}
.csp-pct-w-26{width:26%;}
.csp-pct-w-27{width:27%;}
.csp-pct-w-28{width:28%;}
.csp-pct-w-29{width:29%;}
.csp-pct-w-30{width:30%;}
.csp-pct-w-31{width:31%;}
.csp-pct-w-32{width:32%;}
.csp-pct-w-33{width:33%;}
.csp-pct-w-34{width:34%;}
.csp-pct-w-35{width:35%;}
.csp-pct-w-36{width:36%;}
.csp-pct-w-37{width:37%;}
.csp-pct-w-38{width:38%;}
.csp-pct-w-39{width:39%;}
.csp-pct-w-40{width:40%;}
.csp-pct-w-41{width:41%;}
.csp-pct-w-42{width:42%;}
.csp-pct-w-43{width:43%;}
.csp-pct-w-44{width:44%;}
.csp-pct-w-45{width:45%;}
.csp-pct-w-46{width:46%;}
.csp-pct-w-47{width:47%;}
.csp-pct-w-48{width:48%;}
.csp-pct-w-49{width:49%;}
.csp-pct-w-50{width:50%;}
.csp-pct-w-51{width:51%;}
.csp-pct-w-52{width:52%;}
.csp-pct-w-53{width:53%;}
.csp-pct-w-54{width:54%;}
.csp-pct-w-55{width:55%;}
.csp-pct-w-56{width:56%;}
.csp-pct-w-57{width:57%;}
.csp-pct-w-58{width:58%;}
.csp-pct-w-59{width:59%;}
.csp-pct-w-60{width:60%;}
.csp-pct-w-61{width:61%;}
.csp-pct-w-62{width:62%;}
.csp-pct-w-63{width:63%;}
.csp-pct-w-64{width:64%;}
.csp-pct-w-65{width:65%;}
.csp-pct-w-66{width:66%;}
.csp-pct-w-67{width:67%;}
.csp-pct-w-68{width:68%;}
.csp-pct-w-69{width:69%;}
.csp-pct-w-70{width:70%;}
.csp-pct-w-71{width:71%;}
.csp-pct-w-72{width:72%;}
.csp-pct-w-73{width:73%;}
.csp-pct-w-74{width:74%;}
.csp-pct-w-75{width:75%;}
.csp-pct-w-76{width:76%;}
.csp-pct-w-77{width:77%;}
.csp-pct-w-78{width:78%;}
.csp-pct-w-79{width:79%;}
.csp-pct-w-80{width:80%;}
.csp-pct-w-81{width:81%;}
.csp-pct-w-82{width:82%;}
.csp-pct-w-83{width:83%;}
.csp-pct-w-84{width:84%;}
.csp-pct-w-85{width:85%;}
.csp-pct-w-86{width:86%;}
.csp-pct-w-87{width:87%;}
.csp-pct-w-88{width:88%;}
.csp-pct-w-89{width:89%;}
.csp-pct-w-90{width:90%;}
.csp-pct-w-91{width:91%;}
.csp-pct-w-92{width:92%;}
.csp-pct-w-93{width:93%;}
.csp-pct-w-94{width:94%;}
.csp-pct-w-95{width:95%;}
.csp-pct-w-96{width:96%;}
.csp-pct-w-97{width:97%;}
.csp-pct-w-98{width:98%;}
.csp-pct-w-99{width:99%;}
.csp-pct-w-100{width:100%;}
.csp-pct-l-0{left:0%;}
.csp-pct-l-1{left:1%;}
.csp-pct-l-2{left:2%;}
.csp-pct-l-3{left:3%;}
.csp-pct-l-4{left:4%;}
.csp-pct-l-5{left:5%;}
.csp-pct-l-6{left:6%;}
.csp-pct-l-7{left:7%;}
.csp-pct-l-8{left:8%;}
.csp-pct-l-9{left:9%;}
.csp-pct-l-10{left:10%;}
.csp-pct-l-11{left:11%;}
.csp-pct-l-12{left:12%;}
.csp-pct-l-13{left:13%;}
.csp-pct-l-14{left:14%;}
.csp-pct-l-15{left:15%;}
.csp-pct-l-16{left:16%;}
.csp-pct-l-17{left:17%;}
.csp-pct-l-18{left:18%;}
.csp-pct-l-19{left:19%;}
.csp-pct-l-20{left:20%;}
.csp-pct-l-21{left:21%;}
.csp-pct-l-22{left:22%;}
.csp-pct-l-23{left:23%;}
.csp-pct-l-24{left:24%;}
.csp-pct-l-25{left:25%;}
.csp-pct-l-26{left:26%;}
.csp-pct-l-27{left:27%;}
.csp-pct-l-28{left:28%;}
.csp-pct-l-29{left:29%;}
.csp-pct-l-30{left:30%;}
.csp-pct-l-31{left:31%;}
.csp-pct-l-32{left:32%;}
.csp-pct-l-33{left:33%;}
.csp-pct-l-34{left:34%;}
.csp-pct-l-35{left:35%;}
.csp-pct-l-36{left:36%;}
.csp-pct-l-37{left:37%;}
.csp-pct-l-38{left:38%;}
.csp-pct-l-39{left:39%;}
.csp-pct-l-40{left:40%;}
.csp-pct-l-41{left:41%;}
.csp-pct-l-42{left:42%;}
.csp-pct-l-43{left:43%;}
.csp-pct-l-44{left:44%;}
.csp-pct-l-45{left:45%;}
.csp-pct-l-46{left:46%;}
.csp-pct-l-47{left:47%;}
.csp-pct-l-48{left:48%;}
.csp-pct-l-49{left:49%;}
.csp-pct-l-50{left:50%;}
.csp-pct-l-51{left:51%;}
.csp-pct-l-52{left:52%;}
.csp-pct-l-53{left:53%;}
.csp-pct-l-54{left:54%;}
.csp-pct-l-55{left:55%;}
.csp-pct-l-56{left:56%;}
.csp-pct-l-57{left:57%;}
.csp-pct-l-58{left:58%;}
.csp-pct-l-59{left:59%;}
.csp-pct-l-60{left:60%;}
.csp-pct-l-61{left:61%;}
.csp-pct-l-62{left:62%;}
.csp-pct-l-63{left:63%;}
.csp-pct-l-64{left:64%;}
.csp-pct-l-65{left:65%;}
.csp-pct-l-66{left:66%;}
.csp-pct-l-67{left:67%;}
.csp-pct-l-68{left:68%;}
.csp-pct-l-69{left:69%;}
.csp-pct-l-70{left:70%;}
.csp-pct-l-71{left:71%;}
.csp-pct-l-72{left:72%;}
.csp-pct-l-73{left:73%;}
.csp-pct-l-74{left:74%;}
.csp-pct-l-75{left:75%;}
.csp-pct-l-76{left:76%;}
.csp-pct-l-77{left:77%;}
.csp-pct-l-78{left:78%;}
.csp-pct-l-79{left:79%;}
.csp-pct-l-80{left:80%;}
.csp-pct-l-81{left:81%;}
.csp-pct-l-82{left:82%;}
.csp-pct-l-83{left:83%;}
.csp-pct-l-84{left:84%;}
.csp-pct-l-85{left:85%;}
.csp-pct-l-86{left:86%;}
.csp-pct-l-87{left:87%;}
.csp-pct-l-88{left:88%;}
.csp-pct-l-89{left:89%;}
.csp-pct-l-90{left:90%;}
.csp-pct-l-91{left:91%;}
.csp-pct-l-92{left:92%;}
.csp-pct-l-93{left:93%;}
.csp-pct-l-94{left:94%;}
.csp-pct-l-95{left:95%;}
.csp-pct-l-96{left:96%;}
.csp-pct-l-97{left:97%;}
.csp-pct-l-98{left:98%;}
.csp-pct-l-99{left:99%;}
.csp-pct-l-100{left:100%;}

/* CSP style-src Phase 2: objectives/objective_timeline.html -- finite,
   Python-computed color sets (apps/objectives/views.py), not arbitrary
   DB values. */
.csp-timeline-label{font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.csp-text-strike{text-decoration:line-through;}
.csp-timeline-label-overdue{color:#dc2626;}
.csp-timeline-label-done{color:#9ca3af;}
.csp-timeline-label-default{color:#374151;}
.csp-timeline-today-marker{position:absolute;top:0;bottom:0;width:2px;background:var(--color-danger);opacity:0.7;z-index:10;}
.csp-timeline-taskbar{position:absolute;top:4px;bottom:4px;min-width:6px;border-radius:3px;display:flex;align-items:center;padding:0 4px;}
.csp-timeline-bar-done{background:#4ade80;}
.csp-timeline-bar-overdue{background:#f87171;}
.csp-timeline-bar-progress{background:#fbbf24;}
.csp-timeline-bar-pending{background:#93c5fd;}
.csp-minw-2{min-width:2px;}

/* CSP style-src Phase 2: standards tree row indent (depth * 16px). */
.csp-indent-0{padding-left:0px;display:inline-block;}
.csp-indent-1{padding-left:16px;display:inline-block;}
.csp-indent-2{padding-left:32px;display:inline-block;}
.csp-indent-3{padding-left:48px;display:inline-block;}
.csp-indent-4{padding-left:64px;display:inline-block;}
.csp-indent-5{padding-left:80px;display:inline-block;}
.csp-indent-6{padding-left:96px;display:inline-block;}
.csp-indent-7{padding-left:112px;display:inline-block;}
.csp-indent-8{padding-left:128px;display:inline-block;}
.csp-indent-9{padding-left:144px;display:inline-block;}
.csp-indent-10{padding-left:160px;display:inline-block;}
.csp-indent-11{padding-left:176px;display:inline-block;}
.csp-indent-12{padding-left:192px;display:inline-block;}
.csp-indent-13{padding-left:208px;display:inline-block;}
.csp-indent-14{padding-left:224px;display:inline-block;}
.csp-indent-15{padding-left:240px;display:inline-block;}
.csp-indent-16{padding-left:256px;display:inline-block;}
.csp-indent-17{padding-left:272px;display:inline-block;}
.csp-indent-18{padding-left:288px;display:inline-block;}
.csp-indent-19{padding-left:304px;display:inline-block;}
.csp-indent-20{padding-left:320px;display:inline-block;}

/* CSP style-src Phase 2: admin dashboard module-accent cards.
   app.module_key is already computed server-side by _infer_module_key()
   (apps/core/navigation.py) from a fixed 14-value set -- see
   apps/core/views/admin_dashboard.py. Mirrors the --module-accent /
   border-left pattern already used by .dashboard-header--* below. */
.admin-card--risk        { --module-accent: var(--color-module-risk); border-left: 4px solid var(--color-module-risk); }
.admin-card--documents   { --module-accent: var(--color-module-documents); border-left: 4px solid var(--color-module-documents); }
.admin-card--audits      { --module-accent: var(--color-module-audits); border-left: 4px solid var(--color-module-audits); }
.admin-card--quality     { --module-accent: var(--color-module-quality); border-left: 4px solid var(--color-module-quality); }
.admin-card--standards   { --module-accent: var(--color-module-standards); border-left: 4px solid var(--color-module-standards); }
.admin-card--equipment   { --module-accent: var(--color-module-equipment); border-left: 4px solid var(--color-module-equipment); }
.admin-card--personnel   { --module-accent: var(--color-module-personnel); border-left: 4px solid var(--color-module-personnel); }
.admin-card--kpi         { --module-accent: var(--color-module-kpi); border-left: 4px solid var(--color-module-kpi); }
.admin-card--complaints  { --module-accent: var(--color-module-complaints); border-left: 4px solid var(--color-module-complaints); }
.admin-card--surveys     { --module-accent: var(--color-module-surveys); border-left: 4px solid var(--color-module-surveys); }
.admin-card--reports     { --module-accent: var(--color-module-reports); border-left: 4px solid var(--color-module-reports); }
.admin-card--environment { --module-accent: var(--color-module-environmental); border-left: 4px solid var(--color-module-environmental); }
.admin-card--projects    { --module-accent: var(--color-module-kpi); border-left: 4px solid var(--color-module-kpi); }
.admin-card--system      { --module-accent: var(--color-module-reports); border-left: 4px solid var(--color-module-reports); }

/* CSP style-src Phase 2: sidebar module dots. app.module_key /
   section.module_key are computed server-side by _infer_module_key()
   (apps/core/context_processors_simple.py:sidebar_items) from the same
   fixed 14-value set as the admin-card classes above. */
.sidebar-nav__dot--risk        { background: var(--color-module-risk); }
.sidebar-nav__dot--documents   { background: var(--color-module-documents); }
.sidebar-nav__dot--audits      { background: var(--color-module-audits); }
.sidebar-nav__dot--quality     { background: var(--color-module-quality); }
.sidebar-nav__dot--standards   { background: var(--color-module-standards); }
.sidebar-nav__dot--equipment   { background: var(--color-module-equipment); }
.sidebar-nav__dot--personnel   { background: var(--color-module-personnel); }
.sidebar-nav__dot--kpi         { background: var(--color-module-kpi); }
.sidebar-nav__dot--complaints  { background: var(--color-module-complaints); }
.sidebar-nav__dot--surveys     { background: var(--color-module-surveys); }
.sidebar-nav__dot--reports     { background: var(--color-module-reports); }
.sidebar-nav__dot--environment { background: var(--color-module-environmental); }
.sidebar-nav__dot--projects    { background: var(--color-module-kpi); }
.sidebar-nav__dot--system      { background: var(--color-module-reports); }

/* CSP style-src Phase 2: objectives status colours (apps/objectives/models.py
   ObjectivesPlan.status_colour_class / Objective.status_colour_class) --
   fixed 5- and 7-value sets, not arbitrary DB colors. Dot variants are a
   plain solid background; pill variants reproduce the original
   "background: HEX22; color: HEX;" ~13% opacity treatment. */
.csp-planstatus-draft     { background: #888780; }
.csp-planstatus-submitted { background: #BA7517; }
.csp-planstatus-approved  { background: #185FA5; }
.csp-planstatus-published { background: #1D9E75; }
.csp-planstatus-closed    { background: #444444; }
.csp-planstatus-draft-pill     { background: #88878022; color: #888780; }
.csp-planstatus-submitted-pill { background: #BA751722; color: #BA7517; }
.csp-planstatus-approved-pill  { background: #185FA522; color: #185FA5; }
.csp-planstatus-published-pill { background: #1D9E7522; color: #1D9E75; }
.csp-planstatus-closed-pill    { background: #44444422; color: #444444; }

.csp-objstatus-planned     { background: #185FA5; }
.csp-objstatus-inprogress  { background: #BA7517; }
.csp-objstatus-achieved    { background: #1D9E75; }
.csp-objstatus-partially   { background: #BA7517; }
.csp-objstatus-notachieved { background: #C0392B; }
.csp-objstatus-rolledover  { background: #534AB7; }
.csp-objstatus-cancelled   { background: #888780; }
.csp-objstatus-planned-pill     { background: #185FA522; color: #185FA5; }
.csp-objstatus-inprogress-pill  { background: #BA751722; color: #BA7517; }
.csp-objstatus-achieved-pill    { background: #1D9E7522; color: #1D9E75; }
.csp-objstatus-partially-pill   { background: #BA751722; color: #BA7517; }
.csp-objstatus-notachieved-pill { background: #C0392B22; color: #C0392B; }
.csp-objstatus-rolledover-pill  { background: #534AB722; color: #534AB7; }
.csp-objstatus-cancelled-pill   { background: #88878022; color: #888780; }

/* CSP style-src Phase 2: risk_management/risk_detail.html "Next step" bar --
   lifecycle_next.status is one of a small fixed set of step-state strings
   from apps/risk_management/services/risk_lifecycle.py, not arbitrary data. */
.csp-lifecycle-next { display:flex;align-items:center;gap:10px;border-radius:8px;padding:10px 14px;margin-bottom:1rem;border-width:1px;border-style:solid; }
.csp-lifecycle-next--blocked { background: rgba(239,68,68,0.08); border-color: var(--danger); }
.csp-lifecycle-next--overdue { background: rgba(245,158,11,0.08); border-color: var(--warning); }
.csp-lifecycle-next--default { background: rgba(102,158,215,0.08); border-color: var(--brand); }
.csp-lifecycle-icon { flex-shrink: 0; }
.csp-lifecycle-icon--blocked { color: var(--danger); }
.csp-lifecycle-icon--overdue { color: var(--warning); }
.csp-lifecycle-icon--default { color: var(--brand); }

/* CSP style-src Phase 2: users/login.html message banner --
   message.tags is a fixed Django messages framework value. */
.csp-login-message { border-radius: 8px; padding: 0.65rem 0.875rem; font-size: 0.85rem; margin-bottom: 1.25rem; display: flex; align-items: center; gap: 0.5rem; border-width: 1px; border-style: solid; }
.csp-login-message--error { background: var(--color-danger-bg,#FCEBEB); border-color: var(--color-danger,#C0392B); color: var(--color-danger,#C0392B); }
.csp-login-message--info  { background: var(--color-info-bg,#E6F1FB); border-color: var(--color-info,#185FA5); color: var(--color-info,#185FA5); }

/* CSP style-src Phase 2: audits/checklist_execution.html status select --
   item.status_color is a fixed 4-value Bootstrap-name enum
   (apps/audits/models/checklist.py ChecklistItem.status_color). The
   original "var(--bs-X)20" background-color was invalid CSS (can't append
   an alpha suffix after a var() call) and silently did nothing; this uses
   the project's own semantic background tokens instead, matching what was
   visually intended. */
.csp-checklist-status--success   { background-color: var(--color-success-bg); border-color: var(--color-success); }
.csp-checklist-status--danger    { background-color: var(--color-danger-bg); border-color: var(--color-danger); }
.csp-checklist-status--secondary { background-color: var(--color-neutral-bg); border-color: var(--color-neutral); }
.csp-checklist-status--warning   { background-color: var(--color-warning-bg); border-color: var(--color-warning); }

.csp-riskstatus-open         { color: #ffc107; }
.csp-riskstatus-in-progress  { color: #0dcaf0; }
.csp-riskstatus-mitigated    { color: #198754; }
.csp-riskstatus-closed       { color: #6c757d; }
.csp-riskstatus-accepted     { color: #adb5bd; }
.csp-riskstatus-default      { color: #888; }

.csp-guidance-box { border-radius:6px;padding:8px 10px;margin-bottom:10px;font-size:0.75rem;line-height:1.5;border-width:1px;border-style:solid; }
.csp-guidance-box--warning { background:rgba(245,158,11,0.08); border-color:var(--warning); }
.csp-guidance-box--info { background:rgba(102,158,215,0.08); border-color:var(--brand); }
.csp-guidance-box--success { background:rgba(31,138,112,0.08); border-color:var(--accent); }
.csp-guidance-box--default { background:var(--surface-2); border-color:var(--border); }

.csp-swatch-bg { background: var(--bg); }
.csp-swatch-sidebar-bg { background: var(--sidebar-bg); }
.csp-swatch-card-border { background: var(--card-border); }
.csp-swatch-text { background: var(--text); }
.csp-swatch-text-muted { background: var(--text-muted); }
.csp-swatch-accent-blue { background: var(--accent-blue); }
.csp-swatch-accent-purple { background: var(--accent-purple); }
.csp-swatch-accent-yellow { background: var(--accent-yellow); }
.csp-swatch-accent-green { background: var(--accent-green); }
.csp-swatch-tile-1 { background: var(--tile-1); }
.csp-swatch-tile-2 { background: var(--tile-2); }
.csp-swatch-tile-3 { background: var(--tile-3); }
.csp-swatch-tile-4 { background: var(--tile-4); }
.csp-swatch-tile-5 { background: var(--tile-5); }
.csp-swatch-tile-6 { background: var(--tile-6); }
.csp-swatch-tile-7 { background: var(--tile-7); }
.csp-swatch-tile-8 { background: var(--tile-8); }
.csp-swatch-tile-9 { background: var(--tile-9); }

.csp-color-swatch--h120 { height: 120px; }
.csp-color-swatch--h100 { height: 100px; }
.csp-color-swatch--h80-bordered { height: 80px; border: 1px solid var(--color-border); }

.csp-palette-primary-bg { background-color: #3E7391; }
.csp-palette-primary-fg { background-color: #FFE4B5; }
.csp-palette-accent-emerald { background-color: #22C55E; }
.csp-palette-accent-amber { background-color: #FACC15; }
.csp-palette-success { background-color: #10B981; }
.csp-palette-warning { background-color: #F59E0B; }
.csp-palette-error { background-color: #EF4444; }
.csp-palette-info { background-color: #3B82F6; }
.csp-palette-white { background-color: #FFFFFF; }
.csp-palette-gray-50 { background-color: #F9FAFB; }
.csp-palette-gray-200 { background-color: #E5E7EB; }
.csp-palette-gray-500 { background-color: #6B7280; }
.csp-palette-gray-900 { background-color: #111827; }
.csp-palette-black { background-color: #000000; }

.csp-kpicat-border-default { border-left-color: #185FA5; }
.csp-riskcat-bg-default { background: var(--color-text-muted); }
.csp-docsection-color-default { color: var(--color-text-muted); }
.csp-docsection-border-default { border-color: var(--color-text-muted) !important; }
.csp-docsection-bg-default { background-color: var(--color-text-muted); }
.csp-tplblock-swatch { display: inline-block; width: 20px; height: 20px; border: 1px solid var(--color-border); vertical-align: middle; }

.csp-uiconfig-swatch { width: 24px; height: 24px; border: 1px solid var(--color-border); }
.csp-uiconfig-swatch--border { border-color: var(--color-text-muted); }
.csp-uicfg-default--brand-bg { background-color: var(--color-primary); }
.csp-uicfg-default--brand-fg { background-color: var(--color-warning-bg); }
.csp-uicfg-default--primary-color { background-color: var(--color-info); }
.csp-uicfg-default--secondary-color { background-color: var(--color-text-muted); }
.csp-uicfg-default--success-color { background-color: var(--color-success); }
.csp-uicfg-default--border-color { background-color: var(--color-border); }
