/* YUQI v159 — 家庭財務獨立管理模組。僅作用於家庭財務分頁，不覆蓋公司帳務。 */
.ff-shell{display:flex;flex-direction:column;gap:14px}
.ff-isolation{background:#fffaf4;border:1px solid #ead8c6;border-radius:20px;padding:14px 16px;color:#806b5b;font-size:11px;line-height:1.8}
.ff-isolation b{color:#694f3d}
.ff-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 1px 5px;scrollbar-width:none}
.ff-tabs::-webkit-scrollbar{display:none}.ff-tab{flex:none;border:1px solid #e7dacd;background:#fff;color:#887261;border-radius:999px;padding:9px 13px;font-size:11px;font-weight:900;white-space:nowrap}.ff-tab.active{background:#8f7561;color:#fff;border-color:#8f7561}
.ff-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ff-kpi{background:#fff;border:1px solid #eadfd4;border-radius:22px;padding:15px;min-width:0;box-shadow:0 6px 18px rgba(109,93,80,.045)}.ff-kpi.wide{grid-column:1/-1}.ff-kpi-label{font-size:10px;color:#9b8b80;font-weight:900;letter-spacing:.04em}.ff-kpi-value{font-size:23px;font-weight:950;color:#604e43;line-height:1.2;margin-top:5px;word-break:break-word}.ff-kpi-sub{font-size:10px;color:#a69689;margin-top:5px;line-height:1.55}.ff-danger{color:#b7625c!important}.ff-good{color:#5f8a71!important}
.ff-card{background:#fff;border:1px solid #eadfd4;border-radius:23px;padding:16px;box-shadow:0 7px 22px rgba(109,93,80,.045)}.ff-card-title{font-size:15px;font-weight:900;color:#5d4a3f;display:flex;align-items:center;justify-content:space-between;gap:10px}.ff-card-note{font-size:10px;color:#a69689;line-height:1.7;margin-top:5px}.ff-list{margin-top:11px;display:flex;flex-direction:column;gap:8px}.ff-row{border:1px solid #efe4d9;border-radius:17px;padding:12px;background:#fffdfa}.ff-row-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.ff-row-name{font-size:13px;font-weight:900;color:#655448}.ff-row-meta{font-size:10px;color:#9e8d80;line-height:1.65;margin-top:4px}.ff-row-money{font-size:14px;font-weight:950;color:#7c6452;white-space:nowrap}.ff-row-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.ff-mini-btn{border:1px solid #e4d8cc;background:#fff;color:#806c5d;border-radius:12px;padding:7px 10px;font-size:10px;font-weight:900}.ff-mini-btn.primary{background:#8f7561;border-color:#8f7561;color:#fff}.ff-mini-btn.danger{background:#fff6f4;border-color:#ecd6d1;color:#a56c65}
.ff-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.ff-add-btn{border:0;background:#8f7561;color:#fff;border-radius:14px;padding:9px 12px;font-size:11px;font-weight:900;white-space:nowrap}
.ff-progress{height:8px;background:#f1e9e1;border-radius:999px;overflow:hidden;margin-top:9px}.ff-progress>i{display:block;height:100%;background:#a58973;border-radius:999px}
.ff-subtabs{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;background:#f6f0ea;border-radius:16px;padding:5px}.ff-subtab{border:0;background:transparent;border-radius:12px;padding:9px 6px;font-size:11px;font-weight:900;color:#8b7768}.ff-subtab.active{background:#fff;color:#6e5848;box-shadow:0 3px 10px rgba(109,93,80,.06)}
.ff-modal-bg{position:fixed;inset:0;background:rgba(63,50,42,.38);backdrop-filter:blur(6px);z-index:5000;display:flex;align-items:flex-end;justify-content:center;padding:12px}.ff-modal{width:min(560px,100%);max-height:88vh;overflow:auto;background:#fbf8f4;border-radius:28px 28px 20px 20px;padding:19px;box-shadow:0 -14px 45px rgba(53,42,34,.2)}.ff-modal-title{font-size:18px;font-weight:950;color:#5e4b40}.ff-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.ff-modal-grid .full{grid-column:1/-1}.ff-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.ff-label{font-size:10px;font-weight:900;color:#9b897b;margin:0 0 5px 2px;display:block}.ff-check{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;color:#766357}.ff-check input{width:auto!important;height:auto!important;min-height:0!important}
.ff-month-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.ff-month-title{font-size:17px;font-weight:950;color:#645246}.ff-month-btn{width:36px;height:36px;border-radius:50%;border:1px solid #e6d9cc;background:#fff;color:#806c5d;font-weight:950}
.ff-schedule{margin-top:10px;display:flex;flex-direction:column;gap:7px}.ff-schedule-row{display:grid;grid-template-columns:82px 1fr auto;gap:8px;align-items:center;padding:9px 10px;border-radius:13px;background:#faf6f2;border:1px solid #eee4da;font-size:11px}.ff-schedule-row.paid{opacity:.55;text-decoration:line-through}
.ff-chip{display:inline-flex;align-items:center;border-radius:999px;background:#f5eee8;color:#806b5d;padding:5px 8px;font-size:9px;font-weight:900;margin-right:5px}.ff-chip.company{background:#eef5ef;color:#66806d}.ff-chip.personal{background:#f3eef7;color:#795f86}.ff-chip.family{background:#f8efe6;color:#8a684e}
.ff-card-grid{display:grid;grid-template-columns:1fr;gap:10px}.ff-card-bank{font-size:15px;font-weight:950;color:#5e4c40}.ff-card-day{font-size:10px;background:#f4eee8;color:#826f60;border-radius:999px;padding:5px 9px;font-weight:900}.ff-card-lines{margin-top:10px;border-top:1px solid #f0e7df}.ff-card-line{display:flex;justify-content:space-between;gap:10px;padding:9px 2px;border-bottom:1px solid #f3ebe4;font-size:11px}.ff-card-line:last-child{border-bottom:0}.ff-card-line b{color:#6c594d}.ff-warning{border:1px solid #efd9c5;background:#fff8ef;color:#8b6b50;border-radius:16px;padding:11px 13px;font-size:10px;line-height:1.7;margin-top:10px}
.ff-talent-grid{display:grid;grid-template-columns:1fr;gap:10px}.ff-person-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.ff-person-pill{border:1px solid #e9ddd2;background:#fff;border-radius:999px;padding:7px 9px;font-size:10px;font-weight:900;color:#7c6859}.ff-person-pill strong{color:#5b493f}.ff-badge-alert{display:inline-flex;padding:5px 8px;border-radius:999px;background:#fff1e6;color:#a16e4b;font-size:9px;font-weight:900}
.ff-history-note{font-size:9px;color:#b0a095;margin-top:5px}
@media(min-width:650px){.ff-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.ff-kpi.wide{grid-column:auto}.ff-card-grid,.ff-talent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.ff-kpi-value{font-size:20px}.ff-modal-grid{grid-template-columns:1fr}.ff-modal-grid .full{grid-column:auto}.ff-schedule-row{grid-template-columns:70px 1fr auto}.ff-card{padding:14px}}

/* v170 — 家庭 / 津個人大分頁 */
.ff-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ff-mode-tab{border:1px solid #e4d6c8;background:#fffaf5;color:#765f50;border-radius:22px;padding:14px 12px;text-align:left;display:grid;grid-template-columns:auto 1fr;column-gap:9px;row-gap:2px;align-items:center;box-shadow:0 5px 16px rgba(109,93,80,.035)}
.ff-mode-tab span{font-size:20px;grid-row:1/3}.ff-mode-tab b{font-size:14px;font-weight:950}.ff-mode-tab small{font-size:9px;color:#a08e80;line-height:1.35}
.ff-mode-tab.active{background:#8f7561;color:#fff;border-color:#8f7561}.ff-mode-tab.active small{color:#f3e9df}
.ff-mode-tab.personal.active{background:#8b728e;border-color:#8b728e}.ff-personal-isolation{background:#faf6fb;border-color:#e6d8e9;color:#79667d}.ff-personal-isolation b{color:#6f5674}
@media(max-width:430px){.ff-mode-tabs{grid-template-columns:1fr}.ff-mode-tab{padding:12px 13px}}
