:root{--cream:#fff8e8;--canvas:#fcf4df;--paper:#fffdf6;--peach:#f9b978;--orange:#e58f4c;--deep:#5b3c2c;--dark:#40342b;--sage:#9aa875;--light-sage:#edf0db;--border:#eadcc2;--muted:#907e6d;--gold:#e9c978;--shadow:0 12px 35px rgba(104,71,36,.07);--radius:24px}
*{box-sizing:border-box}body{margin:0;color:var(--dark);background:radial-gradient(circle at 12% 19%,#fae2b7 0 5%,transparent 5.2%),radial-gradient(circle at 92% 75%,#f0e3b9 0 8%,transparent 8.2%),#f8e9d0;font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #f4b77d;outline-offset:3px}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.desktop-note{position:fixed;left:max(calc(50% - 570px),3vw);top:21%;width:410px;color:var(--deep)}.desktop-note .eyebrow{color:#a46f38}.desktop-note h1{font:600 48px/1.12 Georgia,serif;letter-spacing:-1.7px;margin:23px 0}.desktop-note h1 em{color:#d2813b;font-weight:400}.desktop-note p{max-width:340px;font-size:17px;color:#816b53}.desktop-flower{font:54px Georgia;color:#d9a16d}.desktop-badges{display:flex;gap:8px;margin-top:30px;flex-wrap:wrap}.desktop-badges span{border:1px solid #dfbf9a;border-radius:100px;padding:7px 14px;background:#fff6e9;font-size:12px}.app-shell{width:min(100%,440px);min-height:100dvh;background:var(--canvas);position:relative;margin:0 auto;box-shadow:0 0 60px rgba(93,61,26,.14);overflow:hidden}.topbar{height:80px;padding:calc(env(safe-area-inset-top) + 14px) 22px 10px;display:flex;align-items:center;justify-content:space-between;background:var(--canvas);position:relative;z-index:2}.brand{display:flex;gap:8px;align-items:center;font:600 24px Georgia,serif;letter-spacing:-.8px;color:var(--deep)}.brand-weight{color:#e28b46}.brand-icon{background:#ffd29b;width:34px;height:34px;border-radius:13px;display:grid;place-items:center;color:#a76632}.brand-icon svg{width:23px;height:23px}.profile-circle{height:37px;width:37px;border-radius:14px;background:#f5d9b4;border:1px solid #e9bd91;color:#6a422d;font:700 16px Georgia,serif}.main-content{padding:14px 20px 124px;min-height:calc(100dvh - 155px)}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2.2px;color:#ab7d4c;text-transform:uppercase}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.page-heading h1{font:600 29px/1.15 Georgia,serif;letter-spacing:-.8px;margin:6px 0 7px;color:#543c2f}.subtle{color:var(--muted);font-size:12px}.round-icon{width:38px;height:38px;border:1px solid var(--border);border-radius:15px;background:#fff7e9;display:grid;place-items:center;color:#865c3b}.greeting{font:400 12px Georgia,serif;color:#946d4e}.hero{margin-top:18px;padding:21px 18px 0;min-height:206px;background:linear-gradient(135deg,#ffdba8 0%,#f8c17f 77%,#f4b76e 100%);border-radius:28px;position:relative;overflow:hidden;box-shadow:0 9px 23px rgba(188,121,49,.12)}.hero:before{content:'';position:absolute;left:-50px;bottom:-100px;width:220px;height:140px;background:#e8a765;border-radius:50%;opacity:.42}.hero:after{content:'';position:absolute;right:-70px;top:-50px;width:160px;height:160px;border:1px solid #f4e3b0;border-radius:50%;opacity:.8}.hero-copy{position:relative;z-index:1;width:61%}.hero-copy small{font-size:11px;font-weight:700;color:#8f552e}.hero-copy h2{font:600 25px/1.12 Georgia,serif;letter-spacing:-.5px;margin:10px 0 8px;color:#533b29}.hero-copy p{color:#855c3d;font-size:12px;line-height:1.55;max-width:185px}.hero-art{position:absolute;bottom:-3px;right:0;width:50%;height:200px;max-width:205px;z-index:1}.hero-cta{display:inline-flex;align-items:center;gap:6px;padding:10px 13px;border-radius:13px;border:1px solid #8e6244;background:#fff9e5;color:#603e25;font-weight:800;font-size:12px;position:relative;z-index:2;margin:3px 0 23px}.hero-cta svg{width:15px;height:15px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:25px 0 12px}.section-heading h2,.block-title{font:600 20px/1.2 Georgia,serif;letter-spacing:-.3px;margin:0;color:#574134}.section-heading small{color:#977b62;font-size:11px}.inline-action{border:0;background:none;color:#bd7541;font-weight:800;font-size:12px;padding:7px 0}.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:13px}.day-chip{border:1px solid transparent;background:#f4e6c9;padding:9px 0;border-radius:14px;color:#8b7259;display:flex;flex-direction:column;gap:3px;align-items:center;min-height:62px}.day-chip .day-name{font-size:9px;text-transform:uppercase;font-weight:700}.day-chip .day-num{font-size:15px;font-weight:750}.day-chip.selected{background:#e59a58;color:#fff9e8;box-shadow:0 5px 11px #dda36760}.day-chip.today:not(.selected){border-color:#d79c62}.section-info{display:flex;gap:6px;align-items:center}.tiny-dot{height:6px;width:6px;background:var(--orange);border-radius:50%}.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:18px}.stat-card{background:var(--paper);border:1px solid #f1e6d3;border-radius:20px;padding:13px 11px;min-height:103px;box-shadow:var(--shadow)}.stat-icon{width:29px;height:29px;border-radius:10px;background:#fff0d8;color:#cf844d;display:grid;place-items:center}.stat-icon svg{width:16px;height:16px}.stat-card:nth-child(2) .stat-icon{background:var(--light-sage);color:#7a8e53}.stat-card:nth-child(3) .stat-icon{background:#f9e4c7;color:#b98945}.stat-card b{display:block;font-size:24px;font-weight:800;line-height:1.15;margin:8px 0 1px;color:#533c2e}.stat-card span{font-size:10px;color:#987c61}.filter-strip{display:flex;gap:7px;margin:16px 0 14px;overflow-x:auto;scrollbar-width:none}.filter-strip::-webkit-scrollbar{display:none}.filter-pill{flex:none;border-radius:25px;padding:8px 13px;font-size:11px;font-weight:700;color:#8b765f;background:#f5e7cc;border:1px solid #e9d9bd}.filter-pill.active{background:var(--deep);color:#fff8ea;border-color:var(--deep)}.task-list{display:flex;flex-direction:column;gap:9px}.task-card{display:flex;gap:11px;align-items:flex-start;border-radius:18px;border:1px solid #eee1cd;background:#fffcf4;padding:13px 12px;box-shadow:0 2px 9px rgba(100,74,37,.03)}.check-task{width:23px;height:23px;display:grid;place-items:center;border:2px solid #c7b292;border-radius:8px;background:transparent;flex:none;margin-top:2px;color:white}.check-task.checked{background:#8ba373;border-color:#8ba373}.check-task svg{width:15px;height:15px}.task-body{flex:1;min-width:0}.task-name{font-size:12.5px;font-weight:750;line-height:1.47;overflow-wrap:anywhere}.task-card.completed .task-name{color:#877b6c}.task-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:10px;color:#978470;margin-top:5px}.category-tag{padding:2px 7px;background:#f7e9d4;border-radius:100px;font-weight:650;color:#9a7553}.category-tag.sage{background:#e7edda;color:#758754}.edit-task{flex:none;border:0;background:#fff4e3;color:#ab845e;width:26px;height:26px;display:grid;place-items:center;border-radius:9px;margin-top:1px}.edit-task svg{height:15px;width:15px}.empty-state{padding:32px 20px;border:1px dashed #e7d4ad;border-radius:23px;background:#fff9ea;text-align:center;color:#90765c}.empty-state .empty-graphic{font-size:34px;margin-bottom:8px}.empty-state strong{display:block;font:600 18px Georgia,serif;color:#684e39;margin-bottom:4px}.empty-state p{margin:0 auto 12px;max-width:250px;font-size:12px}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:15px;background:#d78347;color:#fffdf5;padding:12px 15px;font-size:12px;font-weight:800;box-shadow:0 5px 13px rgba(183,119,63,.15)}.primary-button svg{width:16px;height:16px}.secondary-button{border:1px solid #dcc19b;background:#fff9e9;color:#81603e;padding:11px 14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:14px;font-weight:800;font-size:12px}.secondary-button svg{width:16px;height:16px}.bottom-nav{position:absolute;bottom:0;left:0;right:0;background:#fffaf0ec;backdrop-filter:blur(16px);border-top:1px solid #e9ddc8;display:grid;grid-template-columns:repeat(4,1fr);padding:10px 9px calc(env(safe-area-inset-bottom) + 10px);z-index:10;box-shadow:0 -10px 22px rgba(110,89,56,.05)}.nav-button{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;border:0;background:none;color:#9c8a73;font-size:9.5px;padding:5px 0}.nav-button.active{color:#c98046;font-weight:800}.nav-button svg{width:22px;height:22px}.nav-button.active svg{stroke-width:2.6}.calendar-header{margin-top:20px;display:flex;justify-content:space-between;align-items:center}.calendar-title{font:600 23px Georgia,serif;color:#604331}.calendar-actions{display:flex;gap:7px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:15px 0 13px}.calendar-weekday{text-align:center;padding:7px 0;color:#aa8e71;font-weight:800;font-size:10px}.date-cell{height:52px;border-radius:12px;border:1px solid transparent;background:transparent;color:#6f5844;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;font-size:13px;gap:2px}.date-cell.muted{opacity:.29}.date-cell.selected{background:#e9a165;color:white}.date-cell.today:not(.selected){border-color:#e0a26a}.date-cell .dots{display:flex;gap:3px;height:5px}.date-cell .dots i{width:4px;height:4px;background:#8fa56b;border-radius:100%}.date-cell .dots i.plan-dot{background:#d49b5c}.date-cell.selected .dots i{background:white}.calendar-panel{background:#fffbf1;border:1px solid #f0e3cf;border-radius:22px;padding:17px 14px;margin-top:20px}.info-bar{background:#f2ead4;border-radius:17px;padding:13px 15px;color:#8d785e;font-size:11px;display:flex;gap:9px;align-items:flex-start;margin-top:20px}.info-bar svg{flex:none;width:17px;height:17px;color:#ad8c5b;margin-top:1px}.report-control{background:#fffaf0;border:1px solid #f0e4d1;border-radius:22px;padding:17px;margin-top:18px}.report-control label{font-size:10px;font-weight:800;color:#957b5a;letter-spacing:.2px}.report-period{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:9px}.report-period select{width:100%;border:1px solid #ecd9b8;background:white;border-radius:13px;padding:12px 8px;color:var(--deep);font-size:13px;font-weight:700}.report-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:15px 0}.report-summary .summary-card{border-radius:17px;background:#f9e8ca;padding:13px 15px}.report-summary .summary-card:nth-child(2){background:#e8eacf}.report-summary strong{font-size:24px;color:#664a35}.report-summary span{font-size:10px;color:#8d785d;display:block}.report-preview{background:#fffdf7;border:1px solid #ecdfca;border-radius:19px;overflow:hidden;margin-top:14px}.report-preview .preview-top{padding:15px 14px 11px;border-bottom:1px solid #efe4d2}.report-preview .preview-top b{font:600 17px Georgia,serif;color:#5e4534}.report-preview .preview-top p{margin:2px 0 0;color:#aa947b;font-size:10px}.report-table-scroller{overflow-x:auto}.preview-table{width:100%;border-collapse:collapse;text-align:left;min-width:350px;table-layout:fixed}.preview-table thead{background:#f5e9d4;color:#805d42}.preview-table th{font-size:10px;padding:9px 8px}.preview-table td{font-size:10px;padding:10px 8px;border-top:1px solid #f2e9de;vertical-align:top;overflow-wrap:anywhere}.preview-table th:first-child,.preview-table td:first-child{width:32px;text-align:center}.preview-table th:nth-child(2),.preview-table td:nth-child(2){width:68px}.preview-table th:last-child,.preview-table td:last-child{width:74px}.more-rows{text-align:center;padding:9px 0;font-size:10px;color:#9e805c}.report-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.report-buttons button{padding-left:5px;padding-right:5px}.form-panel{background:#fffbf3;border:1px solid #efe1ce;border-radius:21px;padding:17px 15px;margin-top:16px}.form-panel h2{font:600 17px Georgia,serif;margin:0 0 13px;color:#624635}.setting-form{display:grid;gap:11px}.setting-form label,.task-form label{font-size:11px;font-weight:800;color:#80674d;display:flex;flex-direction:column;gap:6px}.setting-form input,.task-form input,.task-form select,.task-form textarea{border:1px solid #e8d8bd;border-radius:12px;padding:11px 12px;background:#fffdf9;color:#5b493b;width:100%;min-width:0;font-size:13px;outline-color:#e59d60}.setting-form input{padding:10px 12px}.hint{font-size:10px;line-height:1.6;color:#997f66}.setting-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.setting-buttons button{flex:1}.disclosure{font-size:10px;color:#937861;margin-top:10px}.danger-button{color:#af594a;background:#fff5ee;border-color:#eed0c5}.profile-head{display:flex;align-items:center;gap:12px;padding-top:15px}.profile-avatar{width:63px;height:63px;border-radius:22px;background:#f8d9aa;display:grid;place-items:center;font:700 29px Georgia,serif;color:#9b603d}.profile-head h1{font:600 23px Georgia,serif;margin:0 0 4px;color:var(--deep)}.profile-head p{font-size:11px;margin:0;color:var(--muted)}.modal-layer{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;z-index:100}.modal-layer.hidden{display:none}.modal-backdrop{position:absolute;inset:0;background:#4937247a}.task-modal{position:relative;z-index:1;width:min(100%,480px);max-height:94dvh;overflow-y:auto;border-radius:26px 26px 0 0;background:#fff9ea;padding:8px 22px calc(env(safe-area-inset-bottom) + 25px);box-shadow:0 -16px 50px #301e1e20}.modal-handle{width:42px;height:5px;border-radius:20px;background:#dec9a8;margin:0 auto 16px}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.modal-header h2{font:600 23px Georgia,serif;color:var(--deep);margin:5px 0}.icon-button{width:34px;height:34px;border:1px solid #e9d8bd;border-radius:12px;background:#fffdf5;color:#8f7150;display:grid;place-items:center}.task-form{display:grid;gap:13px}.task-form textarea{resize:vertical;line-height:1.5}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.req{display:inline;color:#cb7545}.optional{font-weight:400;color:#baa68b}.modal-actions{display:flex;gap:8px;margin-top:3px}.grow{flex:1}.delete-button{display:inline-flex;align-items:center;gap:4px;color:#b45e4c;border:1px solid #f1d1c2;background:#fff7ee;padding:10px;border-radius:12px;font-size:11px;font-weight:800}.delete-button svg{height:15px;width:15px}.hidden{display:none!important}.toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%) translateY(10px);width:max-content;max-width:calc(100vw - 30px);padding:12px 18px;border-radius:15px;background:#5e4330;color:#fff7e6;font-size:12px;box-shadow:0 10px 20px #5a3e3040;opacity:0;pointer-events:none;z-index:150;transition:opacity .2s,transform .2s;text-align:center}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}#printPage{display:none}.footnote{font-size:10px;color:#997e63;padding:9px 2px}.leaf-line{display:block;width:36px;height:3px;border-radius:10px;background:#e7a36b;margin:12px 0}.week-status{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:10px;color:#8f785f}.mark-dot{width:7px;height:7px;border-radius:100%;background:#8ba373}
@media(max-width:699px){body{background:var(--canvas)}.desktop-note{display:none}.app-shell{box-shadow:none}.topbar{height:calc(74px + env(safe-area-inset-top));padding-top:calc(env(safe-area-inset-top) + 14px)}.bottom-nav{position:fixed;max-width:440px;margin:0 auto}.main-content{padding-bottom:calc(120px + env(safe-area-inset-bottom))}}
@media(min-width:700px){.app-shell{margin:20px max(calc(50% - 80px),calc(100% - 480px)) 20px auto;border-radius:38px;min-height:870px;height:min(calc(100vh - 40px),930px);overflow:hidden;border:7px solid #47382e}.main-content{height:calc(100% - 160px);overflow-y:auto;scrollbar-width:thin}.topbar{padding-top:13px}.bottom-nav{position:absolute}.desktop-note{display:block}}
@media(max-width:1050px) and (min-width:700px){.desktop-note{left:35px;width:280px}.desktop-note h1{font-size:36px}.desktop-note p{font-size:15px}.app-shell{margin-right:25px}}
@media print{
  @page{size:A4 portrait;margin:13mm 11mm 14mm}
  html,body{margin:0!important;padding:0!important;background:white!important;color:#151515!important;font:10px/1.35 Arial,Helvetica,sans-serif!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .app-shell,.desktop-note,.modal-layer,.toast,#importFile,.svg-defs{display:none!important}
  #printPage{display:block!important;position:static!important;width:100%!important;background:white!important;color:black!important}
  .print-heading{text-align:center;margin:0 0 15px}.print-heading h1{font:bold 15px Arial,sans-serif;margin:0 0 4px;letter-spacing:.3px}.print-heading h2{font:12px Arial,sans-serif;margin:0}
  .print-meta{width:100%;border-collapse:collapse;margin:11px 0 13px;font:10px Arial,sans-serif}.print-meta td{padding:2px 4px;vertical-align:top}.print-meta td:first-child{width:66px}.print-meta td:nth-child(2){width:8px}.print-meta td:last-child{font-weight:500}
  .print-report-table{width:100%;border-collapse:collapse;table-layout:fixed;font:9px/1.3 Arial,sans-serif}.print-report-table th,.print-report-table td{border:.8px solid #222;padding:6px 5px;vertical-align:top;overflow-wrap:anywhere}.print-report-table thead{display:table-header-group}.print-report-table th{background:#f3eee4;font-weight:bold;text-align:center}.print-report-table th:nth-child(1){width:5%}.print-report-table th:nth-child(2){width:18%}.print-report-table th:nth-child(3){width:62%}.print-report-table th:nth-child(4){width:15%}.print-report-table td:nth-child(1),.print-report-table td:nth-child(4){text-align:center}.print-report-table tr{page-break-inside:avoid;break-inside:avoid}
  .print-signatures{margin-top:23px;width:100%;display:flex;justify-content:space-between;gap:25px;page-break-inside:avoid;break-inside:avoid}.print-signature{width:45%;min-width:0;font:10px/1.45 Arial,sans-serif}.print-signature.right{margin-left:auto}.print-signature .signature-spacer{height:63px}.print-signature strong{display:block}.print-note{font:8px Arial,sans-serif;color:#555;margin:12px 0 0}.print-footer{display:none}
}
/* Prevent iOS Safari from zooming the page when a form field receives focus. */
@media(max-width:699px){.task-form input,.task-form select,.task-form textarea,.setting-form input,.report-period select{font-size:16px}}

/* V2: komponen form tetap dapat dipakai walau date picker iOS memiliki intrinsic width */
.task-form, .task-form label, .form-grid, .form-grid > label {min-width:0; max-width:100%;}
.form-grid input, .form-grid select, .task-form textarea {width:100%; min-width:0; max-width:100%; box-sizing:border-box;}
.date-status-grid {grid-template-columns:minmax(0,1fr); gap:13px;}
.date-status-grid > label {width:100%;}
.date-status-grid input[type=date] {display:block; min-height:48px; appearance:auto; -webkit-appearance:auto;}
.task-modal {overscroll-behavior:contain;}
/* V2: bullet rata kiri, setiap volume berada di akhir uraian terkait */
.report-activity-list {margin:0; padding:0 0 0 1.05em; list-style-type:disc; text-align:left;}
.report-activity-list li {margin:0 0 7px; text-align:left; padding-left:0; overflow-wrap:anywhere;}
.report-activity-list li:last-child {margin-bottom:0;}
.report-activity-list li::marker {color:#bb8553;}
.activity-detail {color:inherit;}
.activity-volume {color:#966b42; font-weight:700; white-space:normal;}
.report-empty {color:#9b9182;}
.preview-table td:nth-child(3),.preview-table th:nth-child(3) {text-align:left;}
.preview-table td:last-child {font-weight:700; text-align:left;}
@media(max-width:380px) {.form-grid:not(.date-status-grid) {grid-template-columns:minmax(0,1fr);} .preview-table{min-width:360px;}}
@media print {
  .print-report-table td:nth-child(3){text-align:left!important;}
  .print-report-table .report-activity-list {padding-left:12px; margin:0; font-size:9px; line-height:1.4;}
  .print-report-table .report-activity-list li {padding:0 0 1px; margin-bottom:3px; break-inside:avoid;}
  .print-report-table .report-activity-list li::marker {color:#805638;}
  .print-report-table .activity-volume {font-weight:600;color:#5b493c;}
  .print-report-table td:nth-child(4) {font-weight:600;}
  .print-report-table tr {break-inside:avoid;}
  .print-report-table thead {display:table-header-group;}
}
@media print {
  .print-heading {margin-bottom:8px;}
  .print-meta {margin:6px 0 8px;}
  .print-meta td {padding:1px 4px;}
  .print-report-table th,.print-report-table td {padding:3px 4px;}
  .print-signatures {margin-top:11px;gap:18px;}
  .print-signature .signature-spacer {height:42px;}
}

/* V2.1 — tanggal dan status selalu memiliki batas kanan yang benar-benar sejajar pada Safari iPhone.
 * Komponen native date iOS memiliki intrinsic sizing; pembungkus menguncinya pada lebar form. */
.date-status-grid {display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%;min-width:0;}
.date-status-grid>label {display:flex;width:100%!important;min-width:0!important;max-width:100%;}
.date-control {display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;overflow:hidden;border:1px solid #e8d8bd;border-radius:12px;background:#fffdf9;}
.date-control #taskDate {display:block;box-sizing:border-box;max-width:100%!important;min-width:0!important;width:100%!important;height:48px;min-height:48px;padding:11px 12px;border:0!important;border-radius:0!important;background:transparent!important;appearance:none;-webkit-appearance:none;font-size:16px;color:#5b493b;}
.date-control:focus-within{outline:3px solid #f4b77d;outline-offset:2px}
.date-control #taskDate:focus{outline:none}
/* V2.1 — laporan narasi yang ringkas */
.report-buttons {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:stretch}
.report-buttons>button {white-space:normal;min-width:0}
@media(max-width:350px){.report-buttons{grid-template-columns:minmax(0,1fr)}}

/* Ruang Hari V2.2: status simpan dan pembaruan tidak menutupi input. */
.save-status{display:flex;align-items:center;gap:6px;color:#74875a;font-size:10px;font-weight:700;margin:8px 0 0;padding:0 2px;}
.save-status.failed{color:#ad594c;background:#fff0e4;padding:10px;border:1px solid #e8c2ad;border-radius:10px;line-height:1.45}
.update-banner{background:#fff9e9;border:1px solid #dfb686;border-radius:16px;padding:12px;margin:0 17px 8px;display:flex;align-items:center;gap:10px;box-shadow:0 5px 16px #6f522019;position:relative;z-index:11;}
.update-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px;color:#694b31;font-size:11px;}
.update-copy span{font-size:10px;color:#957a5c}
.update-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}
.update-primary,.update-later{font-size:10px;border-radius:10px;padding:9px 10px;font-weight:800;border:1px solid #d69c67;}
.update-primary{background:#d78347;color:#fff;}.update-later{background:#fffaf0;color:#8d704f}
.app-version{display:flex;justify-content:space-between;align-items:center;gap:9px;margin:9px 0;font-size:11px;color:#846848}
.storage-banner{padding:12px;background:#fff0e4;border:1px solid #e6b4a0;border-radius:13px;color:#a25443;font-size:11px;line-height:1.5;margin-top:12px}
@media(max-width:390px){.update-banner{padding:10px;margin:0 11px 5px;gap:6px}.update-actions{gap:4px}.update-primary,.update-later{padding:8px 7px}}


/* Ruang Hari V3 beta — login terpisah dari daftar kegiatan pengguna. */
.cloud-enabled .app-shell{display:none}
.cloud-enabled.cloud-ready .app-shell{display:block}
.cloud-gate{display:none}
.cloud-enabled:not(.cloud-ready) .cloud-gate{display:flex;min-height:100dvh;padding:28px 17px 42px;align-items:center;justify-content:center;background:linear-gradient(145deg,#fff5d9,#fff7ec 60%,#f7e6bf);font-family:inherit;box-sizing:border-box}
.cloud-login-card{max-width:390px;width:100%;box-sizing:border-box;padding:28px 22px;background:#fffefa;border:1px solid #ead4b5;border-radius:30px;box-shadow:0 18px 55px #96765624;color:#5c4437}
.cloud-login-logo{display:flex;align-items:center;gap:9px;color:#9d6c42;font-size:29px;margin-bottom:30px;letter-spacing:-1px}.cloud-login-logo span{color:#d78347}
.cloud-login-card h1{font-family:Georgia,serif;font-size:35px;margin:12px 0 7px;color:#584032}
.cloud-login-sub{font-size:14px;color:#93765f;line-height:1.6;margin:0 0 18px}
.cloud-auth-form{display:flex;flex-direction:column;gap:14px}
.cloud-auth-form label{font-size:13px;font-weight:700;color:#7c624b;display:flex;flex-direction:column;gap:7px}
.cloud-auth-form input{width:100%;min-height:49px;border:1px solid #e6d3b7;border-radius:13px;background:white;color:#574435;font-size:16px;padding:10px 12px;box-sizing:border-box}
.cloud-auth-form input:focus{outline:3px solid #f1bc81;outline-offset:1px}
.cloud-submit{margin-top:6px;justify-content:center;min-height:52px}
.cloud-auth-links{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cloud-auth-links button{background:none;border:0;color:#c07739;font-weight:700;font-size:12px;padding:4px 0;text-decoration:underline;text-underline-offset:3px}
.cloud-auth-foot{border-top:1px solid #eedcc5;padding-top:16px;color:#947b66;font-size:11px;line-height:1.5;margin-top:22px}
.cloud-message{padding:12px;background:#f5fae9;border:1px solid #bed3a0;color:#566d3d;font-size:12px;line-height:1.5;border-radius:12px;margin-bottom:14px}.cloud-message.error{background:#fff1e8;border-color:#e7ba9f;color:#a25640}
.cloud-email{font-weight:700;color:#ad7242;overflow-wrap:anywhere}
.cloud-migrate{margin-top:18px;padding:14px;background:#fff2d8;border:1px solid #e9c79e;border-radius:14px;color:#674632}
.cloud-migrate strong{font-size:13px}.cloud-migrate .primary-button{margin-top:8px;font-size:12px;white-space:normal}
.cloud-account-panel{border-color:#c7d5b2!important;background:#fffdf5!important}

/* Ruang Hari V3.2 local database safety and licensing beta */
.local-booting .app-shell,.local-failed .app-shell{display:none}
.local-gate{display:none}
.local-booting .local-gate,.local-failed .local-gate{display:flex;align-items:center;justify-content:center;max-width:440px;min-height:50vh;line-height:1.6;margin:24px auto;padding:28px;border:1px solid #ead3b1;border-radius:25px;background:#fff9ed;color:#59432e;text-align:center;font-weight:650}
.license-status{display:inline-block;background:#fff1d7;border:1px solid #e3c392;border-radius:12px;padding:7px 11px;color:#7d532c;font-size:12px;font-weight:700}
#cloudMigrationForm input{font-size:16px}
