:root{
  --bg:#f5f4fb;--surface:#ffffff;--surface-2:#f0eef8;--ink:#1e1b2d;--muted:#6f6a80;
  --line:#e4e1ee;--primary:#6d4aff;--primary-dark:#4e31d4;--accent:#9b86ff;
  --shadow:0 18px 60px rgba(43,31,91,.10);--radius:22px;
  --i5:#6d4aff;--i4:#8a73f4;--i3:#b09ffc;--i2:#d8cffd;--i1:#ece8f8;--i0:#f3f2f6;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(180deg,#f7f6fc 0,#f1f0f7 100%);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}
a{color:inherit;text-decoration:none}button,input,select{font:inherit}.app-shell{width:min(1240px,calc(100% - 28px));margin:0 auto;padding:18px 0 30px}.app-shell.narrow{max-width:760px}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px}.brand-mark{width:42px;height:42px;border-radius:13px;box-shadow:0 7px 20px rgba(109,74,255,.23)}.brand strong{display:block;font-size:17px;letter-spacing:-.02em}.brand span{display:block;color:var(--muted);font-size:12px;margin-top:1px}.top-actions{display:flex;gap:8px}.icon-btn{width:42px;height:42px;border:1px solid var(--line);background:rgba(255,255,255,.78);border-radius:13px;display:grid;place-items:center;color:var(--ink);cursor:pointer;transition:.2s}.icon-btn:hover{transform:translateY(-1px);border-color:#cfc8ec;background:#fff}.panel{background:rgba(255,255,255,.88);border:1px solid rgba(224,221,236,.95);box-shadow:var(--shadow);border-radius:var(--radius)}.hero{padding:34px;display:flex;gap:30px;align-items:end;justify-content:space-between;overflow:hidden;position:relative}.hero:after{content:"";width:250px;height:250px;border-radius:50%;position:absolute;right:-80px;top:-120px;background:radial-gradient(circle,rgba(109,74,255,.13),transparent 68%);pointer-events:none}.eyebrow{margin:0 0 7px;color:var(--primary);font-size:11px;font-weight:800;letter-spacing:.14em}.hero h1{font-size:clamp(31px,4vw,53px);line-height:1.02;letter-spacing:-.05em;margin:0;max-width:760px}.hero h1 span{color:var(--primary)}.hero p:not(.eyebrow){color:var(--muted);margin:13px 0 0;font-size:15px;max-width:680px;line-height:1.55}.month-control{min-width:205px;position:relative;z-index:2}.month-control label{display:block;color:var(--muted);font-size:12px;margin-bottom:7px}.month-control select,.toolbar select{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:14px;padding:12px 14px;outline:none}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:13px 0}.stat-card{padding:19px 20px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:0 9px 25px rgba(46,36,86,.05)}.stat-card .stat-label{color:var(--muted);font-size:12px}.stat-card strong{font-size:28px;display:block;margin-top:5px;letter-spacing:-.04em}.stat-card em{font-size:11px;font-style:normal;color:var(--primary);font-weight:700}.toolbar{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:10px;padding:12px;margin-top:12px}.search-wrap{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 12px}.search-wrap span{color:var(--muted);font-size:22px}.search-wrap input{border:0;outline:0;background:transparent;width:100%;padding:12px 0;color:var(--ink)}.section-head{display:flex;align-items:end;justify-content:space-between;margin:31px 3px 13px}.section-head h2{font-size:24px;margin:0;letter-spacing:-.03em}.view-toggle{border:0;background:transparent;color:var(--primary);font-weight:700;font-size:12px;cursor:pointer}.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.implement-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:19px;cursor:pointer;transition:.2s;display:flex;flex-direction:column;min-height:244px;box-shadow:0 9px 24px rgba(46,36,86,.04)}.implement-card:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(46,36,86,.10);border-color:#d4cdf0}.card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.category-pill{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:6px 8px;border-radius:999px;background:var(--surface-2);color:#625982}.intensity-badge{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;border-radius:999px;padding:6px 9px;white-space:nowrap}.intensity-badge .dot{width:7px;height:7px}.implement-card h3{font-size:19px;line-height:1.12;letter-spacing:-.035em;margin:17px 0 7px}.implement-card p{color:var(--muted);font-size:13px;line-height:1.5;margin:0}.mini-calendar{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;margin-top:auto;padding-top:18px}.month-cell{height:24px;border-radius:6px;position:relative}.month-cell.active{outline:2px solid var(--ink);outline-offset:1px}.month-cell::after{content:attr(data-m);font-size:8px;font-weight:800;position:absolute;inset:0;display:grid;place-items:center;color:#504a60}.month-cell.i5::after,.month-cell.i4::after{color:#fff}.i5{background:var(--i5)!important}.i4{background:var(--i4)!important}.i3{background:var(--i3)!important}.i2{background:var(--i2)!important}.i1{background:var(--i1)!important}.i0{background:var(--i0)!important}.card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px;color:var(--muted);font-size:11px}.card-footer b{color:var(--primary)}.legend{margin-top:18px;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.legend strong{display:block;font-size:13px}.legend span{color:var(--muted);font-size:11px}.legend-scale{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:11px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.empty-state{text-align:center;padding:42px}.empty-state h3{margin:0 0 4px}.empty-state p{margin:0;color:var(--muted)}footer{text-align:center;color:#9893a8;font-size:11px;padding:26px 0 8px}.detail-dialog{width:min(760px,calc(100% - 24px));border:0;border-radius:26px;padding:0;box-shadow:0 35px 100px rgba(20,14,45,.3);color:var(--ink);overflow:visible}.detail-dialog::backdrop{background:rgba(26,19,48,.46);backdrop-filter:blur(7px)}.dialog-close{position:absolute;right:15px;top:15px;width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:22px;z-index:2}.detail-content{padding:30px}.detail-content h2{font-size:32px;letter-spacing:-.05em;margin:6px 50px 8px 0}.detail-content>.muted{line-height:1.55}.muted{color:var(--muted)}.detail-months{display:grid;grid-template-columns:repeat(12,1fr);gap:5px;margin:24px 0}.detail-month{height:58px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:9px;font-weight:800;color:#5a5467;gap:4px}.detail-month b{font-size:11px}.detail-month.i5,.detail-month.i4{color:#fff}.detail-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:12px}.detail-box{border:1px solid var(--line);border-radius:16px;padding:16px;background:#faf9fd}.detail-box h4{margin:0 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.campaign{padding:10px 0;border-bottom:1px solid var(--line)}.campaign:last-child{border-bottom:0}.campaign strong{display:block;font-size:13px}.campaign span{font-size:12px;color:var(--muted);display:block;margin-top:3px}.ideas{margin:0;padding-left:18px;color:var(--muted);font-size:13px;line-height:1.7}.settings-card{padding:28px;margin-top:20px}.settings-card h1{margin:0;font-size:31px;letter-spacing:-.04em}.login-body{display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 15% 15%,rgba(109,74,255,.15),transparent 30%),linear-gradient(155deg,#f8f7fc,#efedf8)}.login-shell{width:min(980px,100%)}.login-card{width:min(520px,100%);margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:0 30px 90px rgba(41,31,83,.16)}.brand-login{margin-bottom:34px}.login-copy h1{font-size:38px;line-height:1.02;letter-spacing:-.05em;margin:0}.login-copy>p:last-child{color:var(--muted);line-height:1.6;font-size:14px}.login-form{display:grid;gap:13px;margin-top:22px}.login-form label{font-size:12px;font-weight:700;color:#4e485c}.login-form input{width:100%;margin-top:7px;padding:13px 14px;border-radius:14px;border:1px solid var(--line);outline:none;background:#fbfafe;color:var(--ink)}.login-form input:focus{border-color:#9d8af5;box-shadow:0 0 0 3px rgba(109,74,255,.09)}.btn{border:0;border-radius:14px;padding:13px 16px;font-weight:800;cursor:pointer}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.login-foot{text-align:center;color:#aaa5b5;font-size:10px;margin:24px 0 0}.alert{padding:11px 13px;border-radius:12px;font-size:12px;margin-top:15px}.alert.error{background:#fff0f2;color:#9d2638;border:1px solid #ffd4da}.alert.success{background:#effaf3;color:#226b3b;border:1px solid #cdebd7}
@media(max-width:900px){.cards-grid{grid-template-columns:repeat(2,1fr)}.stats-grid{grid-template-columns:repeat(2,1fr)}.toolbar{grid-template-columns:1fr 1fr}.search-wrap{grid-column:1/-1}.detail-grid{grid-template-columns:1fr}}
@media(max-width:650px){.app-shell{width:min(100% - 18px,1240px);padding-top:8px}.topbar{height:62px}.brand span{display:none}.brand-mark{width:38px;height:38px}.hero{padding:23px;display:block}.hero h1{font-size:37px}.month-control{margin-top:24px;min-width:0}.stats-grid{gap:8px}.stat-card{padding:15px}.stat-card strong{font-size:24px}.toolbar{grid-template-columns:1fr;padding:9px}.search-wrap{grid-column:auto}.cards-grid{grid-template-columns:1fr}.implement-card{min-height:232px}.section-head{margin-top:25px}.section-head .eyebrow{display:none}.legend{display:block}.legend-scale{margin-top:13px}.detail-dialog{border-radius:22px}.detail-content{padding:23px}.detail-content h2{font-size:27px}.detail-months{grid-template-columns:repeat(6,1fr)}.login-card{padding:26px}.login-copy h1{font-size:33px}}

/* Campaign radar */
.icon-btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.alert-jump{position:relative}.nav-badge{position:absolute;right:-5px;top:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#ff5c77;color:#fff;border:2px solid #f5f4fb;font-size:9px;font-weight:900;display:grid;place-items:center;box-shadow:0 4px 11px rgba(255,92,119,.26)}
.campaign-radar{margin-top:13px;padding:22px}.radar-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:17px}.radar-title-wrap{display:flex;align-items:center;gap:13px}.radar-symbol{width:46px;height:46px;border-radius:15px;background:linear-gradient(145deg,#6d4aff,#8b74ff);color:#fff;display:grid;place-items:center;box-shadow:0 10px 25px rgba(109,74,255,.24);flex:0 0 auto}.radar-symbol svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.radar-head h2{margin:0;font-size:22px;letter-spacing:-.035em}.radar-head p:not(.eyebrow){margin:4px 0 0;color:var(--muted);font-size:12px}.live-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#faf9fd;border-radius:999px;padding:7px 10px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.live-pill>span{width:7px;height:7px;border-radius:50%;background:#24b871;box-shadow:0 0 0 4px rgba(36,184,113,.10)}
.radar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.radar-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fbfafd;padding:16px;min-height:208px}.radar-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#c8c1de}.radar-card.tone-started:before{background:#32a974}.radar-card.tone-hot:before{background:var(--primary)}.radar-card.tone-upcoming:before{background:#d39728}.radar-card.tone-cooling:before{background:#8790a3}.radar-card-top{display:flex;align-items:center;gap:9px}.radar-card-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);color:#5f567a}.radar-card-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tone-started .radar-card-icon{color:#22835a;background:#f2fbf6;border-color:#d8f0e2}.tone-hot .radar-card-icon{color:var(--primary);background:#f4f1ff;border-color:#e2dbff}.tone-upcoming .radar-card-icon{color:#a96e0e;background:#fff9ed;border-color:#f6e5bd}.tone-cooling .radar-card-icon{color:#687084;background:#f6f7f9;border-color:#e2e5eb}.radar-kicker{font-size:9px;font-weight:900;letter-spacing:.095em;color:var(--muted)}.radar-card h3{font-size:15px;line-height:1.2;margin:13px 0 6px;letter-spacing:-.025em}.radar-card>p{color:var(--muted);font-size:11px;line-height:1.45;margin:0 0 13px}.radar-chips{display:flex;gap:6px;flex-wrap:wrap}.radar-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #e5e1ef;background:#fff;border-radius:10px;padding:6px 7px;color:#4e485c;font-size:9px;font-weight:800;cursor:pointer;transition:.18s;text-align:left}.radar-chip:hover{border-color:#cfc6f1;color:var(--primary);transform:translateY(-1px)}.chip-icon,.category-icon,.detail-category-icon{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.radar-more,.radar-empty{font-size:9px;color:var(--muted);display:inline-flex;align-items:center;padding:6px 3px}.radar-more{font-weight:800;color:var(--primary)}
.category-pill{display:inline-flex;align-items:center;gap:5px}.category-icon{width:12px;height:12px}.detail-content>.eyebrow{display:flex;align-items:center;gap:6px}.selected-month-status{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#faf9fd;border-radius:14px;padding:10px 12px;margin-top:15px}.selected-month-status strong{font-size:12px}.selected-month-status>span:last-child{font-size:10px;color:var(--muted);margin-left:auto}.detail-month.selected{outline:2px solid var(--ink);outline-offset:2px}

@media(max-width:1050px){.radar-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.campaign-radar{padding:16px}.radar-head{align-items:flex-start}.radar-title-wrap{align-items:flex-start}.radar-symbol{width:41px;height:41px;border-radius:13px}.radar-head h2{font-size:19px}.live-pill{display:none}.radar-grid{grid-template-columns:1fr}.radar-card{min-height:0;padding:15px}.selected-month-status{flex-wrap:wrap}.selected-month-status>span:last-child{width:100%;margin-left:17px}.top-actions{gap:6px}.icon-btn{width:39px;height:39px}}
