
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
    --bg:var(--bg-primary,#0d0d14);--bg-secondary:#151520;--bg-card:#1a1a26;--bg-input:#1c1c28;--bg-tertiary:#222233;
    --border:#2a2a3a;--border-focus:#8b5cf6;
    --accent:#3b82f6;--accent-glow:rgba(139,92,246,0.4);--accent-dark:#1d4ed8;--accent-light:#60a5fa;
    --text:var(--text-primary,#e0e0e0);--text-secondary:#b0b0b8;--text-muted:#707080;
    --live-red:#ef4444;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;
    --shadow:0 4px 20px rgba(0,0,0,0.3);
}
html{height:100%;background:var(--bg)}
body{min-height:100%;color:var(--text);font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;padding-bottom:40px}

/* Layout */
.page{max-width:1200px;margin:0 auto;padding:20px}
.page-title{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.page-title h1{font-size:22px;font-weight:800}
.page-title .badge{font-size:10px;padding:3px 10px;border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:rgba(231,76,60,0.15);color:#e74c3c}

/* Section tabs */
.section-tabs-shell{display:flex;align-items:center;gap:8px;margin-bottom:24px}
.section-tabs-wrap{flex:1;min-width:0;position:relative;display:flex;align-items:center}
.section-tabs{
    display:flex;gap:4px;background:var(--bg-secondary);border-radius:10px;padding:4px;
    overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1;min-width:0;
}
.section-tabs::-webkit-scrollbar{height:0}
.section-tabs button{
    flex-shrink:0;padding:8px 14px;border:none;border-radius:8px;font-size:11px;font-weight:600;
    background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--ov-dur-2, .15s);white-space:nowrap;
}
.section-tabs button.active{background:var(--bg-card);color:var(--accent-light)}
.section-tabs button:hover:not(.active){color:var(--text)}
.tabs-scroll-btn{
    width:34px;height:34px;flex:0 0 34px;border:none;border-radius:10px;display:flex;align-items:center;justify-content:center;
    background:var(--bg-secondary);color:var(--text-muted);cursor:pointer;transition:all var(--ov-dur-2, .15s);opacity:0;pointer-events:none;
}
.tabs-scroll-btn.visible{opacity:1;pointer-events:auto}
.tabs-scroll-btn:hover{color:var(--accent-light);background:var(--bg-card)}
.tabs-scroll-btn:disabled{opacity:.3;pointer-events:none}

/* Section */
.section{display:none;animation:sec-in var(--ov-dur-2, .2s) var(--ov-ease-out, ease)}
.section.active{display:block}
@keyframes sec-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* Stats grid */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}
.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:16px;text-align:center}
.stat-card .value{font-size:24px;font-weight:800;color:var(--accent-light)}
.stat-card .label{font-size:11px;color:var(--text-muted);margin-top:4px;display:flex;align-items:center;justify-content:center;gap:6px}

/* Cards */
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px}
.card h3{font-size:14px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.card .chart-wrap{position:relative;width:100%;max-height:320px}
.card canvas{max-height:320px}

/* Tables */
.admin-table{width:100%;border-collapse:collapse;font-size:13px}
.admin-table thead{border-bottom:2px solid var(--border)}
.admin-table th{padding:10px 8px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}
.admin-table td{padding:10px 8px;border-bottom:1px solid var(--border)}
.admin-table tbody tr:hover{background:rgba(139,92,246,0.03)}

/* Buttons */
.btn{padding:8px 16px;border:none;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:all var(--ov-dur-2, .15s);display:inline-flex;align-items:center;gap:6px}
.btn-primary{background:var(--accent-strong, var(--accent, #3472d8));color:var(--on-accent-strong, var(--on-accent,#fff))}
.btn-primary:hover{background:var(--accent-dark)}
.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text)}
.btn-outline:hover{border-color:var(--accent-dark);color:var(--accent-light)}
.btn-danger{background:rgba(231,76,60,0.1);color:var(--live-red-text, var(--live-red));border:1px solid rgba(231,76,60,0.2)}
.btn-danger:hover{background:rgba(231,76,60,0.2)}
.btn-success{background:rgba(46,204,113,0.1);color:var(--success-text, var(--success));border:1px solid rgba(46,204,113,0.2)}
.btn-success:hover{background:rgba(46,204,113,0.2)}
.btn-sm{padding:5px 10px;font-size:11px}
a.btn{text-decoration:none}
.btn:disabled{opacity:.4;cursor:not-allowed}

/* Form fields */
.form-field{margin-bottom:14px}
.form-field label{display:block;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px}
.form-field input,.form-field select,.form-field textarea{
    width:100%;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border);
    border-radius:8px;color:var(--text);font-size:13px;outline:none;transition:border-color var(--ov-dur-2, .2s);
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent)}
.form-field input:disabled,.form-field select:disabled,.form-field textarea:disabled{opacity:.55;cursor:not-allowed}

