:root{--bg: #0d1117;--surface: #161b22;--surface-hover: #1c2128;--border: #30363d;--text: #e6edf3;--text-secondary: #8b949e;--accent: #f0883e;--accent-hover: #d2741e;--accent-subtle: rgba(240, 136, 62, .12);--danger: #f85149;--danger-subtle: rgba(248, 81, 73, .12);--success: #3fb950;--success-subtle: rgba(63, 185, 80, .12);--info: #58a6ff;--info-subtle: rgba(88, 166, 255, .12);--radius: 6px;--radius-lg: 10px;--shadow: 0 1px 3px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2);--sidebar-width: 240px;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--transition: .15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);min-height:100dvh;line-height:1.5}#app{display:flex;min-height:100dvh}.sidebar{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;overflow-y:auto}.sidebar-brand{padding:1.25rem 1rem;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-weight:600;font-size:1rem;color:var(--accent);letter-spacing:-.02em}.sidebar-brand small{display:block;font-size:.7rem;font-weight:400;color:var(--text-secondary);margin-top:.15rem;letter-spacing:0}.sidebar-nav{flex:1;padding:.5rem 0}.sidebar-section{padding:.75rem 1rem .25rem;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.sidebar-link{display:flex;align-items:center;gap:.6rem;padding:.5rem 1rem;font-size:.87rem;font-weight:500;color:var(--text-secondary);text-decoration:none;border-left:2px solid transparent;transition:color var(--transition),background var(--transition),border-color var(--transition);cursor:pointer}.sidebar-link:hover{color:var(--text);background:var(--surface-hover)}.sidebar-link.active{color:var(--accent);border-left-color:var(--accent);background:var(--accent-subtle)}.sidebar-link .icon{width:1.1rem;text-align:center;flex-shrink:0}.sidebar-footer{padding:1rem;border-top:1px solid var(--border);font-size:.78rem;color:var(--text-secondary)}.sidebar-footer .user-name{font-weight:600;color:var(--text)}.sidebar-footer .user-role{font-family:var(--font-mono);font-size:.68rem;color:var(--accent)}.sidebar-footer .logout-btn{margin-top:.5rem;background:none;border:1px solid var(--border);color:var(--text-secondary);padding:.3rem .6rem;border-radius:var(--radius);font-size:.75rem;cursor:pointer;transition:all var(--transition)}.sidebar-footer .logout-btn:hover{border-color:var(--danger);color:var(--danger)}.sidebar-legal{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.sidebar-legal a{color:var(--accent);text-decoration:none;font-size:.72rem}.sidebar-legal a:hover{text-decoration:underline}.sidebar-legal .legal-footer-links__sep{margin:0 .25rem;opacity:.35}.admin-login-legal{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border);text-align:center}.admin-login-legal a{color:var(--accent);text-decoration:none;font-size:.78rem}.legal-admin .legal-body{max-width:52rem}.legal-admin .legal-body h1{font-size:1.5rem;margin-bottom:.75rem}.legal-admin .legal-body h2{font-size:1.1rem;margin:1.25rem 0 .5rem;color:var(--text)}.legal-page-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border)}.cookie-json{font-size:.72rem;word-break:break-all;white-space:pre-wrap}.main-content{flex:1;margin-left:var(--sidebar-width);padding:2rem;min-height:100dvh}.page-header{margin-bottom:1.5rem}.page-header h1{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.page-header p{color:var(--text-secondary);font-size:.9rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem}.stat-card .stat-label{font-size:.78rem;color:var(--text-secondary);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.stat-card .stat-value{font-size:1.75rem;font-weight:700;font-family:var(--font-mono);color:var(--text)}.stat-card .stat-change{font-size:.75rem;margin-top:.25rem;font-weight:500}.stat-card .stat-change.positive{color:var(--success)}.stat-card .stat-change.negative{color:var(--danger)}.table-container{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}table{width:100%;border-collapse:collapse;font-size:.87rem}thead{background:#ffffff08}th{text-align:left;padding:.75rem 1rem;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap}td{padding:.65rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-hover)}td a{color:var(--accent);text-decoration:none}td a:hover{text-decoration:underline}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.82rem;font-weight:600;color:var(--text-secondary);margin-bottom:.35rem}.form-input,.form-select,.form-textarea{width:100%;padding:.55rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-sans);font-size:.87rem;transition:border-color var(--transition)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-subtle)}.form-textarea{min-height:100px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-hint{font-size:.75rem;color:var(--text-secondary);margin-top:.25rem}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:var(--radius);font-size:.87rem;font-weight:600;font-family:var(--font-sans);cursor:pointer;border:1px solid transparent;transition:all var(--transition);text-decoration:none;white-space:nowrap}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:transparent;color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:var(--surface-hover);border-color:var(--text-secondary)}.btn-danger{background:var(--danger-subtle);color:var(--danger);border-color:#f851494d}.btn-danger:hover{background:#f8514933}.btn-sm{padding:.3rem .6rem;font-size:.78rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-group{display:flex;gap:.5rem;align-items:center}.badge{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em}.badge-success{background:var(--success-subtle);color:var(--success)}.badge-danger{background:var(--danger-subtle);color:var(--danger)}.badge-info{background:var(--info-subtle);color:var(--info)}.badge-warning{background:var(--accent-subtle);color:var(--accent)}.toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.search-input{flex:1;min-width:200px;padding:.5rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.87rem}.search-input:focus{outline:none;border-color:var(--accent)}.filter-select{padding:.5rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.85rem}.pagination{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;font-size:.82rem;color:var(--text-secondary)}.pagination-buttons{display:flex;gap:.35rem}.pagination-buttons button{padding:.35rem .65rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.8rem;cursor:pointer;transition:all var(--transition)}.pagination-buttons button:hover:not(:disabled){border-color:var(--accent)}.pagination-buttons button:disabled{opacity:.4;cursor:not-allowed}.pagination-buttons button.active{background:var(--accent);border-color:var(--accent);color:#fff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;width:90%;max-width:500px;max-height:85vh;overflow-y:auto;box-shadow:0 8px 32px #0006}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.modal-header h2{font-size:1.1rem;font-weight:600}.modal-close{background:none;border:none;color:var(--text-secondary);font-size:1.25rem;cursor:pointer;padding:.25rem;line-height:1}.modal-close:hover{color:var(--text)}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border)}.login-container{display:flex;align-items:center;justify-content:center;min-height:100dvh;width:100%}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.5rem;width:100%;max-width:400px;box-shadow:var(--shadow)}.login-card .brand{font-family:var(--font-mono);font-weight:600;font-size:1.2rem;color:var(--accent);text-align:center;margin-bottom:.25rem}.login-card .subtitle{text-align:center;color:var(--text-secondary);font-size:.85rem;margin-bottom:1.75rem}.login-card .form-group{margin-bottom:1.25rem}.login-card .btn-primary{width:100%;justify-content:center;padding:.65rem}.alert{padding:.75rem 1rem;border-radius:var(--radius);font-size:.85rem;margin-bottom:1rem;border:1px solid}.alert-error{background:var(--danger-subtle);color:var(--danger);border-color:#f851494d}.alert-success{background:var(--success-subtle);color:var(--success);border-color:#3fb9504d}.alert-info{background:var(--info-subtle);color:var(--info);border-color:#58a6ff4d}.quick-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.quick-link{display:block;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);text-decoration:none;cursor:pointer;transition:border-color var(--transition),background var(--transition)}.quick-link:hover{border-color:var(--accent);background:var(--accent-subtle)}.quick-link .ql-title{font-weight:600;font-size:.9rem;margin-bottom:.2rem}.quick-link .ql-desc{font-size:.75rem;color:var(--text-secondary)}.detail-grid{display:grid;grid-template-columns:160px 1fr;gap:.5rem 1rem;font-size:.87rem}.detail-grid dt{color:var(--text-secondary);font-weight:500}.detail-grid dd{color:var(--text);font-family:var(--font-mono);font-size:.82rem}.upload-area{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:2rem;text-align:center;color:var(--text-secondary);font-size:.9rem;cursor:pointer;transition:border-color var(--transition)}.upload-area:hover{border-color:var(--accent)}.upload-area input[type=file]{display:none}.spinner{display:inline-block;width:1.25rem;height:1.25rem;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-state{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:3rem;color:var(--text-secondary)}.mono{font-family:var(--font-mono)}.text-muted{color:var(--text-secondary)}.text-accent{color:var(--accent)}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.text-sm{font-size:.82rem}.text-xs{font-size:.72rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.gap-1{gap:.5rem}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.hidden{display:none!important}.provider-registry{flex:1;min-width:0;padding:1.5rem 1.75rem 2.5rem;max-width:1200px}.provider-registry__hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.provider-registry__toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.provider-registry__search{min-width:200px;flex:1 1 200px}.provider-registry__filter{min-width:180px}.provider-section{margin-bottom:2rem}.provider-section__title{font-size:.95rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.75rem;padding-bottom:.35rem;border-bottom:1px solid var(--border)}.provider-section__grid{display:flex;flex-direction:column;gap:.65rem}.provider-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition),box-shadow var(--transition)}.provider-card:hover{border-color:#f0883e59}.provider-card--open{box-shadow:var(--shadow)}.provider-card__head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;background:transparent;border:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.provider-card__head:hover{background:var(--surface-hover)}.provider-card__title{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .65rem}.provider-card__name{font-weight:600}.provider-card__code{font-size:.78rem;padding:.1rem .35rem;border-radius:4px;background:var(--bg);border:1px solid var(--border)}.provider-card__chev{color:var(--text-secondary);font-size:.85rem;flex-shrink:0}.provider-card__body{padding:0 1rem 1rem;border-top:1px solid var(--border)}.provider-card__links{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:baseline;margin-bottom:.65rem}.provider-card__links .link-external{color:var(--accent);text-decoration:none;font-weight:500}.provider-card__links .link-external:hover{text-decoration:underline}.provider-card__notes{margin:.5rem 0;line-height:1.45}.provider-card__toggles{display:flex;flex-wrap:wrap;gap:.65rem 1rem;margin:.75rem 0}.provider-card .chk{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--text-secondary);cursor:pointer}.provider-card .chk input{accent-color:var(--accent)}.ssm-path{word-break:break-all;font-size:.78rem}.badge--category{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .45rem;border-radius:4px;background:var(--accent-subtle);color:var(--accent);border:1px solid rgba(240,136,62,.25)}
