:root{--bg:#0a0a0a;--surface:#131313;--surface-2:#1a1a1a;--text:#f4f4f5;--muted:#a1a1aa;--line:#2a2a2a;--accent:#f0b429;--accent-text:#111;--accent-soft:#f0b4291f;--danger:#f87171;--danger-soft:#f871711f;--income:#4fd1a5;--focus:#f0b429;--shadow:0 10px 30px #00000059;--series-1:#c98500;--series-2:#3987e5;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:radial-gradient(1200px 600px at 0% 100%, #f0b4290d, transparent 60%), var(--bg);min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased;background-attachment:fixed;font:15px/1.5 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.container{max-width:1180px;margin:0 auto;padding:0 16px}.layout{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:20px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.brand{color:var(--text);align-items:center;gap:10px;padding:0 6px;text-decoration:none;display:flex}.brand-name{letter-spacing:.01em;text-transform:uppercase;font-size:15px;font-weight:800;line-height:1.15}.brand-sub{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;margin-top:3px;font-size:10px;font-weight:600;display:block}.logo{object-fit:contain;border-radius:50%;flex:none;width:40px;height:40px}.logo-fallback{border:2px solid var(--accent);color:var(--accent);background:#000;place-items:center;font-weight:800;display:grid}.nav{flex-direction:column;flex:1;gap:4px;display:flex}.nav a{color:var(--muted);border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-weight:500;text-decoration:none;display:flex}.nav a:hover{background:var(--surface-2);color:var(--text)}.nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:650}.nav svg{flex:none;width:18px;height:18px}.user{border-top:1px solid var(--line);gap:8px;padding:14px 6px 0;font-size:14px;display:grid}.user strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.user span{color:var(--muted);font-size:12px}.menu-toggle{display:none}.content{min-width:0}@media (max-width:860px){.layout{grid-template-columns:1fr}.sidebar{z-index:20;border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;align-items:center;gap:10px;height:auto;padding:10px 16px;position:sticky}.brand{flex:1;padding:0}.logo{width:34px;height:34px}.nav,.user{display:none}.content{padding-bottom:calc(76px + env(safe-area-inset-bottom))}}.page{padding-top:20px;padding-bottom:40px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-head h1{margin:0;font-size:22px}.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px}.card-pad{padding:16px}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;padding:7px 12px;line-height:1.3}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--accent);color:var(--accent-text);border-color:#0000;font-weight:650}.btn-primary:hover{background:var(--accent);filter:brightness(1.05)}.btn-danger{color:var(--danger)}.btn-sm{padding:4px 9px;font-size:13px}.field{color:var(--muted);flex-direction:column;gap:4px;min-width:0;font-size:13px;display:flex}.field input,.field select{background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:8px;min-width:0;padding:7px 9px}.filters{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:14px;display:grid}.seg{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{background:var(--surface);cursor:pointer;border:0;padding:6px 12px}.seg button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:14px 0;display:grid}.stat{padding:12px 14px}.stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.stat .value{font-variant-numeric:tabular-nums;font-size:20px;font-weight:650}.table{border-collapse:collapse;width:100%;font-size:14px}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 12px}.table th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;background:var(--surface-2);font-size:12px;font-weight:600}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table tr:last-child td{border-bottom:0}.income{color:var(--income)}.muted{color:var(--muted)}.tag{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:10px;padding:1px 7px;font-size:12px;display:inline-block}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}@media (max-width:720px){.table thead{display:none}.table,.table tbody,.table tr,.table td{width:100%;display:block}.table tr{border-bottom:1px solid var(--line);padding:10px 12px}.table td{border:0;padding:2px 0}.table td.num{text-align:left;font-size:16px;font-weight:600}.table td[data-label]:before{content:attr(data-label) ": ";color:var(--muted);font-size:12px}.row-actions{justify-content:flex-start;padding-top:6px}}.empty{text-align:center;color:var(--muted);padding:32px 16px}.pager{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:8px;padding:10px 12px;font-size:14px;display:flex}dialog{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;width:min(460px,100vw - 32px);padding:0}dialog::backdrop{background:#00000073}dialog form{gap:12px;padding:18px;display:grid}dialog h2{margin:0;font-size:17px}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.notice{background:var(--danger-soft);color:var(--danger);border-radius:8px;margin-bottom:12px;padding:10px 14px;font-size:14px}.center-card{text-align:center;max-width:420px;margin:12vh auto;padding:24px}.center-card h1{margin:0 0 8px;font-size:20px}.center-card p{color:var(--muted);margin:0 0 18px}.chart{width:100%;position:relative}.chart svg{display:block;overflow:visible}.chart .grid{stroke:var(--line);stroke-width:1px}.chart .baseline{stroke:var(--muted);stroke-width:1px;opacity:.6}.chart .axis{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart .hover-band{fill:var(--surface-2)}.legend{color:var(--muted);gap:14px;margin-bottom:6px;font-size:13px;display:flex}.legend span,.tooltip div{align-items:center;gap:6px;display:inline-flex}.legend i,.tooltip i{border-radius:3px;width:10px;height:10px;display:inline-block}.tooltip{pointer-events:none;background:var(--surface);border:1px solid var(--line);white-space:nowrap;z-index:2;font-variant-numeric:tabular-nums;border-radius:8px;flex-direction:column;gap:2px;padding:6px 10px;font-size:13px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 4px 12px #0000001f}.hbars{gap:12px;margin:0;padding:0;list-style:none;display:grid}.hbars-row{justify-content:space-between;gap:12px;font-size:14px;display:flex}.hbars-row .num{font-variant-numeric:tabular-nums}.hbars-track{height:8px;margin-top:4px}.hbars-bar{border-radius:0 4px 4px 0;min-width:2px;height:100%}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:16px;display:grid}.card h2{margin:0 0 12px;font-size:15px}.delta{color:var(--muted);margin-top:2px;font-size:12px}details.table-view{margin-top:10px;font-size:14px}details.table-view summary{cursor:pointer;color:var(--muted);font-size:13px}.actions-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}a.btn{color:inherit;text-decoration:none;display:inline-block}.auth-card{text-align:center;border-radius:18px;max-width:440px;margin:10vh auto;padding:36px 32px}.auth-card .logo{border-radius:50%;width:96px;height:96px;margin:0 auto 18px;display:block}.auth-card .logo-fallback{font-size:40px}.auth-card .brand-name{font-size:26px}.auth-card .brand-sub{margin-top:6px;font-size:12px}.divider{color:var(--muted);align-items:center;gap:14px;margin:26px 0 18px;font-size:14px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.auth-card p{color:var(--muted);margin:0 0 18px}.btn-block{border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:13px 16px;font-size:16px;display:inline-flex}.sidebar .brand-sub{letter-spacing:.1em;white-space:nowrap;font-size:9.5px}.auth-form{text-align:left;gap:14px;display:grid}.auth-form .field{font-size:14px}.auth-form input{background:var(--surface-2);border-radius:10px;padding:11px 12px}.password{display:block;position:relative}.password input{width:100%;padding-right:44px}.password .eye{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:6px;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.success{color:var(--income);background:#4fd1a51f;border-radius:8px;padding:10px 14px;font-size:14px}.demo-box{margin-top:4px}.demo-btn{border-color:var(--accent);color:var(--accent);background:0 0}.demo-btn:hover{background:var(--accent-soft)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.section-head h2{margin:0 0 4px}.section-head p{margin:0;font-size:14px}.small{font-size:12px}.tag-off{background:var(--surface-2);color:var(--muted)}.secret{border:1px dashed var(--accent);background:var(--accent-soft);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.secret code{letter-spacing:.04em;color:var(--text);word-break:break-all;font-size:16px}code{background:var(--surface-2);border-radius:4px;padding:1px 5px}.setup-2fa{text-align:left;color:var(--muted);font-size:14px}.setup-2fa ol{gap:10px;margin:0 0 12px;padding-left:20px;display:grid}.setup-2fa .secret{border:1px dashed var(--accent);color:var(--accent);letter-spacing:.08em;word-break:break-all;-webkit-user-select:all;user-select:all;border-radius:8px;margin:8px 0;padding:10px 12px;font-size:15px;display:block}.setup-2fa .hint{font-size:13px}.setup-2fa a,.auth-card a{color:var(--accent)}.auth-form input.otp{letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums;font-size:22px}.recovery-codes{grid-template-columns:1fr 1fr;gap:8px;margin:0 0 14px;padding:0;list-style:none;display:grid}.recovery-codes code{background:var(--surface-2);color:var(--text);letter-spacing:.06em;border-radius:8px;padding:8px;font-size:15px;display:block}.check{color:var(--muted);justify-content:center;align-items:center;gap:8px;margin:16px 0;font-size:14px;display:flex}.link-btn{color:var(--muted);background:0 0;border:0;margin-top:14px}:root{--bar-muted:#4a4a4f}.chart .ref-line{stroke:var(--muted);stroke-width:1px;stroke-dasharray:4 4;opacity:.7}.chart .ref-label{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.pareto-line{fill:none;stroke:var(--series-2);stroke-width:2px;stroke-linejoin:round}.pareto-dot{fill:var(--series-2);stroke:var(--surface);stroke-width:2px;pointer-events:none}.legend .line-swatch{border-radius:1px;width:14px;height:2px}.legend{flex-wrap:wrap}.chart-note{color:var(--muted);margin:10px 0 0;font-size:13px}.chart-note strong{color:var(--text);font-weight:600}.share{text-align:right;min-width:46px;color:var(--muted);margin-left:8px;font-size:12px;display:inline-block}.donut{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.donut svg{flex:none;overflow:visible}.donut path{stroke:var(--surface);stroke-width:2px;cursor:default;transition:opacity .15s}.donut path.dim{opacity:.35}.donut-total{fill:var(--text);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.donut-sub{fill:var(--muted);font-size:12px}.donut-legend{flex:1;gap:4px;min-width:180px;margin:0;padding:0;list-style:none;display:grid}.donut-legend li{border-radius:6px;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:1px 10px;padding:4px 6px;font-size:14px;display:grid}.donut-legend .num{color:var(--muted);grid-column:2/4;font-size:13px}.donut-legend li.on{background:var(--surface-2)}.donut-legend i{border-radius:3px;width:10px;height:10px}.donut-legend .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.donut-legend .num,.donut-legend .share{font-variant-numeric:tabular-nums}.donut-legend .share{color:var(--text);min-width:0;font-size:13px}.chart .halo{paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round}@media (prefers-reduced-motion:no-preference){.chart .grow{transform-box:fill-box;transform-origin:bottom;animation:.55s cubic-bezier(.2,.7,.2,1) both bar-grow}.donut-ring{transform-origin:50%;animation:.7s cubic-bezier(.2,.7,.2,1) both ring-in}.draw{stroke-dasharray:1;stroke-dashoffset:1px;animation:.9s ease-out .25s forwards draw}}@keyframes bar-grow{0%{transform:scaleY(0)}}@keyframes ring-in{0%{opacity:0;transform:rotate(-90deg)scale(.85)}}@keyframes draw{to{stroke-dashoffset:0}}.user-link{color:inherit;text-decoration:none;display:block}.user-link:hover strong{color:var(--accent)}.back{color:var(--muted);margin-bottom:4px;font-size:13px;text-decoration:none;display:inline-block}.back:hover{color:var(--accent)}.hint{color:var(--muted);font-size:12px;font-weight:400}.check-inline{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.value.danger,.num.danger,td.danger{color:var(--danger)}.lead{color:var(--muted);max-width:80ch;margin:-4px 0 16px}button.link{color:var(--accent);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0}button.link:hover{text-decoration:underline}textarea{background:var(--surface);border:1px solid var(--line);color:var(--text);font:inherit;resize:vertical;border-radius:8px;padding:8px 10px}.field textarea{width:100%}dialog.wide{width:min(720px,100vw - 32px)}dialog form{max-height:calc(100vh - 64px);overflow:auto}.filters{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.filters .grow{flex:220px}.filters .field input,.filters .field select{min-width:140px}.stats.six{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:900px){.stats.six{grid-template-columns:repeat(2,minmax(0,1fr))}}.table.compact td,.table.compact th{padding-top:8px;padding-bottom:8px}.status{white-space:nowrap;border:1px solid #0000;border-radius:10px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.status-berjalan{background:var(--accent-soft);color:var(--accent)}.status-rencana{color:#8ab8f0;background:#3987e524}.status-ditunda{background:var(--surface-2);color:#e0b25c;border-color:#4a3a1a}.status-selesai{color:var(--income);background:#4fd1a51f}.status-batal{background:var(--surface-2);color:var(--muted);text-decoration:line-through}.meter-head{font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:13px;display:flex}.meter-track{background:var(--surface-2);border-radius:4px;height:8px;overflow:hidden}.meter-track.thin{height:4px}.meter-fill{background:var(--series-1);border-radius:0 4px 4px 0;height:100%;transition:width .6s cubic-bezier(.2,.7,.2,1)}.meter-fill.time{background:var(--series-2)}.meter[data-over=true] .meter-fill{background:var(--danger)}.meter-note{margin-top:4px;font-size:12px}.meter-note.over{color:var(--danger);font-weight:600}.progress-pair{gap:18px;display:grid}.project-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.project-card{color:inherit;gap:10px;padding:16px;text-decoration:none;transition:border-color .15s,transform .15s;display:grid}.project-card:hover{border-color:var(--accent);transform:translateY(-2px)}.project-card h3{margin:0;font-size:17px}.pc-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.pc-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13px;display:flex}.pc-time{gap:4px;display:grid}.pc-foot{color:var(--muted);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:8px;padding-top:10px;font-size:12px;display:flex}.project-head h1{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.tag.big{padding:3px 10px;font-size:15px}.budget-vs{gap:14px;margin:0 0 12px;padding:0;list-style:none;display:grid}.bv-head{flex-wrap:wrap;justify-content:space-between;gap:10px;margin-bottom:6px;font-size:14px;display:flex}.bv-head .num{font-variant-numeric:tabular-nums}.bv-track{background:var(--surface-2);border-radius:5px;height:10px;position:relative}.bv-fill{background:var(--series-1);border-radius:5px;height:100%;transition:width .6s cubic-bezier(.2,.7,.2,1)}.budget-vs li[data-over=true] .bv-fill{background:var(--danger)}.bv-mark{background:var(--text);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-3px;bottom:-3px}.unbudgeted .bv-head{color:var(--muted);margin:0}.project-form{gap:16px;max-width:920px;display:grid}.form-section h2{align-items:center;gap:10px;display:flex}.step{background:var(--accent-soft);width:24px;height:24px;color:var(--accent);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:inline-grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;display:grid}.form-grid .span-2{grid-column:1/-1}@media (max-width:640px){.form-grid{grid-template-columns:1fr}}h3.sub{margin:18px 0 2px;font-size:14px}.team-list{gap:6px;margin-top:8px;display:grid}.team-row{grid-template-columns:minmax(160px,220px) 1fr;align-items:center;gap:10px;min-height:34px;display:grid}.team-row input:not([type]),.team-row input[aria-label]{background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:6px 9px}@media (max-width:640px){.team-row{grid-template-columns:1fr}}.budget-lines{justify-items:start;gap:8px;margin-top:8px;display:grid}.budget-line{grid-template-columns:minmax(150px,1.2fr) minmax(140px,1fr) minmax(120px,1.4fr) auto;align-items:center;gap:8px;width:100%;display:grid}.budget-line select,.budget-line input{background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:8px;min-width:0;padding:7px 9px}@media (max-width:640px){.budget-line{grid-template-columns:1fr 1fr}}.money{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;min-width:0;padding-left:9px;display:flex}.money span{color:var(--muted);font-size:13px}.money input{color:var(--text);font-variant-numeric:tabular-nums;width:100%;min-width:0;padding:7px 9px 7px 6px;background:0 0!important;border:0!important}.field .money input{padding-left:6px}.totals{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 0;padding-top:14px;display:grid}.totals dt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.totals dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:18px;font-weight:650}.totals dd.neg{color:var(--danger)}@media (max-width:640px){.totals{grid-template-columns:1fr}}.form-actions{justify-content:flex-end;gap:10px;padding:4px 0 24px;display:flex}fieldset.region-picker,fieldset.crew{border:1px solid var(--line);border-radius:10px;gap:10px;min-width:0;margin:0;padding:10px 12px 12px;display:grid}fieldset legend{color:var(--muted);padding:0 6px;font-size:13px}.region-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}@media (max-width:640px){.region-steps{grid-template-columns:1fr}}.region-hits{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;max-height:220px;margin:0;padding:4px;list-style:none;overflow:auto}.region-hits button{text-align:left;width:100%;color:var(--text);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;padding:7px 8px;font-size:14px;display:block}.region-hits button:hover,.region-hits button:focus-visible{background:var(--accent-soft)}.crumbs{color:var(--muted);font-size:14px}.crew-list{flex-wrap:wrap;gap:8px 18px;display:flex}.timeline,.history,.agenda{gap:8px;margin:0;padding:0;list-style:none;display:grid}.timeline li{border-left:2px solid var(--line);padding-left:12px}.timeline li[data-past=false]{border-left-color:var(--accent)}.timeline li[data-status=batal] .t-title{color:var(--muted);text-decoration:line-through}.timeline-item,.agenda-item{text-align:left;width:100%;color:var(--text);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;gap:2px;padding:6px 8px;display:grid}.timeline-item:hover:not(:disabled),.agenda-item:hover{background:var(--surface-2)}.timeline-item:disabled{cursor:default}.t-when{color:var(--accent);font-variant-numeric:tabular-nums;font-size:12px}.t-title{flex-wrap:wrap;align-items:center;gap:6px;font-weight:600;display:flex}.history li{border-bottom:1px solid var(--line);grid-template-columns:170px 1fr;gap:12px;padding:6px 0;font-size:14px;display:grid}@media (max-width:640px){.history li{grid-template-columns:1fr;gap:2px}}.month-nav{align-items:center;gap:8px;display:flex}.month-nav strong{text-align:center;min-width:140px;font-size:16px}.calendar{grid-template-columns:repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.cal-dow{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line);background:var(--surface-2);padding:8px;font-size:12px}.cal-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;gap:3px;min-width:0;min-height:112px;padding:6px;display:flex}.cal-day:nth-child(7n){border-right:0}.cal-day[data-other=true]{background:#ffffff04}.cal-day[data-other=true] .cal-date span{color:#555}.cal-date{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;font-size:13px;display:flex}.cal-day[data-today=true] .cal-date span{background:var(--accent);color:var(--accent-text);border-radius:50%;place-items:center;width:24px;height:24px;font-weight:700;display:inline-grid}.cal-add{opacity:0;border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;width:22px;height:22px;line-height:1}.cal-day:hover .cal-add,.cal-add:focus-visible{opacity:1}.cal-ev{text-align:left;width:100%;font:inherit;border:0;border-left:3px solid var(--series-1);background:var(--accent-soft);color:var(--text);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;padding:3px 6px;font-size:12px;display:block;overflow:hidden}.cal-ev[data-kind=survei],.cal-ev[data-kind=rapat]{border-left-color:var(--series-2);background:#3987e51f}.cal-ev[data-kind=loading],.cal-ev[data-kind=bongkar],.cal-ev[data-kind=persiapan]{background:#9085e91f;border-left-color:#9085e9}.cal-ev[data-status=batal]{opacity:.6;text-decoration:line-through}.cal-ev[data-status=selesai]{opacity:.65}.cal-time{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:4px}.cal-more{color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;padding:0 6px;font-size:12px}@media (max-width:760px){.cal-day{min-height:64px;padding:4px}.cal-ev{background:var(--series-1);border-left-width:0;height:6px;padding:0;font-size:0}.cal-time,.cal-add{display:none}}.agenda>li>h3{color:var(--muted);text-transform:capitalize;margin:14px 0 4px;font-size:14px}.agenda-item{border-left:3px solid var(--series-1)}.agenda-item[data-status=batal] .t-title{color:var(--muted);text-decoration:line-through}.meter-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:12px}.meter-fill.physical{background:#199e70}.progress-big{justify-items:end;gap:2px;display:grid}.progress-big strong{font-variant-numeric:tabular-nums;color:var(--text);font-size:28px}.tasks{margin:0;padding:0;list-style:none;display:grid}.tasks>li{border-bottom:1px solid var(--line);grid-template-columns:28px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:9px 4px;display:grid}.tasks>li[data-status=selesai] .task-title{color:var(--muted);-webkit-text-decoration:line-through #ffffff40;text-decoration:line-through #ffffff40}.tasks>li[data-status=berjalan] .task-check{border-color:var(--series-2);box-shadow:inset 0 0 0 4px var(--surface), inset 0 0 0 10px #3987e580}.task-check{border:2px solid var(--line);background:var(--surface);cursor:pointer;border-radius:7px;place-items:center;width:24px;height:24px;padding:0;display:grid}.task-check:disabled{cursor:default}.tasks>li[data-status=selesai] .task-check{background:#199e70;border-color:#199e70}.task-check svg{fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.task-main{gap:2px;min-width:0;display:grid}.task-title{overflow-wrap:anywhere;font-weight:600}.task-weight{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.tasks .row-actions select{background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:4px 6px}.task-edit{grid-column:1/-1;grid-template-columns:minmax(0,2fr) 80px 150px 160px auto;align-items:end;gap:8px;display:grid}.task-edit input,.task-edit select{background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:8px;min-width:0;padding:6px 8px}.task-tools{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:14px;display:flex}.task-add,.task-template{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.task-add input:not([type=number]){flex:1;min-width:260px}.task-add input,.task-template select{background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:6px 9px}.field.inline{flex-direction:row;align-items:center;gap:6px}.field.inline input{width:60px}@media (max-width:760px){.tasks>li{grid-template-columns:28px minmax(0,1fr) auto}.tasks .row-actions{grid-column:2/-1;justify-content:flex-start}.task-edit{grid-template-columns:1fr 1fr}.task-edit>input{grid-column:1/-1}.task-add input:not([type=number]){min-width:0}}.badge-danger{background:var(--danger-soft);color:var(--danger);vertical-align:middle;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.feed{margin:0;padding:0;list-style:none;display:grid}.feed li{border-bottom:1px solid var(--line);grid-template-columns:150px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 0;font-size:14px;display:grid}.feed li[data-open=true]{background:var(--danger-soft);border-bottom:0;border-radius:8px;margin-bottom:4px;padding:8px 10px}.feed li[data-kind=task_done] strong+*{color:inherit}@media (max-width:760px){.feed li{grid-template-columns:1fr;gap:4px}}.atom{overflow:visible}.atom-orbit{fill:none;stroke:url(#atom-gold);stroke-width:7px;stroke-linecap:round}.atom-electron,.atom-nucleus{fill:url(#atom-gold)}.atom{filter:drop-shadow(0 0 14px #f0b42959)}.particles{pointer-events:none;z-index:0;width:100%;height:100%;position:fixed;inset:0}.auth-scene{background:radial-gradient(#f0b4290f 1px, transparent 1.5px) 0 0 / 22px 22px, radial-gradient(60% 50% at 50% 30%, #f0b4291a, transparent 70%), var(--bg);place-items:center;min-height:100vh;padding:24px 16px 40px;display:grid;position:relative;overflow:hidden}.auth-scene>*{z-index:1;position:relative}.auth-scene>.particles{z-index:0;position:fixed}.auth-scene .auth-card{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#131313d1;margin:0 auto}.reveal{text-align:center;justify-items:center;margin-bottom:4px;display:grid}.reveal-stage{place-items:center;width:150px;height:150px;margin-bottom:18px;display:grid;position:relative}.reveal-stage>*{grid-area:1/1}.reveal-badge{border-radius:50%;width:132px;height:132px;box-shadow:0 0 48px #f0b42947}.ripple{opacity:0;border:1px solid #f0b42959;border-radius:50%;width:150px;height:150px}.reveal-title{letter-spacing:.12em;color:var(--accent);white-space:nowrap;margin:0;font:700 26px/1.2 Georgia,Times New Roman,serif}.reveal-title span{display:inline-block}.reveal-line{background:linear-gradient(90deg, transparent, var(--accent), transparent);width:120px;height:1px;margin:10px auto 8px}.reveal-sub{letter-spacing:.32em;color:var(--muted);text-transform:uppercase;font-size:11px}@media (max-width:420px){.reveal-title{letter-spacing:.08em;font-size:21px}}@media (prefers-reduced-motion:no-preference){.atom-draw .atom-orbit{stroke-dasharray:1;stroke-dashoffset:1px;animation:1s cubic-bezier(.6,.1,.3,1) forwards draw}.atom-draw .atom-electron,.atom-draw .atom-nucleus{transform-box:fill-box;transform-origin:50%;animation:.45s cubic-bezier(.2,1.6,.4,1) both pop}.atom-draw .atom-nucleus{animation-delay:.1s}.reveal[data-mode=play] .reveal-atom{animation:.5s ease-in 1.05s forwards atom-out,1.6s linear spin-slow}.reveal[data-mode=play] .reveal-badge{animation:.95s cubic-bezier(.2,.8,.2,1) 1.1s both badge-in}.reveal[data-mode=play] .ripple{animation:3.6s ease-out 1.8s infinite ripple}.reveal[data-mode=play] .ripple:nth-of-type(2){animation-delay:3s}.reveal[data-mode=play] .ripple:nth-of-type(3){animation-delay:4.2s}.reveal[data-mode=play] .reveal-title span{animation:.5s cubic-bezier(.2,.8,.2,1) both letter-in}.reveal[data-mode=play] .reveal-line{animation:.7s ease-out 2.5s both line-in}.reveal[data-mode=play] .reveal-sub{animation:.7s ease-out 2.7s both fade-in}.reveal[data-mode=play]~.auth-card,.auth-scene .reveal[data-mode=play]+.auth-card{animation:.7s cubic-bezier(.2,.8,.2,1) 1.4s both card-up}.reveal[data-mode=still] .reveal-atom{display:none}.reveal[data-mode=still] .ripple{animation:5s ease-out infinite ripple}.reveal[data-mode=still] .ripple:nth-of-type(2){animation-delay:1.7s}.reveal[data-mode=still] .ripple:nth-of-type(3){animation-delay:3.3s}.sidebar .logo{transition:box-shadow .3s,transform .3s;animation:.9s cubic-bezier(.2,.8,.2,1) both badge-in}.sidebar .brand:hover .logo{transform:rotate(-8deg);box-shadow:0 0 22px #f0b42973}.page{animation:.45s cubic-bezier(.2,.8,.2,1) both page-in}.page .stats>.card{animation:.5s cubic-bezier(.2,.8,.2,1) both page-in}.page .stats>.card:nth-child(2){animation-delay:50ms}.page .stats>.card:nth-child(3){animation-delay:.1s}.page .stats>.card:nth-child(4){animation-delay:.15s}.page .stats>.card:nth-child(5){animation-delay:.2s}.page .stats>.card:nth-child(6){animation-delay:.25s}.app-splash{animation:.35s ease-in 1.35s forwards splash-out}.app-splash .reveal-atom{animation:.4s ease-in .8s forwards atom-out}.app-splash .reveal-badge{animation:.7s cubic-bezier(.2,.8,.2,1) .75s both badge-in}}.reveal[data-mode=still] .reveal-atom{display:none}@media (prefers-reduced-motion:reduce){.reveal .reveal-atom,.app-splash .reveal-atom{display:none}}@keyframes pop{0%{opacity:0;transform:scale(0)}}@keyframes spin-slow{0%{transform:rotate(-40deg)}}@keyframes atom-out{to{opacity:0;transform:scale(.6)rotate(25deg)}}@keyframes badge-in{0%{opacity:0;transform:rotate(-220deg)scale(.35)}}@keyframes ripple{0%{opacity:.55;transform:scale(.85)}to{opacity:0;transform:scale(2.1)}}@keyframes letter-in{0%{opacity:0;filter:blur(4px);transform:translateY(10px)}}@keyframes line-in{0%{opacity:0;width:0}}@keyframes fade-in{0%{opacity:0}}@keyframes card-up{0%{opacity:0;transform:translateY(18px)}}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}@keyframes splash-out{to{opacity:0;visibility:hidden}}.app-splash{z-index:100;background:var(--bg);place-items:center;display:grid;position:fixed;inset:0}.app-splash>*{grid-area:1/1}.auth-stack{gap:22px;width:100%;max-width:440px;display:grid}.auth-card-compact{padding-top:26px}.auth-scene .auth-card{width:100%}.tabbar,.sheet,.sheet-backdrop{display:none}@media (max-width:860px){.sidebar{padding-top:calc(10px + env(safe-area-inset-top))}.tabbar{z-index:40;padding:6px 6px calc(6px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);background:#0e0e0eeb;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab{min-height:52px;color:var(--muted);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;justify-items:center;gap:3px;padding:4px 0 2px;text-decoration:none;display:grid}.tab-icon{border-radius:15px;place-items:center;width:56px;height:30px;transition:background .2s,color .2s;display:grid}.tab-icon svg{width:22px;height:22px}.tab-label{letter-spacing:.01em;font-size:11px;font-weight:600}.tab[aria-current=page]{color:var(--accent)}.tab[aria-current=page] .tab-icon{background:var(--accent-soft)}.tab:active .tab-icon{transform:scale(.9)}.tab:focus-visible{outline:none}.tab:focus-visible .tab-icon{outline:2px solid var(--focus);outline-offset:2px}.sheet-backdrop{z-index:41;background:#00000080;display:block;position:fixed;inset:0}.sheet{z-index:42;padding:8px 12px calc(16px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);visibility:hidden;border-radius:18px 18px 0 0;gap:2px;transition:transform .28s cubic-bezier(.2,.8,.2,1);display:grid;position:fixed;bottom:0;left:0;right:0;transform:translateY(105%)}.sheet[data-open=true]{visibility:visible;transform:none}.sheet-grip{background:var(--line);border-radius:2px;justify-self:center;width:40px;height:4px;margin:2px 0 10px}.sheet-user{border-bottom:1px solid var(--line);margin-bottom:6px;padding:4px 12px 12px;display:grid}.sheet-user span{color:var(--muted);font-size:13px}.sheet-link{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:14px;padding:14px 12px;font-size:16px;text-decoration:none;display:flex}.sheet-link svg{width:22px;height:22px;color:var(--muted)}.sheet-link[aria-current=page]{color:var(--accent);background:var(--accent-soft)}.sheet-link[aria-current=page] svg{color:var(--accent)}.sheet-link:active{background:var(--surface-2)}.sheet-link.danger,.sheet-link.danger svg{color:var(--danger)}}@media (max-width:860px) and (prefers-reduced-motion:reduce){.sheet{transition:none}}.proof{white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;border-radius:10px;max-width:220px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block;overflow:hidden}.proof-ok{color:var(--income);background:#4fd1a51f;text-decoration:none}.proof-reason{background:var(--surface-2);color:var(--muted);font-weight:500}.proof-missing{background:var(--danger-soft);color:var(--danger)}.proof-alert{background:var(--danger-soft);color:var(--text);border-color:#f8717173;gap:2px;margin:0 0 16px;padding:14px 16px;text-decoration:none;display:grid}.proof-alert strong{color:var(--danger)}.proof-alert span{color:var(--muted);font-size:13px}.receipt-policy{border-bottom:1px solid var(--line)}.switch{width:40px;height:22px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;z-index:1;margin:0;position:absolute;inset:0}.switch input:disabled{cursor:default}.switch span{background:var(--surface-2);border:1px solid var(--line);border-radius:11px;transition:background .2s;position:absolute;inset:0}.switch span:after{content:"";background:var(--muted);border-radius:50%;width:16px;height:16px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.switch input:checked+span{background:var(--accent-soft);border-color:var(--accent)}.switch input:checked+span:after{background:var(--accent);transform:translate(18px)}.switch input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
