:root{--bg: #f4f6f5;--surface: #ffffff;--sidebar: #0c3d3d;--sidebar-text: #d1e7e7;--sidebar-active: #1a5c5c;--text: #0f172a;--muted: #64748b;--border: #e2e8f0;--primary: #0d6e6e;--primary-hover: #0a5858;--success: #15803d;--error: #b91c1c;--warning: #b45309;--radius: 12px;font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}a{color:var(--primary)}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--sidebar);color:var(--sidebar-text);display:flex;flex-direction:column;padding:1.25rem 1rem}.sidebar__brand{display:flex;gap:.75rem;align-items:center;margin-bottom:2rem}.sidebar__logo{width:40px;height:40px;border-radius:10px;background:#1a7a7a;display:grid;place-items:center;font-weight:800;color:#fff}.sidebar__brand strong{display:block;color:#fff;font-size:.95rem}.sidebar__brand span{font-size:.7rem;opacity:.85}.sidebar__nav{display:flex;flex-direction:column;gap:.25rem;flex:1}.sidebar__link{color:var(--sidebar-text);text-decoration:none;padding:.65rem .85rem;border-radius:8px;font-size:.9rem}.sidebar__link:hover{background:#ffffff14}.sidebar__link--active{background:var(--sidebar-active);color:#fff;font-weight:600}.sidebar__footer{font-size:.75rem;opacity:.8;margin-top:auto}.sidebar__plan{margin:0 0 .25rem;color:#fff}.main{padding:1.5rem 2rem 3rem;overflow-x:auto}.page,.page-main{max-width:1100px}.page-grid--studio{display:grid;grid-template-columns:1fr 300px;gap:1.25rem;align-items:start}.page-header{margin-bottom:1.25rem}.page-header h1{margin:0 0 .35rem;font-size:1.65rem}.page-header p{margin:0;color:var(--muted)}.page-header--row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.page-header__actions{display:flex;gap:.75rem;align-items:center}.kpi-chips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:1rem 0 0}.kpi-chips li{font-size:.75rem;background:var(--surface);border:1px solid var(--border);padding:.25rem .6rem;border-radius:999px;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;margin-bottom:1rem}.card h2{margin:0 0 1rem;font-size:1rem}.card--row h2{margin-bottom:.75rem}.info-panel h2,.info-panel h3{font-size:.9rem;margin:0 0 .5rem}.info-list{margin:0 0 1rem;padding-left:1.1rem;font-size:.85rem;color:var(--muted)}.muted{color:var(--muted);font-size:.9rem}.error,.error-inline{color:var(--error)}.error-inline{font-size:.85rem}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:2.5rem 1.5rem;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.upload-zone:hover,.upload-zone--over{border-color:var(--primary);background:#f0fafa}.upload-zone__title{margin:0;font-weight:600}.upload-zone__hint{margin:.35rem 0 0;color:var(--muted);font-size:.85rem}.upload-zone__summary{display:flex;flex-direction:column;gap:.35rem;align-items:center}.lang-row{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}.lang-row label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:500}.lang-row select{min-width:160px;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border)}.model-grid{display:grid;gap:1rem}.model-grid--catalog{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.model-card{border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;cursor:pointer;transition:border-color .15s,box-shadow .15s}.model-card--static{cursor:default}.model-card:hover:not(.model-card--static){border-color:#94d4d4}.model-card--selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.model-card__head{display:grid;grid-template-columns:auto 1fr;gap:.5rem .75rem;align-items:start}.model-card__head h3{margin:0;font-size:1rem}.model-card__provider{margin:.15rem 0 0;font-size:.8rem;color:var(--muted)}.model-card__tags{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.35rem}.tag{font-size:.7rem;padding:.15rem .5rem;border-radius:999px;background:#e2e8f0;color:#334155}.tag--recommended{background:#ccfbf1;color:#0f766e}.model-card__summary{margin:.75rem 0 0;font-size:.85rem;color:var(--muted)}.model-card__description{margin:.5rem 0 0;font-size:.8rem;color:var(--muted)}.model-card__metrics{display:flex;gap:1.25rem;margin:.75rem 0 0;font-size:.85rem}.model-card__metrics dt{color:var(--muted);font-size:.7rem;text-transform:uppercase}.model-card__metrics dd{margin:.15rem 0 0;font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.55rem 1.1rem;border-radius:8px;font-weight:600;font-size:.9rem;border:none;cursor:pointer;text-decoration:none}.btn--primary{background:var(--primary);color:#fff}.btn--primary:hover{background:var(--primary-hover)}.btn--ghost{background:transparent;border:1px solid var(--border);color:var(--text)}.btn--small{padding:.35rem .75rem;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed}.form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.filter-label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem}.filter-label select{padding:.45rem .6rem;border-radius:8px;border:1px solid var(--border)}.table-wrap{overflow-x:auto}.jobs-table{width:100%;border-collapse:collapse;font-size:.875rem}.jobs-table th,.jobs-table td{text-align:left;padding:.75rem .5rem;border-bottom:1px solid var(--border);vertical-align:top}.jobs-table th{color:var(--muted);font-weight:600;font-size:.75rem;text-transform:uppercase}.jobs-table td strong{display:block}.jobs-table__progress{min-width:200px}.status-pill{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.04em;padding:.2rem .55rem;border-radius:999px}.status-waiting{background:#fef3c7;color:#92400e}.status-processing{background:#dbeafe;color:#1d4ed8}.status-success{background:#dcfce7;color:var(--success)}.status-error{background:#fee2e2;color:var(--error)}.status-upload{background:#ede9fe;color:#5b21b6}.progress-timeline{margin-top:.35rem}.progress-bar-track{height:4px;background:var(--border);border-radius:999px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--primary);border-radius:999px;transition:width .3s}.progress-stages{display:flex;justify-content:space-between;margin-top:.35rem}.progress-timeline--compact .progress-stages{margin-top:.2rem}.progress-stage{display:flex;flex-direction:column;align-items:center;flex:1;opacity:.35}.progress-stage--active{opacity:1}.progress-stage-dot{width:6px;height:6px;border-radius:50%;background:var(--border)}.progress-stage--active .progress-stage-dot{background:var(--primary)}.progress-stage--current .progress-stage-dot{box-shadow:0 0 0 3px #0d6e6e40}.progress-stage-label{font-size:.55rem;color:var(--muted);margin-top:.15rem}.coverage-legend{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.35rem}.dot--high{background:var(--success)}.dot--medium{background:#eab308}.dot--low{background:#f97316}.dot--none{background:#cbd5e1}.coverage-table td,.coverage-table th{padding:.6rem .75rem;border-bottom:1px solid var(--border);font-size:.85rem}.coverage-cell{text-align:center;white-space:nowrap}.coverage-cell--none{color:var(--muted)}.empty-state{text-align:center;color:var(--muted);padding:2rem}.back-link{display:inline-block;margin-bottom:.5rem;font-size:.9rem;text-decoration:none}.job-detail__status{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.job-detail__progress{font-size:1.5rem;font-weight:700}@media (max-width: 960px){.app-shell{grid-template-columns:1fr}.sidebar{flex-direction:row;flex-wrap:wrap;gap:.5rem}.sidebar__nav{flex-direction:row;flex-wrap:wrap}.sidebar__footer{display:none}.page-grid--studio{grid-template-columns:1fr}}
