﻿:root{
  --accent:#6366f1; --accent-strong:#4f46e5; --accent-soft:#eef2ff;
  --green:#10b981; --green-soft:#ecfdf5;
  --red:#f43f5e; --red-soft:#fff1f2;
  --amber:#f59e0b; --amber-soft:#fffbeb;
  --bg:#fafafa; --surface:#ffffff; --border:#e4e4e7; --border-strong:#d4d4d8;
  --text:#18181b; --muted:#71717a; --faint:#a1a1aa;
  --shadow:0 1px 2px rgba(0,0,0,.04), 0 4px 12px rgba(0,0,0,.05);
  --radius:12px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  background:var(--bg); color:var(--text); font-size:15px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--accent-strong); text-decoration:none}
a:hover{text-decoration:underline}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace}
.muted{color:var(--muted)} .faint{color:var(--faint)} .small{font-size:13px}
.row{display:flex; gap:12px; align-items:center}
.grow{flex:1}
.wrap{max-width:1280px; margin:0 auto; padding:0 24px}

/* buttons */
.btn{display:inline-flex; align-items:center; gap:8px; border:1px solid transparent; border-radius:8px;
  padding:9px 16px; font-size:14px; font-weight:600; cursor:pointer; line-height:1; white-space:nowrap;
  transition:.15s; text-decoration:none}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--accent); color:#fff}
.btn-primary:hover{background:var(--accent-strong)}
.btn-outline{background:#fff; border-color:var(--border-strong); color:var(--text)}
.btn-outline:hover{background:#f4f4f5}
.btn-ghost{background:transparent; color:var(--muted)}
.btn-ghost:hover{background:#f4f4f5; color:var(--text)}
.btn-sm{padding:6px 11px; font-size:13px}
.btn-lg{padding:12px 22px; font-size:15px}
.btn-block{width:100%; justify-content:center}

/* topbar */
.topbar{position:sticky; top:0; z-index:30; background:rgba(255,255,255,.86); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--border)}
.topbar .wrap{display:flex; align-items:center; height:60px; gap:20px}
.brand{display:flex; align-items:center; gap:9px; font-weight:800; font-size:16px; color:var(--text)}
.brand .mark{width:26px; height:26px; border-radius:7px; display:block; flex:0 0 26px}
.nav{display:flex; gap:4px}
.nav a{padding:7px 11px; border-radius:7px; color:var(--muted); font-weight:500; font-size:14px; cursor:pointer}
.nav a:hover{background:#f4f4f5; color:var(--text); text-decoration:none}
.nav a.active{color:var(--text); background:var(--accent-soft)}

/* hero */
.hero{padding:76px 0 56px; text-align:center}
.hero h1{font-size:44px; line-height:1.12; letter-spacing:-.02em; margin:0 auto 18px; max-width:760px; font-weight:800}
.hero p{font-size:18px; color:var(--muted); max-width:620px; margin:0 auto 28px}
.hero .hero-tagline{font-size:24px; font-weight:600; color:var(--ink); max-width:760px; margin:0 auto 16px; line-height:1.3}
.hero .cta{display:flex; gap:12px; justify-content:center}
.kicker{display:inline-block; font-size:13px; font-weight:600; color:var(--accent-strong);
  background:var(--accent-soft); padding:5px 12px; border-radius:999px; margin-bottom:20px}

/* sections */
.section{padding:56px 0}
.section h2{font-size:28px; letter-spacing:-.01em; margin:0 0 12px}
.section .lead{color:var(--muted); max-width:640px; margin:0 0 32px}
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.step{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:22px; box-shadow:var(--shadow)}
.step .num{width:28px;height:28px;border-radius:8px;background:var(--accent-soft);color:var(--accent-strong);
  font-weight:800;display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px}
.step h3{margin:0 0 6px; font-size:16px}
.step p{margin:0; color:var(--muted); font-size:14px}

/* cards */
.card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow)}
.card-pad{padding:20px}
.card h3{margin:0 0 8px}

/* pricing */
.price-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
.price{position:relative; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  padding:24px; box-shadow:var(--shadow); cursor:pointer}
.price:hover{border-color:var(--accent)}
.price.hot{border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft)}
.price .tag{position:absolute; top:-11px; left:50%; transform:translateX(-50%); background:var(--accent); color:#fff;
  font-size:12px; font-weight:700; padding:3px 10px; border-radius:999px}