/* Input inline */
.input-row{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.input-row input,.input-row select{
    padding:8px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;
    color:var(--text);font-size:13px;outline:none;flex:1;min-width:160px;
}
.input-row input:focus{border-color:var(--accent)}

/* Badges */
.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}
.badge-success{background:rgba(46,204,113,0.15);color:#2ecc71}
.badge-danger{background:rgba(231,76,60,0.15);color:#e74c3c}
.badge-warning{background:rgba(245,158,11,0.15);color:var(--warning-text, #f59e0b)}
.badge-info{background:rgba(52,152,219,0.15);color:#3498db}
.badge-admin{background:rgba(231,76,60,0.15);color:#e74c3c}
.badge-global_mod{background:rgba(155,89,182,0.15);color:#9b59b6}
.badge-streamer{background:rgba(155,89,182,0.15);color:#9b59b6}
.badge-user{background:rgba(52,152,219,0.15);color:#3498db}

/* Loading */
.muted{color:var(--text-muted);font-size:13px}
.loading{text-align:center;padding:40px;color:var(--text-muted)}

/* Toast */
.toast-container{position:fixed;top:60px;right:16px;z-index:200000;display:flex;flex-direction:column;gap:8px}
.toast{padding:12px 18px;border-radius:8px;font-size:13px;font-weight:600;color:#fff;animation:toast-in var(--ov-dur-2, .25s) var(--ov-ease-out, ease);box-shadow:var(--shadow)}
.toast-success{background:#2ecc71}
.toast-error{background:#e74c3c}
.toast-info{background:#3498db}
.toast-warning{background:#f59e0b}
@keyframes toast-in{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}

/* Sub-tabs */
.sub-tabs{display:flex;gap:4px;margin-bottom:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:wrap}
.sub-tabs button{padding:6px 12px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-muted);font-size:11px;font-weight:600;cursor:pointer}
.sub-tabs button.active{background:var(--bg-card);color:var(--accent-light);border-color:var(--accent-dark)}

/* Setting rows */
.setting-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.setting-row label{flex:1}
.setting-row label strong{font-size:13px}
.setting-row label small{font-size:11px;color:var(--text-muted)}

/* Storage bars */
.storage-bar{background:var(--bg-tertiary);border-radius:4px;height:14px;overflow:hidden;position:relative}
.storage-bar-fill{height:100%;border-radius:4px;transition:width var(--ov-dur-4, .5s)}

/* Sensitive fields */
.sensitive-field{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.sensitive-field input{flex:1}
.sensitive-actions{display:flex;gap:4px}

@media(max-width:800px){
    .page{padding:12px}
    .stats-grid{grid-template-columns:repeat(2,1fr)}
    #analytics-overview > div[style*="grid-template-columns:1fr 1fr"],
    #analytics-service-detail > div[style*="grid-template-columns:1fr 1fr"],
    #analytics-service-detail > div[style*="grid-template-columns:1fr 1fr 1fr"]{display:block!important}
    #analytics-overview > div[style*="grid-template-columns"] > .card,
    #analytics-service-detail > div[style*="grid-template-columns"] > .card{margin-bottom:12px}
}
@media(max-width:500px){
    .stats-grid{grid-template-columns:1fr}
    .admin-table{font-size:11px}
    .section-tabs-shell{gap:6px}
    .tabs-scroll-btn{width:30px;height:30px;flex-basis:30px;border-radius:8px}
}
.ssh-prompt{background:var(--bg-elev,#111);border:1px solid var(--border,#2a2a2a);border-radius:8px;padding:14px;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:0.8rem;line-height:1.55;color:var(--text,#ddd);max-height:520px;overflow:auto;margin:0}


/* ── Platform AI (AI Exchange D11 S3, owner only): one long page, sticky index, no inner tabs ───────────────────── */
.platform-ai{max-width:1100px;min-width:0;overflow-wrap:anywhere}
.pai-head{margin-bottom:14px}
.pai-head h2{font-size:20px;font-weight:800;display:flex;align-items:center;gap:9px;margin-bottom:6px}
.pai-head p{max-width:820px;font-size:13px;line-height:1.55;color:var(--text-muted)}
.pai-index{position:sticky;top:0;z-index:30;display:flex;flex-wrap:wrap;gap:4px;padding:7px;margin:0 0 18px;background:color-mix(in srgb,var(--bg-secondary) 92%,transparent);border:1px solid var(--border);border-radius:10px;backdrop-filter:blur(9px)}
.pai-index a{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:5px 10px;border-radius:8px;color:var(--text-secondary);text-decoration:none;font-size:12px;font-weight:600;white-space:nowrap}
.pai-index a:hover,.pai-index a:focus-visible{background:var(--bg-card);color:var(--text)}
.pai-count{font-size:10px;font-weight:700;line-height:1;padding:4px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent-light)}
.pai-section{scroll-margin-top:64px;margin-bottom:30px}
.pai-section>h3{font-size:15px;font-weight:800;margin-bottom:5px}
.pai-section>p{font-size:12.5px;line-height:1.5;margin-bottom:12px}
.pai-section-head{display:block;margin-bottom:10px}
.pai-section-head h3{font-size:15px;font-weight:800;margin-bottom:3px}
.pai-section-head p{max-width:820px;font-size:12.5px;line-height:1.5;margin-top:2px}
.pai-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.pai-fresh[hidden]{display:none}
.pai-fresh{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 16px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--warning) 45%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--warning) 12%,var(--bg-card));font-size:13px;color:var(--text)}
.pai-warning{margin:0 0 16px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--warning) 40%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--warning) 8%,var(--bg-card));font-size:12.5px;line-height:1.55}
.pai-warning-row{margin-top:6px;color:var(--text-muted)}
.pai-error{padding:12px 14px;border:1px solid color-mix(in srgb,var(--danger) 45%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--danger) 9%,var(--bg-card));color:var(--text);font-size:13px}
.pai-rows{display:grid;gap:8px}
.pai-more{margin-top:8px}
.pai-more>summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--accent-light);min-height:34px;display:flex;align-items:center}
.pai-provider{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:center;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px}
.pai-provider-main{min-width:0}
.pai-provider-name{font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pai-kind{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 7px;border-radius:999px;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border)}
.pai-provider-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:5px;font-size:11.5px;color:var(--text-muted)}
.pai-provider-meta code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:var(--text-secondary)}
.pai-access{font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;border:1px solid transparent}
.pai-access.is-own_deployment{color:var(--success-text,var(--success));background:color-mix(in srgb,var(--success) 15%,transparent);border-color:color-mix(in srgb,var(--success) 35%,transparent)}
.pai-access.is-authorized_wholesale{color:var(--accent-light);background:color-mix(in srgb,var(--accent) 16%,transparent);border-color:color-mix(in srgb,var(--accent) 38%,transparent)}
.pai-access.is-customer_byok{color:#a78bfa;background:color-mix(in srgb,#8b5cf6 17%,transparent);border-color:color-mix(in srgb,#8b5cf6 40%,transparent)}
.pai-access.is-restricted{color:var(--warning-text,var(--warning));background:color-mix(in srgb,var(--warning) 14%,transparent);border-color:color-mix(in srgb,var(--warning) 38%,transparent)}
.pai-access.is-unverified{color:var(--text-muted);background:color-mix(in srgb,var(--text-muted) 14%,transparent);border-color:color-mix(in srgb,var(--text-muted) 32%,transparent)}
.pai-billing{font-size:11px;color:var(--text-secondary)}
.pai-keystate{margin-top:5px;font-size:11.5px;font-family:ui-monospace,Menlo,Consolas,monospace}
.pai-keystate.is-ok{color:var(--success-text,var(--success))}
.pai-keystate.is-muted{color:var(--text-muted)}
.pai-keystate.is-bad{color:var(--danger-text,var(--danger))}
.pai-provider-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px;max-width:430px}
.pai .btn.pai-quiet{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}
.pai .btn.pai-quiet:hover{border-color:var(--accent);color:var(--text)}
.pai .btn.pai-quiet.pai-quiet-danger{color:var(--danger-text,var(--danger));border-color:color-mix(in srgb,var(--danger) 45%,var(--border));background:transparent}
.pai .btn.pai-quiet.pai-quiet-danger:hover{background:color-mix(in srgb,var(--danger) 10%,transparent);border-color:var(--danger);color:var(--danger-text,var(--danger))}
.pai-switch{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);min-height:34px;padding-right:4px;cursor:pointer;user-select:none}
.pai-switch input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.pai-track{position:relative;display:inline-block;width:36px;height:20px;flex:0 0 36px;border-radius:10px;background:var(--border);border:1px solid var(--border);transition:background-color .16s ease,border-color .16s ease}
.pai-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.35);transition:transform .16s ease}
.pai-switch input:checked + .pai-track{background:var(--accent);border-color:var(--accent)}
.pai-switch input:checked + .pai-track .pai-knob{transform:translateX(16px)}
.pai-switch input:focus-visible + .pai-track{outline:2px solid var(--accent);outline-offset:2px}
.pai-switch input:disabled + .pai-track{opacity:.55;cursor:not-allowed}
.pai-switch input:disabled ~ .pai-switch-text{color:var(--text-muted)}
.pai-subhead{font-size:13px;font-weight:600;color:var(--text-secondary);margin:16px 0 8px}
.pai-group{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:16px 0 8px}
.pai-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:12px}
.pai-card-head h5{font-size:14px;font-weight:800;margin-bottom:3px}
.pai-card-head p{font-size:12px;line-height:1.5}
.pai-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px 18px;margin-top:14px}
.pai-card>.pai-fields:first-child{margin-top:0}
.pai-field{min-width:0;border-top:1px solid var(--border);padding-top:10px}
.pai-field-label{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12.5px;font-weight:600}
.pai-field-label label{font-weight:600;display:flex;align-items:center;gap:6px;flex-wrap:wrap;cursor:pointer}
.pai-field-label code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10.5px;font-weight:500;color:var(--text-muted);background:var(--bg-tertiary);padding:1px 6px;border-radius:5px}
.pai-field-desc{font-size:11px;line-height:1.45;margin-top:3px}
.pai-control{margin-top:7px;display:flex;flex-direction:column;gap:6px}
.pai-control input[type=text],.pai-control input[type=number],.pai-control input[type=url],.pai-control input:not([type]),.pai-control textarea,.pai-control select,.pai-list-add input{width:100%;min-height:36px;padding:7px 9px;background:var(--bg-input);border:1px solid var(--border);border-radius:7px;color:var(--text);font-size:13px;font-family:inherit}
.pai-field-desc+.pai-control{margin-top:6px}
.pai-chip-lock,.pai-chip-danger,.pai-chip-secret{font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;border:1px solid transparent}
.pai-chip-lock{color:var(--text-muted);background:var(--bg-tertiary);border-color:var(--border)}
.pai-chip-danger{color:var(--warning-text,var(--warning));background:color-mix(in srgb,var(--warning) 15%,transparent);border-color:color-mix(in srgb,var(--warning) 40%,transparent)}
.pai-chip-secret{color:#a78bfa;background:color-mix(in srgb,#8b5cf6 14%,transparent);border-color:color-mix(in srgb,#8b5cf6 36%,transparent)}
.pai-pin-line{font-size:11px;color:var(--text-muted);margin-top:2px}
.pai-marker{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;color:var(--success-text,var(--success));padding:7px 0;display:inline-block}
.pai-secret{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.pai-chips{display:flex;flex-wrap:wrap;gap:5px;min-height:26px}
.pai-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;background:var(--bg-tertiary);border:1px solid var(--border);font-size:11.5px;color:var(--text-secondary);max-width:100%}
.pai-chip>span{overflow-wrap:anywhere}
.pai-chip button{border:0;background:none;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1;padding:2px 3px}
.pai-chip button:hover{color:var(--danger-text,var(--danger))}
.pai-list-add{display:flex;gap:6px;align-items:center}
.pai-list-add input{flex:1;min-width:0}
.pai-money-input,.pai-unit-input{display:flex;align-items:center;gap:0;position:relative}
.pai-money-input .pai-prefix{position:absolute;left:10px;color:var(--text-muted);font-size:13px;pointer-events:none}
.pai-control .pai-money-input input{padding-left:24px}
.pai-unit{position:absolute;right:10px;color:var(--text-muted);font-size:11px;pointer-events:none}
.pai-unit-input input{padding-right:44px}
.pai-card-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:16px;padding-top:10px;border-top:1px solid var(--border)}
.pai-revision{font-size:11.5px;color:var(--text-muted)}
.pai-card-actions{display:flex;gap:6px;flex-wrap:wrap}
.pai-vault-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:9px}
.pai-vault-name{font-size:13px;font-weight:700;min-width:140px}
.pai-state{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px}
.pai-state.is-ok{color:var(--success-text,var(--success));background:color-mix(in srgb,var(--success) 15%,transparent)}
.pai-state.is-bad{color:var(--danger-text,var(--danger));background:color-mix(in srgb,var(--danger) 15%,transparent)}
.pai-state.is-muted{color:var(--text-muted);background:color-mix(in srgb,var(--text-muted) 14%,transparent)}
.pai-vault-row code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:var(--text-secondary)}
.pai-hint{flex-basis:100%;font-size:11px;color:var(--text-muted)}
.pai-dialog{width:min(560px,calc(100vw - 24px));max-height:min(86vh,760px);overflow:auto;border:1px solid var(--border);border-radius:14px;background:var(--bg-card);color:var(--text);padding:0;box-shadow:var(--shadow)}
.pai-dialog-wide{width:min(820px,calc(100vw - 24px))}
.pai-dialog::backdrop{background:rgba(0,0,0,.55);backdrop-filter:blur(2px)}
.pai-form{padding:18px;display:grid;gap:11px;min-width:0}
.pai-form h3{font-size:15px;font-weight:800}
.pai-form .ov-field{display:grid;gap:4px;min-width:0}
.pai-form .ov-field label{font-size:12px;font-weight:600;color:var(--text-secondary)}
.pai-form .ov-field input,.pai-form .ov-field select{width:100%;min-height:36px;padding:7px 9px;background:var(--bg-input);border:1px solid var(--border);border-radius:7px;color:var(--text);font-size:13px}
.pai-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-width:0}
.pai-form .ov-field-hint{font-size:10.5px;color:var(--text-muted);line-height:1.4}
.pai-dialog-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:6px}
.pai-confirm-line{font-size:13px;line-height:1.5;color:var(--text-secondary);padding:8px 10px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border)}
.pai-table-wrap{overflow:auto;max-width:100%}
.pai-table{width:100%;border-collapse:collapse;font-size:12px}
.pai-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}
.pai-table td{padding:7px 8px;border-bottom:1px solid var(--border);vertical-align:top;overflow-wrap:anywhere}
@media(max-width:800px){.pai-provider{grid-template-columns:minmax(0,1fr)}.pai-provider-actions{justify-content:flex-start;max-width:none}.pai-fields{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){.pai-form-row{grid-template-columns:minmax(0,1fr)}#platform-ai .btn,#platform-ai input:not([type=checkbox]):not([type=radio]),#platform-ai select,#platform-ai textarea,#platform-ai summary,#platform-ai .pai-index a,#platform-ai .pai-switch{min-height:44px}#platform-ai .pai-chip button{min-width:44px;min-height:44px}.pai-index{gap:2px;padding:5px}.pai-index a{padding:8px 9px;font-size:11.5px}.pai-section{scroll-margin-top:96px}.pai-dialog{width:calc(100vw - 16px)}.pai-form{padding:14px}.pai-card{padding:13px}}

/* Owner clarity: scoped to the legacy admin sections; AI and Setup own their forms. */
.admin-clarity { min-width:0; overflow-wrap:anywhere; }
.admin-clarity .admin-intro { max-width:76ch; margin:0 0 18px; color:var(--text-secondary); font-size:14px; line-height:1.6; }
.admin-clarity h3 + .admin-intro { margin-top:4px; }
.admin-clarity .admin-help { display:block; color:var(--text-secondary); font-size:13px; font-weight:400; text-transform:none; letter-spacing:normal; line-height:1.55; margin:6px 0 10px; }
.admin-clarity .admin-machine-key { display:inline-block; color:var(--text-muted); font-size:12px; font-weight:400; overflow-wrap:anywhere; }
.admin-clarity .admin-field { display:flex; flex:1 1 220px; flex-direction:column; min-width:0; max-width:100%; }
.admin-clarity :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { max-width:100%; min-height:44px; font-size:14px; }
.admin-clarity :is(button,.btn,summary) { min-height:44px; min-width:44px; white-space:normal; justify-content:center; }
.admin-clarity input[type=checkbox] { width:44px!important; height:44px!important; flex:0 0 44px; accent-color:var(--accent); }
.admin-clarity .setting-row { gap:12px; align-items:flex-start; }
.admin-clarity .setting-row label { flex:1; min-width:0; }
.admin-clarity :is(fieldset,.card,.form-group,.form-field) { min-width:0; }
.admin-clarity .admin-advanced { width:100%; margin:8px 0; padding:8px 12px; border:1px solid var(--border); border-radius:8px; }
.admin-clarity .admin-advanced summary { cursor:pointer; padding:10px 0; }
.admin-clarity .admin-advanced textarea { width:100%; }
.admin-clarity :is(code,pre) { overflow-wrap:anywhere; }
.admin-clarity pre { max-width:100%; overflow:auto; }
.admin-clarity .badge { text-transform:none; line-height:1.5; white-space:normal; }
.admin-clarity a:not(.btn) { color:var(--accent-light); text-underline-offset:3px; }
.section-tabs button { min-height:44px; font-size:12px; }
.tabs-scroll-btn { width:44px; height:44px; flex-basis:44px; }
@media(max-width:600px) {
    body:has(.admin-clarity.active) .page { padding:16px; }
    .admin-clarity .card { padding:16px; }
    .admin-clarity :is(.muted,small,.badge,th,td,.label) { font-size:12px!important; }
    .admin-clarity .setting-row { flex-wrap:wrap; }
    .admin-clarity .setting-row:not(:has(input[type=checkbox])) { flex-direction:column!important; align-items:stretch!important; }
    .admin-clarity .setting-row label { flex-basis:100%; }
    .admin-clarity :is(input:not([type=checkbox]),textarea,select:not([aria-hidden=true])) { width:100%!important; min-width:0!important; }
    .admin-clarity [style*="grid-template-columns"] { grid-template-columns:minmax(0,1fr)!important; }
    .admin-clarity [style*="display:flex"] { flex-wrap:wrap; min-width:0; }
    .admin-clarity :is(.admin-table,.data-table,.table) { display:block; max-width:100%; overflow-x:auto; }
    .admin-clarity :is(.admin-table,.data-table,.table) :is(th,td) { min-width:100px; white-space:normal!important; }
    .admin-clarity .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .admin-clarity .input-row { align-items:flex-start; }
    .admin-clarity .input-row > button { width:100%; }
    .admin-clarity .sub-tabs { flex-wrap:wrap; }
}
@media(max-width:600px) {
    #sec-users .admin-table thead { display:none; }
    #sec-users .admin-table :is(tbody,tr,td) { display:block; min-width:0; width:100%; }
    #sec-users .admin-table tr { padding:12px; margin:12px 0; border:1px solid var(--border); border-radius:10px; background:var(--bg-card); }
    #sec-users .admin-table td { border:0; padding:6px 0; }
    #sec-users .admin-table td::before { content:attr(data-label); display:block; color:var(--text-secondary); font-size:12px; font-weight:600; margin-bottom:4px; }
    #sec-users .admin-table td:last-child { display:flex!important; gap:8px!important; }
    #sec-users .admin-table td:last-child::before { flex-basis:100%; }
}
body:has(.admin-clarity.active) .ov-sel-search input { min-height:44px; }
body:has(.admin-clarity.active) .ov-sel-opt { min-height:44px; }
/* ── The clear admin panel (2026-11-07): machine keys small and grey, Advanced settings folds, forms for objects ── */
.pai-mkey{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10.5px;font-weight:500;color:var(--text-muted);background:var(--bg-tertiary);padding:1px 6px;border-radius:5px;vertical-align:middle;overflow-wrap:anywhere}
.pai-words{font-size:12px;margin-top:4px}
.pai-advanced{margin-top:14px;border-top:1px solid var(--border);padding-top:8px}
.pai-advanced>summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--accent-light);min-height:34px;display:flex;align-items:center}
.pai-subform{display:grid;gap:10px;padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--bg-secondary)}
.pai-subfield{display:grid;gap:4px;min-width:0}
.pai-subfield-label{font-size:12px;font-weight:600;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pai-subfield-label code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10.5px;font-weight:500;color:var(--text-muted)}
.pai-unit-line{font-size:11px}
.ov-what{font-size:11.5px;font-weight:600;color:var(--accent-light);text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.ov-what:hover,.ov-what:focus-visible{color:var(--text)}
.ov-what-text{font-size:13.5px;line-height:1.6;color:var(--text)}

/* ── Setup (owner only): one checklist, Needed first ─────────────────────────────────────────────────────── */
.setup{max-width:1100px;min-width:0;overflow-wrap:anywhere}
.setup-head{margin-bottom:18px}
.setup-head h2{font-size:20px;font-weight:800;display:flex;align-items:center;gap:9px;margin-bottom:6px}
.setup-head>p{max-width:820px;font-size:13px;line-height:1.55}
.setup-summary{margin:12px 0 6px;padding:10px 14px;border-radius:10px;background:var(--bg-card);border:1px solid var(--border);font-size:14px;color:var(--text)}
.setup-help{font-size:12px;margin:6px 0 10px}
.setup-group{margin:0 0 22px;scroll-margin-top:64px}
.setup-group>h3{font-size:15px;font-weight:800;margin-bottom:8px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.setup-count{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}
.setup-count.is-bad{color:var(--danger-text,var(--danger));background:color-mix(in srgb,var(--danger) 14%,transparent)}
.setup-count.is-warn{color:var(--warning-text,var(--warning));background:color-mix(in srgb,var(--warning) 15%,transparent)}
.setup-rows{list-style:none;display:grid;gap:8px}
.setup-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,340px);gap:10px 18px;align-items:start;padding:13px 14px;background:var(--bg-card);border:1px solid var(--border);border-left-width:4px;border-radius:10px}
.setup-row.is-needed{border-left-color:var(--danger)}
.setup-row.is-not_working{border-left-color:var(--warning)}
.setup-row.is-connected{border-left-color:var(--success)}
.setup-row.is-optional{border-left-color:var(--border)}
.setup-row-main{min-width:0}
.setup-row-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px}
.setup-state{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}
.setup-state.is-bad{color:var(--danger-text,var(--danger));background:color-mix(in srgb,var(--danger) 15%,transparent)}
.setup-state.is-warn{color:var(--warning-text,var(--warning));background:color-mix(in srgb,var(--warning) 16%,transparent)}
.setup-state.is-ok{color:var(--success-text,var(--success));background:color-mix(in srgb,var(--success) 15%,transparent)}
.setup-state.is-muted{color:var(--text-muted);background:color-mix(in srgb,var(--text-muted) 14%,transparent)}
.setup-what{font-size:12.5px;line-height:1.5;color:var(--text-secondary);margin-top:4px}
.setup-state-line{font-size:12px;line-height:1.5;margin-top:5px}
.setup-state-line.is-bad{color:var(--danger-text,var(--danger))}
.setup-state-line.is-warn{color:var(--warning-text,var(--warning))}
.setup-state-line.is-ok{color:var(--success-text,var(--success))}
.setup-state-line.is-muted{color:var(--text-muted)}
.setup-where{font-size:12px;line-height:1.5;margin-top:5px;color:var(--text-secondary)}
.setup-where a{color:var(--accent-light);font-weight:600}
.setup-from{font-size:11px;color:var(--text-muted);margin-top:6px;display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.setup-from code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10.5px;color:var(--text-muted);background:var(--bg-tertiary);padding:1px 6px;border-radius:5px;overflow-wrap:anywhere}
.setup-row-actions{display:grid;gap:8px;min-width:0}
.setup-row-actions>.btn{justify-self:start}
.setup-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:end;min-width:0}
.setup-input-label{grid-column:1/-1;font-size:11.5px;font-weight:600;color:var(--text-secondary)}
.setup-input input:not([type=checkbox]){width:100%;min-width:0;min-height:36px;padding:7px 9px;background:var(--bg-input);border:1px solid var(--border);border-radius:7px;color:var(--text);font-size:13px;font-family:inherit}
.setup-input input[type=checkbox]{width:20px;height:20px}
.setup-more-actions{display:flex;flex-wrap:wrap;gap:6px}
.setup .btn.pai-quiet{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}
.setup .btn.pai-quiet:hover{border-color:var(--accent);color:var(--text)}
.setup .btn.pai-quiet.pai-quiet-danger{color:var(--danger-text,var(--danger));border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}
.setup-pinned{font-size:12px}
.setup-result{grid-column:1/-1;font-size:12.5px;line-height:1.5;padding:8px 10px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border)}
.setup-result[hidden]{display:none}
.setup-result.is-ok{color:var(--success-text,var(--success))}
.setup-result.is-bad{color:var(--danger-text,var(--danger))}
.setup-result.is-muted{color:var(--text-muted)}
.setup-empty,.setup-foot{font-size:12.5px;line-height:1.55;margin:4px 0 12px;max-width:820px}
.setup-foot a{color:var(--accent-light)}
.setup-services ul{margin:6px 0 0 18px;font-size:12.5px;line-height:1.7;color:var(--text-secondary)}

