:root{
  --bg:#f6f7fb;
  --panel:#ffffff;
  --text:#22242b;
  --muted:#737786;
  --line:#e5e7ef;
  --soft:#f0f2f7;
  --primary:#6d42e8;
  --primary-dark:#5630c9;
  --ok:#087443;
  --warn:#9a5b00;
  --bad:#b42318;
  --shadow:0 18px 50px rgba(28,31,42,.07);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0}
body.modal-open{overflow:hidden}
a{color:inherit}
.app{display:flex;min-height:100vh}
.sidebar{background:#17171d;color:#fff;display:flex;flex-direction:column;gap:24px;padding:24px;width:244px}
.brand{color:#fff;display:grid;gap:2px;text-decoration:none}
.brand span{color:#c7c8d4;font-size:13px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.brand strong{font-size:34px;line-height:.95}
.sidebar nav{display:grid;gap:8px}
.sidebar nav a,.logout{border-radius:12px;color:#dedfee;font-weight:800;padding:12px 13px;text-decoration:none}
.sidebar nav a.active,.sidebar nav a:hover,.logout:hover{background:#272733;color:#fff}
.logout{margin-top:auto}
.main{flex:1;min-width:0;padding:28px}
.main.public{align-items:center;display:flex;justify-content:center}
.topbar{align-items:center;display:flex;justify-content:space-between;margin-bottom:22px}
.topbar span{color:var(--muted);font-size:13px;font-weight:900;text-transform:uppercase}
.topbar h1{font-size:32px;line-height:1.05;margin:4px 0 0}
.topbar-account{align-items:center;display:flex;gap:12px;justify-content:flex-end}
.topbar-account strong{font-size:14px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:20px}
.card h2,.card h3{line-height:1.15;margin:0 0 12px}
.muted{color:var(--muted)}
.small{font-size:12px}
.grid{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}
.metric{font-size:36px;font-weight:950;letter-spacing:-.04em}
.hero{align-items:center;background:#19191f;border-radius:14px;color:#fff;display:flex;gap:18px;justify-content:space-between;margin-bottom:18px;padding:24px}
.hero h2{font-size:30px;line-height:1.05;margin:6px 0}
.hero p{color:#d8d9e4;margin:0;max-width:760px}
.hero-kicker{color:#c7bfff;font-size:12px;font-weight:950;letter-spacing:.1em;text-transform:uppercase}
.hero-actions,.actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}
.table-wrap{overflow:auto}
.table{background:#fff;border:1px solid var(--line);border-collapse:separate;border-radius:14px;border-spacing:0;overflow:hidden;width:100%}
.table th,.table td{border-bottom:1px solid var(--line);font-size:14px;padding:14px;text-align:left;vertical-align:middle}
.table th{background:#fafbfc;color:#555a66;font-size:12px;font-weight:950;letter-spacing:.03em;text-transform:uppercase}
.table tr:last-child td{border-bottom:0}
.form{display:grid;gap:14px}
.form-row{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
.field label{display:block;font-size:13px;font-weight:900;margin-bottom:7px}
.input,select,textarea{background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--text);font:inherit;padding:12px;width:100%}
textarea{min-height:96px;resize:vertical}
.check-field{align-items:center;color:#4c5160;display:flex;font-size:14px;font-weight:800;gap:9px}
.check-field input{height:18px;margin:0;width:18px}
.btn{align-items:center;background:var(--primary);border:0;border-radius:12px;color:#fff;cursor:pointer;display:inline-flex;font-weight:900;gap:8px;justify-content:center;padding:11px 16px;text-decoration:none}
.btn:hover{background:var(--primary-dark)}
.btn:focus-visible,.modal-close:focus-visible,.activation-bulk-actions button:focus-visible,.activation-search:focus-within{outline:3px solid rgba(109,66,232,.2);outline-offset:2px}
.btn:disabled{cursor:not-allowed;opacity:.48}
.btn.secondary{background:#eff0f7;color:#22242b}
.btn-small{font-size:13px;padding:9px 12px}
.btn.danger{background:var(--bad)}
.pill{align-items:center;background:#eff0f7;border-radius:999px;display:inline-flex;font-size:12px;font-weight:900;line-height:1;padding:7px 10px;white-space:nowrap}
.pill.ok{background:#e8f7ee;color:#075b31}
.pill.warn{background:#fff7e6;color:#8a4b00}
.pill.bad{background:#fdecec;color:#8d2020}
.code{background:#f0f1f5;border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;padding:3px 7px}
.notice{background:#fbfbff;border:1px dashed #cbcfe0;border-radius:14px;padding:14px}
.flash{border-radius:12px;margin-bottom:14px;padding:12px 14px}
.flash.ok{background:#e8f7ee;color:#075b31}
.flash.error{background:#fdecec;color:#8d2020}
.login-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:28px;width:min(430px,100%)}
.login-card h1{margin:0 0 6px}
.plugin-cell{display:grid;gap:7px;justify-items:start}
.plugin-cell strong{font-size:15px}
.dropzone{background:#fbfbff;border:1px dashed #c9cde0;border-radius:14px;display:grid;gap:8px;padding:18px}
.folder-upload-status{display:block;font-weight:800}
.folder-upload-status.upload-warning{color:var(--bad)}
.plugin-list-head{align-items:flex-end;display:flex;gap:18px;justify-content:space-between;margin-bottom:16px}
.plugin-list-head h2{margin-bottom:5px}
.plugin-list-head p{margin:0}
.plugin-list-total{background:var(--soft);border-radius:999px;color:#555a66;font-size:12px;font-weight:900;padding:7px 11px;white-space:nowrap}
.plugins-table{min-width:960px}
.plugins-table tbody .plugin-row:nth-child(odd) td{background:#fff}
.plugins-table tbody .plugin-row:nth-child(even) td{background:#f5f6f8}
.plugins-table tbody .plugin-row:hover td{background:#eeeff5}
.plugins-table .plugin-row td{transition:background .15s ease}
.activation-trigger{white-space:nowrap}
.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.modal-backdrop{align-items:center;background:rgba(18,20,28,.66);display:flex;inset:0;justify-content:center;opacity:0;padding:24px;pointer-events:none;position:fixed;transition:opacity .18s ease,visibility .18s ease;visibility:hidden;z-index:9999}
.modal-backdrop.is-open{opacity:1;pointer-events:auto;visibility:visible}
.modal-card{background:#fff;border:1px solid rgba(255,255,255,.65);border-radius:22px;box-shadow:0 28px 90px rgba(18,20,28,.34);display:flex;flex-direction:column;max-height:calc(100vh - 48px);overflow:hidden;transform:translateY(12px) scale(.985);transition:transform .18s ease;width:min(760px,100%)}
.modal-backdrop.is-open .modal-card{transform:translateY(0) scale(1)}
.modal-head{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;flex:0 0 auto;gap:16px;justify-content:space-between;padding:24px 24px 20px}
.modal-head h2{font-size:28px;letter-spacing:-.025em;line-height:1.05;margin:5px 0 7px}
.modal-head p{margin:0}
.modal-close{align-items:center;background:#eff0f7;border:0;border-radius:12px;color:#22242b;cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:28px;font-weight:900;height:42px;justify-content:center;line-height:1;width:42px}
.modal-close:hover{background:#e4e5ed}
.activation-form{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}
.activation-summary{align-items:center;background:#f7f5ff;border:1px solid #e6e0ff;border-radius:14px;display:flex;justify-content:space-between;margin:18px 24px 12px;padding:13px 15px}
.activation-summary>div{display:grid;gap:2px}
.activation-summary strong{font-size:18px}
.activation-summary>div>span{color:var(--muted);font-size:12px;font-weight:800}
.activation-summary-badge{background:#fff;border:1px solid #ded5ff;border-radius:999px;color:#5b36c7;font-size:11px;font-weight:900;padding:6px 9px}
.activation-tools{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:0 24px 12px}
.activation-search{align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--muted);display:flex;flex:1;gap:8px;max-width:390px;padding:0 12px}
.activation-search input{background:transparent;border:0;color:var(--text);font:inherit;min-width:0;outline:0;padding:10px 0;width:100%}
.activation-bulk-actions{display:flex;gap:5px}
.activation-bulk-actions button{background:transparent;border:0;border-radius:8px;color:#5b36c7;cursor:pointer;font-size:12px;font-weight:900;padding:8px}
.activation-bulk-actions button:hover{background:#f2efff}
.activation-list{border:1px solid var(--line);border-radius:14px;display:grid;margin:0 24px;max-height:300px;min-height:108px;overflow:auto}
.activation-item{align-items:center;background:#fff;cursor:pointer;display:grid;gap:11px;grid-template-columns:22px 1fr auto;min-height:64px;padding:11px 14px;position:relative}
.activation-item+.activation-item{border-top:1px solid var(--line)}
.activation-item:hover{background:#fafaff}
.activation-checkbox{height:1px;opacity:0;position:absolute;width:1px}
.activation-check{align-items:center;border:2px solid #c9ccda;border-radius:6px;display:flex;height:20px;justify-content:center;transition:.15s ease;width:20px}
.activation-checkbox:checked+.activation-check{background:var(--primary);border-color:var(--primary)}
.activation-checkbox:checked+.activation-check:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:9px;transform:rotate(45deg) translate(-1px,-1px);width:4px}
.activation-checkbox:focus-visible+.activation-check{outline:3px solid rgba(109,66,232,.22);outline-offset:2px}
.activation-site{display:grid;gap:3px;min-width:0}
.activation-site strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.activation-site small{color:var(--muted);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-status{background:#f0f1f5;border-radius:999px;color:#6b6f7c;font-size:11px;font-weight:900;padding:6px 8px}
.site-status.is-active{background:#e8f7ee;color:#075b31}
.activation-empty{color:var(--muted);font-size:13px;font-weight:800;padding:28px;text-align:center}
.activation-message{padding:16px 24px 18px}
.activation-message small{display:block;line-height:1.4;margin-top:6px}
.modal-actions{align-items:center;background:#fafbfc;border-top:1px solid var(--line);display:flex;flex:0 0 auto;justify-content:space-between;padding:15px 24px}
.unsaved-note{color:#7b4a00;font-size:12px;font-weight:900}
.review-hero{background:linear-gradient(135deg,#19191f,#2a243e);border-radius:18px;color:#fff;margin-bottom:18px;padding:26px;position:relative}
.review-hero h2{font-size:30px;letter-spacing:-.03em;margin:22px 0 6px}
.review-hero p{color:#d8d9e4;margin:0}
.review-back{background:transparent;border:0;color:#d9d4ff;cursor:pointer;font:inherit;font-size:13px;font-weight:900;padding:0;text-decoration:none}
.review-back:hover{text-decoration:underline}
.review-step{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:999px;font-size:11px;font-weight:900;padding:7px 10px;position:absolute;right:22px;top:22px;text-transform:uppercase}
.import-review-error{line-height:1.5}
.import-review-layout{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) 300px}
.import-review-card{padding:24px}
.import-review-head{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;gap:16px;justify-content:space-between;padding-bottom:20px}
.import-review-head h2{font-size:26px;letter-spacing:-.025em;margin:8px 0 10px}
.relation-pill,.channel-pill{border-radius:999px;display:inline-flex;font-size:11px;font-weight:950;letter-spacing:.03em;padding:7px 10px;text-transform:uppercase}
.relation-pill{background:#eeeafc;color:#5b36c7}
.relation-pill.relation-upgrade,.relation-pill.relation-new,.relation-pill.relation-first_version{background:#e8f7ee;color:#075b31}
.relation-pill.relation-downgrade{background:#fff3d6;color:#805000}
.relation-pill.relation-reinstall{background:#eaf2ff;color:#275c9e}
.channel-pill{background:var(--soft);color:#555a66}
.version-comparison{align-items:stretch;display:grid;gap:12px;grid-template-columns:1fr auto 1fr;margin:22px 0}
.version-box{border:1px solid var(--line);border-radius:16px;display:grid;gap:7px;padding:18px}
.version-box>span{color:var(--muted);font-size:11px;font-weight:950;letter-spacing:.04em;text-transform:uppercase}
.version-box strong{font-size:30px;letter-spacing:-.04em}
.version-box small{color:var(--muted);line-height:1.35}
.proposed-version{background:#f7f5ff;border-color:#dfd7ff}
.proposed-version strong{color:#5b36c7}
.version-arrow{align-self:center;background:var(--soft);border-radius:999px;font-size:20px;font-weight:900;height:36px;line-height:34px;text-align:center;width:36px}
.downgrade-warning,.reinstall-notice,.upgrade-notice{border-radius:14px;margin-bottom:20px;padding:15px 16px}
.downgrade-warning{background:#fff7e6;border:1px solid #f2d79e;color:#6f4600}
.downgrade-warning p,.reinstall-notice p{line-height:1.5;margin:6px 0 0}
.reinstall-notice{background:#eef5ff;border:1px solid #cee0f8;color:#244d7b}
.upgrade-notice{align-items:center;background:#eaf8ef;border:1px solid #ccebd8;color:#075b31;display:flex;gap:10px;justify-content:space-between}
.upgrade-notice span{font-size:13px}
.review-details{border:1px solid var(--line);border-radius:14px;margin:0 0 20px;overflow:hidden}
.review-details>div{display:grid;gap:14px;grid-template-columns:150px 1fr;padding:12px 14px}
.review-details>div+div{border-top:1px solid var(--line)}
.review-details dt{color:var(--muted);font-size:12px;font-weight:900}
.review-details dd{font-size:13px;margin:0;overflow-wrap:anywhere}
.review-publish-form{border-top:1px solid var(--line);padding-top:18px}
.downgrade-confirmation{align-items:flex-start;background:#fffaf0;border:1px solid #f2d79e;border-radius:12px;cursor:pointer;display:flex;font-size:13px;font-weight:800;gap:10px;line-height:1.45;margin-bottom:16px;padding:13px}
.downgrade-confirmation input{accent-color:var(--primary);flex:0 0 auto;height:18px;margin:1px 0 0;width:18px}
.review-actions{display:flex;gap:10px;justify-content:flex-end}
.review-side-card{position:sticky;top:24px}
.review-side-card h3{font-size:20px;margin:7px 0 12px}
.review-side-card ul{color:#555a66;display:grid;font-size:13px;gap:10px;line-height:1.45;margin:0;padding-left:19px}
.delete-plugin-zone{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}
.delete-plugin-zone summary{color:var(--bad);cursor:pointer;font-size:13px;font-weight:950}
.delete-plugin-zone p{color:var(--muted);font-size:12px;line-height:1.5}
.delete-plugin-zone .btn{font-size:12px;padding:10px 12px;width:100%}
.cleanup-hero{background:linear-gradient(135deg,#19191f,#3a2020)}
.cleanup-layout{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) 340px}
.cleanup-review-form{margin-top:18px}
.cleanup-rules h3{font-size:20px;margin:7px 0 12px}
.cleanup-rules ul{color:#555a66;display:grid;font-size:13px;gap:10px;line-height:1.5;margin:0;padding-left:19px}
.cleanup-metric{font-size:23px;font-weight:950;letter-spacing:-.025em;margin-top:7px}
.cleanup-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
.cleanup-preview-card{padding-bottom:0}
.cleanup-table{min-width:780px}
.cleanup-confirmation{background:#fff8f7;border-radius:0 0 14px 14px;border-top:1px solid #f1d0cc;margin:20px -20px 0;padding:20px}
.cleanup-check{background:#fff;border-color:#e8b8b2;color:#74231d;margin:0}
.cleanup-check input{accent-color:var(--bad)}
.cleanup-actions{justify-content:flex-end}
.right{text-align:right!important}
@media(max-width:1050px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-row{grid-template-columns:1fr}.hero{align-items:flex-start;display:grid}.sidebar{width:214px}.import-review-layout,.cleanup-layout{grid-template-columns:1fr}.review-side-card{position:static}}
@media(max-width:760px){.app{display:block}.sidebar{width:auto}.main{padding:18px}.grid{grid-template-columns:1fr}.topbar{align-items:flex-start;display:grid;gap:12px}.topbar-account{align-items:flex-start;display:grid;justify-content:start}.hero{padding:18px}.hero h2{font-size:24px}.table{min-width:760px}.modal-backdrop{align-items:flex-end;padding:0}.modal-card{border-radius:20px 20px 0 0;max-height:94vh;width:100%}.modal-head{padding:20px}.modal-head h2{font-size:23px}.activation-summary{margin:14px 16px 10px}.activation-tools{align-items:stretch;display:grid;padding:0 16px 10px}.activation-search{max-width:none}.activation-bulk-actions{justify-content:space-between}.activation-list{margin:0 16px;max-height:34vh}.activation-message{padding:14px 16px}.modal-actions{align-items:stretch;display:grid;gap:10px;padding:13px 16px}.modal-actions .actions{display:grid;grid-template-columns:1fr 1fr}.unsaved-note{text-align:center}.review-hero{padding:22px 18px}.review-hero h2{font-size:25px}.review-step{position:static;float:right}.import-review-card{padding:18px}.version-comparison{grid-template-columns:1fr}.version-arrow{margin:-3px auto;transform:rotate(90deg)}.upgrade-notice{align-items:flex-start;display:grid}.review-details>div{gap:5px;grid-template-columns:1fr}.review-actions{display:grid;grid-template-columns:1fr 1fr}.review-actions .btn{padding:11px 10px}.cleanup-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.cleanup-actions{display:grid;grid-template-columns:1fr}.cleanup-actions .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.modal-backdrop,.modal-card,.plugins-table .plugin-row td{transition:none}}