.price .name{font-weight:700; font-size:15px}
.price .amt{font-size:34px; font-weight:800; letter-spacing:-.02em; margin:10px 0 2px}
.price .amt .per{font-size:14px; color:var(--muted); font-weight:500}
.price ul{list-style:none; padding:0; margin:18px 0 22px; font-size:13.5px; color:var(--muted)}
.price li{padding:5px 0; border-bottom:1px solid #f4f4f5; display:flex; gap:8px}
.price li:last-child{border-bottom:0}
.price li b{color:var(--text); font-weight:600}
.check{color:var(--green); font-weight:700}

/* dashboard */
.grid{display:grid; gap:16px}
.grid-2{grid-template-columns:1fr 1fr}
.grid-4{grid-template-columns:repeat(4,1fr)}
.proj{display:flex; flex-direction:column; gap:10px}
.proj .top{display:flex; align-items:center; justify-content:space-between}
.proj .domain{font-weight:700; font-size:15px}
.proj-actions{position:relative}
.proj-more{position:relative;display:inline-flex}
.proj-more-btn{min-width:38px;justify-content:center;padding-left:9px;padding-right:9px;letter-spacing:1px}
.proj-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:156px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 30px rgba(24,24,27,.12);z-index:20}
.proj-menu[hidden]{display:none}
.proj-menu-item{display:flex;width:100%;align-items:center;padding:8px 10px;border:0;border-radius:7px;background:transparent;color:var(--text);font:inherit;font-size:13px;font-weight:600;text-align:left;cursor:pointer}
.proj-menu-item:hover{background:#f4f4f5}
.account-usage{
  --usage-accent:#4f46e5; --usage-accent-2:#a5b4fc; --usage-soft:#eef2ff;
  --usage-bar-start:#6366f1; --usage-bar-end:#a5b4fc;
  --usage-tint:rgba(99,102,241,.045); --usage-border:rgba(99,102,241,.14);
  position:relative; overflow:hidden; margin-bottom:20px; padding:22px;
  border-color:var(--usage-border);
  background:linear-gradient(135deg,#fff 0%,var(--usage-tint) 100%);
  box-shadow:0 1px 2px rgba(24,24,27,.03), 0 8px 26px rgba(24,24,27,.035);
}
.usage-head{display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:14px}
.usage-title{display:flex; align-items:center; gap:10px; flex-wrap:wrap; min-width:0}
.usage-label{font-size:13px; font-weight:700; letter-spacing:.01em}
.plan-badge{display:inline-flex; align-items:center; gap:7px; padding:4px 10px 4px 8px; border:1px solid transparent; border-radius:999px; background:var(--usage-soft); color:var(--usage-accent); font-size:12px; font-weight:700; line-height:1; white-space:nowrap}
.plan-mark{width:7px; height:7px; border-radius:2px; transform:rotate(45deg); background:var(--usage-bar-start); box-shadow:0 0 0 3px rgba(99,102,241,.10)}
.usage-pct{display:inline-flex; align-items:center; justify-content:center; min-width:50px; height:26px; padding:0 9px; border:1px solid var(--usage-border); border-radius:999px; background:#fff; color:var(--muted); font-size:12px; font-weight:700; white-space:nowrap}
.usage-pct.warn{color:#b45309; border-color:#fde68a; background:#fffbeb}
.usage-pct.danger{color:#be123c; border-color:#fecdd3; background:#fff1f2}
.usage-count{display:flex; align-items:baseline; flex-wrap:wrap; line-height:1.1}
.usage-count strong{font-size:30px; letter-spacing:-.045em; font-weight:800}
.usage-count span{font-size:13px; color:var(--muted); font-weight:600}
.usage-bar{height:8px; margin-top:14px; border-radius:999px; background:var(--usage-soft); overflow:hidden}
.usage-bar > i{display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--usage-bar-start),var(--usage-bar-end)); transition:width .25s ease}
.usage-note{margin-top:8px; font-size:12px; font-weight:700; color:var(--amber)}
.account-usage.near{border-color:#fde68a; background:linear-gradient(135deg,#fff 0%,#fffbeb 100%)}
.account-usage.near .usage-bar > i{background:linear-gradient(90deg,#f59e0b,#fbbf24)}
.account-usage.over{border-color:#fecdd3; background:linear-gradient(135deg,#fff 0%,#fff1f2 100%)}
.account-usage.over .usage-bar > i{background:linear-gradient(90deg,#e11d48,#fb7185)}
.account-usage.over .usage-note{color:#be123c}
.proj .pill{font-size:12px; font-weight:600; padding:3px 9px; border-radius:999px; background:#f4f4f5; color:var(--muted)}
.bar{height:6px; border-radius:99px; background:#f4f4f5; overflow:hidden}
.bar > i{display:block; height:100%; border-radius:99px; background:var(--accent)}
.ring{width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;background:var(--accent-soft);color:var(--accent-strong)}
.metric{display:flex; gap:10px; align-items:center}

/* table */
.table{width:100%; border-collapse:collapse; font-size:13.5px}
.table th{text-align:left; color:var(--muted); font-weight:600; padding:9px 10px; border-bottom:1px solid var(--border)}
.table td{padding:9px 10px; border-bottom:1px solid #f4f4f5; vertical-align:middle}
.table tr:last-child td{border-bottom:0}
.keyword-table-scroll{
  max-height:calc(40px + 560px + 2px);
  overflow:auto;
  overscroll-behavior-x:contain;
  overscroll-behavior-y:auto;
  border:1px solid var(--border);
  border-radius:8px;
  margin-top:12px;
}
.keyword-table-scroll .table{border-collapse:separate;border-spacing:0}
.keyword-table-scroll .table th,
.keyword-table-scroll .table td{border-bottom:0}
.keyword-table-scroll tbody tr:hover td{background:#fafafa}
.keyword-table-scroll thead th{
  position:sticky;
  top:0;
  z-index:2;
  background:var(--surface);
}
.dot{display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px}
.dot.ok{background:var(--green)} .dot.warn{background:var(--amber)} .dot.bad{background:var(--red)}
.badge{display:inline-block; font-size:12px; font-weight:600; padding:2px 8px; border-radius:6px}
.badge.ok{background:var(--green-soft); color:var(--green)}
.badge.warn{background:var(--amber-soft); color:var(--amber)}
.badge.bad{background:var(--red-soft); color:var(--red)}

/* form */
.field{margin-bottom:14px}
.field label{display:block; font-size:13px; font-weight:600; color:var(--muted); margin-bottom:5px}
.typo-row{display:grid;grid-template-columns:170px 1fr 1fr 1fr;gap:8px;align-items:center;margin-bottom:8px}
.typo-font-cell{display:flex;flex-direction:column;gap:4px;min-width:0}
.typo-label{font-size:13px;font-weight:600;color:var(--muted)}
.typo-auto{font-size:11px;font-weight:400;color:var(--faint);display:block;margin-top:1px}
.typo-head{font-size:12px;font-weight:600;color:var(--faint);margin-bottom:2px}
.row-flash td{background:var(--red-soft)}
.color-row{display:flex;align-items:center;gap:10px;margin-top:6px}
.color-row input[type="color"]{width:48px;height:32px;padding:0;border:none;border-radius:8px;background:#fff;cursor:pointer}
.color-hex{font-size:12px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.auto-check{font-size:12px;font-weight:500;color:var(--muted);display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.input, textarea.input{width:100%; border:1px solid var(--border-strong); border-radius:8px; padding:9px 11px;
  font-size:14px; font-family:inherit; background:#fff}
.input:focus, textarea.input:focus{outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft)}
textarea.input{min-height:70px; resize:vertical}
.chip{display:inline-block; font-family:ui-monospace,Menlo,Consolas,monospace; font-size:12px; font-weight:600;
  background:var(--accent-soft); color:var(--accent-strong); padding:2px 7px; border-radius:6px; margin:2px 3px 2px 0}

/* stepper */
.stepper{display:flex; gap:8px; align-items:center; margin:0 0 26px}
.stepper .s{display:flex; align-items:center; gap:8px; font-size:14px; font-weight:600; color:var(--muted)}
.stepper .s .n{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  background:#f4f4f5; font-size:13px}
.stepper .s.on{color:var(--text)} .stepper .s.on .n{background:var(--accent); color:#fff}
.stepper .s.done{color:var(--green)} .stepper .s.done .n{background:var(--green); color:#fff}
.stepper .line{width:34px; height:2px; background:var(--border-strong); border-radius:2px}

/* editor split */
.editor{display:grid; grid-template-columns:1fr; gap:0}
.editor .left{padding:22px; overflow:auto}
.editor .right{background:#fff; padding:22px; overflow:auto}
.preview-frame{border:1px solid var(--border); border-radius:10px; overflow:hidden; background:#fff}
.preview-frame .bar{background:#fafafa; border-bottom:1px solid var(--border); padding:9px 14px; font-size:12px; color:var(--muted)}
.preview-frame .body{padding:26px}

/* kpi */
.kpi{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px; box-shadow:var(--shadow)}
.kpi .l{font-size:12.5px; color:var(--muted); font-weight:600}
.kpi .v{font-size:26px; font-weight:800; letter-spacing:-.02em; margin-top:2px}
.kpi .d{font-size:12px; color:var(--green)}

/* modal */
.overlay{position:fixed; inset:0; background:rgba(0,0,0,.42); z-index:50; display:flex; align-items:center; justify-content:center; padding:20px}
.modal{background:#fff; border-radius:16px; width:100%; max-width:420px; padding:26px; box-shadow:0 24px 60px rgba(0,0,0,.2)}
.modal h3{margin:0 0 8px; font-size:18px}
.modal p{color:var(--muted); margin:0 0 18px}

/* alert list */
.alert-item{display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border-radius:9px; background:var(--red-soft); margin-bottom:8px}
.alert-item.warn{background:var(--amber-soft)}
.alert-item .ico{font-weight:800}

@media(max-width:900px){
  .grid3,.grid-4,.price-grid{grid-template-columns:1fr 1fr}
  .editor{grid-template-columns:1fr}
  .hero h1{font-size:32px}
}
@media(max-width:560px){
  .grid3,.grid-4,.price-grid,.grid-2{grid-template-columns:1fr}
  .account-usage{padding:18px}
  .usage-head{gap:10px}
  .usage-title{gap:8px}
  .usage-count strong{font-size:26px}
  .usage-count span{font-size:12px}
}

.editor > *{min-width:0}
.preview-frame .bar{display:flex;align-items:center;gap:7px;white-space:normal;word-break:break-all;overflow-wrap:anywhere;line-height:1.5}
.preview-frame .bar .lock{font-size:11px}
.preview-frame .bar .path{color:var(--muted)}
.serp-label{color:var(--green);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.serp-title{font-size:20px;color:#1a0dab;line-height:1.3;margin-bottom:3px}
.serp-url{font-size:13px;color:#3c4043;line-height:1.4;margin-bottom:2px}
.serp-desc{font-size:13.5px;color:#4d5156;line-height:1.5;max-width:560px}
.preview-frame hr{border:0;border-top:1px solid var(--border);margin:18px 0}
.page-h1{font-size:28px;margin:0 0 14px;line-height:1.25}
.page-content{line-height:1.7}

.danger-zone{border:1px solid var(--red);border-radius:12px;padding:20px;background:var(--red-soft);margin-bottom:14px}
.danger-zone h3{color:var(--red);margin:0 0 6px;font-size:16px}
.danger-zone p{margin:0 0 14px}
.btn-danger{background:var(--red);color:#fff;border:1px solid var(--red)}
.btn-danger:hover{background:#e11d48}
.btn-danger:disabled{background:#fda4af;border-color:#fda4af;cursor:not-allowed;opacity:1}
.btn:disabled{cursor:not-allowed;opacity:.55}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#18181b;color:#fff;padding:10px 16px;border-radius:10px;font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,.25);z-index:100}

.page-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.page-head h2{margin:0}
.page-head-t{min-width:0;flex:1}
.page-head-r{margin-left:auto}

.back-btn{width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:15px;line-height:1;flex:none}
.back-btn:hover{background:#f4f4f5;color:var(--text)}

.topbar .wrap{max-width:none}

.toolbar-divider{width:1px;height:18px;background:var(--border);margin:0 4px}
.btn-danger-text{color:var(--red);background:none;border:none;padding:0;font-size:13px;font-weight:600;cursor:pointer}
.btn-danger-text:hover{text-decoration:underline}

.preview-section{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:16px 18px;margin-bottom:14px}
.preview-section:last-child{margin-bottom:0}
.page-label{color:var(--green);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}

.page-preview-scroll{max-height:560px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;background:#fff}
.page-content p{margin:0 0 14px}
.page-content ul{margin:0 0 16px;padding-left:20px}
.page-content li{margin-bottom:8px;line-height:1.6}
.page-content .faq{margin-bottom:12px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:10px}
.page-content .faq h2{font-size:16px;margin:0 0 6px;line-height:1.35}
.page-content .faq p{margin:0;color:var(--muted)}
.page-content .cta{display:inline-block;margin-top:6px;padding:10px 18px;background:var(--accent);color:#fff;border-radius:8px;font-weight:600;text-decoration:none;font-size:14px}
.page-content .cta:hover{background:var(--accent-strong)}