@media(max-width:800px){.setup-row{grid-template-columns:minmax(0,1fr)}}
/* Phones: every control at least 44 px, nothing wider than the screen. */
@media(max-width:640px){
    .section-tabs button,.tabs-scroll-btn{min-height:44px}
    .tabs-scroll-btn{width:44px;flex-basis:44px}
    #sec-setup .btn,#sec-setup input:not([type=checkbox]),#sec-setup summary,.ov-what-dialog .btn,#platform-ai .pai-advanced>summary,
    #sec-ai .btn,#sec-ai input:not([type=checkbox]),#sec-ai select,#sec-ai textarea,#sec-ai summary,#sec-ai .ov-sel{min-height:44px}
    #sec-setup input[type=checkbox]{width:44px;height:44px}
    .ov-what,.setup-foot a{display:inline-flex;align-items:center;min-height:44px}
    .setup-where{display:grid;gap:0}
    .setup-where a{display:flex;align-items:center;gap:6px;min-height:44px;width:fit-content}
    .setup-input{grid-template-columns:minmax(0,1fr)}
    .setup-input .btn{justify-content:center}
    .setup-more-actions .btn{flex:1 1 auto;justify-content:center}
    .setup-row{padding:12px}
}

/* ── Platform AI: who answers, and what it costs (js/admin/inference.js, owner only; 2026-11-10) ─────────────────
   Calm cards, one per kind of work; the choice reads as a sentence before the controls. A tone is a tint and a soft
   glow, never a coloured bar (the kit's rule, Shared 4.196.0). */
