.semi-gauge[data-v-c895dfc5]{position:relative;width:min(100%,420px);margin:0 auto}.semi-gauge__svg[data-v-c895dfc5]{display:block;width:100%;height:auto}.semi-gauge__track[data-v-c895dfc5]{stroke:#94a3b833}.semi-gauge__progress[data-v-c895dfc5]{transition:stroke-dashoffset .42s ease,stroke .18s ease}.semi-gauge__content[data-v-c895dfc5]{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;align-content:center;justify-items:center;gap:.25rem;padding-top:2.1rem;text-align:center;pointer-events:none}.semi-gauge__value[data-v-c895dfc5]{margin:0;font-size:clamp(2.2rem,5.5vw,3rem);font-weight:700;line-height:1;color:#f8fafc}.semi-gauge__status[data-v-c895dfc5]{margin:0;font-size:.75rem;letter-spacing:.1em;font-weight:700;color:#67e8f9}.semi-gauge__label[data-v-c895dfc5]{margin:0;font-size:.9rem;color:#cbd5e1}.semi-gauge__updated[data-v-c895dfc5]{margin:0;font-size:.75rem;color:#94a3b8}:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#e5e7eb;background:#0f172a}body{margin:0}a{color:inherit;text-decoration:none}.dashboard{max-width:1100px;margin:0 auto;padding:2rem}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;box-sizing:border-box}.auth-card{width:100%;max-width:420px}.auth-card h1{margin-top:0}.auth-form{display:grid;gap:.9rem;margin-top:1rem}.auth-field{display:grid;gap:.35rem}.auth-field span{color:#cbd5e1;font-weight:600}.auth-field input{background:#1e293b;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:.6rem}.auth-submit{background:#0c4a6e;color:#f8fafc;border:1px solid #38bdf8;border-radius:6px;padding:.65rem .9rem;cursor:pointer;font-weight:600}.auth-submit:disabled{opacity:.7;cursor:wait}.dashboard-header{display:flex;justify-content:space-between;align-items:start}.dashboard-header__actions{display:flex;align-items:center;gap:.75rem;justify-content:flex-end}.dashboard-nav{display:flex;align-items:center;gap:.5rem}.nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:2.2rem;padding:.4rem .75rem;border:1px solid #334155;border-radius:6px;background:#1e293b;color:#e2e8f0}.nav-link.router-link-active{background:#0c4a6e;border-color:#38bdf8}.nav-link--button{cursor:pointer;font:inherit}.language-switch{display:inline-flex;gap:.35rem;background:#0b1220;border:1px solid #334155;border-radius:8px;padding:.25rem}.language-switch button{background:#1e293b;color:#cbd5e1;border:1px solid transparent;border-radius:6px;padding:.35rem .65rem;font-weight:600;cursor:pointer}.language-switch button.active{background:#0c4a6e;border-color:#38bdf8;color:#f8fafc}.subtitle{color:#93c5fd}.banner{padding:.75rem;border-radius:8px;margin:1rem 0}.banner.stale{background:#7c2d12}.banner.error{background:#7f1d1d}.banner.success{background:#14532d}.score-card,.signal-card,.json-panel{border:1px solid #334155;border-radius:10px;padding:1rem;background:#111827}.score-card h2{font-size:2.5rem;margin:0}.signals{margin-top:1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.signal-card{display:block}.timeline-list{list-style:none;padding:0;margin:1rem 0 0}.timeline-item{border-top:1px solid #334155;padding:1rem 0}.timeline-item:first-child{border-top:0;padding-top:0}.timeline-item__head{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.timeline-item__headline{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.timeline-type{display:inline-flex;align-items:center;padding:.2rem .5rem;border-radius:999px;background:#0c4a6e;color:#e0f2fe;font-size:.75rem;font-weight:700;text-transform:uppercase}.timeline-item__meta{color:#94a3b8;margin:.4rem 0}.timeline-item__details{display:grid;gap:.6rem;margin-top:.75rem}.timeline-detail{border:1px solid #334155;border-radius:8px;background:#0f172a}.timeline-detail summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;padding:.75rem;color:#e2e8f0}.timeline-detail__preview{color:#94a3b8;font-size:.85rem;text-align:right}.timeline-item__payload{overflow-x:auto;white-space:pre-wrap;padding:.75rem;margin:0;border-top:1px solid #334155}.timeline-pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem}.timeline-pagination button{background:#1e293b;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:.45rem .75rem}.timeline-empty{color:#94a3b8;margin-top:1rem}.signal-card__head{display:flex;justify-content:space-between;align-items:center}.signal-card__value{font-size:1.8rem;margin:.5rem 0}.signal-card__details{color:#cbd5e1;min-height:2rem}.status-badge{text-transform:uppercase;font-size:.7rem;padding:.2rem .5rem;border-radius:999px}.status-ok{background:#064e3b}.status-degraded{background:#78350f}.status-error{background:#7f1d1d}.sparkline{width:100%;height:70px;background:#1e293b;border-radius:6px}.signal-chart{width:100%;height:240px;background:#1e293b;border-radius:6px}.skeleton-grid{margin-top:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.skeleton-card{height:180px;border-radius:10px;background:linear-gradient(90deg,#1f2937 25%,#334155 37%,#1f2937 63%);background-size:400% 100%;animation:shimmer 1.3s infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.range-selector{display:flex;gap:.5rem;margin:1rem 0}.range-selector button{background:#1e293b;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:.4rem .8rem;cursor:pointer}.range-selector button.active{background:#0c4a6e}.back-link{display:inline-block;margin-bottom:1rem;color:#93c5fd}.json-panel pre{overflow-x:auto;white-space:pre-wrap}.map-card{margin-top:1rem;border:1px solid #334155;border-radius:10px;padding:1rem;background:#111827}.map-grid{position:relative;height:300px;border-radius:8px;background:linear-gradient(180deg,#1e293b,#0f172a)}.map-point{position:absolute;width:12px;height:12px;border-radius:999px;transform:translate(-50%,-50%);border:2px solid #e2e8f0}ul{padding-left:1rem}li{margin:.4rem 0;display:flex;gap:.5rem;align-items:center}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem;margin:1rem 0}.filters input,.filters select,.filters button{background:#1e293b;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:.5rem}.probability-card{margin-bottom:1rem}.probability-model-switch{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-top:.85rem}.probability-model-switch button{background:#1e293b;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:.45rem .55rem;cursor:pointer;font-size:.85rem}.probability-model-switch button.active{background:#0c4a6e;border-color:#38bdf8}.probability-meta{margin:0;color:#94a3b8;font-size:.9rem;margin-top:.75rem}.ratios-editor{margin-bottom:1rem}.ratios-editor__header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.ratios-editor__header h3{margin:0}.ratios-editor__header p{margin:0;color:#93c5fd}.ratios-table{width:100%;border-collapse:collapse;margin-top:.75rem}.ratios-table th,.ratios-table td{border-bottom:1px solid #334155;padding:.5rem;text-align:left;vertical-align:top}.ratios-table input,.ratios-table select{width:100%;box-sizing:border-box;background:#1e293b;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:.45rem}.ratio-meaning{min-width:14rem;white-space:pre-wrap;line-height:1.4;color:#cbd5e1}.ratio-meaning__input{width:100%;min-width:14rem;box-sizing:border-box;resize:vertical;background:#1e293b;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:.45rem;font:inherit;line-height:1.4}.field-error{display:block;margin-top:.25rem;color:#fca5a5}.ratio-action button,.ratios-editor__add{background:#1e293b;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:.4rem .8rem;cursor:pointer}.ratios-editor__add{margin-top:.75rem}.ratio-action__buttons{display:flex;gap:.5rem;flex-wrap:wrap}.ratio-action button:disabled{opacity:.55;cursor:not-allowed}.ratios-editor__hint{color:#fbbf24;margin:.75rem 0 0}.ratios-editor__explanation{margin:.75rem 0 0;color:#94a3b8;font-size:.88rem;line-height:1.4}.ratios-editor__explanation code{color:#cbd5e1}.admin-users-page{display:grid;gap:1rem}.admin-users-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.admin-users-hero h2{margin:0}.admin-users-hero__eyebrow{margin:0 0 .35rem;text-transform:uppercase;letter-spacing:.08em;color:#93c5fd;font-size:.78rem;font-weight:700}.admin-users-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;min-width:320px}.admin-users-metric{border:1px solid #334155;border-radius:10px;padding:.9rem;background:#0f172a;display:grid;gap:.25rem}.admin-users-metric strong{font-size:1.75rem}.admin-users-metric span{color:#94a3b8;font-size:.9rem}.user-form-card,.users-list-card{display:grid;gap:1rem}.user-form-card__header,.users-list-card__header{display:flex;justify-content:space-between;gap:1rem;align-items:center}.user-form-card__header h3,.users-list-card__header h3{margin:0}.user-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;align-items:end}.user-form-grid label{display:grid;gap:.35rem}.user-form-grid span{color:#cbd5e1;font-weight:600}.user-form-grid input,.user-form-grid select,.users-table input,.users-table select,.users-table button{background:#1e293b;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:.6rem;box-sizing:border-box;font:inherit}.users-table-wrapper{overflow-x:auto}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{border-bottom:1px solid #334155;padding:.75rem .5rem;text-align:left;vertical-align:top}.users-table th{color:#93c5fd;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em}.users-table__actions{display:flex;gap:.5rem;flex-wrap:wrap}.users-table__actions button{cursor:pointer}.users-meta{color:#94a3b8;font-size:.85rem;display:grid;gap:.35rem;min-width:12rem}@media (max-width: 720px){.dashboard-header{flex-direction:column;gap:.75rem}.admin-users-hero,.user-form-card__header,.users-list-card__header{flex-direction:column;align-items:flex-start}.admin-users-metrics,.user-form-grid{grid-template-columns:1fr;min-width:0}}@media (max-width: 900px){.ratios-editor__header{flex-direction:column;align-items:flex-start}.probability-model-switch{grid-template-columns:repeat(2,minmax(0,1fr))}.ratios-table{display:block;overflow-x:auto}}
