@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";:root{--bg:#f3f6fb;--surface:#fff;--surface-muted:#f1f4f9;--surface-strong:#e8eef8;--sidebar:#1b2433;--sidebar-muted:#2a3446;--text:#0f172a;--text-muted:#64748b;--border:#e2e8f0;--accent:#2563eb;--accent-soft:#e1ecff;--success:#22c55e;--success-soft:#dcfce7;--warning:#f59e0b;--warning-soft:#ffedd5;--shadow:0 20px 45px -35px #0f172a59}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--text);background:radial-gradient(1200px 600px at 10% 0,#f9fbff 0%,#f3f6fb 45%,#eef2f8 100%);margin:0;font-family:Manrope,Segoe UI,sans-serif}button,input,select{font:inherit}.qms-app{align-items:flex-start;gap:0;min-height:100vh;display:flex}.qms-sidebar{color:#e2e8f0;background:linear-gradient(#1b2433 0%,#1a2230 100%);border-right:1px solid #94a3b826;flex-direction:column;flex:0 0 260px;width:260px;height:100vh;padding:24px 18px;display:flex;position:sticky;top:0;overflow:hidden auto}.brand{align-items:center;gap:12px;margin-bottom:24px;display:flex}.brand-icon{color:#93c5fd;background:#2563eb33;border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.brand-icon svg{stroke:currentColor;fill:none;width:20px;height:20px}.brand-title{font-size:16px;font-weight:700}.brand-sub{color:#94a3b8;font-size:12px}.nav-group{margin-bottom:18px}.nav-label{letter-spacing:.12em;color:#7c8aa5;margin:12px 12px 8px;font-size:11px;display:block}.nav-item{color:#cbd5f5;cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;width:100%;padding:10px 12px;transition:background .2s,color .2s;display:flex}.nav-item .icon svg{stroke:currentColor;fill:none;width:18px;height:18px}.nav-item:hover{color:#f8fafc;background:#94a3b824}.nav-item.active{color:#f8fafc;background:#2563eb40}.nav-item.compact{gap:10px;padding:8px 12px;font-size:13px}.nav-item.compact .icon svg{width:15px;height:15px}.sidebar-footer{border-top:1px solid #94a3b826;margin-top:auto;padding-top:16px}.user-chip{align-items:center;gap:10px;display:flex}.user-chip .avatar{color:#e2e8f0;background:#94a3b833;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-weight:600;display:inline-flex}.user-chip strong{font-size:14px;display:block}.user-chip span{color:#94a3b8;font-size:12px}.qms-main{flex:1;min-width:0;padding:28px 36px 48px}.page{flex-direction:column;gap:22px;animation:.5s both fadeUp;display:flex}.page-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.page-header h1{margin:0 0 6px;font-size:28px;font-weight:700}.page-header p{color:var(--text-muted);margin:0}.page-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.company-switch{border:1px solid var(--border);background:var(--surface);color:var(--text);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.company-switch .icon svg{stroke:currentColor;fill:none;width:16px;height:16px}.btn{cursor:pointer;border:1px solid #0000;border-radius:12px;align-items:center;gap:8px;padding:10px 16px;font-weight:600;transition:transform .2s,box-shadow .2s;display:inline-flex}.btn .icon svg{stroke:currentColor;fill:none;width:16px;height:16px}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 18px 40px -30px #2563eb99}.btn.primary:hover{transform:translateY(-1px)}.btn.ghost{background:var(--surface);border-color:var(--border);color:var(--text)}.btn.small{border-radius:10px;padding:8px 12px;font-size:12px}.btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;justify-content:space-between;align-items:center;padding:16px;display:flex}.stat-card span{color:var(--text-muted);font-size:13px}.stat-card strong{margin-top:6px;font-size:22px;display:block}.stat-icon{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.stat-icon svg{stroke:currentColor;fill:none;width:20px;height:20px}.stat-card.tone-warning .stat-icon{background:var(--warning-soft);color:var(--warning)}.stat-card.tone-success .stat-icon{background:var(--success-soft);color:var(--success)}.panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px;padding:20px}.panel.subtle{background:var(--surface-muted)}.panel-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel-title{align-items:center;gap:10px;display:flex}.panel-title h2,.panel-title h3{margin:0;font-size:18px}.panel-icon{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.panel-icon.warning{background:var(--warning-soft);color:var(--warning)}.panel-icon svg{stroke:currentColor;fill:none;width:18px;height:18px}.panel-subtitle{color:var(--text-muted);font-size:13px}.pill-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.pill{background:var(--surface-muted);border-radius:14px;padding:12px 14px}.pill span{color:var(--text-muted);font-size:12px}.pill strong{margin-top:6px;font-size:20px;display:block}.pill-warning{background:var(--warning-soft);color:#9a5800}.pill-success{background:var(--success-soft);color:#166534}.split-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;display:grid}.cert-person-list{flex-direction:column;gap:10px;display:flex}.cert-person-card{border:1px solid var(--border);background:var(--surface-muted);border-radius:14px;gap:10px;padding:12px;display:grid}.cert-person-card strong{margin-bottom:4px;display:block}.cert-person-card span{color:var(--text-muted);font-size:12px}.cert-method-badges{flex-wrap:wrap;gap:6px;display:flex}.cert-form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.cert-method-selector{gap:8px;margin-top:12px;display:grid}.cert-method-selector>span{font-size:13px;font-weight:600}.cert-method-grid{grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:8px;display:grid}.cert-method-chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text);border-radius:999px;padding:8px 10px;font-size:12px;font-weight:600;transition:border-color .2s,background-color .2s,color .2s}.cert-method-chip:hover{border-color:#2563eb73}.cert-method-chip.active{background:var(--accent-soft);color:#1d4ed8;border-color:#2563eb8c}.cert-form-actions{justify-content:space-between;align-items:center;gap:12px;margin-top:10px;display:flex}.cert-table-wrapper{overflow-x:auto}.cert-table{border-collapse:collapse;width:100%;min-width:860px}.cert-table th,.cert-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 8px}.cert-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.cert-table td strong{font-size:14px}.cert-table tbody tr:hover{background:#f8fbff}.quick-list{flex-direction:column;gap:12px;display:flex}.quick-item{background:var(--surface-muted);text-align:left;cursor:pointer;border:none;border-radius:14px;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.quick-item strong{margin-bottom:4px;display:block}.quick-item span{color:var(--text-muted);font-size:13px}.quick-icon{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.quick-icon.warning{background:var(--warning-soft);color:var(--warning)}.quick-icon svg{stroke:currentColor;fill:none;width:18px;height:18px}.info-card{background:var(--surface-muted);border:1px solid var(--border);border-radius:14px;margin-top:12px;padding:14px}.info-card strong{margin-bottom:8px;display:block}.info-card p{color:var(--text-muted);margin:0;font-size:13px}.info-row{color:var(--text-muted);justify-content:space-between;font-size:13px;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.notice{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;margin:12px 0;padding:10px 12px;font-size:13px}.notice.warning{background:var(--warning-soft);color:#9a5800;border-color:#eab30859}.report-list{flex-direction:column;gap:12px;margin-top:12px;display:flex}.report-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;grid-template-columns:minmax(220px,2fr) minmax(140px,.8fr) minmax(220px,1fr);align-items:center;gap:16px;padding:16px;display:grid}.report-main strong{font-size:16px}.report-meta{color:var(--text-muted);flex-wrap:wrap;gap:12px;margin-top:6px;font-size:12px;display:flex}.report-status{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.report-note{color:var(--text-muted);font-size:12px}.report-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.welding-project-select{min-width:220px;max-width:320px}.qms-project-list{flex-direction:column;gap:12px;margin-top:12px;display:flex}.qms-project-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;grid-template-columns:minmax(220px,1.8fr) minmax(240px,1fr) minmax(260px,1.4fr);align-items:center;gap:14px;padding:16px;display:grid}.qms-project-card.linked{background:linear-gradient(#fff 0%,#f8fbff 100%);border-color:#2563eb73}.qms-project-main strong{font-size:15px}.qms-project-config{flex-direction:column;gap:8px;display:flex}.qms-project-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.qms-project-actions input[type=date]{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:8px 10px}.repair-year-input{max-width:120px}.repair-form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.repair-case-list{flex-direction:column;gap:12px;display:flex}.repair-case-card{border:1px solid var(--border);background:var(--surface);border-radius:14px;grid-template-columns:minmax(220px,1.7fr) minmax(220px,1fr) minmax(260px,1.2fr);align-items:center;gap:12px;padding:14px;display:grid}.repair-case-main strong{font-size:15px}.repair-case-status{flex-direction:column;gap:6px;display:flex}.repair-case-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.results-hero{color:#f8fbff;background:linear-gradient(130deg,#102340 0%,#1d3f70 58%,#2f67ac 100%);border:1px solid #bfdbfe59;border-radius:20px;grid-template-columns:minmax(260px,1.4fr) minmax(240px,1fr);gap:16px;padding:22px;display:grid;box-shadow:0 30px 65px -45px #0f172abf}.results-kicker{letter-spacing:.08em;text-transform:uppercase;background:#94c5ff38;border:1px solid #bfdbfe52;border-radius:999px;margin-bottom:10px;padding:5px 10px;font-size:11px;font-weight:700;display:inline-block}.results-hero h2{margin:0 0 8px;font-size:28px;line-height:1.15}.results-hero p{color:#e2efffe6;margin:0;font-size:14px}.results-hero p strong{color:#fff}.results-score-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-self:end;gap:10px;display:grid}.results-score-card{background:#ffffff1f;border:1px solid #bfdbfe66;border-radius:14px;padding:10px 12px}.results-score-card span{letter-spacing:.03em;color:#e0f2ffeb;font-size:11px;display:block}.results-score-card strong{margin-top:3px;font-size:24px;display:block}.results-score-card.warning{background:#f59e0b30;border-color:#f59e0b73}.results-score-card.risk{background:#f8717133;border-color:#f8717173}.results-metric-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.results-metric-card{border:1px solid var(--border);background:linear-gradient(#fff 0%,#f7faff 100%);border-radius:14px;gap:4px;padding:14px;display:grid}.results-metric-card span{color:var(--text-muted);font-size:12px}.results-metric-card strong{font-size:25px;line-height:1}.results-metric-card small{color:var(--text-muted);font-size:12px}.results-summary-list{flex-direction:column;gap:10px;display:flex}.results-summary-list p{background:var(--surface-muted);color:var(--text);border-left:3px solid #bfd7ff;border-radius:10px;margin:0;padding:10px 12px}.results-list-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.results-list-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:12px;display:block}.results-list-row{border:1px solid var(--border);background:var(--surface-muted);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:8px 10px;font-size:13px;display:flex}.results-list-row strong{font-size:14px}.results-iso-table-wrapper{overflow-x:auto}.results-iso-table{border-collapse:collapse;width:100%;min-width:780px}.results-iso-table th,.results-iso-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 8px;font-size:13px}.results-iso-table th{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:#f4f7fd;font-size:12px}.results-status{letter-spacing:.02em;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.results-status.ok{color:#166534;background:#dcfce7}.results-status.warning{color:#9a5800;background:#ffedd5}.results-status.risk{color:#991b1b;background:#fee2e2}.routine-role-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.routine-list{flex-direction:column;gap:10px;display:flex}.routine-item{border:1px solid var(--border);background:var(--surface-muted);border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.routine-item.done{background:#22c55e1f;border-color:#22c55e73}.routine-item input[type=checkbox]{margin-top:4px}.routine-item strong{margin-bottom:4px;display:block}.routine-item span{color:var(--text-muted);font-size:13px;display:block}.routine-item .routine-meta{margin-top:6px;font-size:12px}.iso-role-list{flex-direction:column;gap:10px;display:flex}.iso-role-row{border:1px solid var(--border);background:var(--surface-muted);border-radius:12px;gap:8px;padding:10px 12px;display:grid}.iso-role-row select{width:100%}.iso-role-title strong{display:block}.iso-checklist{flex-direction:column;gap:10px;display:flex}.iso-check-item{border:1px solid var(--border);background:var(--surface-muted);border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.iso-check-item input[type=checkbox]{margin-top:4px}.iso-check-item.done{background:#22c55e1f;border-color:#22c55e66}.iso-check-item strong{display:block}.workflow-step-row{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.workflow-step-chip{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);letter-spacing:.01em;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700}.workflow-step-chip.active{background:var(--accent-soft);color:#1d4ed8;border-color:#2563eb73}.workflow-step-chip.done{color:#166534;background:#22c55e24;border-color:#22c55e66}.material-invoice-list{flex-direction:column;gap:12px;margin-top:8px;display:flex}.material-invoice-card{border:1px solid var(--border);background:var(--surface-muted);border-radius:14px;gap:10px;padding:14px;display:grid}.material-invoice-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.material-link-meta{margin-top:8px}.material-invoice-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;display:grid}.iso-user-list{flex-direction:column;gap:10px;display:flex}.iso-user-row{border:1px solid var(--border);background:var(--surface-muted);border-radius:12px;gap:8px;padding:12px;display:grid}.status-chip{background:var(--surface-muted);color:var(--text-muted);border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.status-chip.warning{background:var(--warning-soft);color:#9a5800}.status-chip.success{background:var(--success-soft);color:#166534}.field{flex:1;min-width:220px;position:relative}.field.large{min-width:280px}.field input{border:1px solid var(--border);background:var(--surface);border-radius:12px;width:100%;padding:10px 14px 10px 38px}.field-icon{color:var(--text-muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.field-icon svg{stroke:currentColor;fill:none;width:16px;height:16px}select{border:1px solid var(--border);background:var(--surface);border-radius:12px;min-width:160px;padding:10px 14px}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:6px;padding:26px 16px;display:flex}.empty-state strong{color:var(--text);font-size:16px}.empty-icon{background:var(--surface-strong);color:#94a3b8;border-radius:16px;justify-content:center;align-items:center;width:46px;height:46px;display:inline-flex}.empty-icon svg{stroke:currentColor;fill:none;width:24px;height:24px}.muted{color:var(--text-muted);margin-top:6px}.info-block{background:var(--surface-muted);border-radius:12px;gap:10px;margin-top:12px;padding:12px;display:grid}.info-block span{color:var(--text-muted);font-size:12px}.info-block strong{font-size:14px;display:block}.list ul{color:var(--text-muted);margin:10px 0 0 18px}.list span{font-weight:600}.tabs{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;gap:6px;padding:6px;display:inline-flex}.tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.tab.active{background:var(--surface-muted);color:var(--text);font-weight:600}.tab .icon svg{stroke:currentColor;fill:none;width:16px;height:16px}.section-title{margin:8px 0 0}.company-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.company-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;gap:6px;padding:14px;display:grid}.company-header{justify-content:space-between;align-items:center;display:flex}.company-actions{gap:6px;display:flex}.icon-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none}.icon-btn svg{stroke:currentColor;fill:none;width:16px;height:16px}.icon-btn.danger{color:#ef4444}.modal-backdrop{z-index:1000;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;width:min(720px,100%);max-height:90vh;padding:22px;overflow:auto;box-shadow:0 40px 90px -50px #0f172a73}.modal-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.modal-header h3{margin:0;font-size:22px}.modal-body{flex-direction:column;gap:16px;display:flex}.modal-actions{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.modal-grid{flex-direction:column;gap:14px;display:flex}.form-row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.form-field{flex-direction:column;gap:8px;display:flex}.form-label{font-weight:600}.required{color:var(--accent);margin-left:4px}.input,.textarea,select.input{border:1px solid var(--border);background:var(--surface);border-radius:12px;width:100%;padding:10px 12px}.textarea{resize:vertical;min-height:120px}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (width<=1024px){.qms-app{flex-direction:column}.qms-sidebar{flex-flow:wrap;flex:0 auto;gap:16px;width:100%;height:auto;position:static;overflow:visible}.nav-group{flex:1;min-width:200px}.qms-main{padding:24px}}@media (width<=720px){.page-header{flex-direction:column;align-items:flex-start}.company-switch{justify-content:space-between;width:100%}.stat-grid,.split-grid,.pill-grid,.company-grid{grid-template-columns:1fr}.qms-sidebar{padding:18px 14px}.report-card{grid-template-columns:1fr}.results-hero{grid-template-columns:1fr;padding:18px}.results-hero h2{font-size:24px}.results-score-grid,.qms-project-card{grid-template-columns:1fr}.qms-project-actions{justify-content:flex-start}.repair-case-card{grid-template-columns:1fr}.repair-case-actions,.report-actions{justify-content:flex-start}.cert-form-actions{flex-direction:column;align-items:flex-start}.cert-method-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.welding-project-select{width:100%;max-width:none}.material-invoice-head{flex-direction:column;align-items:flex-start}}
