 :root{--gd:#004f3b;--g:#07885f;--gold:#d1a62e;--gold2:#edc653;--bg:#f4f7f5;--text:#172b35;--muted:#74847e;--line:#e6ece9;--white:#fff;--blue:#2e79d5;--shadow:0 5px 22px rgba(20,50,40,.07)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI",Arial,sans-serif}.app{min-height:100vh;display:flex}.sidebar{width:232px;min-width:232px;position:fixed;inset:0 auto 0 0;z-index:10;overflow:hidden;padding:25px 15px 18px;color:#fff;background:linear-gradient(160deg,#07563e 0%,#004a36 48%,#003a2c 100%);box-shadow:7px 0 25px rgba(0,45,30,.12)}.sidebar:before{content:"";position:absolute;left:-65px;bottom:210px;width:280px;height:390px;opacity:.14;background:radial-gradient(ellipse at 45% 50%,#19a873 0,transparent 66%);transform:rotate(-25deg)}.sidebar:after{content:"";position:absolute;right:-130px;bottom:-30px;width:300px;height:350px;border-radius:50%;border:8px solid rgba(230,188,65,.85);transform:rotate(-27deg)}.brand{position:relative;z-index:2;text-align:center;margin-bottom:28px}.brand-logo img{width:96px;height:72px;object-fit:contain;display:block;margin:0 auto 3px;filter:none}.brand-name{font-size:20px;font-weight:800;letter-spacing:.3px}.brand-sub{font-size:10px;margin-top:3px}.menu-title{position:relative;z-index:2;margin:0 10px 9px;font-size:10px;letter-spacing:1px;color:#d6e4de}.nav{position:relative;z-index:2;width:100%;height:45px;border:0;background:transparent;color:#f5f8f7;border-radius:10px;margin:3px 0;padding:0 13px;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;font-size:13px}.nav b{font-size:24px;line-height:1;width:31px;text-align:center;font-weight:500}.nav.active{background:linear-gradient(100deg,#a6872d,#e0b93d 52%,#b3912e);box-shadow:0 4px 13px rgba(0,0,0,.18)}.nav:hover{background:rgba(255,255,255,.08)}.nav.active:hover{background:linear-gradient(100deg,#a6872d,#e0b93d 52%,#b3912e)}.sidebar-bottom{position:absolute;z-index:3;left:15px;right:15px;bottom:18px;text-align:center}.sidebar-bottom:before{content:"♧";display:block;color:var(--gold2);font-size:28px;margin-bottom:0}.motto{font:italic 17px Georgia,serif;color:#fff}.sidebar-bottom small{display:block;font-size:9px;margin-top:4px;color:#dfe9e4}.sidebar-bottom small:last-child{color:#e6c65c}
.main{margin-left:232px;width:calc(100% - 232px);padding:17px 22px 24px}.topbar{display:none}.dash-head{height:64px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.dash-title{display:flex;align-items:center;gap:16px}.hamb{border:0;background:transparent;color:#007b58;font-size:25px;cursor:pointer}.dash-title h1{font-size:22px;margin:0}.dash-title p{font-size:11px;color:var(--muted);margin:3px 0}.userbox{display:flex;align-items:center;gap:9px}.bell{font-size:23px;color:#73817c;margin-right:22px}.avatar{width:42px;height:42px;border-radius:50%;background:#dfe3e5;color:#fff;display:grid;place-items:center;font-size:25px}.userbox b{display:block;font-size:12px}.userbox small{display:block;font-size:9px;color:var(--muted);margin-top:3px}.hero{height:178px;border-radius:11px;position:relative;overflow:hidden;margin-bottom:16px;color:#fff;background:linear-gradient(90deg,rgba(0,75,53,.97),rgba(3,83,58,.82) 53%,rgba(15,74,52,.72)),radial-gradient(circle at 76% 18%,#e7c05b,transparent 14%),linear-gradient(125deg,#0a6548,#174d35 48%,#83966b)}.hero:after{content:"";position:absolute;right:-10%;bottom:-50%;width:75%;height:180%;background:radial-gradient(ellipse at center,rgba(20,108,75,.7),transparent 68%)}.hero-copy{position:relative;z-index:2;padding:38px 31px}.hero-copy h2{font-size:35px;letter-spacing:-1px;margin:0 0 5px}.hero-copy p{font-size:16px;margin:0 0 13px}.hero-copy em{font:italic 26px Georgia,serif}.hero-copy em:after{content:"";display:inline-block;width:72px;border-top:2px solid var(--gold2);margin:0 0 7px 14px}.hero-quote{position:absolute;right:30px;top:61px;z-index:3;font:italic 14px Georgia,serif;line-height:1.4}.hero-quote:after{content:"";display:block;width:28px;border-top:2px solid var(--gold2);margin-top:12px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:17px}.kpi{min-height:107px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--shadow);display:grid;grid-template-columns:45px 1fr;grid-template-rows:auto 1fr;column-gap:12px}.kpi>span{grid-row:1/3;width:45px;height:45px;border-radius:10px;display:grid;place-items:center;font-size:23px;color:#fff}.kpi.green>span{background:#078c61}.kpi.gold>span{background:#dda900}.kpi.blue>span{background:#1976d2}.kpi label{font-size:11px;font-weight:500}.kpi label small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.kpi strong{font-size:21px;align-self:end}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--shadow);margin-bottom:16px}.dash-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.dash-card-head h3{font-size:15px;margin:0}.dash-card-head select{width:auto;margin:0;padding:8px 11px;border:1px solid #dfe7e3;border-radius:8px;background:#fff;font-size:10px}.outline-btn{background:#fff;border:1px solid #65b997;color:#087b59;border-radius:7px;padding:7px 12px;font-size:10px;cursor:pointer}.data-parama{padding:17px}.parama-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.parama-item{border:1px solid #e0e7e4;border-radius:9px;padding:14px 14px 12px;min-height:255px}.parama-item h4{margin:0 0 15px;font-size:16px}.palm{font-size:45px;line-height:1;float:left;margin:3px 15px 13px 0}.pfield{font-size:10px;color:#687b74;margin:8px 0}.pfield b{display:block;font-size:17px;color:#132b35;margin-top:2px}.status{display:flex;align-items:center;gap:7px;color:#142a34;font-size:10px;margin-top:7px}.status i{width:11px;height:11px;border-radius:50%;display:inline-block}.status.gold i{background:#dda900}.status.green i{background:#078c61}.status.blue i{background:#2376d5}.status.gray i{background:#aeb4b6}
.chart-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:14px}.fake-chart{height:145px;display:flex}.chart-y{width:42px;display:flex;flex-direction:column;justify-content:space-between;color:#697c75;font-size:9px;padding:3px 0 18px}.chart-area{position:relative;flex:1;border-left:1px solid #e6ece9;border-bottom:1px solid #e6ece9}.grid-lines{position:absolute;inset:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 28px,#e7eeeb 29px),repeating-linear-gradient(to right,transparent 0,transparent 42px,#eef2f0 43px)}.months{position:absolute;left:0;right:0;bottom:-20px;display:flex;justify-content:space-between;font-size:9px;color:#61746d}.legend{text-align:center;margin-top:27px;font-size:10px}.legend i{width:12px;height:12px;border-radius:50%;display:inline-block;vertical-align:-2px;margin:0 5px 0 14px}.lg-green{background:#078c61}.lg-gold{background:#dda900}.donut-wrap{height:190px;display:flex;align-items:center;justify-content:center;gap:20px}.donut{width:145px;height:145px;border-radius:50%;background:conic-gradient(#c7c7c7 0 100%);display:grid;place-items:center;position:relative}.donut:after{content:"";position:absolute;width:82px;height:82px;background:#fff;border-radius:50%}.donut b{z-index:2;font-size:16px}.donut-legend{width:135px}.donut-legend p{font-size:10px;display:flex;align-items:center;margin:12px 0;color:#4f635c}.donut-legend i{width:9px;height:9px;border-radius:50%;background:#4e90a9;margin-right:8px}.donut-legend p:nth-child(2) i{background:#6f9688}.donut-legend p:nth-child(3) i{background:#aaa}.donut-legend p:nth-child(4) i{background:#bbb}.donut-legend b{margin-left:auto;color:#182c34}.lower-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:14px}.lower-grid .card{min-height:265px}.timeline>div{position:relative;padding:4px 0 20px 28px;font-size:11px}.timeline i{position:absolute;left:2px;top:4px;width:15px;height:15px;border-radius:50%;box-shadow:0 0 0 3px #fff}.timeline i:after{content:"";position:absolute;top:15px;left:7px;height:42px;border-left:1px solid #dce4e0}.timeline>div:last-child i:after{display:none}.timeline b{display:block}.timeline small{display:block;color:var(--muted);font-size:9px;margin-top:5px}.blue-dot{background:#2376d5}.gold-dot{background:#dda900}.green-dot{background:#078c61}.dash-footer{display:flex;justify-content:space-between;color:#687a74;font-size:9px;padding:12px 2px}
.section-head{display:flex;justify-content:space-between;margin-bottom:16px}.section-head h2{margin:0;font-size:22px}.section-head p{color:var(--muted);font-size:11px;margin:5px 0 0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}label{font-size:10px;font-weight:700;color:#53655e}input,select{width:100%;margin-top:6px;border:1px solid #dce5e0;border-radius:9px;padding:10px 11px;background:#fcfefd;color:var(--text);outline:none;font-size:12px}.total-preview{margin:17px 0;padding:14px;border-radius:11px;background:#eef9f4;color:var(--gd);font-size:10px;font-weight:800;display:flex;justify-content:space-between}.total-preview strong{font-size:21px}.btn{border:0;border-radius:9px;background:linear-gradient(135deg,#0b8f68,#00523d);color:#fff;padding:10px 17px;font-size:11px;font-weight:700;cursor:pointer}.master-summary,.report-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:16px}.master-summary>div,.report-kpis>div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;box-shadow:var(--shadow)}.master-summary small,.report-kpis small{display:block;color:var(--muted);font-size:10px}.master-summary b,.report-kpis b{display:block;font-size:18px;margin-top:5px}.master-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.master-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px;box-shadow:var(--shadow)}.master-card h3{margin:0 0 14px;color:var(--gd);font-size:16px}.master-fields{display:grid;grid-template-columns:1fr 1fr;gap:11px}.save-master{margin-top:13px;width:100%}.filter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.hidden{display:none!important}.delete{border:0;background:#fdebed;color:#b84353;border-radius:7px;padding:6px 9px;cursor:pointer;font-size:10px}
@media(max-width:1050px){.sidebar{width:205px;min-width:205px}.main{margin-left:205px;width:calc(100% - 205px);padding:18px}.kpis{grid-template-columns:repeat(2,1fr)}.parama-grid{grid-template-columns:repeat(2,1fr)}.chart-grid,.lower-grid{grid-template-columns:1fr}}
@media(max-width:700px){.app{display:block}.sidebar{position:static;width:100%;min-width:0;height:auto;padding:18px}.brand{margin-bottom:12px}.menu-title{display:none}.nav{display:inline-flex;width:auto;padding:0 10px;margin:2px}.sidebar-bottom{display:none}.main{margin:0;width:100%;padding:14px}.dash-head{height:auto}.userbox{display:none}.hero{height:165px}.hero-copy{padding:28px 22px}.hero-copy h2{font-size:27px}.hero-quote{right:18px;top:55px;font-size:11px}.kpis,.parama-grid,.chart-grid,.lower-grid,.master-grid,.form-grid,.master-summary,.report-kpis,.filter-grid{grid-template-columns:1fr}.card{padding:14px}.parama-item{min-height:210px}}

/* PROFESSIONAL JOURNAL */
.report-head{align-items:center}.report-kicker{font-size:9px;letter-spacing:1.5px;color:#0a8a61;font-weight:800;margin-bottom:4px}
.print-btn{border:0;border-radius:9px;padding:11px 17px;background:linear-gradient(135deg,#0b8f68,#00523d);color:#fff;font-size:11px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px rgba(0,82,61,.15)}
.print-btn:hover{transform:translateY(-1px)}
.report-filter-card{padding:15px 17px}.filter-title{font-size:12px;font-weight:800;color:#24463b;margin-bottom:10px}.filter-grid{grid-template-columns:1.2fr 1fr .8fr 1fr}
.report-summary{grid-template-columns:repeat(4,1fr);margin-bottom:15px}.report-summary>div{border-radius:12px;padding:15px 17px;position:relative;overflow:hidden}.report-summary small{font-size:10px;color:#74847e}.report-summary b{font-size:19px;margin-top:7px}.report-in{border-left:4px solid #078c61}.report-out{border-left:4px solid #dda900}.report-profit{border-left:4px solid #2e79d5}.report-asset{border-left:4px solid #9aa4a0}
.journal-card{padding:0;overflow:hidden}.journal-title-row{padding:17px 18px 12px;display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid #e7ece9}.journal-title-row h3{margin:0;font-size:14px}.journal-title-row p{margin:4px 0 0;font-size:10px;color:#7b8b85}.journal-note{font-size:9px;color:#8a9792}.journal-table{min-width:1050px}.journal-table thead{background:#f1f6f3}.journal-table th{font-size:9px;color:#52675f;padding:11px 9px;border-bottom:1px solid #dce6e1}.journal-table td{font-size:10px;padding:10px 9px;vertical-align:middle}.journal-table tbody tr:nth-child(even){background:#fbfcfb}.journal-table tbody tr:hover{background:#f2f8f5}.journal-table th:last-child,.journal-table td:last-child{text-align:right}.journal-table td:nth-child(1){color:#899690;text-align:center;width:35px}.journal-table td:nth-child(9){font-weight:800;color:#173b31}.journal-foot-note{padding:12px 18px;color:#7b8b85;font-size:9px}.print-header,.report-foot{display:none}
@media(max-width:800px){.report-summary{grid-template-columns:repeat(2,1fr)}.report-head{display:block}.print-btn{margin-top:12px}}
@media print{
  @page{size:A4 landscape;margin:12mm}
  body{background:#fff!important}.sidebar,.dash-head,.topbar,.report-head,.report-filter-card,.no-print{display:none!important}
  .main{margin:0!important;width:100%!important;padding:0!important}.page{display:none!important}.page#page-laporan{display:block!important}
  #printArea{display:block!important}.print-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #075b43;padding-bottom:10px;margin-bottom:12px}
  .print-brand{font-size:20px;font-weight:900;color:#075b43;letter-spacing:.6px}.print-title{font-size:13px;font-weight:800;margin-top:3px}.print-period{font-size:10px;color:#697a73;margin-top:4px}.print-date{font-size:9px;color:#697a73}
  .report-summary{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:8px;margin-bottom:10px}.report-summary>div{box-shadow:none!important;border:1px solid #dfe7e3;padding:9px 11px}.report-summary b{font-size:14px}
  .journal-card{border:1px solid #d9e2de!important;box-shadow:none!important;margin:0!important}.journal-title-row{padding:10px 12px}.journal-table{min-width:0!important;width:100%!important}.journal-table th,.journal-table td{font-size:8px!important;padding:6px 5px!important}.journal-table th{background:#f1f5f3!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .report-foot{display:flex;justify-content:space-between;font-size:8px;color:#74847e;margin-top:9px;padding-top:7px;border-top:1px solid #e1e7e4}
}

/* TRANSACTION TABLE */
.transaction-form{margin-bottom:16px}.transaction-list-card{padding:0;overflow:hidden}.transaction-tools{display:flex;gap:8px;align-items:center}.search-tx{width:190px;margin:0;padding:8px 10px}.transaction-tools select{width:130px;margin:0;padding:8px 10px}.transaction-table{min-width:1120px}.transaction-table thead{background:#f1f6f3}.transaction-table th{font-size:9px;color:#52675f;padding:12px 9px;border-bottom:1px solid #dce6e1}.transaction-table td{font-size:10px;padding:11px 9px}.transaction-table tbody tr:nth-child(even){background:#fbfcfb}.transaction-table tbody tr:hover{background:#f2f8f5}.transaction-table td:nth-child(1){text-align:center;color:#899690}.transaction-table td:nth-child(8){font-weight:800;color:#173b31}.tx-category{display:inline-block;padding:4px 7px;border-radius:6px;font-size:9px;font-weight:700}.tx-income{background:#e7f6ef;color:#087b59}.tx-expense{background:#fff3d5;color:#967116}.tx-asset{background:#edf1f4;color:#5d6b72}.tx-method{font-size:9px;color:#65766f}.tx-empty{padding:45px 15px!important;text-align:center!important;color:#7b8b85!important}
@media(max-width:800px){.transaction-tools{margin-top:10px;display:grid;grid-template-columns:1fr 1fr}.search-tx{width:100%}.transaction-tools select{width:100%}}

/* DASHBOARD RECENT TRANSACTIONS */
.recent-card{padding:0;overflow:hidden}.recent-card .dash-card-head{padding:16px 17px 11px;margin:0;border-bottom:1px solid #e7ece9}.recent-subtitle{margin:4px 0 0;color:#7b8b85;font-size:9px}.recent-actions{display:flex;gap:7px}.recent-table{min-width:850px}.recent-table thead{background:#f1f6f3}.recent-table th{font-size:8px;color:#52675f;padding:10px 8px}.recent-table td{font-size:9px;padding:9px 8px}.recent-table tbody tr:nth-child(even){background:#fbfcfb}.recent-table td:nth-child(1){text-align:center;color:#899690}.recent-table td:nth-child(7){font-weight:800;color:#173b31}.dashboard-print-area{display:none}
@media print{
  body.dashboard-printing .sidebar,body.dashboard-printing .dash-head,body.dashboard-printing .hero,body.dashboard-printing .kpis,body.dashboard-printing .data-parama,body.dashboard-printing .chart-grid,body.dashboard-printing .lower-grid,body.dashboard-printing .dash-footer{display:none!important}
  body.dashboard-printing .main{margin:0!important;width:100%!important;padding:0!important}
  body.dashboard-printing #page-dashboard{display:none!important}
  body.dashboard-printing .dashboard-print-area{display:block!important}
  body.dashboard-printing .print-header{display:flex!important;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #075b43;padding-bottom:10px;margin-bottom:12px}
  body.dashboard-printing .print-brand{font-size:20px;font-weight:900;color:#075b43}.print-title{font-size:13px;font-weight:800;margin-top:3px}.print-period{font-size:10px;color:#697a73;margin-top:4px}.print-date{font-size:9px;color:#697a73}
  body.dashboard-printing .dashboard-print-table{display:table!important;width:100%;border-collapse:collapse;min-width:0}
  body.dashboard-printing .dashboard-print-table th{background:#f1f5f3!important;font-size:8px;padding:7px 6px;border:1px solid #d9e2de;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.dashboard-printing .dashboard-print-table td{font-size:8px;padding:7px 6px;border:1px solid #d9e2de}
  body.dashboard-printing .report-foot{display:flex!important;justify-content:space-between;font-size:8px;color:#74847e;margin-top:10px;padding-top:7px;border-top:1px solid #e1e7e4}
}
.login-screen{position:fixed;inset:0;z-index:9999;background:linear-gradient(135deg,#0d241c,#1d4a35 60%,#b69b55);display:flex;align-items:center;justify-content:center;padding:24px}.login-screen.hidden{display:none}.login-card{width:min(430px,100%);background:#fff;border-radius:24px;padding:34px;box-shadow:0 25px 70px rgba(0,0,0,.25)}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.login-brand img{width:58px;height:58px;object-fit:contain}.login-brand b{display:block;color:#183b2b;font-size:20px}.login-brand span{font-size:12px;color:#7c8b84}.login-kicker{font-size:11px;font-weight:800;letter-spacing:2px;color:#b0904d}.login-card h1{margin:6px 0;color:#17382a}.login-card>p{color:#718078;font-size:14px;margin-bottom:22px}.login-card label{display:block;font-size:12px;font-weight:700;color:#42564e;margin:13px 0}.login-card input{width:100%;margin-top:7px;padding:13px;border:1px solid #d8e1dc;border-radius:10px;box-sizing:border-box}.login-btn{width:100%;margin-top:12px}.login-error{color:#b42318;font-size:13px;margin-top:12px;min-height:18px}.login-note{margin-top:20px;padding:12px;background:#f4f7f5;border-radius:10px;color:#64736d;font-size:12px;text-align:center}.userbox{gap:8px}.logout-btn{border:0;background:transparent;color:#9a4a3e;font-size:11px;font-weight:700;cursor:pointer}.user-create-grid{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:10px;margin:15px 0 20px}.user-create-grid input,.user-create-grid select,.password-grid input{padding:11px;border:1px solid #d7e0db;border-radius:9px}.user-table{width:100%;border-collapse:collapse}.user-table th,.user-table td{padding:12px;border-bottom:1px solid #e7ece9;text-align:left;font-size:13px}.role-badge{padding:5px 9px;border-radius:999px;background:#eef4ef;font-size:11px;font-weight:800;text-transform:uppercase}.role-admin{background:#f8ecd0;color:#8a6a25}.role-manager{background:#e7f2eb;color:#21653e}.role-operator{background:#e8f0f7;color:#2d5d83}.role-viewer{background:#f0f0f0;color:#666}.password-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:10px}.save-master:disabled{opacity:.45;cursor:not-allowed}@media(max-width:900px){.user-create-grid{grid-template-columns:1fr 1fr}.password-grid{grid-template-columns:1fr}.user-create-grid .btn{grid-column:1/-1}}@media(max-width:560px){.login-card{padding:25px}.user-create-grid{grid-template-columns:1fr}}
