@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@500;600;650;700;750;800&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#243c36;background:#f4f7f5;--surface:#fff;--text:#243c36;--muted:#778981;--line:#e1e9e4;--green:#12865e;--green-soft:#e7f5ed;--danger:#bd4141;--link:#12865e;--shadow:0 8px 32px #1a3d2b05;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,system-ui,sans-serif}h1{font-size:27px;letter-spacing:-.8px;margin-bottom:8px}h2{font-size:17px;letter-spacing:-.3px}h3{font-size:15px}p{line-height:1.6}small,.muted{color:var(--muted)}small{font-size:12px}svg{width:20px;height:20px;flex-shrink:0}button svg{width:17px;height:17px}.skip-link{position:fixed;top:-100px;left:20px;z-index:50;background:white;padding:12px}.skip-link:focus{top:12px}.boot{display:grid;min-height:100vh;place-items:center;color:var(--muted)}
.shell{display:grid;grid-template-columns:234px minmax(0,1fr);min-height:100vh}.sidebar{background:#17372e;color:#b6c9bf;padding:34px 20px 22px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:234px;z-index:20}.brand{display:flex;align-items:center;gap:10px;color:#fff;font:800 24px Manrope,sans-serif;letter-spacing:-1px}.brand img{width:34px;height:34px}.brand:hover{text-decoration:none}.admin-tag{font-size:10px;font-weight:700;letter-spacing:2.3px;margin:14px 0 42px 44px;color:#84aa97}.nav-label{font-size:10px;letter-spacing:1.8px;color:#789d89;padding:0 14px;margin:0 0 13px}.nav{display:grid;gap:6px}.nav a{color:#bbcdc3;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;font-size:13px;font-weight:550}.nav a:hover{background:#ffffff09;text-decoration:none}.nav a.active{color:#fff;background:#2b5644}.nav a.active svg{color:#58d399}.sidebar-foot{margin-top:auto;padding:30px 14px 0;display:grid;gap:10px;font-size:12px}.sidebar-foot a{color:#91bca3;display:flex;align-items:center;gap:9px}.sidebar-foot p{font-size:10px;color:#739480;margin:6px 0 0}.workspace{grid-column:2;min-width:0}.topbar{height:84px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 38px}.crumb{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:11px}.crumb strong{font-weight:500;color:var(--text)}.topbar-right{display:flex;align-items:center;gap:18px}.operator{display:flex;align-items:center;gap:10px;border-left:1px solid var(--line);padding-left:20px}.avatar{height:33px;width:33px;background:#e4eee7;border-radius:50%;display:grid;place-items:center;color:#286044;font-size:12px;font-weight:700}.operator-text{font-size:12px;line-height:1.5;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.operator-text small{display:block;font-size:10px}.icon-button{border:0;background:transparent;color:#637a6c;display:inline-flex;padding:7px;align-items:center;justify-content:center;border-radius:6px}.icon-button:hover{background:#edf4ef}.mobile-toggle{display:none}main{padding:36px 38px 48px;max-width:1560px;margin:auto}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px}.page-heading p{color:var(--muted);font-size:13px;margin:0}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.6px;color:var(--green);margin-bottom:10px}.pill{border:1px solid var(--line);border-radius:20px;background:white;padding:8px 13px;color:#63796b;font-size:11px;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.dot{height:6px;width:6px;border-radius:50%;background:#27ad70}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:26px}.stat{padding:22px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.stat-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.stat-label{font-size:12px;color:#788a7e}.stat-icon{width:32px;height:32px;border-radius:9px;background:#eff6f1;display:grid;place-items:center;color:#4f9270}.stat-value{font:750 30px Manrope,sans-serif;letter-spacing:-1px;margin-bottom:8px}.stat-detail{font-size:11px;color:#8b9b91}.stat-detail strong{font-weight:500;color:#36815a}.grid-two{display:grid;grid-template-columns:1.35fr 1fr;gap:24px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:24px}.card-head{padding:22px 24px;border-bottom:1px solid #edf1ee;display:flex;align-items:center;justify-content:space-between;gap:18px}.card-head h2{margin:0}.card-head p{font-size:12px;color:var(--muted);margin:7px 0 0}.card-body{padding:24px}.quick-link{display:flex;align-items:center;justify-content:space-between;color:var(--text);padding:18px 0;border-bottom:1px solid #edf1ee;gap:14px;font-size:13px}.quick-link:first-child{padding-top:0}.quick-link:last-child{border:0;padding-bottom:0}.quick-link:hover{text-decoration:none;color:var(--green)}.quick-link small{display:block;margin-top:5px;font-size:11px}.quick-icon{width:36px;height:36px;background:var(--green-soft);border-radius:10px;display:grid;place-items:center;color:var(--green)}.quick-text{flex:1}.notice{padding:15px 18px;background:#f2f8f3;border:1px solid #deece1;color:#577962;border-radius:8px;font-size:12px;line-height:1.6;margin-bottom:20px}.notice.warn{background:#fff9ec;border-color:#f3e7c5;color:#8b712f}.notice.danger{background:#fff3f1;border-color:#f1dbd6;color:#a54a3d}.notice:last-child{margin-bottom:0}.plan-line{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid #edf1ee;font-size:13px}.plan-line:last-child{border:0}.plan-line strong{font-family:Manrope,sans-serif}.toolbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:20px 24px;border-bottom:1px solid var(--line)}.toolbar .field{min-width:140px;margin:0}.toolbar .search{flex:1;min-width:220px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}.field label{font-size:12px;font-weight:550;color:#4d6456}.field input,.field select,.field textarea,.toolbar input,.toolbar select{border:1px solid #dce5df;border-radius:7px;padding:11px 12px;min-height:42px;outline-color:#59a97f;background:#fff;color:var(--text);width:100%;font-size:13px}.field input:read-only{background:#f4f7f5;color:#74857a}.field textarea{resize:vertical;min-height:88px}.field small{line-height:1.5}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.span-all{grid-column:1/-1}.check{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.5;margin:10px 0 20px}.check input{accent-color:var(--green);margin-top:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dce5df;border-radius:7px;background:white;padding:10px 15px;font-size:12px;font-weight:550;color:#47604f;min-height:40px;white-space:nowrap}.btn:hover{text-decoration:none;background:#f6f9f6}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.primary:hover{background:#0e7350}.btn.danger{color:#ae3e3e;border-color:#ebcdcb;background:#fff7f5}.btn.small{padding:6px 9px;min-height:31px;font-size:11px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{font-size:10px;font-weight:600;color:#87968c;letter-spacing:.6px;text-transform:uppercase;background:#fafcfb;padding:14px 24px;white-space:nowrap}td{padding:17px 24px;border-top:1px solid #edf1ee;vertical-align:middle}td strong{font-weight:550}td small{display:block;margin-top:5px;font-size:11px;max-width:350px;overflow-wrap:anywhere}.mono{font-variant-numeric:tabular-nums;white-space:nowrap}.amount{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.positive{color:#258257}.negative{color:#b34a45}.badge{display:inline-block;border-radius:20px;font-size:10px;font-weight:550;padding:5px 9px;white-space:nowrap;background:#eef2ef;color:#6b7b70}.badge.good{background:#e8f5eb;color:#298255}.badge.warn{background:#fff5df;color:#a17d2d}.badge.bad{background:#fbedeb;color:#b15749}.pager{padding:16px 24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted)}.empty{text-align:center;padding:60px 24px;color:var(--muted);font-size:13px}.empty svg{width:36px;height:36px;color:#a9beb0;margin-bottom:12px}.empty h2{color:#4f6858;font-size:15px;margin:0 0 8px}.empty p{max-width:420px;margin:0 auto 18px;font-size:12px}.error-inline{color:#b23f39;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.tabs{display:flex;gap:22px;padding:0 24px;border-bottom:1px solid var(--line)}.tabs button{background:transparent;border:0;border-bottom:2px solid transparent;padding:17px 0;font-size:12px;color:#829087}.tabs button.active{color:var(--green);border-color:var(--green);font-weight:600}.balance-hero{background:#153f2e;color:white;padding:28px;border-radius:10px;margin-bottom:24px}.balance-hero small{color:#a7c6b4}.balance-hero strong{display:block;font:750 36px Manrope,sans-serif;margin:12px 0 5px;letter-spacing:-1px}.balance-hero p{font-size:11px;color:#a7c6b4;margin:0}.detail-kv{display:grid;grid-template-columns:1fr 1fr;gap:18px;font-size:12px;margin-bottom:22px}.detail-kv span{display:block;font-size:10px;color:var(--muted);margin-bottom:6px}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-aside{background:#153a2c;color:#fff;display:flex;flex-direction:column;padding:52px 60px;position:relative;overflow:hidden}.login-aside:after{content:'';width:600px;height:600px;border:1px solid #ffffff0e;border-radius:50%;position:absolute;right:-320px;bottom:-270px;box-shadow:0 0 0 90px #ffffff03,0 0 0 180px #ffffff02;pointer-events:none}.login-copy{margin:auto 0;max-width:470px;position:relative;z-index:1}.login-copy h1{font-size:43px;line-height:1.25;letter-spacing:-1.5px;margin-bottom:22px}.login-copy p{font-size:15px;color:#a5c1b0;line-height:1.8}.login-aside footer{font-size:11px;color:#7eaa90}.login-panel{display:flex;align-items:center;justify-content:center;padding:44px 34px;background:#fbfcfb}.login-form{width:100%;max-width:360px}.login-form h1{font-size:26px}.login-form>p{font-size:13px;color:var(--muted);margin:12px 0 30px}.login-form .btn{width:100%;margin-top:5px}.login-form .back{display:block;text-align:center;font-size:12px;margin-top:22px}.login-form .field{margin-bottom:21px}.login-form .field input{padding:13px}.login-caption{font-size:10px!important;text-align:center;margin-top:24px!important}.toast{position:fixed;bottom:26px;right:28px;z-index:100;max-width:430px;background:#173e2d;color:white;padding:15px 20px;border-radius:9px;box-shadow:0 10px 40px #0003;font-size:13px;line-height:1.5}.toast.error{background:#973e37}dialog{border:1px solid var(--line);padding:0;border-radius:13px;max-width:min(540px,calc(100vw - 32px));width:540px;box-shadow:0 24px 100px #102c383b;color:var(--text)}dialog::backdrop{background:#12271e70;backdrop-filter:blur(2px)}.dialog-head{padding:23px 25px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px}.dialog-head h2{margin:0;font-size:18px}.dialog-body{padding:24px}.dialog-body .summary{background:#f5f8f6;padding:16px;border-radius:8px;font-size:12px;line-height:1.7;margin-bottom:20px}.dialog-body .summary strong{font-weight:600}.qr-image{display:block;width:260px;max-width:100%;height:auto;margin:12px auto}.pre{font:11px ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;background:#f7faf7;border-radius:7px;padding:15px;max-height:340px;overflow:auto}.spinner{width:28px;height:28px;border:3px solid #d9e8df;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite;margin:30px auto}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1500px){main{padding-top:42px}.stats{gap:24px}.stat{padding:25px}}
@media(max-width:1100px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-two{grid-template-columns:1fr}.shell{grid-template-columns:204px minmax(0,1fr)}.sidebar{width:204px;padding-left:13px;padding-right:13px}.brand{font-size:21px}.topbar{padding:0 24px}main{padding:28px 24px}.login-aside{padding:40px}.login-copy h1{font-size:36px}}
@media(max-width:760px){.shell{display:block}.sidebar{visibility:hidden;transform:translateX(-100%);transition:transform .18s,visibility .18s;width:234px;box-shadow:10px 0 30px #0002}.shell.nav-open .sidebar{visibility:visible;transform:translateX(0)}.shell.nav-open:after{content:'';position:fixed;inset:0;background:#0005;z-index:15;pointer-events:none}.mobile-toggle{display:inline-flex}.topbar{height:68px;padding:0 18px;gap:10px}.crumb{font-size:11px;gap:6px}.crumb>span{display:none}.topbar-right{gap:6px}.operator{padding-left:9px;gap:6px}.operator-text{display:none}main{padding:24px 17px}.page-heading{margin-bottom:22px;gap:12px}h1{font-size:23px}.page-heading .pill{display:none}.stats{gap:12px}.stat{padding:17px}.stat-top{margin-bottom:17px}.stat-label{font-size:11px}.stat-value{font-size:26px}.stat-icon{width:26px;height:26px}.stat-icon svg{width:16px;height:16px}.stat-detail{font-size:10px}.card-head,.card-body{padding:19px}.toolbar{padding:17px;gap:10px}.toolbar .search{flex-basis:100%}.toolbar .field{min-width:0;flex:1}.toolbar .btn{align-self:flex-end}.form-grid{grid-template-columns:1fr}.span-all{grid-column:auto}th,td{padding:14px 17px}.pager{padding:14px 17px}.login{grid-template-columns:1fr}.login-aside{min-height:180px;padding:30px;gap:25px}.login-copy{margin:0}.login-copy h1{font-size:24px;margin:0}.login-copy p,.login-aside footer{display:none}.login-panel{padding:40px 25px;align-items:flex-start}.toast{left:18px;right:18px;bottom:18px;max-width:none}.detail-kv{grid-template-columns:1fr 1fr}.page-heading .btn{padding:9px 10px;font-size:11px}.tabs{gap:18px;padding:0 17px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.sidebar{overflow-y:auto}.campaign-dialog{width:760px;max-width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 32px)}.campaign-dialog .dialog-head{position:sticky;top:0;background:white;z-index:1}.campaign-dialog .field>span{font-size:12px;font-weight:550;color:#4d6456}.campaign-fields{border:1px solid var(--line);border-radius:9px;padding:18px 18px 0;margin:0 0 20px;min-width:0}.campaign-fields legend,.campaign-plans legend{font-size:13px;font-weight:650;padding:0 7px}.campaign-fields .muted,.campaign-plans .muted{font-size:12px;line-height:1.6}.campaign-plans{border:0;padding:0;margin:0 0 14px}.campaign-plans .check{margin-bottom:8px}.campaign-fields[hidden],.campaign-dialog [hidden]{display:none!important}.maintenance-preview{background:#fff3ce;border:1px solid #dfbb54;border-left:5px solid #b88712;color:#5f4407;border-radius:9px;padding:18px;margin:0 0 22px;overflow-wrap:anywhere}.maintenance-preview strong{display:block;font-size:17px;margin-bottom:9px}.maintenance-preview p{white-space:pre-wrap;margin:0 0 12px;font-size:13px}.maintenance-preview small{color:#806422}.maintenance-preview .maintenance-preview-dates{font-size:12px;font-weight:650}.coupon-code{font-family:ui-monospace,monospace;letter-spacing:.5px}.maintenance-message-preview{min-width:180px;white-space:pre-wrap}@media(max-width:760px){.campaign-dialog{max-height:calc(100dvh - 20px)}.campaign-fields{padding:14px 14px 0}.campaign-dialog .dialog-body{padding:18px}.campaign-dialog .form-actions{flex-wrap:wrap}}

.history-job-table{width:100%;min-width:0;font-variant-numeric:tabular-nums}.history-job-table caption{text-align:left;padding:12px 0;color:var(--muted)}.history-job-table th,.history-job-table td{text-align:right}.history-job-table th:first-child{text-align:left}@media(max-width:600px){.history-job-table{table-layout:fixed;font-size:.72rem}.history-job-table th,.history-job-table td{padding:9px 4px;white-space:normal;overflow-wrap:anywhere}.history-job-table thead th{font-size:.62rem;letter-spacing:0;text-transform:none;line-height:1.5}}
