:root{color:#15221c;background:#f4f6f4;font-family:PingFang SC,Microsoft YaHei,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}button,input,select{font:inherit}button{cursor:pointer}.dashboard{display:grid;grid-template-columns:148px minmax(0,1fr);min-height:100vh;background:#f4f6f4}.sidebar{display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-height:100vh;padding:12px 10px;background:#fff;border-right:1px solid #dfe6df}.brand-row{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:10px}.brand-row h1{margin:0;color:#123c2b;font-size:22px;font-weight:800;line-height:1.2;white-space:nowrap}.brand-actions{display:flex;flex-direction:row;gap:6px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;color:#25513f;background:#eef5f0;border:1px solid #d5e2d8;border-radius:8px}.primary-icon{color:#fff;background:#145c3c;border-color:#145c3c}.year-select,.search-box{width:100%;height:34px;border:1px solid #d9e2da;border-radius:8px;background:#fff}.year-select{padding:0 10px;color:#173a2a;margin-bottom:8px}.search-box{display:flex;align-items:center;gap:6px;padding:0 10px;color:#6a7b70;margin-bottom:6px}.search-box input{width:100%;min-width:0;border:0;outline:0;color:#16281f;background:transparent}.payment-entry-button{width:100%;height:34px;margin-bottom:6px;padding:0 10px;color:#20372c;background:#fff;border:1px solid #e0e7e1;border-radius:7px;font-weight:700;text-align:left}.payment-entry-button:hover{background:#f7faf7}.payment-entry-button.selected{color:#123c2b;background:#e6f4ea;border-color:#9fceb0;box-shadow:inset 3px 0 #2f8f55}.month-list{display:grid;grid-template-rows:repeat(12,34px);gap:5px}.month-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 10px;color:#20372c;background:#fff;border:1px solid #e0e7e1;border-radius:7px;text-align:left}.month-row strong{color:#365b49;font-size:12px;font-weight:700}.month-row.selected{color:#fff;background:#145c3c;border-color:#145c3c;box-shadow:0 8px 18px #145c3c29}.month-row.selected strong{color:#fff}.month-empty{background:transparent;border-color:transparent;pointer-events:none}.scan-panel{display:grid;gap:8px;padding-top:10px;border-top:1px solid #e5ebe5}.scan-panel .sidebar-upload-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:8px;margin-bottom:0}.scan-panel .sidebar-upload-row .upload-label,.scan-panel .sidebar-upload-row .scan-button{width:100%;padding:0 8px}.sidebar-file-name{display:block;overflow:hidden;color:#597265;text-align:center;text-overflow:ellipsis;white-space:nowrap}.scan-hint{margin:0;color:#456356;font-size:13px;text-align:center}.content{display:flex;flex-direction:column;min-width:0;height:100vh;padding:8px 10px 10px}.content-header{display:flex;align-items:center;justify-content:space-between;min-height:28px;margin-bottom:4px}.content-header h2{margin:0;color:#123c2b;font-size:20px;font-weight:800}.upload-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:8px}.upload-label{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;color:#1b4734;background:#eef5f0;border:1px solid #d0ddd3;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.upload-label input{display:none}.scan-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;color:#fff;background:#145c3c;border:1px solid #145c3c;border-radius:8px;font-size:13px;font-weight:700;-webkit-tap-highlight-color:transparent}.scan-button:disabled{opacity:.6;cursor:not-allowed}.file-name{color:#597265;font-size:12px}.notice-text{margin:4px 0 10px;color:#597265;font-size:13px}.empty-state{display:flex;align-items:center;min-height:160px;padding:18px;color:#476254;background:#fff;border:1px solid #dce4dc;border-radius:8px}.table-shell{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #dce4dc;border-radius:8px;background:#fff}.month-table{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed}.month-table th,.month-table td{height:22px;padding:0 2px;border-bottom:1px solid #edf1ed;border-right:1px solid #edf1ed;font-size:12px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-table th{color:#335748;font-weight:700;background:#f7faf7}.month-table thead th{height:26px;font-size:13px}.month-table th:first-child,.month-table td:first-child{width:42px;text-align:center}.month-table td{color:#1d3128;text-align:center}.amount-cell-input{width:100%;height:100%;padding:0;color:inherit;background:transparent;border:0;outline:0;text-align:center}.amount-cell-input::placeholder{color:#1d3128;opacity:1}.amount-cell-input:focus{background:#f1fbf4;box-shadow:inset 0 0 0 2px #1d9a57}.month-table th:last-child,.month-table td:last-child{border-right:0}.month-table tbody tr:hover td,.month-table tbody tr:hover th{background:#fbfdfb}.blank-cell{color:transparent;background:#fff}.daily-total{font-weight:900;color:#153f2d;background:#fbfdfb}.selected-cell{color:#0f7a44!important;font-weight:800;box-shadow:inset 0 0 0 2px #1d9a57;background:#f1fbf4}.month-table tfoot th,.month-table tfoot td{height:22px;border-bottom:0;font-weight:900;background:#eef6f0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:18px;background:#13231b47;z-index:20;overflow-y:auto}.detail-modal{width:min(520px,100%);max-height:calc(100vh - 36px);overflow-y:auto;padding:18px;color:#183329;background:#fff;border:1px solid #d8e2d9;border-radius:8px;box-shadow:0 20px 50px #1020182e}.detail-modal header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.detail-modal h3{margin:0;font-size:18px}.detail-modal header button{height:34px;padding:0 12px;color:#1b4734;background:#f1f6f2;border:1px solid #d4e0d6;border-radius:8px}.sum-line{margin-bottom:12px;padding:12px;color:#123c2b;font-size:20px;font-weight:800;background:#eef6f0;border-radius:8px;text-align:center}.detail-table{width:100%;border-collapse:collapse}.detail-table th,.detail-table td{padding:9px 10px;border-bottom:1px solid #edf1ed;font-size:14px;text-align:center}.detail-table th{color:#365b49;background:#f7faf7}.detail-table td:nth-child(2){text-align:center}.scan-modal{width:min(440px,100%)}.model-presets{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.model-preset-btn{padding:4px 10px;font-size:12px;color:#20372c;background:#fff;border:1px solid #d0ddd3;border-radius:999px;cursor:pointer}.model-preset-btn:hover{background:#f7faf7}.model-preset-btn.active{color:#fff;background:#145c3c;border-color:#145c3c}.scan-batch-badge{margin-left:8px;padding:2px 8px;font-size:12px;font-weight:700;color:#145c3c;background:#e6f4ea;border-radius:999px}.scan-preview{margin:0 0 12px;max-height:220px;overflow:hidden;background:#f4f7f5;border:1px solid #d0ddd3;border-radius:8px;display:flex;justify-content:center}.scan-preview img{max-width:100%;max-height:220px;object-fit:contain}.scan-field select{width:100%;height:40px;padding:0 12px;color:#16281f;background:#fff;border:1px solid #d0ddd3;border-radius:8px;font-size:14px}.scan-form{display:flex;flex-direction:column;gap:12px}.scan-field{display:flex;flex-direction:column;gap:4px}.scan-field span{color:#335748;font-size:13px;font-weight:600}.scan-field input{width:100%;height:40px;padding:0 12px;color:#16281f;background:#fff;border:1px solid #d0ddd3;border-radius:8px;font-size:14px}.scan-field input:focus{outline:none;border-color:#145c3c;box-shadow:0 0 0 2px #145c3c1f}.scan-date-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.scan-date-input{position:relative}.scan-date-input input{padding-right:36px}.scan-date-input b{position:absolute;top:50%;right:12px;color:#335748;font-size:14px;transform:translateY(-50%);pointer-events:none}.scan-error{margin:8px 0 0;padding:8px 12px;color:#b33a3a;font-size:13px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px}.scan-actions{display:flex;gap:10px;margin-top:16px}.scan-btn-clear{flex:1;height:40px;color:#1b4734;background:#fff;border:1px solid #d0ddd3;border-radius:8px;font-size:14px;font-weight:600}.scan-btn-clear:hover{background:#f7faf7}.scan-btn-confirm{flex:1;height:40px;color:#fff;background:#145c3c;border:1px solid #145c3c;border-radius:8px;font-size:14px;font-weight:700}.scan-btn-confirm:hover{background:#1a7348}.yearly-stats-modal{width:min(420px,100%)}.yearly-total{margin-bottom:14px;padding:12px;color:#123c2b;font-size:18px;font-weight:900;background:#eef6f0;border-radius:8px;text-align:center}.yearly-table{width:100%;border-collapse:collapse}.yearly-table th,.yearly-table td{padding:8px 10px;border-bottom:1px solid #edf1ed;font-size:14px;text-align:center}.yearly-table th{color:#365b49;background:#f7faf7;font-weight:700}.yearly-amount{text-align:center;font-weight:900}.yearly-row-clickable{cursor:pointer}.yearly-row-clickable:hover td{background:#f1fbf4}.yearly-row-empty td{color:#999}.yearly-row-empty:hover td{background:#fff8e1;cursor:pointer}.payment-table-shell{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid #dce4dc;border-radius:8px;background:#fff}.payment-table{width:100%;height:100%;min-width:0;border-collapse:collapse;table-layout:fixed}.payment-table th,.payment-table td{height:auto;padding:0 2px;border-bottom:1px solid #edf1ed;border-right:1px solid #edf1ed;color:#1d3128;font-size:11px;line-height:1.1;white-space:nowrap}.payment-table thead th{height:48px;color:#335748;background:#f7faf7;font-size:11px;font-weight:800;text-align:center}.payment-table th:first-child{width:78px;text-align:center}.payment-table tbody th{height:calc((100vh - 88px)/20);color:#335748;font-weight:700;background:#f7faf7}.payment-table td{text-align:center}.payment-table th:last-child,.payment-table td:last-child{border-right:0}.payment-table tbody tr:hover td,.payment-table tbody tr:hover th{background:#fbfdfb}.payment-name-input,.payment-cell-button{width:100%;height:100%;padding:0 3px;color:inherit;background:transparent;border:0;outline:0;font:inherit}.payment-name-input{font-weight:700;text-align:center}.payment-cell-button{cursor:pointer;text-align:center}.payment-cell-button:hover{background:#f1fbf4}.payment-name-input:focus,.payment-cell-button:focus-visible{background:#f1fbf4;box-shadow:inset 0 0 0 2px #1d9a57}.payment-status-modal{width:min(560px,100%)}.payment-status-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.payment-status-actions button{height:48px;color:#365b49;background:#fff;border:1px solid #d4e0d6;border-radius:8px;font-size:18px;font-weight:800}.payment-status-actions button.selected{color:#fff;background:#145c3c;border-color:#145c3c}@media(max-width:760px){.dashboard{grid-template-columns:1fr}.sidebar{min-height:auto;max-height:none;padding:8px 10px;background:#fff;border-right:0;border-bottom:1px solid #dfe6df;position:sticky;top:0;z-index:10}.brand-row{margin-bottom:6px}.brand-row h1{font-size:17px}.sidebar .search-box,.sidebar .payment-entry-button,.sidebar .scan-hint{display:none}.month-list{display:flex;flex-direction:row;gap:6px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:4px}.month-row{flex:0 0 auto;min-width:110px;height:40px;padding:4px 10px;font-size:13px;scroll-snap-align:start;border-radius:8px}.month-empty{display:none}.year-select{height:32px;font-size:13px}.content{padding:12px 10px 100px}.content-header h2{font-size:20px}.scan-panel{position:fixed;bottom:16px;right:16px;left:16px;z-index:20;padding:10px 12px;background:#fff;border:1px solid #d5e2d8;border-radius:14px;box-shadow:0 8px 24px #145c3c33;display:flex;flex-direction:row;gap:8px;align-items:center}.sidebar-upload-row{flex:1;display:flex;gap:8px;margin:0}.upload-label,.scan-button{flex:1;height:48px;font-size:15px;font-weight:600;border-radius:10px;margin:0}.sidebar-file-name{display:none}.table-shell{border-radius:7px}.month-table{min-width:980px}.detail-modal{padding:14px;max-height:calc(100vh - 24px)}.detail-modal h3{font-size:16px}.detail-modal header button{height:40px;padding:0 14px}.scan-field input{height:44px;font-size:16px}.scan-actions{flex-direction:column}.scan-btn-clear,.scan-btn-confirm{height:44px;font-size:15px}}.backup-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 12px;padding:10px 14px;background:linear-gradient(90deg,#fff8e1,#fffbf0);border:1px solid #ffd591;border-radius:10px;font-size:14px;color:#6d4500}.backup-banner span{flex:1;line-height:1.5}.backup-banner>div{display:flex;gap:6px;align-items:center}.backup-banner-action{padding:6px 14px;background:#fa8c16;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600}.backup-banner-action:hover{background:#d46b08}.backup-banner-dismiss{width:28px;height:28px;background:transparent;border:none;font-size:14px;color:#8c6d3f;cursor:pointer}.backup-banner-dismiss:hover{color:#333}.password-gate{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px env(safe-area-inset-right) 24px env(safe-area-inset-left);background:linear-gradient(135deg,#0a3d2a,#145c3c,#1f7a52)}.password-gate-card{display:flex;flex-direction:column;gap:16px;width:100%;max-width:380px;padding:32px 28px;background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000040}.password-gate-card h1{margin:0;color:#0a3d2a;font-size:26px;font-weight:800;text-align:center}.password-gate-tagline{margin:-6px 0 0;color:#688e7a;font-size:14px;text-align:center}.password-gate-field{display:flex;flex-direction:column;gap:6px;margin-top:8px}.password-gate-field span{color:#16281f;font-size:14px;font-weight:600}.password-gate-field input{height:48px;padding:0 14px;font-size:18px;color:#16281f;background:#f7faf7;border:1.5px solid #d0ddd3;border-radius:10px;outline:none}.password-gate-field input:focus{border-color:#145c3c;background:#fff}.password-gate-remember{display:flex;align-items:center;gap:8px;color:#456356;font-size:14px;-webkit-user-select:none;user-select:none}.password-gate-remember input{width:18px;height:18px;accent-color:#145c3c}.password-gate-error{margin:0;padding:8px 12px;background:#fff1f0;color:#cf1322;font-size:13px;border-radius:6px;border:1px solid #ffa39e}.password-gate-card button[type=submit]{height:50px;margin-top:4px;background:#145c3c;color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;transition:background .15s}.password-gate-card button[type=submit]:hover:not(:disabled){background:#0a3d2a}.password-gate-card button[type=submit]:disabled{background:#97a89d;cursor:not-allowed}.password-gate-hint{margin:0;color:#97a89d;font-size:12px;text-align:center}@media(min-width:768px)and (pointer:coarse){body{font-size:16px}.dashboard{grid-template-columns:260px minmax(0,1fr)}.sidebar{padding:16px 14px env(safe-area-inset-bottom,14px) max(14px,env(safe-area-inset-left))}.brand-row h1{font-size:22px}.icon-button{width:44px;height:44px}.year-select,.search-box,.payment-entry-button{height:44px;font-size:16px}.month-row{min-height:48px;font-size:16px}.upload-label,.scan-button{height:52px;font-size:17px;font-weight:600;border-radius:10px}.content{padding:20px 24px env(safe-area-inset-bottom,20px) 20px}.content-header h2{font-size:24px}.detail-modal{max-width:min(720px,92vw);padding:24px;font-size:16px}.detail-modal h3{font-size:20px}.scan-field input,.scan-field select,.scan-field textarea{min-height:48px;font-size:16px;padding:10px 14px}.scan-btn-clear,.scan-btn-confirm{min-height:52px;padding:0 22px;font-size:16px;font-weight:600}.password-gate-card{max-width:460px;padding:44px 36px}.password-gate-card h1{font-size:30px}.password-gate-field input{height:56px;font-size:20px}.password-gate-card button[type=submit]{height:56px;font-size:18px}.backup-banner{font-size:15px;padding:12px 16px}.backup-banner-action{padding:10px 18px;font-size:14px}}@media(min-width:900px)and (max-width:1366px)and (orientation:landscape)and (pointer:coarse){.dashboard{grid-template-columns:300px minmax(0,1fr)}.month-list{grid-template-rows:repeat(12,44px)}.scan-panel{position:sticky;bottom:env(safe-area-inset-bottom,0);padding-top:12px;background:#fff;border-top:1px solid #eef2ed}}@media(max-width:760px)and (pointer:coarse){.icon-button{width:44px;height:44px}.month-row{min-height:48px;font-size:15px}.sidebar{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));padding-bottom:env(safe-area-inset-bottom,10px)}.content{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));padding-bottom:env(safe-area-inset-bottom,14px)}.modal-backdrop{padding:env(safe-area-inset-top,12px) env(safe-area-inset-right,12px) env(safe-area-inset-bottom,12px) env(safe-area-inset-left,12px)}}@media(display-mode:standalone){body{padding-top:env(safe-area-inset-top)}}.voice-input-bar{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.voice-input-btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;background:#145c3c;color:#fff;border:1px solid #145c3c;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease;-webkit-tap-highlight-color:transparent}.voice-input-btn:hover:not(.is-disabled){background:#0a3d2a}.voice-input-btn.is-listening{background:#ef4444;border-color:#ef4444;animation:voice-bar-pulse 1s ease-in-out infinite}.voice-input-btn.is-disabled{background:#97a89d;border-color:#97a89d;cursor:default}@keyframes voice-bar-pulse{0%,to{box-shadow:0 0 #ef44448c}50%{box-shadow:0 0 0 8px #ef444400}}.voice-feedback-bar{display:inline-flex;align-items:center;padding:6px 12px;font-size:13px;border-radius:8px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voice-feedback-success{background:#d1fae5;color:#065f46}.voice-feedback-warn{background:#fef3c7;color:#92400e}.voice-feedback-info{background:#dbeafe;color:#1e40af}.month-table td.cell-selected{background:#fff3a4!important;box-shadow:inset 0 0 0 2px #f59e0b}.month-table td.cell-selected .amount-cell-input{background:transparent;font-weight:700}@media(max-width:760px){.content-header{flex-direction:column;align-items:flex-start;gap:8px}.content-header h2{margin-right:auto}.voice-input-bar{width:100%}.voice-input-btn{flex:1;justify-content:center;height:44px;font-size:15px}.voice-feedback-bar{flex-basis:100%;max-width:none}}.content-header{align-items:baseline;gap:12px}.notice-text.inline-notice{margin:0;color:#688e7a;font-size:13px;font-weight:400}.month-table tfoot .repeated-header-row td{background:#eef5f0;color:#145c3c;font-weight:700;font-size:12px;border-top:2px solid #d5e2d8}.mobile-app{min-height:100vh;background:#f4f6f4;display:flex;flex-direction:column}.mobile-page{padding:0 16px;padding-top:env(safe-area-inset-top,8px)}.mobile-header{display:flex;align-items:center;justify-content:space-between;margin:8px 0 10px}.mobile-header h1{margin:0;font-size:22px;font-weight:800;color:#123c2b}.mobile-icons{display:flex;gap:8px}.mobile-icon{width:38px;height:38px;background:#eef5f0;border:1px solid #d5e2d8;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#25513f;cursor:pointer;padding:0}.mobile-icon.primary{background:#145c3c;color:#fff;border-color:#145c3c}.mobile-icon:active{transform:scale(.96)}.mobile-icon:disabled{opacity:.4;cursor:not-allowed}.mobile-payment-btn{width:100%;padding:10px 16px;background:#fff;border:1px solid #dce4dc;border-radius:12px;font-size:15px;font-weight:700;color:#20372c;text-align:left;margin-bottom:12px;cursor:pointer}.mobile-section-bar{display:flex;align-items:center;justify-content:space-between;padding:0 4px;margin-bottom:6px}.mobile-section-bar .label{font-size:15px;font-weight:700;color:#123c2b}.mobile-section-bar .hint{font-size:12px;color:#688e7a}.mobile-month-list{display:flex;flex-direction:column;gap:5px;margin-bottom:90px}.mobile-month-card{display:flex;align-items:center;justify-content:space-between;padding:7px 16px;background:#fff;border:1px solid #dce4dc;border-radius:10px;min-height:42px;cursor:pointer;text-align:left;width:100%}.mobile-month-card .left{display:flex;align-items:baseline;gap:8px}.mobile-month-card .name{font-size:16px;font-weight:700;color:#16281f}.mobile-month-card .sub{font-size:11px;color:#97a89d}.mobile-month-card .amt{font-size:17px;font-weight:800;color:#145c3c}.mobile-month-card.active{background:#ecfdf5;border-color:#f59e0b;border-width:2px}.mobile-month-card.active .name{color:#0a3d2a}.mobile-month-card.zero .amt{color:#97a89d;font-weight:400}.mobile-pending-alert{position:fixed;bottom:max(12px,env(safe-area-inset-bottom,12px));left:16px;right:16px;padding:10px 16px;background:linear-gradient(120deg,#fff8e1,#fff3cf);border:1px solid #f5d680;border-radius:12px;display:flex;align-items:center;justify-content:space-between;z-index:50}.mobile-pending-alert .label{font-size:14px;font-weight:700;color:#6d3700}.mobile-pending-alert .sub{font-size:11px;color:#92400e;margin-top:1px}.mobile-pending-alert .count{font-size:22px;font-weight:800;color:#d97706}.mobile-detail-header{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;margin:8px 0 10px;gap:8px}.mobile-detail-header .center{text-align:center}.mobile-detail-header .title{font-size:17px;font-weight:800;color:#123c2b}.mobile-detail-header .sub{font-size:11px;color:#688e7a;margin-top:1px}.mobile-date-card{display:flex;align-items:center;justify-content:space-between;padding:10px 22px;background:#fff;border:1px solid #dce4dc;border-radius:12px;margin-bottom:10px}.mobile-date-card .arrow{width:36px;height:36px;background:#f0f5f1;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#145c3c;border:none;cursor:pointer;padding:0}.mobile-date-card .arrow:disabled{opacity:.3;cursor:not-allowed}.mobile-date-card .center{text-align:center}.mobile-date-card .label{font-size:12px;color:#688e7a}.mobile-date-card .day{font-size:22px;font-weight:800;color:#123c2b;line-height:1.1;margin-top:1px}.mobile-date-card .total{font-size:12px;color:#25513f;margin-top:2px}.mobile-shop-list{display:flex;flex-direction:column;gap:5px;padding-bottom:env(safe-area-inset-bottom,12px)}.mobile-shop-row{display:flex;align-items:center;gap:6px;padding:6px 14px;background:#fff;border:1px solid #dce4dc;border-radius:10px;min-height:44px}.mobile-shop-row .name{flex:1;font-size:15px;font-weight:700;color:#16281f}.mobile-shop-row .amount{width:100px;height:34px;background:#f7faf7;border:1px solid #d0ddd3;border-radius:7px;text-align:right;padding:0 12px;font-size:16px;font-weight:700;color:#145c3c;outline:0}.mobile-shop-row .amount.zero{color:#aab7af;font-weight:400}.mobile-shop-row .amount:focus{background:#fff;border-color:#f59e0b;border-width:2px}.mobile-shop-row.has-value{background:#ecfdf5;border-color:#b6e5cf}.mobile-shop-row .mic{width:34px;height:34px;background:#145c3c;color:#fff;border-radius:7px;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;padding:0}.mobile-shop-row .mic.listening{background:#ef4444;animation:mobile-mic-pulse 1s ease-in-out infinite}@keyframes mobile-mic-pulse{0%,to{box-shadow:0 0 #ef44448c}50%{box-shadow:0 0 0 8px #ef444400}}.mobile-shop-row.blank .name{color:#c0cbc4;font-weight:400}.mobile-shop-row.blank .amount{background:#f7faf7}.mobile-shop-row.blank .mic{background:#d5e2d8;color:#97a89d;cursor:not-allowed}.icon-spinning svg{animation:icon-spin 1s linear infinite}@keyframes icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mobile-toast{position:fixed;top:max(60px,env(safe-area-inset-top,60px));left:50%;transform:translate(-50%);max-width:90vw;padding:8px 16px;background:#145c3ceb;color:#fff;border-radius:20px;font-size:13px;font-weight:600;box-shadow:0 6px 16px #0000002e;z-index:9999;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-shoppayment-page .mobile-detail-header{margin-bottom:6px}.mobile-shoppayment-shell{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;padding:0 16px env(safe-area-inset-bottom,16px)}.mobile-shoppayment-shell .payment-table-shell{border:1px solid #dce4dc;border-radius:10px;background:#fff;overflow-x:auto}.mobile-date-card .mobile-date-center-btn{background:transparent;border:0;padding:0;cursor:pointer;flex:1;text-align:center;-webkit-tap-highlight-color:transparent}.mobile-date-card .mobile-date-center-btn:active{opacity:.8}.mobile-date-card{position:relative}.mobile-shop-grid-header{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:8px;margin:6px 0 10px}.mobile-shop-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.mobile-shop-chip{padding:7px 4px;background:#fff;border:1px solid #dce4dc;border-radius:8px;text-align:center;font-size:13px;font-weight:700;color:#16281f;min-height:30px;cursor:pointer;-webkit-tap-highlight-color:transparent}.mobile-shop-chip:active{background:#ecfdf5;border-color:#b6e5cf}.mobile-shop-chip.blank{background:#f7faf7;color:#c0cbc4;font-weight:400;cursor:not-allowed}.mobile-date-card .center{flex:1;display:flex;align-items:center;justify-content:center;gap:12px}.mobile-date-card .day-block{display:flex;flex-direction:column;align-items:center}.mobile-date-card .cal-btn{position:relative;width:44px;height:44px;background:#145c3c;color:#fff;border-radius:10px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #145c3c40;cursor:pointer;overflow:hidden}.mobile-date-card .cal-btn-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0;border:0;background:transparent;color:transparent;-webkit-appearance:none}.mobile-date-card .cal-btn:active{background:#0a3d2a}.mobile-store-month{padding-bottom:env(safe-area-inset-bottom,16px)}.mobile-store-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 18px;background:linear-gradient(120deg,#145c3c,#1f7a52);color:#fff;border-radius:14px;margin-bottom:12px}.mobile-store-summary .label{font-size:12px;opacity:.85}.mobile-store-summary .value{font-size:22px;font-weight:800;margin-top:4px}.mobile-store-day-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding-bottom:12px}.mobile-store-day-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#fff;border:1px solid #dce4dc;border-radius:10px;min-height:44px;cursor:pointer;-webkit-tap-highlight-color:transparent}.mobile-store-day-row .day{font-size:14px;color:#16281f;font-weight:600}.mobile-store-day-row .amt{font-size:16px;font-weight:800;color:#145c3c}.mobile-store-day-row .amt.zero{color:#c0cbc4;font-weight:400}.mobile-store-day-row.has-value{background:#ecfdf5;border-color:#b6e5cf}.mobile-store-day-row:active{background:#d4f0e0}
