:root{--bg:#f6f7fb;--card:#fff;--text:#18181b;--muted:#71717a;--line:#e7e7ec;--brand:#6d4aff;--brand2:#5235df;--success:#129a62;--danger:#dc3545;--warning:#d18b00;--shadow:0 10px 35px rgba(25,25,40,.06)}*{box-sizing:border-box}body{margin:0;font-family:Jost,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.sidebar{position:fixed;left:0;top:0;bottom:0;width:250px;background:#15151b;color:#fff;padding:24px 16px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 28px}.brandmark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--brand),#9a7bff);display:grid;place-items:center;font-weight:700;font-size:22px;color:#fff}.brand strong,.login-brand h2{display:block;font-size:20px}.brand small,.sidefoot small{display:block;color:#9b9ba7;font-size:12px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{padding:12px 14px;border-radius:10px;color:#b9bac2;display:flex;gap:12px;align-items:center}.sidebar nav a:hover,.sidebar nav a.active{background:#24242c;color:#fff}.sidebar nav i{width:18px}.sidefoot{margin-top:auto;border-top:1px solid #2b2b33;padding:18px 8px 0;display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center}.avatar{width:38px;height:38px;border-radius:50%;background:#2f2f39;display:grid;place-items:center}.main{margin-left:250px;min-height:100vh}.topbar{height:92px;padding:20px 32px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.topbar h1{margin:0;font-size:26px}.topbar p{margin:2px 0 0;color:var(--muted)}.content{padding:30px 32px}.btn{border:1px solid var(--line);background:#fff;padding:10px 16px;border-radius:9px;font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{background:#f8f8fb}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand2)}.btn-block{width:100%;margin-top:8px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}.metric{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:var(--shadow);position:relative}.metric small{display:block;color:var(--muted);font-weight:600}.metric strong{display:block;font-size:32px;margin:8px 0}.metric p{margin:0;color:var(--muted);font-size:13px}.metric-icon{float:right;width:42px;height:42px;border-radius:11px;background:#f1edff;color:var(--brand);display:grid;place-items:center}.card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.card-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.card h2,.card-head h2{margin:0;font-size:19px}.card-head p,.form-card>p{margin:4px 0 0;color:var(--muted);font-size:14px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:15px 20px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#82828d;background:#fafafd}td strong{display:block}td small{display:block;color:var(--muted);margin-top:2px}.empty{text-align:center!important;color:var(--muted);padding:40px!important}.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}.badge-success{background:#e8f7f0;color:#0e8253}.badge-primary{background:#eeeaff;color:#5e42dc}.badge-warning{background:#fff4d9;color:#976300}.badge-danger{background:#fdebed;color:#b42332}.badge-secondary{background:#f0f0f3;color:#666673}.badge-dark{background:#303039;color:#fff}.toolbar{display:flex;justify-content:space-between;gap:16px;margin-bottom:18px}.searchbar{display:flex;gap:8px}.searchbar input{min-width:280px}input,select,textarea{width:100%;border:1px solid #dcdce2;border-radius:9px;padding:10px 12px;font:inherit;background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #6d4aff16}label{display:grid;gap:6px;font-size:13px;font-weight:600;color:#44444c;margin-bottom:14px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.span-2{grid-column:1/-1}.form-card{padding:22px}.form-card h2{margin-bottom:18px}.form-card h3{margin-top:22px}.split{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:20px}.pagination{padding:15px;display:flex;gap:6px}.pagination a{min-width:34px;height:34px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center}.pagination a.active{background:var(--brand);color:#fff}.modal{position:fixed;inset:0;background:#0008;display:none;place-items:center;z-index:99}.modal.show{display:grid}.modal-card{background:#fff;padding:25px;border-radius:15px;width:min(650px,92vw);position:relative}.modal-x{position:absolute;right:15px;top:10px;border:0;background:none;font-size:28px;cursor:pointer}.campaign-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px}.sticky{position:sticky;top:20px;padding:22px}.sticky h3{font-size:14px}.preview-frame{width:100%;height:420px;border:1px solid var(--line);border-radius:10px;background:#fff}.code-editor{font-family:Consolas,monospace;font-size:13px}.actions{display:flex;gap:5px;justify-content:flex-end}.actions form{margin:0}.icon-btn{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;display:grid;place-items:center;cursor:pointer}.icon-btn.send{color:var(--brand)}.template-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:20px}.template-card{border:1px solid var(--line);border-radius:10px;padding:12px}.template-preview{height:160px;overflow:hidden;border:1px solid var(--line);margin-bottom:10px}.template-preview iframe{width:200%;height:320px;transform:scale(.5);transform-origin:0 0;border:0}.template-card small{display:block;color:var(--muted)}.settings-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,.8fr);gap:20px}.dns-row{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.dns-row i{width:42px;height:42px;border-radius:10px;background:#f1edff;color:var(--brand);display:grid;place-items:center}.dns-row small{display:block;color:var(--muted)}.notice{margin-top:18px;background:#f7f5ff;border:1px solid #e1daff;padding:14px;border-radius:10px;color:#5c50a1}.report-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.report-title h2{margin:8px 0 0;font-size:26px}.report-title p{margin:2px 0;color:var(--muted)}.summary-row{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}.urlcell{max-width:520px;overflow:hidden;text-overflow:ellipsis}.narrow{max-width:760px;padding:25px}.alert{padding:13px 15px;border-radius:9px;margin-bottom:18px}.alert-success{background:#e8f7f0;color:#0c744b}.alert-danger{background:#fdebed;color:#9c2230}.alert-warning{background:#fff4d9;color:#7d5700}.link{color:var(--brand);font-weight:600}.authbody{min-height:100vh;background:radial-gradient(circle at 20% 10%,#ece7ff,transparent 32%),#f6f7fb;display:grid;place-items:center;padding:30px}.login-card,.install-card{width:min(460px,95vw);background:#fff;border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:0 20px 60px #4b3b8a18}.install-card{width:min(800px,95vw)}.login-brand{display:flex;gap:13px;align-items:center;margin-bottom:28px}.login-brand h2{margin:0}.login-brand p{margin:0;color:var(--muted)}hr{border:0;border-top:1px solid var(--line);margin:22px 0}code{background:#f2f2f5;padding:2px 5px;border-radius:5px}@media(max-width:1050px){.metric-grid{grid-template-columns:1fr 1fr}.campaign-layout,.settings-grid{grid-template-columns:1fr}.sticky{position:static}.split{grid-template-columns:1fr}}@media(max-width:760px){.sidebar{width:72px;padding:18px 10px}.brand>div:not(.brandmark),.sidebar nav span,.sidefoot>div:not(.avatar),.sidefoot>a{display:none}.brand{padding:0 4px 20px}.sidebar nav a{justify-content:center}.main{margin-left:72px}.topbar{padding:18px;height:auto}.topbar p{display:none}.content{padding:18px}.metric-grid{grid-template-columns:1fr}.toolbar{flex-direction:column}.searchbar{flex-direction:column}.searchbar input{min-width:0}.grid-2{grid-template-columns:1fr}.span-2{grid-column:auto}.template-grid{grid-template-columns:1fr}.topbar .btn{font-size:0}.topbar .btn i{font-size:14px}}
.vtag{font-size:10px;background:#111;color:#fff;border-radius:20px;padding:2px 6px;margin-left:4px}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:18px}.media-card{border:1px solid #e8e8e8;border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px}.media-card img{width:100%;height:135px;object-fit:cover;border-radius:10px}.media-card input{font-size:11px}.rule-row{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:8px;margin-bottom:8px}.builder{display:grid;grid-template-columns:220px 1fr 360px;gap:18px}.builder-tools button{width:100%;margin:5px 0;text-align:left}.builder-canvas{background:#f2f3f5;min-height:650px;padding:25px;border-radius:14px}.email-stage{max-width:640px;margin:auto;background:#fff;min-height:500px;box-shadow:0 6px 24px #0001}.block{padding:18px;border:1px dashed transparent;position:relative}.block:hover,.block.selected{border-color:#777}.block-actions{position:absolute;right:5px;top:5px;display:none}.block:hover .block-actions{display:block}.builder-props textarea{min-height:100px}@media(max-width:1050px){.builder{grid-template-columns:1fr}.builder-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.builder-props{order:2}}
.workflow{display:grid;gap:12px;padding:20px}.workflow-step{border:1px solid var(--line);border-radius:12px;padding:16px;background:#fff;display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center}.step-num{width:42px;height:42px;border-radius:50%;background:#f1edff;color:var(--brand);display:grid;place-items:center;font-weight:700}.progressbar{height:9px;background:#eeeeF2;border-radius:20px;overflow:hidden}.progressbar>span{height:100%;display:block;background:var(--brand)}.health-good{color:#0e8253}.health-warn{color:#976300}.health-bad{color:#b42332}.codebox{font-family:Consolas,monospace;background:#17171d;color:#eee;padding:14px;border-radius:10px;overflow:auto;font-size:12px}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.topic-row{display:grid;grid-template-columns:1fr 2fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}@media(max-width:760px){.mini-grid{grid-template-columns:1fr}.topic-row{grid-template-columns:1fr}}

/* V3.3 SaaS admin */
.metric .progressbar{margin-top:10px}.table-wrap td .progressbar{height:7px;margin:4px 0}.table-wrap td .progressbar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6c4cff,#8b6cff)}

/* V3.4 template import + inbox preview */
.template-import-card{margin-bottom:20px}.template-upload-form{padding:22px}.upload-help{background:#f7f5ff;border:1px solid #e1daff;border-radius:10px;padding:12px 14px;margin:-2px 0 16px;color:#5c50a1;font-size:13px}.template-page-split{align-items:start}.template-actions{display:flex;margin-top:10px}.template-actions .btn{width:100%;font-size:12px}.preview-toolbar{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:18px}.preview-toolbar h2{margin:7px 0 0}.preview-switch{display:flex;gap:8px}.preview-switch .active{background:var(--brand);color:#fff;border-color:var(--brand)}.inbox-preview-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}.inbox-shell{padding-bottom:20px}.inbox-listbar{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.inbox-listbar span{font-size:12px;color:var(--muted)}.inbox-row{margin:14px 18px;border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;grid-template-columns:42px 1fr auto;gap:12px;background:#fafafd}.inbox-avatar{width:42px;height:42px;border-radius:50%;background:#eeeaff;color:var(--brand);display:grid;place-items:center;font-weight:800}.inbox-meta span,.inbox-row time{color:var(--muted);font-size:12px}.inbox-meta b{display:block;margin-top:2px}.inbox-meta p{margin:3px 0 0;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:620px}.message-head{padding:17px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.message-head strong{display:block;font-size:18px}.message-head small{color:var(--muted)}.email-device{margin:20px auto 0;transition:.2s;width:calc(100% - 40px);background:#fff}.email-device.desktop{max-width:760px}.email-device.mobile{width:390px;max-width:calc(100% - 30px);border:10px solid #222;border-radius:26px;padding:8px;background:#222}.email-device iframe{display:block;width:100%;height:620px;border:1px solid var(--line);background:#fff}.email-device.mobile iframe{height:680px;border:0;border-radius:10px}.test-panel{padding:22px;position:sticky;top:20px}.test-panel h2{margin:0 0 5px}.test-panel>p{color:var(--muted);font-size:13px}.test-panel .notice{font-size:12px}@media(max-width:1050px){.inbox-preview-layout{grid-template-columns:1fr}.test-panel{position:static}}@media(max-width:760px){.preview-toolbar{align-items:stretch;flex-direction:column}.preview-switch{width:100%}.preview-switch .btn{flex:1}.inbox-row{grid-template-columns:38px 1fr}.inbox-row time{display:none}.inbox-listbar span{display:none}}
