/* UI 設計規範的視覺樣式（覆蓋層）。需在各頁面內嵌樣式之後載入 */
:root{--t-bg:#f5f5f7;--t-surface:#fff;--t-fill:#f5f5f7;--t-seg:#f0f0f2;--t-ink:#1d1d1f;--t-soft:#6e6e73;--t-line:#e8e8ed;--t-line2:#d2d2d7;--t-accent:#0071e3;--t-link:#0071e3;--t-danger:#ff3b30;--t-skel:#ececf0;
--paper:var(--t-surface);--paper-dark:var(--t-fill);--paper-line:var(--t-line2);--ink:var(--t-ink);--ink-soft:var(--t-soft);--stamp:var(--t-ink);--stamp-soft:#0071e31a;}
html[data-theme="dark"]{--t-bg:#1c1c1e;--t-surface:#2c2c2e;--t-fill:#3a3a3c;--t-seg:#3a3a3c;--t-ink:#ffffff;--t-soft:#c7c7cc;--t-line:#545458;--t-line2:#636366;--t-accent:#0a84ff;--t-link:#8ec9ff;--t-danger:#ff6961;--t-skel:#3a3a3c;color-scheme:dark;}
html,body{background:var(--t-bg) !important;font-family:"SF Pro TC","SF Pro Text","PingFang TC","Noto Sans CJK TC","Helvetica Neue",Arial,sans-serif !important;color:var(--t-ink);-webkit-font-smoothing:antialiased}
body *{font-family:inherit}
.zig{display:none !important}
.receipt{background:var(--t-surface) !important;border-radius:22px;box-shadow:none !important;margin:12px auto;padding:0 20px 24px !important;max-width:440px}
header{border-bottom:1px solid var(--t-line) !important;padding:22px 0 8px !important}
header .brand{display:none}
header h1{font-size:30px !important;font-weight:700 !important;letter-spacing:-.02em;margin:2px 0 0 !important}
header .period,header #period{font-size:14px;color:var(--t-soft);margin-top:2px}
.gear-btn,.credit-ring{background:var(--t-fill) !important;border:none !important;box-shadow:none !important}
.gear-btn{border:1px solid var(--t-line2) !important}
.total-row .label{font-size:14px;color:var(--t-soft)}
.controls{border:none !important}
.seg{background:var(--t-seg) !important;border-radius:10px !important;padding:2px !important;border:none !important}
.seg button{border-radius:8px !important;font-weight:500;color:var(--t-ink) !important;background:transparent !important}
.seg button.active{background:var(--t-surface) !important;color:var(--t-ink) !important;box-shadow:0 1px 3px rgba(0,0,0,.14)}
.sort-btn,.range-btn,.tool-btn{background:var(--t-fill) !important;border:none !important;border-radius:980px !important;color:var(--t-ink) !important;font-weight:500;padding:7px 14px !important}
.action-btn-row{gap:10px !important}
.scan-receipt-btn,.add-record-btn{border:none !important;border-radius:18px !important;background:var(--t-fill) !important;color:var(--t-ink) !important;box-shadow:none !important;font-weight:600}
.add-record-btn{background:var(--t-accent) !important;color:#fff !important}
.rec-date{border-top:none !important;color:var(--t-soft) !important;font-family:inherit !important;font-weight:600;font-size:13px !important;padding:16px 0 4px !important}
.trow{border-bottom:1px solid var(--t-line) !important;padding:12px 2px !important}
.trow-title{font-weight:600 !important}
.trow-amt,.amt,.bamt,.b-amt{color:var(--t-ink) !important;font-family:inherit !important;font-weight:600 !important}
.select-btn{background:var(--t-fill) !important;border:none !important;color:var(--t-link) !important;border-radius:980px !important}
.modal-backdrop{background:rgba(0,0,0,.4) !important;backdrop-filter:blur(8px)}
.edit-modal{background:var(--t-surface) !important;border-radius:22px !important;box-shadow:0 20px 60px rgba(0,0,0,.25) !important;border:none !important}
.edit-modal-head{border-bottom:1px solid var(--t-line) !important}
.edit-modal-head .t{font-size:19px;font-weight:700}
.edit-modal-head button{background:var(--t-fill) !important;border-radius:50% !important;border:none !important}
.edit-modal input,.edit-modal select,.edit-modal textarea,input[type=text],input[type=password],input[type=email],input[type=number],input[type=date]{background:var(--t-fill) !important;border:1px solid transparent !important;border-radius:12px !important;color:var(--t-ink) !important}
.edit-modal input:focus{border-color:var(--t-accent) !important;background:var(--t-surface) !important;outline:none}
.settings-btn,.am-btn,.edit-save,.save-btn,.btn{border-radius:980px !important;border:none !important;background:var(--t-accent) !important;color:#fff !important;font-weight:500;box-shadow:none !important}
.settings-btn:not(.primary){background:var(--t-fill) !important;color:var(--t-link) !important}
.settings-section-title,.set-sec,.settings-title{background:transparent !important;border:none !important;font-size:22px !important;font-weight:700 !important;text-align:left !important;color:var(--t-ink) !important}
footer{border:none !important}
a{color:var(--t-link)}
.tab,.tabs button{border-radius:980px}
.hint,.sub{color:var(--t-soft)}
.bill,.bcard,.card{border-radius:16px !important}
.settings-block{border:none !important;background:transparent !important;border-radius:0}
.detail-line,.share-row,.bal-row{border-bottom:1px solid var(--t-line) !important}
.settings-body{background:var(--t-surface) !important}
.total-row{align-items:center !important}
.edit-modal [style*="dashed"]{border-style:solid !important;border-color:var(--t-line2) !important}
.tool-btn,.tool-menu{border-radius:14px}
.sort-dropdown,.tool-menu{background:var(--t-surface) !important;border:none !important;box-shadow:0 8px 30px rgba(0,0,0,.18) !important;border-radius:14px !important}
.search-box{background:var(--t-fill) !important;border:none !important;border-radius:12px !important}
.receipt .scan-receipt-btn::before{display:none !important}
#fSave,#saveBtn,#editSave{background:var(--t-accent) !important;color:#fff !important}
.am-back{background:rgba(0,0,0,.4) !important;backdrop-filter:blur(8px)}
.am-box{background:var(--t-surface) !important;border:none !important;border-radius:22px !important;box-shadow:0 20px 60px rgba(0,0,0,.25) !important}
.am-f input{background:var(--t-fill) !important;border:1px solid transparent !important;border-radius:12px !important;padding:11px 12px !important}
.am-f label{font-size:13px !important}
.am-btn{background:var(--t-fill) !important;color:var(--t-link) !important;border-radius:980px !important;border:none !important;padding:12px !important}
.am-btn.main{background:var(--t-accent) !important;color:#fff !important}
.modal-save-btn{border-radius:980px !important;border:none !important}
input[type=date],input[type=time],input[type=datetime-local]{text-align:center !important;display:block}
input[type=date]::-webkit-datetime-edit,input[type=time]::-webkit-datetime-edit{text-align:center;padding:0;flex:none}
input[type=date],input[type=time]{-webkit-appearance:none;appearance:none;display:flex;justify-content:center;align-items:center}
.modal-save-btn{background:var(--t-accent) !important;color:#fff !important}
.edit-modal-head{padding:16px 20px !important}
.terms-body{padding:16px 20px 24px !important}
.bulk-bar{border-radius:14px !important;padding:8px 10px !important}
.bulk-edit-btn,.bulk-delete-btn,.bulk-cancel-btn{border-radius:10px !important}
.bulk-edit-btn{background:var(--t-surface) !important;color:var(--t-ink) !important}
.bulk-delete-btn{background:var(--t-danger) !important;color:#fff !important}
.bulk-cancel-btn{background:transparent !important;color:#fff !important;border:1px solid rgba(255,255,255,.5) !important}
.total-row{border:none !important;border-bottom:1px solid var(--t-line) !important;padding:18px 0 14px !important;display:flex;flex-direction:column;align-items:center !important;gap:2px}
.total-row .amount{font-family:inherit !important;font-size:26px !important;font-weight:700 !important;color:var(--t-ink) !important;letter-spacing:-.02em}
.settings-block-title{background:transparent !important;border:none !important;font-size:17px !important;font-weight:700 !important;text-align:center !important;color:var(--t-ink) !important;padding:18px 0 8px !important;margin:0 !important}

/* 法規頁（privacy / terms / about） */
main{background:var(--t-surface);max-width:440px !important;margin:12px auto !important;border-radius:22px;padding:28px 20px !important}
main h1{font-size:30px !important;font-weight:700 !important;letter-spacing:-.02em;margin:0 0 4px !important}
main .sub{color:var(--t-soft) !important;font-size:13px !important;margin-bottom:20px !important}
main h2{font-size:22px !important;font-weight:700 !important;letter-spacing:-.01em;border-left:none !important;padding-left:0 !important;margin:32px 0 8px !important}
main li{margin:6px 0 !important}
main b{font-weight:600}
main a{text-decoration:none}
main nav{border-top:1px solid var(--t-line) !important;color:var(--t-soft);font-size:13px !important;margin-top:32px !important;padding-top:16px !important;gap:20px !important}

/* AI 按鈕的彩色流動邊框 */
.ai-btn{border:2px solid transparent !important;background:linear-gradient(var(--ai-fill,var(--t-fill)),var(--ai-fill,var(--t-fill))) padding-box,conic-gradient(from 20deg,var(--ai-c1),var(--ai-c2),var(--ai-c3),var(--ai-c4),var(--ai-c1)) border-box !important;box-shadow:0 -1px 5px color-mix(in srgb,var(--ai-c1) 30%,transparent),1px 0 5px color-mix(in srgb,var(--ai-c2) 30%,transparent),0 1px 5px color-mix(in srgb,var(--ai-c3) 30%,transparent),-1px 0 5px color-mix(in srgb,var(--ai-c4) 30%,transparent) !important}
.scan-receipt-btn.ai-btn{--ai-fill:var(--t-fill);border-radius:18px !important;color:var(--t-ink) !important}
.settings-btn.secondary.ai-btn{--ai-fill:var(--t-fill);color:var(--t-link) !important;border-radius:980px !important}

/* 小尺寸 AI 按鈕：邊框與光暈加強 */
.settings-btn.secondary.ai-btn{border-width:3px !important;box-shadow:0 -2px 9px color-mix(in srgb,var(--ai-c1) 60%,transparent),2px 0 9px color-mix(in srgb,var(--ai-c2) 60%,transparent),0 2px 9px color-mix(in srgb,var(--ai-c3) 60%,transparent),-2px 0 9px color-mix(in srgb,var(--ai-c4) 60%,transparent) !important}

/* 同步電子發票：只讓視窗邊緣流動彩色，不要全螢幕背景光 */
body:has(#syncInvoiceBackdrop[style*="flex"]) .ai-glow{opacity:0 !important}
body.ai-busy #syncInvoiceBackdrop{background:rgba(0,0,0,.4) !important}
body.ai-busy #syncInvoiceBackdrop .sync-modal{--ai-fill:var(--t-surface);border:3px solid transparent !important;background:linear-gradient(var(--t-surface),var(--t-surface)) padding-box,conic-gradient(from 20deg,var(--ai-c1),var(--ai-c2),var(--ai-c3),var(--ai-c4),var(--ai-c1)) border-box !important;animation:aiC1 8s ease-in-out infinite,aiC2 11s ease-in-out infinite -3s,aiC3 13.5s ease-in-out infinite -6s,aiC4 9.5s ease-in-out infinite -1.8s;box-shadow:0 -2px 14px color-mix(in srgb,var(--ai-c1) 55%,transparent),2px 0 14px color-mix(in srgb,var(--ai-c2) 55%,transparent),0 2px 14px color-mix(in srgb,var(--ai-c3) 55%,transparent),-2px 0 14px color-mix(in srgb,var(--ai-c4) 55%,transparent) !important}
.sync-month-btn{background:var(--t-fill) !important;border:none !important;border-radius:12px !important;color:var(--t-link) !important;font-weight:500;padding:11px 0 !important}
.sync-month-btn:not(:disabled):hover{background:var(--t-accent) !important;color:#fff !important}

/* 紀錄詳細：複製／刪除按鈕、商家與發票號碼置中 */
.modal-copy-btn,.modal-delete-btn{border:none !important;border-radius:980px !important;background:var(--t-fill) !important;padding:12px !important;font-size:15px !important;font-weight:500 !important}
.modal-copy-btn{color:var(--t-link) !important}
.modal-delete-btn{color:var(--t-danger) !important}
[data-field="store"],[data-field="invoiceNo"],#scan-invoice{text-align:center !important}

/* 佈景切換 */
.theme-seg{display:flex;margin:0 0 8px}
.theme-seg button{flex:1;border:none;background:transparent;color:var(--t-ink);padding:9px 0;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer}
.theme-seg button.active{background:var(--t-surface);box-shadow:0 1px 3px rgba(0,0,0,.14)}
html[data-theme="dark"] .seg button.active,html[data-theme="dark"] .theme-seg button.active{background:#636366}
html[data-theme="dark"] .modal-backdrop,html[data-theme="dark"] .am-back{background:rgba(0,0,0,.55) !important}
html[data-theme="dark"] .bulk-bar{background:#48484a !important}
html[data-theme="dark"] .bulk-edit-btn{background:#f5f5f7 !important}

/* 彈窗高度以實際可視範圍計算，避免 Safari 工具列顯示時頂到螢幕邊緣 */
.modal-backdrop{ padding:max(20px, env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom)) !important; box-sizing:border-box; }
.edit-modal{ max-height:calc(100vh - 80px) !important; max-height:calc(100dvh - 80px) !important; }
.settings-modal{ max-height:calc(100vh - 80px) !important; max-height:calc(100dvh - 80px) !important; }

.settings-btn.danger-fill{background:#d92d20 !important;color:#fff !important}
html[data-theme="dark"] .settings-btn.danger-fill{background:#e5362b !important}
.settings-btn.danger-fill:disabled{opacity:.45}

.lt-grid .day.range-start,.lt-grid .day.range-end{border-radius:12px}
.lt-apply{border-radius:980px !important}
.lt-grid .day.range-start,.lt-grid .day.range-end{background:var(--t-accent) !important;color:#fff !important}
.lt-apply{background:var(--t-accent) !important;color:#fff !important}
.scan-save-btn,.modal-save-btn{background:var(--t-accent) !important;color:#fff !important}
.gate-bar > i{background:var(--t-accent) !important}
html[data-theme="dark"] .lt-grid .day.in-range{background:rgba(10,132,255,.4) !important}

/* 設定齒輪與 AI 額度環：並排浮在卡片上方的空白處 */
.receipt{margin:10px auto 12px !important}
.gear-btn,html.demo .gear-btn{top:-18px !important}
.gear-btn{z-index:41 !important}
.credit-ring,.credit-ring.demo{position:absolute !important;top:-20px;z-index:40 !important;right:0 !important}
