:root{--bg:#f5f7f8;--panel:#fff;--panel-soft:#f8faf9;--text:#17211f;--muted:#68736f;--border:#dfe6e3;--accent:#0f8f78;--accent-dark:#0a6f5d;--danger:#b33b3b;--success:#0a7a5a;--warning:#a36a04;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;color:var(--text);background:var(--bg);margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{grid-template-columns:244px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#f4fbf8;background:#101817;flex-direction:column;gap:26px;height:100vh;padding:22px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.brand-mark{color:#fff;background:linear-gradient(145deg,#10a784,#0c6c5d);border-radius:8px;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.brand strong,.brand span{display:block}.brand span{color:#aebbb7;font-size:13px}.sidebar nav{gap:6px;display:grid}.tab-button,.ghost-button{color:#dbe7e3;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;padding:10px 11px;font-size:14px;text-decoration:none;display:flex}.tab-button{justify-content:flex-start;width:100%}.tab-button span{flex:1}.tab-button small{color:#9fb2ad;font-size:11px;font-weight:800}.tab-button:hover,.tab-button.active,.ghost-button:hover{background:#ffffff14}.tab-button.active{color:#fff;box-shadow:inset 3px 0 0 var(--accent)}.ghost-button{margin-top:auto}.main{min-width:0;padding:24px}.target-page{background:#101817;grid-template-rows:auto auto 1fr;min-height:100vh;display:grid}.target-bar{border-bottom:1px solid var(--border);background:#fff;justify-content:space-between;align-items:center;gap:16px;min-height:62px;padding:12px 16px;display:flex}.target-bar strong,.target-bar span{display:block}.target-bar span{color:var(--muted);margin-top:3px;font-size:13px}.target-final{color:var(--accent-dark)!important}.target-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.target-status{color:#07553f;background:#eefaf5;border-bottom:1px solid #cce9dc;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 16px;font-size:13px;font-weight:700;display:flex}.target-status.submitted{color:#714b05;background:#fff6df;border-bottom-color:#efd28f}.target-status.sent{color:#07553f;background:#e6fff4;border-bottom-color:#afe6d0}.target-status em{color:#7b5b06;font-style:normal}.target-frame{background:#fff;border:0;width:100%;height:100%}.target-sent-overlay{z-index:10;pointer-events:none;background:#10181752;place-items:center;padding:24px;animation:1.8s both targetSentVeil;display:grid;position:fixed;inset:0}.target-sent-card{text-align:center;background:#fff;border:1px solid #0f8f783d;border-radius:8px;width:min(360px,100vw - 48px);padding:22px;animation:1.8s cubic-bezier(.2,.8,.2,1) both targetSentCard;box-shadow:0 20px 60px #00000042}.target-sent-icon{color:#fff;background:var(--accent);border-radius:999px;place-items:center;width:54px;height:54px;margin:0 auto 12px;animation:.9s ease-out .12s targetSentPulse;display:grid;box-shadow:0 0 #0f8f7847}.target-sent-card strong,.target-sent-card span{display:block}.target-sent-card strong{font-size:22px;line-height:1.2}.target-sent-card span{color:var(--muted);margin-top:6px}@keyframes targetSentVeil{0%{opacity:0}12%,82%{opacity:1}to{opacity:0}}@keyframes targetSentCard{0%{opacity:0;transform:translateY(10px)scale(.96)}14%,82%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-8px)scale(.98)}}@keyframes targetSentPulse{0%{box-shadow:0 0 #0f8f7847}to{box-shadow:0 0 0 16px #0f8f7800}}.target-empty{border:1px solid var(--border);background:#fff;border-radius:8px;place-self:center;width:min(560px,100vw - 32px);padding:24px}.target-empty h1{margin:0 0 8px}.target-empty p{color:var(--muted);line-height:1.6}.topbar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;display:flex}.topbar h1{letter-spacing:0;margin:0;font-size:26px}.topbar p{color:var(--muted);margin:4px 0 0}.topbar-actions,.button-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.version{border:1px solid var(--border);color:var(--muted);background:#fff;border-radius:999px;padding:8px 10px;font-size:13px}.version.dirty{color:#714b05;background:#fff8e8;border-color:#efd28f}.config-notice{border:1px solid var(--border);border-radius:8px;align-items:center;gap:9px;margin-bottom:16px;padding:10px 12px;font-size:13px;font-weight:800;display:flex}.config-notice.clean{color:#07553f;background:#eefaf5;border-color:#cce9dc}.config-notice.dirty{color:#714b05;background:#fff8e8;border-color:#efd28f}.config-notice small,.config-notice strong{margin-left:auto}.config-notice strong{overflow-wrap:anywhere}.primary-button,.secondary-button,.danger-button{border:0;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:9px 13px;font-size:14px;font-weight:700;display:inline-flex}.primary-button{background:var(--accent);color:#fff}.primary-button:hover{background:var(--accent-dark)}.secondary-button{color:var(--text);border:1px solid var(--border);background:#fff}.danger-button{color:#fff;background:var(--danger)}button:disabled{cursor:default;opacity:.52}.tiny{min-height:30px;padding:6px 9px;font-size:12px}.full{width:100%}.alert{border:1px solid;border-radius:7px;margin-bottom:14px;padding:11px 13px;font-size:14px}.alert.error{color:#7d2020;background:#fff4f4;border-color:#f0caca}.alert.success{color:#07553f;background:#eefaf5;border-color:#cce9dc}.copy-link{color:var(--accent-dark);white-space:normal;word-break:break-all;background:#eefaf5;border:1px solid #cce9dc;border-radius:7px;margin:12px 0;padding:10px;display:block}.session-link{color:inherit;text-decoration:none}.copy-workspace{gap:16px;display:grid}.copy-create,.copy-browser{border:1px solid var(--border);background:var(--panel-soft);border-radius:8px;padding:14px}.toolbar-row,.audit-filter{grid-template-columns:minmax(0,1fr) minmax(160px,220px);align-items:end;gap:10px;margin-bottom:12px;display:grid}.audit-filter{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 120px auto auto}.search-field,.filter-field{position:relative}.search-field svg,.filter-field svg{color:var(--muted);pointer-events:none;position:absolute;bottom:11px;left:10px}.search-field input,.filter-field select{padding-left:32px}.session-grid{grid-template-columns:minmax(260px,.42fr) minmax(0,.58fr);align-items:start;gap:14px;display:grid}.session-list,.change-list,.export-list,.webhook-list{gap:8px;display:grid}.session-row{border:1px solid var(--border);width:100%;min-height:70px;color:var(--text);text-align:left;background:#fff;border-radius:7px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:10px;display:grid}.session-row.selected,.session-row:hover{border-color:#0f8f7873;box-shadow:0 0 0 3px #0f8f7814}.session-row strong,.session-row span{overflow-wrap:anywhere;display:block}.session-row span{color:var(--muted);margin-top:4px;font-size:12px}.session-detail{border:1px solid var(--border);background:#fff;border-radius:8px;min-width:0;padding:14px}.detail-heading{justify-content:space-between;gap:12px;margin-bottom:12px;display:flex}.detail-heading strong,.detail-heading span{overflow-wrap:anywhere;display:block}.detail-heading span{color:var(--muted);margin-top:4px;font-size:12px}.detail-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 12px;display:grid}.detail-facts div{border:1px solid var(--border);background:var(--panel-soft);border-radius:7px;padding:9px}.detail-facts dt{color:var(--muted);font-size:11px;font-weight:800}.detail-facts dd{overflow-wrap:anywhere;margin:4px 0 0;font-size:13px;font-weight:800}.change-list,.export-list,.webhook-list{margin-top:16px}.change-list h3,.export-list h3,.webhook-list h3{margin:0 0 2px;font-size:13px}.change-card,.export-row,.webhook-row{border:1px solid var(--border);background:var(--panel-soft);border-radius:7px;padding:10px}.change-card{gap:7px;display:grid}.change-card strong,.change-card span{overflow-wrap:anywhere}.change-card span{color:var(--muted);font-size:12px}.change-card del,.change-card ins{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;padding:8px;display:block}.change-card del{color:#7d2020;background:#fff4f4}.change-card ins{color:#07553f;background:#eefaf5;text-decoration:none}.export-row,.webhook-row{width:100%;color:var(--text);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.export-row{border-color:var(--border);background:#fff}.empty-state{border:1px dashed var(--border);color:var(--muted);text-align:center;border-radius:8px;padding:16px}.loading{color:var(--muted);margin:16px 0}.status-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.metric{background:var(--panel);border:1px solid var(--border);border-radius:8px;grid-template-columns:auto 1fr;align-items:center;gap:8px 10px;padding:16px;display:grid}.metric svg{color:var(--accent)}.metric span{color:var(--muted);font-size:13px}.metric strong{grid-column:1/-1;font-size:26px}.workspace{grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:16px;display:grid}.tab-content{gap:16px;display:grid}.left-column,.right-column{align-content:start;gap:16px;display:grid}.panel,.login-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px}.panel-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.panel-header h2{align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.panel-header h2 svg{color:var(--accent)}.panel-header span{color:var(--muted);font-size:12px}.form-grid,.editor{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px;display:grid}.split-editor{grid-template-columns:minmax(240px,.42fr) minmax(0,.58fr);align-items:start;gap:14px;display:grid}.form-grid.single{grid-template-columns:1fr}label{color:var(--muted);gap:6px;font-size:12px;font-weight:700;display:grid}input,select,textarea{border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:7px;min-height:38px;padding:9px 10px;font-size:14px}textarea{resize:vertical;min-height:82px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.5}.compact-list,.module-list,.timeline,.item-list{gap:8px;margin-top:12px;display:grid}.item-list{margin-top:0}.compact-row,.device-row,.module-row,.timeline-row,.item-row{background:var(--panel-soft);border:1px solid var(--border);border-radius:7px;justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex}.item-row{text-align:left;width:100%;color:var(--text)}.item-row.selected,.item-row:hover{border-color:#0f8f7873;box-shadow:0 0 0 3px #0f8f7814}.item-row.add{color:var(--accent);font-weight:800}.device-row div,.module-row div,.item-row div{min-width:0}.device-row strong,.module-row strong,.item-row strong,.device-row span,.module-row span,.item-row span{overflow-wrap:anywhere;display:block}.device-row span,.module-row span,.module-row small,.module-row em,.item-row span,.timeline-row small,.device-row small{color:var(--muted);font-size:12px}.module-row em{color:#714b05;margin-top:5px;font-style:normal;font-weight:800;display:inline-block}.kill-reason{max-width:180px;min-height:32px}.device-row{align-items:stretch;display:grid}.device-edit{grid-template-columns:minmax(120px,1fr) minmax(130px,1fr);gap:7px;min-width:0;display:grid}.device-actions{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:7px;display:flex}.module-row.killed{background:#fff7f7;border-color:#b33b3b52}.priority{color:var(--muted);background:#edf2f0;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.priority.important{color:var(--danger);background:#fff0f0}.priority.normal{color:var(--accent-dark);background:#eefaf5}.state{color:var(--muted);background:#edf2f0;border-radius:999px;padding:4px 8px;font-size:12px}.state.pending{color:var(--warning);background:#fff6df}.state.linked{color:var(--success);background:#e7f7f0}.state.draft{color:var(--accent-dark);background:#eefaf5}.state.submitted{color:var(--success);background:#e7f7f0}.state.expired,.state.revoked{color:var(--danger);background:#fff0f0}.rule-list{gap:8px;margin-bottom:14px;display:grid}.rule-row{border:1px solid var(--border);background:var(--panel-soft);text-align:left;border-radius:7px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;width:100%;min-height:46px;padding:10px;display:grid}.rule-row.selected{border-color:#0f8f7873;box-shadow:0 0 0 3px #0f8f7814}.rule-row span,.rule-row small{overflow-wrap:anywhere}.rule-row small{color:var(--muted)}.rule-row.add{color:var(--accent);font-weight:800}.match-tester{border:1px solid var(--border);background:var(--panel-soft);border-radius:8px;margin-bottom:14px;padding:12px}.chip-row{flex-wrap:wrap;align-items:center;gap:7px;margin-top:8px;display:flex}.chip{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.chip.muted{color:var(--muted)}.chip.as-button{color:var(--accent-dark);cursor:pointer}.module-params-toolbar{border:1px solid var(--border);background:var(--panel-soft);border-radius:7px;grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;display:flex}.module-params{grid-column:1/-1}.params-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.feed-preview{border:1px solid var(--border);background:var(--panel-soft);border-radius:8px;padding:12px}.feed-preview.priority-important{background:#fff7f7;border-color:#f0caca}.feed-preview.priority-normal{background:#f3fbf8;border-color:#cce9dc}.feed-preview div:first-child{justify-content:space-between;align-items:center;gap:8px;display:flex}.feed-preview p{color:#3d4b47;margin:8px 0 0;line-height:1.5}.audit-filter .secondary-button{align-self:end}.timeline-row{align-items:start}.timeline-row div{min-width:0}.timeline-row span,.timeline-row small{overflow-wrap:anywhere;display:block}.timeline-row details{max-width:360px}.timeline-row summary{color:var(--accent-dark);cursor:pointer;font-size:12px;font-weight:800}.timeline-row pre{color:#f4fbf8;background:#101817;border-radius:7px;max-width:100%;margin:8px 0 0;padding:9px;font-size:11px;overflow:auto}.css-vars-editor{min-height:120px}.field-error{color:var(--danger);font-size:12px;font-weight:700}.state-toggle{border:1px solid var(--border);background:var(--panel-soft);min-height:48px;color:var(--muted);border-radius:7px;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;font-size:12px;font-weight:800;display:flex}.state-pill{border:0;border-radius:999px;min-height:30px;padding:6px 11px;font-size:12px;font-weight:900}.state-pill.on{color:var(--success);background:#e7f7f0}.state-pill.off{color:var(--warning);background:#fff6df}.login-page{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{gap:14px;width:min(420px,100%);display:grid}.login-brand{margin-bottom:6px}@media (width<=1040px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace,.split-editor,.status-grid,.session-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.shell{display:block}.sidebar{z-index:20;border-bottom:1px solid #ffffff14;gap:10px;padding:12px 14px;position:sticky;top:0}.brand div:last-child{display:none}.brand-mark{width:32px;height:32px}.sidebar nav{scrollbar-width:none;gap:7px;padding-bottom:2px;display:flex;overflow-x:auto}.sidebar nav::-webkit-scrollbar{display:none}.tab-button{flex:none;justify-content:center;width:auto;min-width:112px;padding:9px 10px}.tab-button.active{box-shadow:inset 0 -3px 0 var(--accent)}.ghost-button{display:none}.main{padding:16px}.topbar,.workspace,.split-editor,.status-grid,.form-grid,.editor,.session-grid,.toolbar-row,.audit-filter,.params-grid,.detail-facts{grid-template-columns:1fr;display:grid}.topbar-actions,.button-row,.primary-button,.secondary-button,.danger-button{width:100%}.sidebar nav{grid-template-columns:none}.rule-row,.session-row,.export-row,.webhook-row{grid-template-columns:1fr}.device-row,.module-row{align-items:stretch;display:grid}.device-edit{grid-template-columns:1fr;min-width:0}.kill-reason{max-width:none}.config-notice{flex-wrap:wrap;align-items:flex-start}.config-notice small,.config-notice strong{margin-left:0}}
