:root{--bg:#081426;--panel:#101f34;--panel2:#13243b;--line:#20334d;--text:#edf4ff;--muted:#8fa2bb;--blue:#4c8dff;--cyan:#48d8d0;--green:#40c89a;--red:#ff747f;--radius:17px}
*{box-sizing:border-box}body{margin:0;background:#f4f7fb;color:#17263b;font-family:'DM Sans',sans-serif}button,input{font:inherit}button{cursor:pointer;border:0}.hidden{display:none!important}
.auth-shell{min-height:100vh;background:radial-gradient(ellipse at 18% 30%,#16365a 0,transparent 38%),linear-gradient(135deg,#071326,#0b1a2e 65%,#102440);color:var(--text);padding:0 7vw}.topnav{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff12}.brand{font:700 21px 'Space Grotesk';letter-spacing:1.5px;color:white;text-decoration:none;display:flex;align-items:center;gap:10px}.brand-mark{width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,#58a1ff,#4166ee);display:grid;place-items:center;color:white;font:700 20px 'Space Grotesk';box-shadow:0 7px 22px #397dff55}.status-pill,.preview-chip{border:1px solid #ffffff20;border-radius:30px;padding:8px 12px;font-size:11px;color:#a9bdd6;letter-spacing:.5px}.status-pill i,.preview-chip i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#43d4a3;margin-right:7px}.hero-grid{max-width:1150px;margin:0 auto;min-height:660px;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:8vw}.hero-copy{max-width:570px}.eyebrow{color:#78b8ff;font-size:11px;letter-spacing:2px;font-weight:700}.eyebrow span{display:inline-block;width:22px;height:2px;background:#55a0ff;vertical-align:middle;margin-right:8px}h1{font:700 clamp(48px,6vw,76px)/1.03 'Space Grotesk';letter-spacing:-3px;margin:25px 0}h1 em{font-style:normal;color:#65aaff}.hero-copy>p{color:#a3b5cc;line-height:1.8;font-size:16px;max-width:490px}.hero-points{display:flex;flex-wrap:wrap;gap:18px;margin:30px 0;color:#c3d3e7;font-size:12px}.notice{border:1px solid #dcae4b44;background:#dcae4b12;color:#e6c98b;padding:14px 16px;border-radius:12px;font-size:12px;line-height:1.6}.notice b{color:#ffe0a0}.auth-card{background:#fff;color:#17263b;border-radius:20px;padding:28px;box-shadow:0 25px 90px #0005;max-width:410px;width:100%;justify-self:end}.auth-tabs{display:flex;background:#f0f3f8;border-radius:10px;padding:4px;margin-bottom:25px}.tab{flex:1;padding:10px;border-radius:8px;background:none;color:#74839a;font-weight:600}.tab.active{background:#fff;color:#1c3557;box-shadow:0 2px 8px #1c355711}.auth-form h2{font:700 24px 'Space Grotesk';margin:0 0 5px}.auth-form p{color:#8290a4;font-size:13px;margin:0 0 22px}.auth-form label{display:block;font-size:12px;font-weight:700;color:#4e5f75;margin:14px 0}.auth-form input{display:block;width:100%;border:1px solid #dce3ed;background:#fbfcfe;border-radius:9px;padding:13px;margin-top:7px;outline:none}.auth-form input:focus{border-color:#5795f4;box-shadow:0 0 0 3px #5795f422}.primary{background:linear-gradient(100deg,#347df0,#4d8fff);color:white;padding:12px 17px;border-radius:9px;font-weight:700;box-shadow:0 5px 15px #397cf32b}.primary:hover{filter:brightness(1.06)}.full{width:100%;margin-top:8px;display:flex;justify-content:space-between}.auth-foot{font-size:10px;color:#9aa6b6;line-height:1.6;margin-top:20px;text-align:center}.auth-shell footer{max-width:1150px;margin:0 auto;padding:20px 0 30px;color:#637b98;font-size:11px}
.app-shell{min-height:100vh;display:flex}.sidebar{width:250px;flex-shrink:0;background:#0b192c;color:#dbe7f7;padding:25px 16px;display:flex;flex-direction:column;min-height:100vh}.side-brand{padding:0 9px 30px}.workspace{display:flex;align-items:center;gap:10px;padding:12px 9px;border:1px solid #ffffff13;border-radius:11px;margin-bottom:27px}.avatar{width:34px;height:34px;border-radius:10px;background:#203e65;color:#8ec0ff;display:grid;place-items:center;font-size:11px;font-weight:700}.workspace b,.profile span{display:block;font-size:12px}.workspace small{display:block;color:#8194ad;font-size:10px;margin-top:3px}.chevron{margin-left:auto;color:#8298b2}.nav-label{font-size:9px;letter-spacing:1.5px;color:#657c98;font-weight:700;padding:10px 10px}.nav-item{background:none;color:#9dafc6;width:100%;text-align:left;padding:11px 12px;border-radius:9px;font-size:12px;display:flex;align-items:center;gap:12px;margin:2px 0}.nav-item>span{font-size:16px;width:17px;text-align:center}.nav-item:hover,.nav-item.active{background:#1a3454;color:white}.nav-item.active{box-shadow:inset 3px 0 #5c9eff}.tag{margin-left:auto;font-size:9px;color:#e9c47b;background:#5c4923;padding:3px 6px;border-radius:5px}.sidebar-bottom{margin-top:auto}.help-box{background:#132a46;border:1px solid #ffffff10;padding:14px;border-radius:12px}.help-box b,.help-box small{display:block}.help-box b{font-size:12px}.help-box small{color:#8fa4bf;font-size:10px;line-height:1.5;margin:6px 0 12px}.help-box button,.logout{background:none;color:#79b3ff;font-size:11px;padding:0}.logout{color:#9aacc3;margin:22px 10px 0;text-align:left}.main{flex:1;min-width:0}.app-header{height:100px;background:white;border-bottom:1px solid #e7ecf3;padding:0 38px;display:flex;align-items:center;justify-content:space-between}.crumb{font-size:10px;color:#9aa7b8;margin-bottom:7px}.crumb span{margin:0 7px}.crumb b{color:#51647d}.app-header h1{font:700 23px 'Space Grotesk';letter-spacing:-.5px;color:#1a2b43;margin:0}.header-right,.profile{display:flex;align-items:center;gap:17px}.preview-chip{color:#55718f;border-color:#dce5ef;background:#f7faff;font-size:9px}.profile{gap:9px;font-size:12px;color:#4a5c73}.profile .avatar{width:31px;height:31px}.content{padding:28px 38px 55px;max-width:1500px;margin:auto}.banner{display:flex;align-items:center;gap:14px;background:#fff8e9;border:1px solid #f2dfb5;border-radius:12px;padding:13px 16px;margin-bottom:27px}.banner-icon{width:27px;height:27px;border-radius:50%;background:#f5d99b;color:#825d13;display:grid;place-items:center;font-weight:700}.banner b{font-size:12px;color:#755719}.banner p{font-size:11px;color:#977b43;margin:3px 0 0}.banner button{margin-left:auto;background:none;color:#8b681c;font-size:11px;font-weight:700;white-space:nowrap}.section-head{display:flex;align-items:center;justify-content:space-between;margin:8px 0 20px}.section-head h2{font:700 21px 'Space Grotesk';margin:0 0 5px;color:#172a43}.section-head p{font-size:12px;color:#8b99aa;margin:0}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px}.stat-card,.panel{background:white;border:1px solid #e8edf4;border-radius:14px;box-shadow:0 4px 18px #263e5c05}.stat-card{padding:18px}.stat-card small,.stat-card span{display:block;color:#8998aa;font-size:10px}.stat-card strong{display:block;font:700 27px 'Space Grotesk';color:#1c304a;margin:9px 0 5px}.panel{padding:20px;margin-bottom:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.panel-head h3{font:700 14px 'Space Grotesk';margin:0 0 5px;color:#21344d}.panel-head p{font-size:10px;color:#95a2b2;margin:0}.text-btn{background:none;color:#4385e9;font-size:11px;font-weight:700}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:560px}th{text-align:left;color:#98a5b5;font-size:9px;letter-spacing:.6px;font-weight:700;padding:11px;border-bottom:1px solid #edf0f5}td{padding:13px 11px;border-bottom:1px solid #f0f2f6;color:#53647a;font-size:11px}td b{color:#243951}.status{font-size:9px;border-radius:20px;padding:5px 8px;font-weight:700;white-space:nowrap}.status.off{background:#fff2df;color:#b17c25}.status.pending{background:#fff5df;color:#b3832b}.status.paid{background:#e4f8f0;color:#23966e}.status.suspended{background:#ffe8ea;color:#d35c69}.empty{padding:28px;text-align:center;color:#9aa7b7;font-size:12px}.two-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.integration-row{display:flex;align-items:center;gap:11px;padding:12px;background:#f8fafc;border-radius:10px}.integration-icon{width:35px;height:35px;background:#e9f1ff;color:#4488ef;border-radius:9px;display:grid;place-items:center}.integration-row div{flex:1}.integration-row b,.integration-row small{display:block}.integration-row b{font-size:11px}.integration-row small{font-size:9px;color:#99a5b4;margin-top:4px}.quick-code{background:#10213a;color:#b4d1f7;padding:14px;border-radius:9px;font:11px/1.9 monospace;margin-bottom:13px}.quick-code span{color:#74b7a6}.qris-panel{max-width:750px;padding:35px}.qris-illustration{width:65px;height:65px;border-radius:17px;background:#eaf2ff;color:#4288ed;display:grid;place-items:center;font-size:28px;margin-bottom:20px}.qris-panel h3{font:700 20px 'Space Grotesk';margin:13px 0 8px}.qris-panel p,.qris-panel li{color:#75869b;font-size:12px;line-height:1.8}.qris-panel ul{padding-left:18px}.project-grid,.plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.project-card,.plan{background:white;border:1px solid #e8edf4;border-radius:14px;padding:20px}.project-card h3{font:700 14px 'Space Grotesk';margin:0 0 7px}.project-card p{font-size:11px;color:#8796a9}.docs{max-width:850px}.docs h3{font:700 14px 'Space Grotesk';margin:22px 0 8px}.docs p{font-size:12px;color:#75869b;line-height:1.7}.docs pre{background:#10213a;color:#c4dcfa;padding:17px;border-radius:10px;overflow:auto;font:11px/1.7 monospace}.plan small{color:#4a8ae8;font-weight:700;letter-spacing:1px;font-size:10px}.plan h3{font:700 26px 'Space Grotesk';margin:12px 0}.plan h3 span{font:400 11px 'DM Sans';color:#91a0b1}.plan p{font-size:11px;color:#8593a5;margin-bottom:20px}.plan button{width:100%}.plan.featured{border-color:#70a4f5;box-shadow:0 7px 25px #397cf315}.outline{background:white;border:1px solid #dce5ef;color:#4c7fca;border-radius:9px;padding:11px;font-weight:700}.muted-note{font-size:10px;color:#99a5b3}.modal{position:fixed;inset:0;background:#0a192b88;display:grid;place-items:center;padding:20px;z-index:20}.modal-card{position:relative;background:white;border-radius:16px;padding:27px;width:min(460px,100%);box-shadow:0 25px 80px #0004}.modal-close{position:absolute;right:16px;top:12px;background:none;font-size:24px;color:#8492a4}.modal-card h2{font:700 19px 'Space Grotesk';margin:0 25px 18px 0}.modal-card label{display:block;font-size:11px;font-weight:700;color:#5b6d83;margin:12px 0}.modal-card input,.modal-card select{display:block;width:100%;padding:12px;border:1px solid #dce4ee;border-radius:8px;margin-top:6px;outline:none}.modal-card .primary{width:100%;margin-top:10px}.toast{position:fixed;top:20px;right:20px;background:#122641;color:white;padding:13px 17px;border-radius:10px;font-size:12px;z-index:50;box-shadow:0 8px 30px #0002;opacity:0;transform:translateY(-10px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}
@media(max-width:950px){.sidebar{width:215px}.content{padding:23px}.app-header{padding:0 23px}.stat-grid{grid-template-columns:repeat(2,1fr)}.hero-grid{gap:4vw}.auth-shell{padding:0 5vw}}
@media(max-width:700px){.auth-shell{padding:0 20px}.hero-grid{display:flex;flex-direction:column;align-items:stretch;padding:55px 0;gap:35px}.hero-copy{max-width:none}.hero-copy h1{font-size:54px}.auth-card{justify-self:auto;max-width:none}.topnav{height:70px}.app-shell{display:block}.sidebar{width:100%;min-height:auto;padding:12px;display:block}.side-brand{padding:0 4px 12px}.workspace,.nav-label,.sidebar-bottom{display:none}.sidebar .nav-item{display:inline-flex;width:auto;padding:9px 10px;font-size:10px;margin:2px}.sidebar .nav-item>span{display:none}.main{width:100%}.app-header{height:83px;padding:0 17px}.content{padding:17px}.banner{align-items:flex-start}.banner button{display:none}.stat-grid{gap:9px}.stat-card{padding:13px}.stat-card strong{font-size:22px}.two-grid,.project-grid,.plan-grid{grid-template-columns:1fr}.section-head{align-items:flex-start;gap:12px}.section-head .primary{font-size:10px;padding:10px}.profile span{display:none}.header-right{gap:8px}.preview-chip{font-size:8px;padding:7px}.app-header h1{font-size:20px}}

.check{display:flex;align-items:center;gap:8px;font-weight:400;margin:6px 0}.check input{width:auto}
.status.approved,.status.active{background:#e4f8f0;color:#23966e}
.status.rejected,.status.expired{background:#ffe8ea;color:#d35c69}
.status.cancelled,.status.ended,.status.inactive{background:#eef1f5;color:#71808f}
.status.default{background:#e8eefc;color:#4a8ae8}
.plan ul.plan-limits{list-style:none;margin:0 0 16px;padding:0}
.plan ul.plan-limits li{font-size:11px;color:#5b6b7f;padding:4px 0;border-bottom:1px dashed #eef1f5}
.plan button:disabled{opacity:.55;cursor:not-allowed}
textarea{width:100%;border:1px solid #dbe3ee;border-radius:10px;padding:10px 12px;font:inherit;font-size:13px;background:#fbfcfe}

/* P1-D: filter bars, pagination, detail grids */
.filters{display:flex;flex-wrap:wrap;gap:8px;padding:14px 16px 4px}
.filters input,.filters select{flex:1 1 160px;min-width:140px;padding:9px 11px;border:1px solid var(--line,#e3e6ee);border-radius:9px;background:#fff;font:inherit}
.filters input[type="date"]{flex:0 1 160px}
.filters .secondary{flex:0 0 auto}
.pager{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px 16px}
.pager button:disabled{opacity:.45;cursor:not-allowed}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;margin-bottom:14px}
.detail-grid p{margin:0}
.detail-grid small{display:block;color:#7a8199;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.status.expired{background:#fdecec;color:#b3261e}
.status.failure{background:#fdecec;color:#b3261e}
.status.success{background:#e7f7ee;color:#137333}
