/* LuckStar 1.5 — readable cards, focused forms, responsive workspace. */
:root{--bg:#f5f6fa;--ink:#202636;--muted:#707a8d;--line:#e8eaf0;--blue:#29358e;--pale:#eef1fb;--green:#148369;--shadow:0 2px 7px #222a4504;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
.ui-icon{width:18px;height:18px;flex-shrink:0;vertical-align:middle}.sidebar{width:212px;padding:28px 16px;background:#fff}.sidebar .brand{margin-bottom:38px;padding-left:12px;font-size:24px;letter-spacing:0}.brand-mark{background:#29358e;border-radius:11px;box-shadow:none}.brand small{font-size:11px;letter-spacing:1px;color:#8b91a1}.nav-caption{font-size:11px;letter-spacing:1px;color:#969baa;padding-left:15px}nav{gap:6px}nav a{min-height:46px;padding:12px 14px;color:#626b7b;font-size:14px;border-radius:8px}nav a span{display:flex;align-items:center;justify-content:center;width:20px;color:inherit}nav a.active{background:#eef1fb;color:#29358e}nav a.active b{background:#dce3f6;color:#29358e}nav a b{background:#f1f2f6;font-weight:500}nav a:hover{background:#f2f4fb}.workspace{margin-left:212px}.topbar{height:64px;padding:0 32px;background:#ffffffea}.breadcrumb{font-size:13px}.top-actions{gap:12px}.avatar{background:#edf1fb;color:#364595;border:0}.timezone{font-size:12px}.sidebar-bottom{padding:20px 12px 0;font-size:12px}.sidebar-bottom p{font-size:11px;line-height:1.9}.version-label{color:#a0a5b2}.top-actions .text-button{color:#656d7e}main{padding:30px 32px 24px;max-width:1440px}.page-head{margin-bottom:24px;align-items:center}.eyebrow{letter-spacing:1.5px;color:#8b92a3;font-size:10px;margin-bottom:10px}h1{font-size:26px;letter-spacing:0;font-weight:650}h2{font-weight:600}.page-head p:not(.eyebrow){font-size:13px;margin-top:9px;color:#707c90}.btn{min-height:38px;border-radius:8px;padding:9px 15px;color:#51596d;background:#fff;font-size:13px;transition:background .15s,border-color .15s}.btn.primary{background:var(--blue);border-color:var(--blue);box-shadow:0 3px 7px #29358e1c;color:#fff}.btn.primary:hover{background:#1e286f}.btn:hover{border-color:#8c99ce}.btn.soft{color:#29358e;background:#eef1fb;border-color:transparent}.btn.small{min-height:32px;padding:6px 10px}.text-button{font-size:12px;display:inline-flex;gap:5px;align-items:center;justify-content:center;border-radius:5px}.text-button:hover{background:#eef1fb;text-decoration:none}.text-button .ui-icon{width:14px;height:14px}.card{border-radius:12px;border-color:#e6e8ef;box-shadow:var(--shadow)}input,select,textarea{border-color:#dedfe8;border-radius:7px;min-height:40px;font-size:13px}input:focus,select:focus,textarea:focus{border-color:#8997cb;box-shadow:0 0 0 3px #29358e12}input::placeholder{color:#a2a6b3}label{font-size:13px;color:#545c70}.hint,label .hint{font-size:12px;color:#858b9c}.muted{color:#7b8394}.notice{font-size:12px;line-height:1.8;color:#747e91;background:#f0f3fa;border:1px solid #e7ebf3;border-radius:8px;padding:13px 16px;margin-bottom:18px}.badge{font-size:11px;padding:5px 9px;border-radius:6px;color:#7a8191;background:#f0f1f5;white-space:nowrap}.badge.green{background:#eaf6f0;color:#238468}.badge.green:before{content:'';display:inline-block;width:5px;height:5px;background:currentColor;border-radius:50%;margin-right:6px}.badge.blue{background:#eef1fb;color:#495a9a}.badge.orange{background:#fff5e6;color:#a57532}
.campaign-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:26px}.campaign-summary>div{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:20px 22px}.summary-icon{display:grid;place-items:center;background:#eef1fb;color:#344592;width:44px;height:44px;border-radius:11px}.summary-icon .ui-icon{width:22px;height:22px}.summary-icon.green{background:#ebf7f0;color:#399879}.summary-icon.violet{background:#eef2fa;color:#6078a7}.campaign-summary>div>span:last-child{font-size:12px;color:#838a99;display:flex;flex-direction:column;gap:7px}.campaign-summary strong{font-size:24px;color:#30364a;font-weight:600;line-height:1}.campaign-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.status-tabs{display:flex;gap:6px;flex-shrink:0}.status-tabs button{display:flex;gap:7px;align-items:center;background:none;border:0;color:#89909d;font-size:13px;padding:9px 12px;border-radius:7px;white-space:nowrap}.status-tabs button span{font-size:11px;padding:2px 5px;background:#e9ebf1;border-radius:4px;min-width:18px}.status-tabs button.selected{background:#fff;color:#29358e;box-shadow:0 1px 4px #2630480b}.status-tabs button.selected span{background:#e9eefb;color:#53639f}.campaign-search{display:flex;gap:9px;min-width:0}.campaign-search .search input{min-width:0;width:235px;font-size:12px;background:#fff}.campaign-search>.btn{padding:9px}.campaign-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}.campaign-card{padding:0;min-width:0}.campaign-card-head{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:23px 24px 0}.campaign-identity{display:flex;gap:13px;align-items:center;min-width:0}.campaign-symbol{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#eef1fb;color:#354892;flex-shrink:0}.campaign-symbol .ui-icon{width:23px;height:23px}.campaign-identity>div{min-width:0}.campaign-identity h2{font-size:16px;line-height:1.5;overflow-wrap:anywhere}.campaign-identity p{font-size:11px;color:#9298a6;margin-top:5px}.campaign-identity p span{padding:0 6px;color:#c3c7d1}.campaign-note{font-size:12px;color:#858c9a;line-height:1.7;padding:0 24px;margin:14px 0 0;overflow-wrap:anywhere}.campaign-card-body{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:28px;margin:20px 24px}.inner-summary{background:#f8f9fc;border:1px solid #eff0f5;border-radius:9px;min-width:0;padding:14px 16px}.inner-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;font-size:12px;color:#677085;gap:6px}.inner-heading strong{font-weight:500}.inner-heading strong span{margin-left:6px;color:#a0a5b1}.inner-preview{display:flex;align-items:center;gap:10px;padding:13px 0;border-top:1px solid #eaeef4;min-width:0}.inner-preview:first-of-type{border-top:0}.inner-preview>div:nth-child(2){min-width:0;flex:1}.inner-preview strong{font-size:12px;display:block;font-weight:500;color:#4e576c}.inner-dot{width:6px;height:6px;border-radius:50%;background:#b8bdc8;flex-shrink:0}.inner-dot.ready{background:#62b69b}.target-address{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#949bab;font-size:11px;margin-top:5px}.inner-limit{font-size:11px;color:#7d8596;text-align:right;white-space:nowrap}.inner-limit small{display:block;color:#a3a9b7;font-size:10px;margin-top:5px}.more-inner summary{font-size:12px;padding-top:9px;color:#5266a8}.campaign-qr{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0}.qr-button{background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px;line-height:0}.qr-button:hover{border-color:#9ba8d3;box-shadow:0 3px 15px #29358e12}.qr-button img{width:88px;height:88px;display:block}.campaign-qr>span{font-size:11px;color:#737c8c;overflow-wrap:anywhere;text-align:center}.campaign-qr>small{font-size:10px;color:#a5aab6}.qr-placeholder{padding:20px;background:#f3f3f8;border-radius:10px}.qr-placeholder .ui-icon{height:40px;width:40px;color:#aaaac2}.campaign-numbers{display:flex;gap:0;margin:0 24px 20px}.campaign-numbers>div{display:flex;gap:12px;align-items:baseline;padding:0 26px;border-right:1px solid var(--line)}.campaign-numbers>div:first-child{padding-left:0}.campaign-numbers>div:last-child{border:0}.campaign-numbers span{font-size:11px;color:#9399a7}.campaign-numbers strong{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;color:#444b5f}.campaign-card-foot{padding:16px 24px;background:#fdfdff;border-top:1px solid #f0f1f5;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.campaign-card-foot>.text-button{margin-left:auto;color:#838999}.list-caption{display:flex;justify-content:space-between;gap:10px;margin-top:18px;font-size:11px;color:#9a9fad}.empty{grid-column:1/-1;padding:60px 20px;border:1px dashed #daddE8;border-radius:12px;background:#fff}.empty p{color:#8b92a2}.empty .btn{margin-top:12px}.empty-icon{background:#eef1fb;color:#7c8dbe}
/* Editor keeps the save action visible while the inner-code list scrolls. */
dialog{border-radius:14px;border:1px solid #e4e5ed;box-shadow:0 24px 100px #1a213733;max-height:92vh}dialog::backdrop{background:#20263e55;backdrop-filter:blur(2px)}.modal-head{padding:20px 26px;position:sticky;top:0;background:#fff;z-index:2}.modal-head h2{font-size:19px}.modal-head .eyebrow{color:#969bad}.modal-actions{background:#fff;position:sticky;bottom:0;z-index:2;padding:15px 26px}.modal-content{padding:24px 26px}.icon-button{background:#f2f3f7;color:#848b9b;border-radius:7px;width:32px;height:32px}.campaign-editor{width:840px;max-width:calc(100vw - 32px)}.campaign-editor .modal-content{background:#f7f8fb;padding:22px 26px}.editor-intro{display:flex;gap:13px;align-items:center;margin-bottom:20px;padding:0 3px}.editor-intro>span{display:grid;place-items:center;color:#4b609f;background:#edf1fb;border-radius:10px;width:40px;height:40px;flex-shrink:0}.editor-intro strong{font-size:13px;font-weight:500;color:#565e73}.editor-intro p{font-size:12px;color:#9298a6;margin-top:5px;line-height:1.7}.editor-section{border:1px solid var(--line);padding:21px;background:white;border-radius:10px;margin-bottom:16px}.editor-section>h3,.editor-section>.section-label{margin:0 0 20px}.editor-section h3{font-size:14px;color:#485267;display:flex;align-items:center;gap:10px}.editor-section h3 b{font-size:11px;color:#4c619d;background:#edf1fb;padding:5px 6px;border-radius:5px;font-weight:500}.editor-section .form-grid{gap:16px}.assignment-row.inline-target{border:1px solid #e5e6ef;background:#fafbfe;padding:18px;margin:0;border-radius:8px}.inline-target .section-label>strong{font-size:13px;color:#4b5a8d}.assignment-list{gap:16px}.assignment-list .section-label{margin-top:0}.inline-target .text-button[data-action="remove-assignment"]{color:#b18189}.assignment-bottom{padding-top:13px;border-top:1px solid var(--line)}.assignment-bottom .switch-label{font-size:12px}.strategy-help{margin-top:15px;line-height:1.8;color:#9298a6}.strategy-help summary{font-size:12px;color:#777f91}.strategy-help p{font-size:12px;margin-top:8px}.switch-label input{accent-color:var(--blue)}.campaign-editor .modal-actions .primary{min-width:160px}.error:empty{display:none}.channel-card{padding:18px;background:#fdfdff}.channel-card img{width:76px;height:76px}.channel-info h3{font-size:14px}.channel-info p{font-size:12px}.entry-toolbar{padding:16px 20px;display:flex;gap:16px;align-items:center;margin-bottom:18px}.entry-toolbar label{flex-direction:row;align-items:center;white-space:nowrap}.entry-toolbar select{width:230px}.entry-toolbar>.muted{font-size:12px;flex:1}.entry-options-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.entry-options-grid .entry-option{padding:20px;gap:16px;border-bottom:1px solid var(--line);align-items:flex-start}.entry-options-grid .entry-option+ .entry-option{border-left:1px solid var(--line)}.entry-options-grid .entry-qr{width:92px;height:92px;border:1px solid var(--line);padding:5px;border-radius:7px}.entry-content h3{font-size:13px;line-height:1.7}.entry-content .badge{font-size:10px}.entry-content .hint{font-size:11px}.entry-content .actions{gap:10px}.entry-content .text-button{font-size:11px;padding:4px 0}.entry-url{font-size:12px;color:#50639d}.entry-card details{margin-top:15px}.entry-card .card-head{padding:20px 22px}.entry-card h3{font-size:15px}.metrics{gap:18px}.metric{padding:22px}.metric strong{font-size:30px;font-weight:600}.metric-blue{background:#273585}.metric-icon{background:#eef1fb;color:#5669a6}.metric-blue .metric-icon{color:#fff}.metric-top{color:#7f8797}.metric p{color:#949aaa}.metric-blue p,.metric-blue .metric-top{color:#e5ebff}.columns{gap:20px}.card-head h3{font-size:15px}.data-note{font-size:12px}.table-wrap th{font-size:12px;background:#f8f9fc;color:#8b92a1}.table-wrap td{font-size:12px;padding-top:17px;padding-bottom:17px}.cell-sub{font-size:11px}.cell-title{font-size:13px}.date-filters{padding:16px;background:white;border:1px solid var(--line);border-radius:10px}.date-filters .filter-label{font-size:12px}footer{font-size:10px;color:#a8adba;padding:20px 25px}.nav-scrim,#mobile-menu{display:none}.login-visual{background:#efeffa}.login-visual .brand-mark{color:white}.login-form .btn{min-height:44px}.loading{font-size:13px}.rule-summary{box-shadow:none}.rule-summary .circle{background:#eef1fb;color:#5265a5}
@media(min-width:1600px){.campaign-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-card-body{grid-template-columns:minmax(0,1fr) 115px;gap:18px}.campaign-numbers>div{padding:0 16px}.campaign-card-foot{gap:8px}.campaign-card-foot .btn{padding:8px 10px}}
@media(max-width:1150px){.entry-options-grid{grid-template-columns:1fr}.entry-options-grid .entry-option+ .entry-option{border-left:0;border-top:0}.entry-options-grid .entry-qr{width:108px;height:108px}.campaign-summary{gap:12px}.campaign-summary>div{padding:18px}.columns{grid-template-columns:1fr}.campaign-search .search input{width:200px}}
@media(max-width:900px){.sidebar{width:190px;padding:25px 12px}.workspace{margin-left:190px}main{padding:25px 22px}.topbar{padding:0 22px}.campaign-summary>div{gap:10px;padding:15px}.summary-icon{width:36px;height:36px}.campaign-toolbar{align-items:stretch;flex-direction:column}.campaign-search .search{flex:1}.campaign-search .search input{width:100%}.campaign-numbers>div{padding:0 18px;gap:8px}.campaign-card-body{gap:16px;grid-template-columns:minmax(0,1fr) 112px}.campaign-card-head{padding:20px 20px 0}.campaign-card-body{margin:18px 20px}.campaign-card-foot{padding:15px 20px}.campaign-note{padding:0 20px}.entry-toolbar{flex-wrap:wrap}.entry-toolbar label{flex:1}.entry-toolbar select{width:100%}}
@media(max-width:760px){.sidebar{position:fixed;inset:0 auto 0 0;height:100dvh;width:225px;padding:25px 16px;border-right:1px solid var(--line);border-bottom:0;transform:translateX(-100%);transition:transform .2s;z-index:40}.sidebar .brand{font-size:23px;display:flex;align-items:center;margin-bottom:32px;padding-left:8px}.sidebar .brand small{display:block;margin-left:0;margin-top:4px}.sidebar .brand-mark{width:38px;height:38px}.sidebar .nav-caption,.sidebar .sidebar-bottom{display:block}.sidebar nav{display:grid;overflow:visible;padding:0;gap:7px}.sidebar nav a{padding:13px 14px;font-size:14px;gap:12px}.sidebar nav a b{display:block}.sidebar nav a span{width:20px}.workspace{margin:0}.nav-open .sidebar{transform:translateX(0)}.nav-open .nav-scrim{display:block;position:fixed;inset:0;border:0;background:#1f233e55;z-index:35}.topbar{height:60px;padding:0 16px;gap:10px}.topbar .breadcrumb{margin-right:auto;font-size:12px}.topbar .breadcrumb>span{display:none}.breadcrumb{font-size:0!important}.breadcrumb b{font-size:13px}.top-actions{gap:7px}.top-actions>.avatar{width:26px;height:26px}.top-actions>.text-button{font-size:11px;padding:4px}#mobile-menu{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px}.page-head{align-items:center;margin-bottom:20px;gap:10px}.page-head .eyebrow{font-size:9px;margin-bottom:8px}.page-head h1{font-size:23px}.page-head p:not(.eyebrow){font-size:12px;max-width:none;line-height:1.7}.page-head .btn{font-size:12px;padding:9px 12px}.page-head .btn .ui-icon{width:15px}main{padding:23px 16px 15px}.campaign-summary{gap:9px;margin-bottom:20px}.campaign-summary>div{padding:14px 12px;gap:0}.summary-icon{display:none}.campaign-summary>div>span:last-child{font-size:11px;gap:9px}.campaign-summary strong{font-size:23px}.campaign-toolbar{gap:13px}.status-tabs{gap:5px}.status-tabs button{font-size:12px;padding:8px 11px}.campaign-card-head{padding:18px 16px 0;align-items:flex-start}.campaign-symbol{width:36px;height:36px;border-radius:9px}.campaign-identity{gap:10px}.campaign-identity h2{font-size:15px}.campaign-identity p{font-size:10px;line-height:1.7}.campaign-identity p span{padding:0 3px}.campaign-note{padding:0 16px;font-size:11px}.campaign-card-body{grid-template-columns:minmax(0,1fr);margin:17px 16px;gap:15px}.inner-summary{padding:12px}.campaign-qr{flex-direction:row;justify-content:flex-start;gap:10px}.qr-button{padding:5px}.qr-button img{width:50px;height:50px}.campaign-qr>small{margin-left:auto;font-size:10px}.campaign-numbers{margin:0 16px 17px;justify-content:space-between}.campaign-numbers>div{padding:0 12px;display:flex;flex-direction:column;gap:6px;flex:1}.campaign-numbers>div:first-child{padding-left:0}.campaign-numbers strong{font-size:20px}.campaign-numbers span{font-size:10px}.campaign-card-foot{padding:14px 16px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.campaign-card-foot>.text-button{margin-left:0}.campaign-card-foot .btn{font-size:12px;min-height:38px;padding:8px}.list-caption{font-size:10px;flex-wrap:wrap;line-height:1.8}.inner-limit{font-size:10px}.inner-heading .text-button{font-size:11px}.entry-toolbar{padding:14px;gap:12px}.entry-toolbar label{width:100%;flex:auto;font-size:12px}.entry-toolbar>.btn{min-height:33px;font-size:12px}.entry-options-grid .entry-option{padding:17px 15px;gap:12px}.entry-options-grid .entry-qr{width:77px;height:77px}.entry-content h3{font-size:13px}.entry-content .badge{display:inline-block;margin:0 0 0 4px}.entry-card .card-head{padding:17px 15px;align-items:flex-start}.entry-card .card-head h3{font-size:14px;line-height:1.7}.entry-card .card-head p{font-size:11px}.entry-content .actions{gap:8px}.notice{font-size:11px;padding:12px 13px}.campaign-editor{width:100%;max-width:100%;max-height:100dvh;height:100dvh;margin:0;border:0;border-radius:0}.campaign-editor .modal-head{padding:17px 18px}.campaign-editor .modal-head h2{font-size:18px}.campaign-editor .modal-content{padding:18px 14px}.editor-intro p{font-size:11px}.editor-section{padding:16px 13px}.editor-section h3{font-size:13px}.editor-section .form-grid{grid-template-columns:1fr}.assignment-row.inline-target{padding:14px 12px}.inline-target .section-label .actions{gap:1px}.inline-target .text-button{font-size:11px}.modal-actions{padding:14px 18px}.form-grid .span-2{grid-column:auto}.campaign-editor .modal-actions .primary{min-width:0;flex:1}.campaign-editor .modal-actions .btn{min-height:42px}.assignment-bottom{gap:7px}.assignment-bottom .hint{font-size:11px}.editor-section label{font-size:12px}.metrics{gap:12px}.metric{padding:17px}.metric strong{font-size:26px}.metric p{font-size:11px}.card-head{padding:18px}.date-filters{padding:13px;gap:12px}.date-filters .filter-group{gap:8px}.date-filters .filter-label{width:100%}.date-filters input{width:calc(50% - 18px);max-width:none;font-size:12px}.date-filters select{max-width:none;flex:1}.loading{padding:70px 20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

.entry-explanation{padding:16px 18px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#838b9a;font-size:12px;line-height:1.8}.entry-explanation summary{font-size:12px}.entry-explanation p{margin-top:10px}@media(max-width:760px){.sidebar{visibility:hidden}.nav-open .sidebar{visibility:visible}}

.modal-head>div{min-width:0}.modal-head h2{overflow-wrap:anywhere}.modal-head>.icon-button{flex-shrink:0}.campaign-identity p{overflow-wrap:anywhere}

.basic-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer}.basic-disclosure>summary::-webkit-details-marker{display:none}.basic-disclosure>summary:after{content:'⌄';color:#9097a6}.basic-disclosure[open]>summary:after{content:'⌃'}.basic-disclosure>summary>span{font-size:12px;color:#9298a6;margin-left:auto;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.basic-disclosure[open]>.form-grid{margin-top:20px}.page-head{margin-bottom:22px}.page-head>div>p{margin-top:8px}.campaign-card-head{padding-top:20px}.campaign-card-body{margin-top:17px;margin-bottom:17px}.campaign-numbers{margin-bottom:17px}

/* LuckStar 1.8: dense operational table, grouped counts and fixed actions. */
main:has(.campaign-workspace){max-width:none;padding:24px}
.campaign-workspace .page-head{margin-bottom:20px}
.campaign-workspace .page-head h1{font-size:24px}
.campaign-list-card{padding:0;overflow:hidden;border-radius:10px}
.campaign-list-card .campaign-toolbar{margin:0;padding:16px 18px;border-bottom:1px solid var(--line);gap:16px}
.campaign-list-card .status-tabs{gap:5px}
.campaign-list-card .status-tabs button{padding:8px 12px}
.campaign-list-card .campaign-search{margin-left:auto}
.campaign-list-card .campaign-search .search input{width:260px;min-height:36px;font-size:12px}
.campaign-list-card .campaign-search>.btn{min-height:36px;padding:7px 10px}
.campaign-list{overflow:auto;isolation:isolate;scrollbar-gutter:stable}
.campaign-workspace .campaign-list{max-height:calc(100dvh - 260px);min-height:180px}
.campaign-list:focus-visible{outline:2px solid #7d8ccd;outline-offset:-2px}
.campaign-list table{width:100%;min-width:980px;table-layout:fixed;border-collapse:separate;border-spacing:0}
.campaign-list .col-id{width:64px}.campaign-list .col-name{width:170px}.campaign-list .col-inner{width:96px}.campaign-list .col-visits{width:78px}.campaign-list .col-ips{width:78px}.campaign-list .col-status{width:92px}.campaign-list .col-entry{width:100px}.campaign-list .col-stats{width:104px}.campaign-list .col-created{width:104px}.campaign-list .col-actions{width:76px}
.campaign-list th{position:sticky;top:0;z-index:2;padding:13px 12px;background:#f4f6fa;color:#697388;font-size:12px;font-weight:600;white-space:nowrap;border-bottom:1px solid #e1e5ee;text-align:left}
.campaign-list th:not(:last-child):after{content:'';position:absolute;right:0;top:14px;height:15px;width:1px;background:#e2e6ee}
.campaign-list td{height:72px;padding:9px 12px;vertical-align:middle;border-bottom:1px solid #e9ecf2;font-size:12px;background:#fff}
.campaign-list tbody tr:nth-child(even) td{background:#fafbfe}
.campaign-list tbody tr:hover td{background:#f0f4fc}
.campaign-list tbody tr:last-child td{border-bottom:0}
.campaign-list .fixed-actions{position:sticky;right:0;z-index:1;box-shadow:-6px 0 8px -8px #52617c88;text-align:center;border-left:1px solid #e7ebf2}
.campaign-list th.fixed-actions{z-index:3;background:#f4f6fa}
.campaign-id{font-size:11px!important;color:#6e788a}
.campaign-list .campaign-name{display:block;max-width:100%;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-size:13px;font-weight:600;color:#293653;line-height:1.7}
.campaign-list .campaign-name:hover{background:transparent;color:var(--blue);text-decoration:underline}
.campaign-list .row-note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:5px;color:#8a93a3}
.campaign-list .cell-sub{font-size:11px;line-height:1.4;margin-top:5px;color:#8992a3}
.campaign-list .inner-count{padding:0;justify-content:flex-start;font-size:12px;font-weight:500;color:#485570}
.campaign-list .stacked-count{display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:0;width:max-content;min-width:44px;font-variant-numeric:tabular-nums;line-height:1.25}
.campaign-list .stacked-count>span{display:flex;gap:10px;align-items:center;justify-content:space-between}
.campaign-list .stacked-count small{font-size:11px;color:#929bad;font-weight:400}
.campaign-list .stacked-count strong{font-size:13px;font-weight:600;color:#34425e}
.campaign-list .stacked-count b{font-size:12px;font-weight:400;color:#6f7c92}
.campaign-list .ip-count strong{color:#3c54a0}
.campaign-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;white-space:nowrap}
.campaign-status i{width:6px;height:6px;border-radius:50%;background:currentColor}
.campaign-status.active{color:#218564}.campaign-status.paused{color:#959cac}.campaign-status.unavailable{color:#a67b2e}
.campaign-list .entry-row-button,.campaign-list .stats-row-button{min-height:29px;padding:5px 11px;font-size:11px;border-radius:6px;white-space:nowrap;box-shadow:none}
.campaign-list .stats-row-button{background:#e7f5ee;border-color:#d4ebdf;color:#237b5c}
.campaign-list .stats-row-button:hover{background:#d8eee2;border-color:#b8dcc9;color:#176b4c}
.campaign-list .channel-count{padding-left:10px}
.campaign-list .visitor-row-link{display:block;padding:0;margin:5px 0 0 12px;font-size:11px;color:#6a7891;line-height:1.4}
.campaign-list .created-cell{font-size:11px;color:#6d788d;white-space:nowrap}
.campaign-list time .cell-sub{display:block}
.compact-row-actions{display:flex;gap:5px;justify-content:center}
.row-icon-button{border:0;background:transparent;display:grid;place-items:center;width:28px;height:30px;border-radius:5px;color:#50669c;cursor:pointer}
.row-icon-button .ui-icon{width:16px;height:16px}
.row-icon-button:hover{background:#e0e7f8;color:#263986}
.row-icon-button:focus-visible{outline:2px solid #7d8ccd}
.row-icon-button.danger:hover{background:#fbe9e9;color:#b23b3b}
.status-toggle{border:1px solid transparent;background:transparent;padding:4px 8px;margin:-4px -8px;border-radius:999px;cursor:pointer;font:inherit;font-size:11px}
.status-toggle:hover{border-color:currentColor;background:#f6f8fc}
.status-toggle:disabled{opacity:.5;cursor:wait}
.text-button.danger{color:#b23b3b}
.btn.danger{background:#c94343;border-color:#c94343;color:#fff}
.btn.danger:hover{background:#b23b3b}
.campaign-table-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-top:1px solid var(--line);color:#9099aa;font-size:11px;background:#fff}
.campaign-workspace .list-caption{margin-top:12px;font-size:11px;line-height:1.7;color:#929bad}
.campaign-context{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:9px;margin-bottom:20px;font-size:12px}
.campaign-context>strong{font-size:14px}.campaign-context>span{color:var(--muted);margin-right:auto}.ip-metrics{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.campaign-list-card .campaign-search{margin-left:0}.campaign-list-card .campaign-search .search input{width:100%}.campaign-list-card .campaign-toolbar{gap:12px}}
@media(max-width:760px){main:has(.campaign-workspace){padding:20px 14px}.campaign-workspace .page-head h1{font-size:22px}.campaign-list-card .campaign-toolbar{padding:13px 12px}.campaign-list-card .status-tabs button{padding:7px 10px}.campaign-workspace .campaign-list{max-height:65dvh}.campaign-table-footer{padding:12px;flex-wrap:wrap;font-size:10px}.campaign-workspace .list-caption{display:block;font-size:10px}.campaign-workspace .list-caption>span{display:block}.campaign-context{gap:10px}.ip-metrics{grid-template-columns:1fr}}

.table-scroll-hint{display:none}
@media(max-width:760px){.table-scroll-hint{display:block;padding:9px 12px;border-bottom:1px solid var(--line);font-size:10px;color:#9099aa;background:#fbfcfe}.campaign-list td.fixed-actions{padding:9px 4px}.campaign-list .row-icon-button{width:32px;height:36px}.compact-row-actions{gap:4px}}

/* Per-campaign promotion materials stay above the current list. */
dialog.entry-modal{width:900px;max-width:calc(100vw - 32px);max-height:90dvh;padding:0}
.entry-modal .modal-head{padding:22px 28px}.entry-modal .modal-head h2{font-size:23px}.entry-modal .modal-head .eyebrow{font-size:10px;letter-spacing:1.5px}
.promotion-summary{margin:0 28px;padding:22px 0 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}
.promotion-summary strong{font-size:16px;color:#303754;overflow-wrap:anywhere}.promotion-summary p{font-size:12px;color:#9399aa;margin:7px 0 0}.promotion-summary-icon{width:40px;height:40px;border-radius:10px;background:#f0f1fa;color:var(--blue);display:grid;place-items:center;flex-shrink:0}
.promotion-list{padding:0 28px}.promotion-row{display:grid;grid-template-columns:132px minmax(0,1fr) 100px;gap:23px;align-items:center;padding:25px 0;border-bottom:1px solid var(--line)}.promotion-row:last-child{border-bottom:0}
.promotion-qr{background:#fff;border:1px solid #e9ebf2;border-radius:9px;padding:3px;line-height:0}.promotion-qr img{display:block;width:124px;height:124px}
.promotion-info{min-width:0}.promotion-info h3{font-size:16px;color:#343b53;display:flex;align-items:center;flex-wrap:wrap;gap:9px;line-height:1.6;overflow-wrap:anywhere;margin:0}.promotion-kind{font-size:11px;font-weight:400;border:1px solid #e4e7f1;color:#7e879b;border-radius:5px;padding:1px 7px;white-space:nowrap}
.promotion-date{font-size:11px;color:#9ca2af;margin:7px 0}.promotion-url{font-size:13px;line-height:1.65;color:#3d529b;overflow-wrap:anywhere;user-select:all;margin:9px 0 14px}
.promotion-actions{display:flex;gap:9px;flex-wrap:wrap}.entry-modal .promotion-actions .btn{font-size:12px;min-height:33px;padding:7px 11px;display:inline-flex;align-items:center;gap:6px}.promotion-actions .ui-icon{width:14px;height:14px}
.promotion-status{display:grid;justify-items:end;gap:8px}.promotion-status-label{font-size:10px;color:#9ca2af}.promotion-status-label:nth-of-type(3){margin-top:4px}.promotion-status .badge{font-size:11px;white-space:nowrap}
.promotion-footer{padding:17px 28px;background:#fafbfe;border-top:1px solid var(--line);display:flex;align-items:center;gap:24px}.promotion-footer p{flex:1;font-size:11px;color:#9299a9;line-height:1.8;margin:0}.promotion-footer .text-button{font-size:12px;white-space:nowrap}.promotion-loading{padding:55px 24px;text-align:center;color:#8992a5;font-size:13px}.promotion-loading .empty{padding:10px}.promotion-list>.empty{padding:40px 10px}
@media(max-width:600px){dialog.entry-modal{max-width:calc(100vw - 20px);max-height:92dvh}.entry-modal .modal-head{padding:18px}.entry-modal .modal-head h2{font-size:21px}.promotion-summary{margin:0 18px;padding:17px 0}.promotion-summary strong{font-size:14px}.promotion-list{padding:0 18px}.promotion-row{grid-template-columns:86px minmax(0,1fr);gap:14px;padding:20px 0;align-items:start}.promotion-qr img{width:78px;height:78px}.promotion-info h3{font-size:14px;gap:6px}.promotion-kind{font-size:10px}.promotion-date{font-size:10px;line-height:1.6}.promotion-url{font-size:12px;margin-bottom:12px}.entry-modal .promotion-actions .btn{font-size:11px;padding:7px 9px}.promotion-actions{gap:7px}.promotion-actions .ui-icon{display:none}.promotion-status{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:7px}.promotion-status-label:nth-of-type(3){margin:0 0 0 12px}.promotion-status .badge{font-size:10px}.promotion-footer{padding:15px 18px;gap:12px;align-items:start}.promotion-footer .text-button{font-size:11px;padding-top:2px}}

.promotion-copy-feedback{flex-basis:100%;font-size:11px;color:#596d9b;line-height:1.6}.promotion-copy-feedback:empty{display:none}
.campaign-table-meta{display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:flex-end}.campaign-live-status{color:#667c96;white-space:nowrap}.campaign-live-status::before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:#52a58b;margin-right:6px;vertical-align:2px}.campaign-live-status.is-stale{color:#b17b36}.campaign-live-status.is-stale::before{background:#c99b59}
@media(max-width:760px){.campaign-table-meta{gap:8px 16px;justify-content:flex-start}.campaign-live-status{font-size:10px}}
.users-card{padding:0;overflow:hidden}.users-toolbar{padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.users-toolbar .status-tabs{gap:5px}.users-toolbar .status-tabs button{font-size:12px;padding:9px 11px}.users-toolbar .status-tabs span{font-size:10px}.users-search{display:flex;align-items:center;gap:9px}.users-search .search input{width:240px;font-size:12px}.users-search>.btn{padding:9px}.users-search .ui-icon{width:17px;height:17px}.users-table{margin:0;border:0;border-radius:0;min-height:260px}.users-table table{min-width:1030px}.users-table th{padding:14px 18px}.users-table td{padding:18px;vertical-align:middle}.users-table th:first-child{width:210px}.users-table th:last-child{width:220px}.users-table .badge{font-size:10px}.user-identity{display:flex;align-items:center;gap:11px;min-width:150px}.user-identity strong{font-size:13px;font-weight:500;color:#414a64}.user-avatar{width:36px;height:36px;flex-shrink:0;border-radius:10px;background:#edf0f7;color:#7885a0;display:grid;place-items:center;font-size:15px}.user-avatar.admin{background:#eef0fc;color:#373b8b}.user-note{font-size:11px;line-height:1.6;color:#9a9fac;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:7px}.user-row-actions{display:flex;gap:3px 12px;flex-wrap:wrap;max-width:240px}.user-row-actions .text-button{font-size:11px;padding:5px 0}.users-table time{font-size:11px;color:#788196;white-space:nowrap}.users-table td>a.text-button{font-size:12px;padding:3px 0}.users-policy{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:11px;line-height:1.8;color:#949cad;margin-top:18px}.users-policy>span:first-child{display:flex;gap:7px;align-items:center}.users-policy .ui-icon{width:15px;height:15px}.user-dialog-identity{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.user-dialog-identity strong{font-size:17px;font-weight:600;color:#3c4562}.user-dialog-identity>span{font-size:12px;color:#8993a7}.password-tools{display:flex;gap:15px}.password-tools button{padding:0;font-size:11px}.user-option-list{display:grid;gap:10px}.user-option-list>button{background:#fff;border:1px solid var(--line);padding:16px 18px;border-radius:9px;text-align:left;display:grid;gap:8px;color:#465379}.user-option-list>button:hover{background:#f8f9fd;border-color:#d4daeb}.user-option-list strong{font-size:14px;font-weight:500}.user-option-list span{font-size:12px;color:#939bad}.user-option-list>.danger strong{color:#ce6d7b}.operation-description{font-size:14px;line-height:1.8;color:#6a758a}.user-audit-list{margin-top:20px}.user-audit-list>div{display:grid;grid-template-columns:130px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--line)}.user-audit-list time{font-size:11px;color:#949daf}.user-audit-list strong{font-size:13px;font-weight:500}.user-audit-list p{font-size:11px;color:#929bad;line-height:1.7;margin-top:5px;overflow-wrap:anywhere}.row-owner{font-size:10px;color:#8e96a8;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:175px}.row-owner>span{color:#adb3c0}#account-name{max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.users-table table{min-width:970px;table-layout:fixed}.users-table th:first-child{width:220px}.users-table th:nth-child(2){width:85px}.users-table th:nth-child(3){width:115px}.users-table th:nth-child(4){width:85px}.users-table th:nth-child(5),.users-table th:nth-child(6){width:115px}.users-table th:last-child{width:190px}.users-table .cell-sub{display:block;margin-top:6px}.user-identity>div{min-width:0}.user-identity strong,.user-identity .cell-sub{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.users-table th:last-child,.users-table td:last-child{position:sticky;right:0;background:#fff;box-shadow:-6px 0 9px -9px #52617c88}.users-table th:last-child{background:#f8f9fc}.user-row-actions{gap:3px 13px}.users-table .user-row-actions .text-button{font-size:12px}
@media(max-width:760px){.users-toolbar{padding:13px 12px;gap:13px}.users-toolbar .status-tabs{flex-wrap:wrap;gap:3px}.users-toolbar .status-tabs button{font-size:11px;padding:7px 9px}.users-search{width:100%}.users-search .search{flex:1}.users-search .search input{width:100%}.users-policy{gap:8px}.users-table th,.users-table td{padding:13px}.users-table th:last-child,.users-table td:last-child{position:static;box-shadow:none}.user-audit-list>div{grid-template-columns:90px 1fr;gap:10px}.user-dialog-identity strong{font-size:15px}}

/* Visitors see their own activity with concise IP-region information. */
.visitor-table table{min-width:960px}.visitor-table-admin table{min-width:1540px}.visitor-table th{white-space:nowrap}.visitor-table th,.visitor-table td{padding-left:12px;padding-right:12px}.visitor-table td{vertical-align:middle}.visitor-table .visitor-time{white-space:nowrap}.visitor-location-cell{min-width:140px;max-width:230px}.visitor-location{display:block;white-space:normal;line-height:1.6;overflow-wrap:anywhere}.visitor-table .cell-sub{margin-top:6px}.visitor-table:focus-visible{outline:2px solid #7d8ccd;outline-offset:-2px}
.domain-detail{max-width:420px;overflow-wrap:anywhere;font-size:12px;color:var(--muted)}
.visitor-table td{vertical-align:top}.promotion-actions{flex-wrap:wrap}