.oin-lead{max-width:760px;font-size:12.5px;line-height:1.5;margin:-2px 0 10px}
.oin-note{font-size:11.5px;margin-top:6px}
.oin-bad{color:var(--danger-text,var(--danger))}
.oin-label{display:block;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--text-muted);margin-bottom:5px}
.oin-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:6px}
.oin-tile{display:grid;gap:3px;padding:13px 15px;border-radius:12px;background:var(--bg-card);border:1px solid var(--border)}
.oin-tile-k{font-size:11px;font-weight:700;color:var(--text-muted)}
.oin-tile b{font-size:22px;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums;line-height:1.15}
.oin-tile-sub{font-size:11.5px;color:var(--text-secondary);line-height:1.4}
.oin-tile.is-good{border-color:color-mix(in srgb,var(--success) 32%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--success) 11%,var(--bg-card)),var(--bg-card) 70%)}
.oin-tile.is-good b{color:var(--success-text,var(--success))}
.oin-kinds{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:8px 12px;align-items:start}
.oin-kind{border-radius:14px;background:var(--bg-card);border:1px solid var(--border);transition:border-color .18s ease,box-shadow .18s ease}
.oin-kind[open]{grid-column:1 / -1}
.oin-kind-body{display:grid;gap:12px;padding:0 16px 12px}
.oin-what{font-size:12px;line-height:1.45;margin-top:-2px}
.oin-kind.is-dirty{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:0 10px 28px -20px var(--accent)}
.oin-kind-head{display:flex;gap:11px;align-items:center;padding:12px 14px;min-height:44px;cursor:pointer;list-style:none;border-radius:14px}
.oin-kind-head::-webkit-details-marker{display:none}
.oin-kind-head:hover{background:color-mix(in srgb,var(--text) 3%,transparent)}
.oin-kind-head:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.oin-kind-t{flex:1;min-width:0;display:grid;gap:2px}
.oin-kind-t b{font-size:13.5px;font-weight:800}
.oin-chev{flex:none;font-size:12px;color:var(--text-muted);transition:transform .2s ease}
.oin-kind[open] .oin-chev{transform:rotate(180deg)}
.oin-kind-ic{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent-light);font-size:14px}
.oin-kind[data-kind="uncensored"] .oin-kind-ic{background:color-mix(in srgb,#8b5cf6 16%,transparent);color:#a78bfa}
.oin-now{font-size:12px;line-height:1.4;color:var(--text-secondary)}
.oin-kind.is-dirty .oin-now{color:var(--accent-light)}
.oin-locks{display:grid;gap:6px}
.oin-lock{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;border-radius:10px;font-size:12px;line-height:1.45;color:var(--text-secondary);background:linear-gradient(135deg,color-mix(in srgb,#8b5cf6 12%,transparent),color-mix(in srgb,#8b5cf6 4%,transparent) 65%);box-shadow:inset 0 0 0 1px color-mix(in srgb,#8b5cf6 22%,transparent)}
.oin-lock i{margin-top:2px;color:#a78bfa}
.oin-lock b{color:var(--text)}
.oin-row{min-width:0}
.oin-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 16px;align-items:start}
.oin-seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:11px;background:var(--bg-tertiary);border:1px solid var(--border);max-width:100%}
.oin-seg-opt{position:relative;cursor:pointer}
.oin-seg-opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.oin-seg-opt span{display:inline-flex;align-items:center;min-height:32px;padding:0 13px;border-radius:8px;font-size:12.5px;font-weight:650;color:var(--text-secondary);transition:background .15s ease,color .15s ease}
.oin-seg-opt:hover span{color:var(--text)}
.oin-seg-opt input:checked+span{background:var(--bg-card);color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.25),inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}
.oin-seg-opt input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}
.oin-seg-sm{margin-bottom:10px}
.oin-order{margin-top:10px}
.oin-order-list{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:5px}
.oin-order-list li{display:flex;align-items:center;gap:6px;padding:5px 6px 5px 8px;border-radius:9px;background:var(--bg-tertiary);border:1px solid var(--border);min-width:0}
.oin-order-n{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:11px;font-weight:800;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent-light)}
.oin-order-name{flex:1;min-width:0;font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oin-order-name code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;font-weight:500;color:var(--text-muted)}
.oin-icon{flex:none;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer}
.oin-icon:hover:not(:disabled){background:var(--bg-card);color:var(--text)}
.oin-icon.is-x:hover:not(:disabled){color:var(--danger-text,var(--danger))}
.oin-icon:disabled{opacity:.35;cursor:default}
.oin-add select,.oin-deny-add,.oin-money input,.oin-way-num input,.oin-limit-set input{min-height:36px;padding:7px 9px;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;color:var(--text);font:inherit;font-size:12.5px}
.oin-add select{width:100%}
.oin-deny-add{min-width:150px;flex:1 1 150px;max-width:260px}
.oin-money{position:relative;display:block}
.oin-money .pai-prefix,.oin-limit-set .pai-prefix{position:absolute;left:10px;bottom:10px;color:var(--text-muted);font-size:12.5px;pointer-events:none}
.oin-money input{width:100%;padding-left:22px}
.oin-ways{border-top:1px solid var(--border);padding-top:4px}
.oin-ways>summary{cursor:pointer;min-height:36px;display:flex;align-items:center;font-size:12.5px;font-weight:700;color:var(--text-secondary)}
.oin-ways>summary:hover{color:var(--text)}
.oin-ways-list{display:grid;gap:4px;padding-bottom:4px}
.oin-way{display:flex;gap:10px;align-items:flex-start;padding:7px 4px;border-radius:9px;cursor:pointer}
.oin-way:hover{background:color-mix(in srgb,var(--text) 3%,transparent)}
.oin-way .pai-switch{min-height:22px;padding:0}
.oin-way-text{display:grid;gap:1px;min-width:0;font-size:12.5px;line-height:1.4}
.oin-way-text b{font-weight:650}
.oin-way-text .muted{font-size:11.5px}
.oin-way-num{align-items:center;justify-content:space-between;cursor:default}
.oin-way-num input{width:120px;flex:none}
.oin-soon{display:inline-block;margin-left:4px;padding:0 7px;border-radius:999px;font-size:10px;font-weight:700;color:var(--text-muted);background:var(--bg-tertiary);border:1px solid var(--border);white-space:nowrap}
.oin-kind:not(.is-dirty) .oin-kind-foot{display:none}
.oin-kind-foot [hidden]{display:none}
.oin-kind-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;border-top:1px solid var(--border);padding-top:10px}
.oin-dirty-note{margin-right:auto;font-size:11.5px;font-weight:600;color:var(--accent-light)}
.oin-limits{display:grid;gap:8px}
.oin-limit{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(110px,1fr) minmax(110px,1fr) auto;gap:10px 16px;align-items:center;padding:11px 14px;border-radius:11px;background:var(--bg-card);border:1px solid var(--border)}
.oin-limit.is-off{opacity:.72}
.oin-limit-name{display:grid;gap:2px;min-width:0}
.oin-limit-name b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oin-limit-name .muted{font-size:11.5px}
.oin-limit-use{display:grid;gap:3px;font-size:12.5px;font-variant-numeric:tabular-nums}
.oin-limit-use .oin-label{margin:0}
.oin-meter{display:block;height:4px;border-radius:3px;background:var(--bg-tertiary);overflow:hidden}
.oin-meter span{display:block;height:100%;border-radius:3px;background:var(--accent)}
.oin-meter.is-near span{background:var(--warning)}
.oin-meter.is-over span{background:var(--danger)}
.oin-limit-set{display:flex;align-items:flex-end;gap:8px}
.oin-limit-set label{position:relative;display:block}
.oin-limit-set label .oin-label{margin-bottom:3px}
.oin-limit-set input{width:96px;padding-left:22px}
.oin-costs{display:grid;gap:6px}
.oin-cost{border-radius:11px;background:var(--bg-card);border:1px solid var(--border)}
.oin-cost>summary{display:grid;grid-template-columns:minmax(120px,200px) minmax(0,1fr) auto;gap:12px;align-items:center;min-height:44px;padding:6px 14px;cursor:pointer;list-style:none}
.oin-cost>summary::-webkit-details-marker{display:none}
.oin-cost-name{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oin-cost-bar{height:6px;border-radius:4px;background:var(--bg-tertiary);overflow:hidden}
.oin-cost-bar span{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 70%,transparent),var(--accent))}
.oin-cost-n{font-size:12.5px;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.oin-models{margin:0 14px 12px;width:calc(100% - 28px)}
.oin-models td{font-variant-numeric:tabular-nums}
@media(max-width:760px){
    .oin-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
    .oin-tile.is-good{grid-column:1 / -1}
    .oin-tile b{font-size:19px}
    .oin-two{grid-template-columns:minmax(0,1fr)}
    .oin-limit{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
    .oin-limit-name,.oin-limit-set{grid-column:1 / -1}
    .oin-limit-set label{flex:1}
    .oin-limit-set input{width:100%}
    .oin-cost>summary{grid-template-columns:minmax(0,1fr) auto}
    .oin-cost-bar{grid-column:1 / -1;grid-row:2}
}
@media(max-width:640px){
    #platform-ai .oin-seg-opt span,#platform-ai .oin-icon{min-height:44px;min-width:44px;justify-content:center}
    #platform-ai .oin-seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
    #platform-ai .oin-seg-opt span{width:100%}
    .oin-kind-body{padding:0 12px 12px}
    #platform-ai .oin-way{min-height:44px}
}

/* Bans as cards (2026-11-13): who, why, by whom and when, how long; lifting a ban is the owner's. */
.ban-count{margin:0 0 10px}
.ban-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}
.ban-card{display:grid;gap:8px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--bg-card,var(--bg-secondary))}
.ban-top{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.ban-who{font-weight:800;font-size:15px;color:var(--text-primary);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ban-who:hover{text-decoration:underline}
.ban-len{flex:none;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--text-primary) 8%,transparent);color:var(--text-secondary)}
.ban-len.is-perm{background:color-mix(in srgb,var(--danger,#ef4444) 16%,transparent);color:var(--danger,#f87171)}
.ban-reason{margin:0;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.ban-meta{font-size:12.5px}
.ban-meta .ban-who{font-size:12.5px;font-weight:700}
.ban-act{display:flex;justify-content:flex-end}
.ban-owner{font-size:12.5px}

/* Every on/off in the panel is the network's switch (2026-11-13, the owner: "the whole entire admin panel needs to use
   openvibe.design, especially for like these checkboxes"): core.js marks a lone checkbox role="switch" and ov-forms draws
   it; nothing here may stretch it to a field's height. */
.admin-clarity input[type=checkbox], .admin-clarity input[type=radio], #platform-ai input[type=checkbox] { min-height:0; }
