:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f0f2f5;--bg-subtle:#e8eaef;--card:#fff;--card-alt:#f8f9fb;--field-bg:#f4f5f7;--border:#dfe1e6;--border-strong:#c1c7cf;--text:#1a1d21;--text-muted:#505661;--text-quiet:#7a8291;--warn:#f5b301;--warn-strong:#d99900;--warn-tint:#fef7e0;--ok:#16a34a;--ok-strong:#15803d;--ok-tint:#dcfce7;--ok-surface:#f0fdf4;--bad:#dc2626;--bad-strong:#b91c1c;--bad-tint:#fee2e2;--bad-surface:#fef2f2;--neutral:#6b7280;--neutral-strong:#4b5563;--neutral-tint:#e5e7eb;--neutral-surface:#f3f4f6;--brand-primary:#00b9aa;--brand-primary-80:#00b9aacc;--brand-primary-60:#00b9aa99;--brand-primary-40:#00b9aa66;--brand-primary-35:#00b9aa59;--brand-primary-10:#00b9aa1a;--brand-secondary:#00ade1;--brand-secondary-80:#00ade1cc;--brand-secondary-60:#00ade199;--brand-secondary-40:#00ade166;--brand-secondary-35:#00ade159;--brand-secondary-10:#00ade11a;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-pill:999px;--press-move:1px;--press-duration:.1s;--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014, 0 2px 4px #0000000a;--shadow-lg:0 10px 30px #0000001a, 0 4px 10px #0000000a;--shadow-modal:0 24px 64px #00000024, 0 8px 20px #00000014;--shadow-inset:inset 0 2px 4px #0000000f;--panel:var(--card);--panel-2:var(--card-alt);--panel-inset:var(--field-bg);--highlight:#fff;--shadow-color:#0000001a;--shadow-color-soft:#0000000f;--shadow-raised:var(--shadow-md);--shadow-raised-sm:var(--shadow-sm);--shadow-inset-sm:var(--shadow-inset)}@media (prefers-reduced-motion:reduce){:root{--press-move:0px;--press-duration:0s}}*,:before,:after{box-sizing:border-box}html,body,#app{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5;overflow-x:hidden}button{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--brand-secondary);text-decoration:none}a:hover,a:focus-visible{text-decoration:underline}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:2px solid var(--brand-secondary);outline-offset:2px;border-radius:var(--radius-sm)}.app-shell{grid-template-rows:auto 1fr auto;min-height:100dvh;display:grid}.app-header{background:linear-gradient(135deg, var(--brand-primary), var(--brand-secondary));color:#fff;box-shadow:var(--shadow-sm);z-index:10;align-items:center;gap:12px;padding:10px 16px;display:flex;position:relative}.app-header h1{color:#fff;margin:0;font-size:16px;font-weight:700}.app-header .tag{color:#fffc;margin:0;font-size:12px}.app-main{width:100%;max-width:1180px;margin:0 auto;padding:16px 12px 24px}.page{padding-bottom:96px;display:block}.page-title{align-items:center;gap:8px;margin:0 0 14px;font-size:20px;font-weight:700;display:flex}.bottom-nav{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border);z-index:20;grid-template-columns:repeat(3,1fr);gap:4px;padding:6px;display:grid;position:fixed;bottom:12px;left:12px;right:12px}.bottom-nav .nav-btn{border-radius:var(--radius-md);min-height:52px;color:var(--text-quiet);cursor:pointer;letter-spacing:.02em;transition:color var(--press-duration), background var(--press-duration);background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;padding:10px 6px;font-size:11px;font-weight:600;display:flex}.bottom-nav .nav-btn:hover{color:var(--text);background:var(--field-bg)}.bottom-nav .nav-btn.active{color:var(--brand-primary);background:var(--brand-primary-10)}@media (width>=720px){.bottom-nav{grid-template-columns:repeat(3,minmax(120px,160px));bottom:16px;left:auto;right:16px}}.panel{background:var(--card);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:16px}.panel.inset{background:var(--field-bg);box-shadow:var(--shadow-inset)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:12px;transition:box-shadow .15s,border-color .15s}.card:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong)}.card+.card{margin-top:8px}.btn{--btn-fg:var(--text);--btn-bg:var(--card);--btn-border:var(--border);--btn-hover:var(--field-bg);appearance:none;background:var(--btn-bg);color:var(--btn-fg);border:1px solid var(--btn-border);border-radius:var(--radius-md);cursor:pointer;min-width:44px;min-height:44px;box-shadow:var(--shadow-xs);transition:transform var(--press-duration), box-shadow var(--press-duration), background var(--press-duration);justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-weight:600;display:inline-flex}.btn:hover{background:var(--btn-hover);box-shadow:var(--shadow-sm)}.btn:active{transform:translateY(var(--press-move));box-shadow:var(--shadow-inset)}.btn[aria-pressed=true],.btn.is-active{box-shadow:var(--shadow-inset);background:var(--field-bg)}.btn.btn-primary{--btn-bg:var(--brand-primary);--btn-fg:#fff;--btn-border:var(--brand-primary);--btn-hover:var(--brand-primary-80)}.btn.btn-secondary{--btn-bg:var(--brand-secondary);--btn-fg:#fff;--btn-border:var(--brand-secondary);--btn-hover:var(--brand-secondary-80)}.btn.btn-warn{--btn-bg:var(--warn);--btn-fg:#1a1a1a;--btn-border:var(--warn-strong);--btn-hover:var(--warn-strong)}.btn.btn-danger{--btn-bg:var(--bad);--btn-fg:#fff;--btn-border:var(--bad-strong);--btn-hover:var(--bad-strong)}.btn.btn-ghost{--btn-bg:transparent;--btn-border:transparent;box-shadow:none}.btn.btn-ghost:hover{background:#0000000a}.btn.btn-sm{min-height:36px;padding:6px 10px;font-size:13px}.btn.btn-icon{border-radius:var(--radius-pill);min-width:44px;min-height:44px;padding:8px}.btn[disabled],.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;box-shadow:none;pointer-events:none}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field>label{color:var(--text-muted);font-size:13px;font-weight:600}.field>.hint{color:var(--text-quiet);font-size:12px}.text-input,.text-area,.select{border-radius:var(--radius-md);background:var(--field-bg);border:1px solid var(--border);min-height:44px;color:var(--text);width:100%;padding:10px 12px;transition:border-color .15s,box-shadow .15s}.text-input:focus,.text-area:focus,.select:focus{border-color:var(--brand-secondary);box-shadow:0 0 0 3px var(--brand-secondary-10);background:var(--card);outline:none}.text-area{resize:vertical;min-height:80px;font-family:inherit;line-height:1.5}.chip{border-radius:var(--radius-pill);background:var(--field-bg);border:1px solid var(--border);color:var(--text-muted);align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.chip.chip-fat{background:var(--brand-secondary);color:#fff;border-color:var(--brand-secondary)}.chip.chip-sat{background:var(--brand-primary);color:#fff;border-color:var(--brand-primary)}.chip.chip-both{background:linear-gradient(90deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);color:#fff;border-color:var(--brand-secondary)}.chip.chip-status-draft{background:var(--warn-tint);color:var(--warn-strong);border-color:var(--warn)}.chip.chip-status-completed{background:var(--ok-tint);color:var(--ok-strong);border-color:var(--ok)}.chip.chip-neutral{background:var(--neutral-tint);color:var(--neutral-strong);border-color:var(--neutral-tint)}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.grow{flex:auto;min-width:0}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.spacer{flex:auto}.muted{color:var(--text-muted)}.quiet{color:var(--text-quiet);font-size:13px}.strong{font-weight:700}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.small{font-size:12px}.nowrap{white-space:nowrap}.center{text-align:center}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-12{gap:12px}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:32px 18px;display:flex}.empty-state h2{margin:0;font-size:18px}.empty-state p{color:var(--text-muted);max-width:40ch;margin:0}.modal-backdrop{-webkit-backdrop-filter:blur(4px);z-index:100;background:#0f141e73;justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);border:1px solid var(--border);width:100%;max-width:min(520px,100%);max-height:min(90dvh,720px);padding:20px;overflow:auto}.modal h2{margin:0 0 6px;font-size:18px}.modal p{color:var(--text-muted);margin:0 0 12px}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.toast-region{z-index:200;pointer-events:none;flex-direction:column;gap:6px;display:flex;position:fixed;bottom:88px;left:12px;right:12px}.toast{pointer-events:auto;background:var(--card);border:1px solid var(--border);border-left:4px solid var(--brand-secondary);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:10px 14px;font-size:14px}.toast.error{border-left-color:var(--bad)}.toast.warn{border-left-color:var(--warn-strong)}.toast.ok{border-left-color:var(--ok)}.save-chip{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--card);min-height:30px;color:var(--text-quiet);align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.save-chip.state-saving{border-color:var(--brand-secondary);color:var(--brand-secondary)}.save-chip.state-saved{border-color:var(--ok);color:var(--ok-strong)}.save-chip.state-failed{border-color:var(--bad);color:var(--bad-strong)}.brand-band{background:linear-gradient(135deg, var(--brand-primary), var(--brand-secondary));color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid #00000014;padding:14px 16px}.brand-band h1,.brand-band h2{color:#fff;margin:0}.status-bank{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.status-btn{appearance:none;border:2px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--text-muted);cursor:pointer;min-height:60px;box-shadow:var(--shadow-xs);transition:transform var(--press-duration), box-shadow var(--press-duration), background var(--press-duration), border-color var(--press-duration);flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:12px 8px;font-weight:700;display:flex}.status-btn .status-icon{justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.status-btn .status-label{text-align:center;font-size:13px;line-height:1.15}.status-btn:hover{background:var(--field-bg);border-color:var(--border-strong)}.status-btn:active{transform:translateY(var(--press-move));box-shadow:var(--shadow-inset)}.status-btn.compliant .status-icon{color:var(--ok-strong)}.status-btn.non_compliant .status-icon{color:var(--bad-strong)}.status-btn.not_applicable .status-icon{color:var(--neutral-strong)}.status-btn.is-selected{color:#fff;box-shadow:var(--shadow-inset);transform:translateY(var(--press-move));border-color:#0000}.status-btn.is-selected .status-icon{color:#fff}.status-btn.compliant.is-selected{background:var(--ok);border-color:var(--ok-strong)}.status-btn.non_compliant.is-selected{background:var(--bad);border-color:var(--bad-strong)}.status-btn.not_applicable.is-selected{background:var(--neutral);border-color:var(--neutral-strong)}.status-bank.has-selection .status-btn:not(.is-selected){opacity:.6}.control-row{border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--shadow-xs);padding:12px;transition:border-color .15s}.control-row+.control-row{margin-top:8px}.control-head{align-items:center;gap:8px;display:flex}.control-head-fields{flex-wrap:wrap;flex:auto;align-items:center;gap:8px;min-width:0;display:flex}.control-head-actions{flex:none;align-items:center;gap:2px;display:flex}.control-code{border-radius:var(--radius-sm);background:var(--field-bg);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;width:120px;min-width:90px;padding:4px 8px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px}.control-name{color:var(--text);flex:200px;min-width:160px;font-weight:600}.control-expected{color:var(--text-muted);margin-top:6px;font-size:13px}.control-status{margin-top:10px}.control-details{gap:8px;margin-top:10px;display:grid}.control-row:has(.status-btn.compliant.is-selected){border-left-color:var(--ok)}.control-row:has(.status-btn.non_compliant.is-selected){border-left-color:var(--bad)}.control-row:has(.status-btn.not_applicable.is-selected){border-left-color:var(--neutral)}.control-row.is-bad{border-left-color:var(--bad);background:var(--bad-surface)}.control-row.missing-evidence{border-left-color:var(--warn-strong);background:var(--warn-tint)}.control-row.missing-evidence .missing-warning{color:var(--warn-strong);align-items:center;gap:4px;margin-top:6px;font-size:12px;font-weight:600;display:inline-flex}.reset-status{margin-top:8px}.photo-strip{gap:8px;padding:4px 0;display:flex;overflow-x:auto}.photo-tile{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--field-bg);width:88px;height:88px;box-shadow:var(--shadow-xs);flex:none;position:relative;overflow:hidden}.photo-tile img{object-fit:cover;width:100%;height:100%;display:block}.photo-tile .remove{border:1px solid var(--border);cursor:pointer;width:26px;height:26px;box-shadow:var(--shadow-xs);background:#ffffffeb;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:4px;right:4px}.photo-add{border-radius:var(--radius-md);border:2px dashed var(--border);background:var(--card);width:88px;min-width:88px;height:88px;min-height:88px;color:var(--text-quiet);cursor:pointer;flex:none;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex}.photo-add:hover{background:var(--field-bg);color:var(--text);border-color:var(--brand-secondary)}.photo-add[disabled]{cursor:not-allowed;opacity:.5}.accordion-item{border:1px solid var(--border);border-left:3px solid var(--brand-primary);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--shadow-xs);overflow:hidden}.accordion-item+.accordion-item{margin-top:8px}.accordion-header{cursor:pointer;text-align:left;width:100%;min-height:48px;color:var(--text);background:0 0;border:0;align-items:center;gap:8px;padding:10px 12px;font-size:14px;font-weight:700;display:flex}.accordion-header .chevron{transition:transform var(--press-duration);color:var(--text-quiet)}.accordion-item.open>.accordion-header .chevron{transform:rotate(90deg)}.accordion-body{padding:4px 12px 12px;display:none}.accordion-item.open>.accordion-body{display:block}.accordion-item.section{border-radius:var(--radius-md);border-left:3px solid var(--brand-secondary);background:var(--card-alt)}.accordion-item.section>.accordion-header{color:var(--text-muted);font-size:13px;font-weight:600}.indicator-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}@media (width>=720px){.indicator-strip{grid-template-columns:repeat(4,minmax(0,1fr))}}.indicator-tile{background:var(--field-bg);border-radius:var(--radius-md);border:1px solid var(--border);padding:10px 12px}.indicator-tile .k{color:var(--text-quiet);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:700}.indicator-tile .v{color:var(--text);margin-top:2px;font-size:22px;font-weight:700;line-height:1.1}.indicator-tile .sub{color:var(--text-quiet);font-size:12px}.indicator-tile.ok .v{color:var(--ok-strong)}.indicator-tile.bad .v{color:var(--bad-strong)}.indicator-tile.warn .v{color:var(--warn-strong)}.editor-sticky{z-index:15;background:var(--card);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-md);margin-bottom:12px;padding:10px 12px;position:sticky;top:0}.editor-sticky .row{flex-wrap:wrap}.editor-sticky h2{margin:0;font-size:16px;font-weight:700}.editor-overview{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);margin-bottom:12px;padding:10px}.editor-tools{margin-top:8px}.control-row{scroll-margin-top:100px;scroll-margin-bottom:100px}@media (width<=560px){.editor-sticky{padding:7px 8px}.editor-sticky .editor-title{display:none}.editor-sticky .btn{min-height:38px;padding:6px 9px;font-size:12px}.editor-overview{padding:8px}.editor-overview .indicator-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.editor-overview .indicator-tile{padding:6px}.editor-overview .indicator-tile .k{letter-spacing:0;font-size:8px}.editor-overview .indicator-tile .v{font-size:16px}.editor-overview .indicator-tile .sub{font-size:9px}.editor-tools{align-items:stretch}.editor-tools .btn{padding-inline:10px}}.lang-toggle{border-radius:var(--radius-pill);background:#fff3;border:1px solid #ffffff40;gap:2px;padding:3px;display:inline-flex}.lang-toggle button{border-radius:var(--radius-pill);color:#ffffffb3;cursor:pointer;letter-spacing:.06em;text-transform:uppercase;background:0 0;border:0;min-height:28px;padding:4px 10px;font-size:11px;font-weight:700;transition:background .15s,color .15s}.lang-toggle button.is-active{color:var(--brand-primary);background:#fff}.csv-preview{background:var(--field-bg);border-radius:var(--radius-md);border:1px solid var(--border);max-height:40vh;padding:10px;overflow:auto}.csv-preview ul{margin:0;padding-left:18px}.csv-preview li{margin:2px 0}.csv-errors{border-left:4px solid var(--bad);background:var(--bad-tint);color:var(--bad-strong);border-radius:var(--radius-md);margin-bottom:10px;padding:10px 12px}.csv-errors ul{margin:4px 0 0;padding-left:20px}.level-progress{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--card);color:var(--text-muted);white-space:nowrap;align-items:center;gap:4px;padding:3px 8px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.level-progress.compact{padding:2px 6px;font-size:11px}.level-progress .lp-count{font-variant-numeric:tabular-nums}.level-progress.state-empty{background:var(--field-bg);color:var(--text-quiet)}.level-progress.state-none{background:var(--field-bg);color:var(--text-muted)}.level-progress.state-partial{background:var(--warn-tint);color:var(--warn-strong);border-color:var(--warn)}.level-progress.state-complete{background:var(--ok-tint);color:var(--ok-strong);border-color:var(--ok)}.level-progress .lp-fail{border-left:1px solid var(--border);color:var(--bad-strong);font-variant-numeric:tabular-nums;align-items:center;gap:2px;margin-left:2px;padding-left:6px;display:inline-flex}
