.tab-view{animation:fadeIn .22s ease}@keyframes fadeIn{from{opacity:.35;transform:translateY(5px)}}.range-select{border:1px solid #ddd;background:#fff;border-radius:9px;padding:10px 13px}.manage-panel{padding:0;overflow:hidden}.table-head,.campaign-row{display:grid;grid-template-columns:2fr 1.2fr .6fr .8fr .5fr;align-items:center;gap:16px;padding:16px 22px}.table-head{background:#faf9fb;color:#8c8994;font-size:10px;text-transform:uppercase;letter-spacing:.7px}.campaign-row{border-top:1px solid #eeecf0}.campaign-main{display:flex;align-items:center;gap:12px;min-width:0}.campaign-main .link-icon{flex:none}.campaign-main b,.campaign-main small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.campaign-main b{font-size:13px}.campaign-main small{font-size:9px;color:#999;margin-top:3px}.campaign-tag{font-size:11px;background:#f0ecff;color:var(--purple);padding:6px 9px;border-radius:99px;width:max-content}.status-pill{font-size:10px;padding:5px 8px;border-radius:99px;background:#e5f8ef;color:#16845c;width:max-content}.status-pill.paused{background:#fff0dd;color:#a5630c}.row-actions{display:flex;gap:4px}.icon-btn{border:0;background:#f2f0f5;border-radius:7px;width:30px;height:30px;cursor:pointer}.insight-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:15px}.insight-wide{grid-column:1/-1}.panel-sub{font-size:11px;color:#96929d;margin:0 0 22px}.time-bars>div{display:grid;grid-template-columns:50px 1fr 36px;align-items:center;gap:12px;margin:16px 0;font-size:11px}.time-bars i{display:block;width:var(--v);height:13px;background:linear-gradient(90deg,var(--purple),#a995ff);border-radius:20px}.time-bars b{text-align:right}.rank-list>div,.source-list>div{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid #eee;font-size:12px}.rank-list>div:last-child,.source-list>div:last-child{border:0}.rank-list b{display:grid;place-items:center;width:25px;height:25px;background:#f1eef9;border-radius:7px}.rank-list span,.source-list b{flex:1}.rank-list em,.source-list em{font-style:normal;font-weight:700}.donut-row{display:flex;align-items:center;justify-content:center;gap:35px;padding:18px 0}.donut{width:130px;height:130px;border-radius:50%;background:conic-gradient(var(--purple) 0 52%,var(--coral) 52% 88%,var(--yellow) 88%);position:relative}.donut:after{content:'1,206\A คลิก';white-space:pre;position:absolute;inset:25px;background:white;border-radius:50%;display:grid;place-items:center;text-align:center;font-size:11px;font-weight:700}.legend{display:flex;flex-direction:column;gap:13px}.legend span{display:flex;align-items:center;gap:8px;font-size:11px}.legend span b{margin-left:10px}.legend i{width:8px;height:8px;border-radius:50%}.purple-dot{background:var(--purple)}.coral-dot{background:var(--coral)}.yellow-dot{background:var(--yellow)}.source-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:white;font-weight:700}.ig{background:linear-gradient(135deg,#7947db,#f25b65)}.tt{background:#17161c}.fb{background:#2877e8}.direct{background:#8a8790}.qr-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:16px}.qr-settings label{display:block;font-size:12px;font-weight:700;margin:24px 0}.qr-settings select{display:block;width:100%;padding:12px;margin-top:8px;border:1px solid #ddd;border-radius:9px;background:white}.color-row{display:flex;align-items:center;gap:10px;margin-top:8px;padding:7px;border:1px solid #ddd;border-radius:9px}.color-row input{width:42px;height:35px;border:0;padding:0;background:none}.color-row span{font-size:12px}.qr-preview{text-align:center;display:flex;flex-direction:column;align-items:center}.qr-label{align-self:flex-start;font-size:10px;color:#999;text-transform:uppercase}.qr-frame{width:270px;height:270px;padding:18px;background:white;border:1px solid #ddd;border-radius:20px;margin:15px}.qr-frame img{width:100%;height:100%;display:block}.qr-preview>b{font-size:16px}.qr-preview>small{color:#999;margin:7px 0 20px}.qr-preview .btn{text-decoration:none;font-size:12px}.profile-panel{max-width:650px}.profile-panel form{max-width:510px}.profile-avatar{width:78px;height:78px;border-radius:20px;background:var(--yellow);display:grid;place-items:center;font-size:28px;font-weight:700;margin-bottom:25px}.profile-panel textarea{display:block;width:100%;border:1.5px solid #d7d2ca;border-radius:11px;padding:14px;margin-top:7px;resize:vertical}.url-input{display:flex;align-items:center;border:1.5px solid #d7d2ca;border-radius:11px;margin-top:7px;overflow:hidden;background:#f5f3f7}.url-input span{padding-left:13px;color:#777}.url-input input{border:0;margin:0;background:white;border-radius:0}
@media(max-width:900px){.table-head{display:none}.campaign-row{grid-template-columns:1fr auto;gap:10px}.campaign-row>*:nth-child(2),.campaign-row>*:nth-child(3){display:none}.insight-grid,.qr-layout{grid-template-columns:1fr}.insight-wide{grid-column:auto}}
@media(max-width:620px){.qr-frame{width:220px;height:220px}.campaign-row{padding:14px}.donut-row{gap:18px}.dash-title{display:block}.range-select{margin-top:15px}}
.performance-panel{min-width:0}.campaign-chart-legend{display:flex;flex-wrap:wrap;gap:8px 14px;min-height:28px;margin:4px 0 8px;font-size:10px;color:#777}.campaign-chart-legend span{display:flex;align-items:center;gap:6px}.campaign-chart-legend i,.campaign-tag i{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}.real-line-chart{position:relative}.real-line-chart svg{overflow:visible}.real-line-chart .chart-grid line{stroke:#eceaf0;stroke-width:1}.real-line-chart .x-labels{position:relative;height:24px;margin-left:36px}.real-line-chart .x-labels span{position:absolute;transform:translateX(-50%);white-space:nowrap}.chart-empty{display:none;position:absolute;inset:72px 20px 45px 45px;place-items:center;color:#96929d;font-size:12px;background:rgba(255,255,255,.72);border-radius:12px}.chart-empty.visible{display:grid}.campaign-row{border-left:4px solid var(--campaign-color,#6446e8)}.campaign-row .link-icon{color:var(--campaign-color,#6446e8)}.campaign-tag{display:inline-flex;align-items:center;gap:6px}.campaign-tag i{background:var(--campaign-color,#6446e8)}
