@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#0d0e12;--panel:#171920;--panel-2:#1d2028;--ink:#f5f6f7;--muted:#9599a5;--line:#2b2e38;--lime:#bdfb49;--lime-dark:#94d226;--paper:#f1f2ee;--paper-2:#fff;--dark:#15171d;--red:#ff6b6b;--amber:#ffc76a;--shadow:0 24px 60px rgba(0,0,0,.24)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0a0b0e;color:var(--ink);font-family:Manrope,system-ui,sans-serif;font-size:14px}.app-shell{max-width:1540px;margin:auto;min-height:100vh;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.topbar{height:74px;display:flex;align-items:center;padding:0 28px;border-bottom:1px solid #22242b;position:sticky;top:0;z-index:30;background:rgba(13,14,18,.94);backdrop-filter:blur(18px)}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:#fff;min-width:175px}.brand-mark{font-size:27px}.brand b{font-size:14px;letter-spacing:.08em}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:.22em}.main-nav{display:flex;align-items:center;gap:5px;padding:5px;border:1px solid #292c33;background:#121319;border-radius:100px}.nav-item{border:0;background:transparent;color:#9296a1;border-radius:100px;padding:9px 16px;font-size:12px;transition:.2s}.nav-item:hover{color:white}.nav-item.active{background:var(--lime);color:#17200d;font-weight:800}.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.icon-btn,.mini-icon{border:1px solid #2c2f38;background:#17191f;color:#d8dae0;width:36px;height:36px;border-radius:50%;display:grid;place-items:center}.has-dot{position:relative}.has-dot:after{content:"";width:6px;height:6px;background:var(--lime);position:absolute;right:3px;top:2px;border:2px solid var(--bg);border-radius:50%}.profile-btn{border:0;background:transparent;color:#fff;display:flex;align-items:center;gap:10px;padding:4px}.avatar{width:34px;height:34px;display:grid;place-items:center;background:linear-gradient(145deg,#d1ff7a,#7ea42f);color:#1c2411;border-radius:50%;font-size:11px;font-weight:800}.profile-copy{text-align:left}.profile-copy b,.profile-copy small{display:block}.profile-copy b{font-size:11px}.profile-copy small{font-size:9px;color:var(--muted)}.mobile-menu{display:none}main{padding:24px}.panel{background:radial-gradient(circle at 90% 0,#252a34 0,transparent 28%),linear-gradient(145deg,#17191f,#111217);border:1px solid #292c34;border-radius:25px;box-shadow:var(--shadow)}.hero{padding:26px}.hero-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.eyebrow{font-size:9px;font-weight:800;letter-spacing:.18em;color:#a6abb5;margin:0 0 9px}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px rgba(189,251,73,.08);margin-right:7px}h1,h2,h3,p{margin-top:0}h1{font-size:32px;margin-bottom:6px;letter-spacing:-.04em}.muted{color:var(--muted);font-size:11px;margin:0}.hero-actions{display:flex;align-items:center;gap:8px}.demo-badge{border:1px solid #58633d;color:var(--lime);background:#1e2417;padding:8px 10px;border-radius:100px;font-size:9px;font-weight:800;letter-spacing:.1em}.btn{border:0;border-radius:100px;padding:11px 17px;font-size:11px;font-weight:800;transition:transform .2s,filter .2s}.btn:active{transform:scale(.97)}.btn:hover{filter:brightness(1.08)}.btn.light{background:#f4f4f2;color:#17181c}.btn.ghost{border:1px solid #3a3d45;background:transparent;color:#eee}.btn.lime{background:var(--lime);color:#18200d}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.kpi-card{min-height:139px;padding:18px;border-radius:17px;background:rgba(30,32,40,.83);border:1px solid #2d3039}.kpi-top{display:flex;align-items:center;justify-content:space-between;color:#9da1ad;font-size:10px}.kpi-top b{font-size:9px;color:var(--lime)}.kpi-card strong{display:block;font-size:27px;margin:17px 0 16px;letter-spacing:-.04em}.mini-icon{width:25px;height:25px;font-size:10px}.metric-foot{display:flex;align-items:center;gap:8px;color:#7f8490;font-size:9px}.trend{padding:4px 7px;background:#292d25;border-radius:100px}.positive{color:#7eba24!important}.warning{color:#d99023!important}.collection-wrap{display:flex;align-items:center;justify-content:space-between}.collection-wrap strong{margin:17px 0;font-size:29px}.progress-ring{--v:calc(var(--value)*1%);width:58px;height:58px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--lime) var(--v),#31343c 0);position:relative}.progress-ring:before{content:"";position:absolute;inset:6px;border-radius:50%;background:#1e2028}.progress-ring span{z-index:1;font-size:9px;font-weight:800}.segmented{height:4px;background:#30333b;border-radius:10px;overflow:hidden}.segmented span{display:block;height:100%;background:var(--lime)}.cashflow-strip{margin-top:10px;border:1px solid #2a2d35;background:#15171c;border-radius:17px;min-height:86px;padding:13px 18px;display:grid;grid-template-columns:180px 1fr 190px;align-items:center}.month-label small,.month-label b{display:block}.month-label small{color:#8f939e;font-size:9px;margin-bottom:6px}.month-label b{font-size:12px}.spark-bars{height:55px;display:flex;align-items:end;gap:8%;border-bottom:1px solid #2d3038;padding:0 20px}.spark-bars div{height:100%;flex:1;display:flex;align-items:end;justify-content:center;position:relative}.spark-bars i{display:block;width:9px;height:var(--h);min-height:7px;border-radius:10px 10px 0 0;background:#5b6069}.spark-bars .current i{background:var(--lime);box-shadow:0 0 16px rgba(189,251,73,.28)}.spark-bars em{position:absolute;bottom:-15px;color:#777c88;font-size:8px;font-style:normal}.cash-note{display:flex;flex-wrap:wrap;gap:8px 13px;justify-content:flex-end;font-size:8px;color:#8d919d}.cash-note b{display:block;width:100%;text-align:right;color:var(--lime);font-size:14px}.workspace{margin-top:12px;background:var(--paper);color:#17191e;border-radius:25px;padding:22px}.workspace-toolbar{display:flex;align-items:end;justify-content:space-between;margin-bottom:15px}.dark-text{color:#686c72}h2{font-size:20px;margin-bottom:0;letter-spacing:-.03em}.count-pill{font-size:10px;background:#dfe1db;padding:5px 8px;border-radius:100px;vertical-align:middle}.filters{display:flex;gap:7px}.search-box{height:38px;display:flex;align-items:center;background:#fff;border:1px solid #d9dbd6;border-radius:100px;padding:0 13px;min-width:220px}.search-box input{border:0;outline:0;width:100%;font-size:10px;padding-left:7px;background:transparent}.filters select{height:38px;border:1px solid #d9dbd6;border-radius:100px;background:white;padding:0 30px 0 13px;font-size:10px;color:#34363b}.content-grid{display:grid;grid-template-columns:minmax(460px,.85fr) 1.15fr;gap:10px}.panel-light{background:var(--paper-2);border:1px solid #dfe0dc;border-radius:17px;overflow:hidden}.list-head{display:grid;grid-template-columns:1fr 100px 120px;padding:12px 16px;color:#919399;font-size:8px;text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid #e8e9e5}.invoice-row{display:grid;grid-template-columns:1fr 100px 120px;align-items:center;padding:11px 16px;border-bottom:1px solid #ecece9;cursor:pointer;transition:.18s}.invoice-row:last-child{border-bottom:0}.invoice-row:hover,.invoice-row.selected{background:#f1f8e3}.student-cell{display:flex;align-items:center;gap:10px;min-width:0}.student-cell .avatar{flex:0 0 32px}.student-copy{min-width:0}.student-copy b,.student-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-copy b{font-size:10px}.student-copy small{font-size:8px;color:#8d9096;margin-top:3px}.row-status{font-size:8px;font-weight:700}.row-status.Terlambat{color:#d25555}.row-status.Jatuh-tempo{color:#c68018}.row-status.Terjadwal{color:#69842e}.row-amount{text-align:right}.row-amount b,.row-amount small{display:block}.row-amount b{font-size:10px}.row-amount small{font-size:8px;color:#92959b;margin-top:3px}.detail-card{background:radial-gradient(circle at 100% 0,#2b3039 0,transparent 28%),#1a1c22;color:#fff;border:1px solid #31343c;border-radius:17px;padding:18px}.detail-top{display:flex;justify-content:space-between}.detail-top small,.detail-card small{color:#828792;font-size:8px}.detail-top h3{font-size:24px;margin:4px 0 15px}.dark-mini{background:#23262e}.identity-row{display:flex;align-items:center;gap:12px;border-bottom:1px solid #30333b;padding-bottom:16px}.avatar.large{width:42px;height:42px}.identity-row div{flex:1}.identity-row div small,.identity-row div b,.identity-row div span{display:block}.identity-row div b{font-size:12px;margin:3px 0}.identity-row div span{font-size:8px;color:#969aa4}.status-pill{font-size:8px;background:var(--lime);color:#1c230f;padding:6px 9px;border-radius:100px;font-weight:800}.amount-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.amount-grid div{padding:12px;background:#22252d;border-radius:12px}.amount-grid b{display:block;margin-top:8px;font-size:11px}.amount-grid .accent-amount{background:var(--lime);color:#19210f}.amount-grid .accent-amount small{color:#4a5b27}.detail-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#30333b;border-radius:12px;overflow:hidden}.detail-meta div{background:#22242b;padding:12px}.detail-meta span,.detail-meta b{display:block}.detail-meta span{font-size:8px;color:#838791}.detail-meta b{font-size:9px;margin-top:5px}.detail-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:15px}.dark-outline{background:transparent;color:#eee;border:1px solid #3a3d46}.bottom-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#d9dbd5;border:1px solid #d9dbd5;border-radius:15px;overflow:hidden;margin-top:10px}.bottom-summary article{background:#fff;padding:14px}.bottom-summary span,.bottom-summary b,.bottom-summary small{display:block}.bottom-summary span{font-size:8px;color:#83868d}.bottom-summary b{font-size:13px;margin:6px 0}.bottom-summary small{font-size:8px}.empty-state{text-align:center;padding:45px 20px;color:#8b8e94}.empty-state div{font-size:28px}.empty-state h3{font-size:13px;margin:10px 0 4px}.empty-state p{font-size:9px}.popover{position:fixed;right:22px;top:68px;z-index:60;width:300px;background:white;color:#202127;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.35);padding:10px}.popover-head{display:flex;justify-content:space-between;padding:7px 8px 12px;border-bottom:1px solid #eee}.popover-head button,.modal-close{border:0;background:transparent;font-size:20px}.notice{display:flex;gap:10px;padding:13px 8px}.notice-icon{width:28px;height:28px;background:#e8f8c7;color:#55721a;border-radius:50%;display:grid;place-items:center}.notice-icon.urgent{background:#ffe3e3;color:#ba4444}.notice b,.notice small{display:block}.notice b{font-size:10px}.notice small{font-size:8px;color:#85888f;margin-top:4px}.profile-popover{width:170px}.profile-popover button{display:block;border:0;background:transparent;width:100%;padding:10px;text-align:left;font-size:10px;border-radius:8px}.profile-popover button:hover{background:#f0f1ed}.modal-wrap{position:fixed;inset:0;background:rgba(5,6,8,.75);backdrop-filter:blur(6px);z-index:70;display:grid;place-items:center;padding:18px}.modal-wrap[hidden],.popover[hidden]{display:none}.modal{width:min(600px,100%);background:#f7f8f4;color:#181a1f;border-radius:22px;padding:22px;box-shadow:var(--shadow)}.modal.compact{width:min(430px,100%)}.modal-head{display:flex;justify-content:space-between;margin-bottom:18px}.modal-head small{font-size:8px;letter-spacing:.15em;color:#777b82}.modal-head h2{margin-top:5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1/-1}.modal label{display:block;margin-bottom:12px}.modal label span{display:block;font-size:9px;font-weight:700;margin-bottom:6px}.modal input,.modal select,.modal textarea{width:100%;border:1px solid #d8dad4;border-radius:11px;background:white;padding:11px;outline:0;font-size:11px}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#9dcc39;box-shadow:0 0 0 3px rgba(157,204,57,.14)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.ghost-dark{background:white;border:1px solid #d3d5d0;color:#333}.toast-region{position:fixed;right:22px;bottom:22px;z-index:100;display:flex;flex-direction:column;gap:8px}.toast{background:#202329;color:white;padding:13px 17px;border:1px solid #393d46;border-radius:13px;box-shadow:var(--shadow);font-size:10px;animation:toastIn .25s ease}.toast.success{border-left:3px solid var(--lime)}@keyframes toastIn{from{transform:translateY(10px);opacity:0}}@media(max-width:1050px){.profile-copy{display:none}.main-nav{margin-left:10px}.nav-item{padding:9px 11px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}.invoice-list{max-height:360px;overflow:auto}.cashflow-strip{grid-template-columns:140px 1fr}.cash-note{display:none}}@media(max-width:760px){body{font-size:13px}.topbar{height:62px;padding:0 14px}.brand{min-width:0}.brand>span:last-child{display:none}.mobile-menu{display:grid;margin-left:10px}.main-nav{display:none;position:absolute;left:12px;right:12px;top:66px;border-radius:16px;flex-direction:column;align-items:stretch;background:#171920;padding:8px;box-shadow:var(--shadow)}.main-nav.open{display:flex}.nav-item{text-align:left}.top-actions{gap:4px}.top-actions>.icon-btn:first-child{display:none}.profile-btn>span:last-child{display:none}main{padding:10px}.hero{padding:17px;border-radius:19px}.hero-heading{display:block}.hero-actions{margin-top:15px;overflow:auto}.hero-actions .btn{white-space:nowrap}h1{font-size:25px}.kpi-grid{display:flex;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:5px}.kpi-card{min-width:245px;scroll-snap-align:start}.cashflow-strip{grid-template-columns:1fr;padding-bottom:22px}.month-label{display:none}.workspace{padding:15px;border-radius:19px}.workspace-toolbar{display:block}.filters{margin-top:13px;overflow:auto}.search-box{min-width:210px}.filters select{min-width:130px}.content-grid{display:block}.list-head,.invoice-row{grid-template-columns:1fr 82px}.list-head span:nth-child(2),.invoice-row>.row-status{display:none}.invoice-list{max-height:none}.detail-card{margin-top:10px}.amount-grid{grid-template-columns:1fr}.detail-meta{grid-template-columns:1fr}.bottom-summary{grid-template-columns:repeat(2,1fr)}.profile-btn{padding:0}.popover{right:10px;top:60px;width:calc(100% - 20px)}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.detail-actions .btn{flex:1}.toast-region{left:12px;right:12px;bottom:12px}.toast{text-align:center}}@media(max-width:420px){.demo-badge{display:none}.kpi-card{min-width:220px}.bottom-summary{grid-template-columns:1fr}.hero-actions .btn{padding:10px 13px}}
