:root{--bg:#fffaf1;--paper:#fffdf8;--ink:#28231f;--muted:#70675f;--line:#eadfce;--shadow:0 10px 24px #5b46271c;--yellow:#fff0b8;--yellow-2:#ffe69a;--blue:#6fa4d8;--blue-soft:#edf7ff;--green:#7bb88a;--green-soft:#f3fbf1;--orange:#ff8e62;--peach-soft:#fff3e8;--purple:#9d91d6;--radius-lg:28px;--radius-md:22px;--radius-sm:16px;--nav-h:82px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,PingFang TC,Microsoft JhengHei,Arial,sans-serif}*{box-sizing:border-box}html{background:#fbf6ec}body{color:var(--ink);background:radial-gradient(circle at 50% 0,#fff 0,#fffaf1 52%,#f8eddf 100%);min-height:100dvh;margin:0}a{color:inherit;text-decoration:none}button{font:inherit}.app-shell{width:min(100% - 28px,430px);min-height:100dvh;padding:16px 14px calc(var(--nav-h) + 18px);background:#fffdf8e6;border:1px solid #eadfceb8;border-radius:30px 30px 0 0;margin:10px auto 0;box-shadow:0 14px 42px #4b381f14}.topbar{grid-template-columns:50px 1fr 50px;align-items:center;gap:10px;margin-bottom:16px;display:grid}.brand{text-align:center}.brand h1{letter-spacing:3px;margin:0;font-size:25px;font-weight:900;line-height:1.1}.brand p{color:var(--muted);margin:7px 0 0;font-size:14px}.shield-mini{border:3px solid var(--ink);vertical-align:middle;letter-spacing:0;background:#f5c947;border-radius:12px 12px 16px 16px;place-items:center;width:28px;height:31px;font-size:16px;display:inline-grid}.icon-button,.bell-button{height:50px;color:var(--ink);background:#fff8eb;border:0;border-radius:18px;place-items:center;font-weight:900;display:grid;position:relative;box-shadow:0 3px 10px #5844210f}.icon-button span{background:var(--ink);border-radius:99px;width:24px;height:3px;margin:3px;display:block}.bell-button i{background:#ff6d42;border-radius:50%;width:10px;height:10px;position:absolute;top:8px;right:8px}.panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffdf8eb;border-radius:24px;margin-top:14px;padding:14px}.section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.section-head h2{margin:0;font-size:20px}.notice-info{background:#edf7ff;border-color:#cfe4f7}.notice-error{color:#8a341f;background:#fff0e8;border-color:#f6d4c4}.notice-info p,.notice-error p{margin:0;font-weight:800;line-height:1.5}.muted-text{color:var(--muted);font-weight:750}.error-text{color:#b4532e;font-weight:850}.settings-row{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:center;gap:12px;padding:11px 0;display:flex}.settings-row:last-child{border-bottom:0}.settings-row strong{font-size:16px;display:block}.settings-row small{color:var(--muted);margin-top:4px;font-size:12px;display:block}.settings-row span{color:#5e93c9;font-size:13px;font-weight:850}.inline-action{border:1px solid var(--line);color:#28231f;white-space:nowrap;background:#fff8eb;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:850}.category-group{margin-top:14px}.category-group h3{margin:12px 0 4px;font-size:16px}.mobile-form{gap:12px;display:grid}.compact-form{margin-top:12px}.mobile-form label{color:#5d554e;gap:6px;font-size:14px;font-weight:850;display:grid}.mobile-form input,.mobile-form select,.mobile-form textarea{border:1px solid var(--line);color:#28231f;background:#fff;border-radius:16px;width:100%;min-height:48px;padding:12px 13px;font-size:15px;font-weight:800}.mobile-form textarea{resize:vertical;min-height:92px;line-height:1.5}.mobile-form .checkbox-label{grid-template-columns:none;align-items:center;gap:10px;display:flex}.mobile-form .checkbox-label input{width:20px;min-height:20px;padding:0}.save-action{color:#fff;background:#28231f;border:0;border-radius:18px;width:100%;min-height:52px;margin-top:4px;font-size:16px;font-weight:950;box-shadow:0 10px 22px #28231f2e}.danger-action{color:#8a341f;background:#fff0e8;border:1px solid #f6b8a7;border-radius:18px;width:100%;min-height:52px;margin-top:10px;font-size:16px;font-weight:950}.action-row{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.action-row .save-action{text-align:center;place-items:center;margin-top:0;display:grid}.impact-preview{border:1px solid var(--line);background:#fff8eb;border-radius:18px;gap:8px;padding:12px;display:grid}.impact-preview strong{font-size:15px}.impact-preview p{color:#5d554e;justify-content:space-between;gap:12px;margin:0;font-size:13px;font-weight:800;display:flex}.budget-row{border-bottom:1px dashed var(--line);gap:7px;padding:12px 0;display:grid}.budget-row:last-child{border-bottom:0}.budget-row-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.budget-row-head strong{font-size:16px}.budget-row p{color:#5d554e;margin:0;font-size:13px;font-weight:800}.status-chip{border-radius:999px;padding:4px 9px;font-size:12px;font-weight:900}.status-normal{color:#33658f;background:#edf7ff}.status-tight{color:#8a651f;background:#fff8eb}.status-over{color:#8a341f;background:#fff0e8}.progress-bar{background:#efe5d6;border-radius:999px;height:8px;overflow:hidden}.progress-bar span{border-radius:inherit;background:#5e93c9;height:100%;display:block}.progress-over span{background:#d46a43}.step-indicator{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px;display:grid}.step-indicator span{border:1px solid var(--line);text-align:center;color:#5d554e;background:#fff8eb;border-radius:999px;padding:7px 6px;font-size:12px;font-weight:900}.step-indicator .active{color:#fff;background:#28231f;border-color:#28231f}.budget-editor-row{gap:8px;display:grid}.budget-editor-row small{color:var(--muted);font-size:12px}.debt-card{border-bottom:1px dashed var(--line);gap:8px;padding:12px 0;display:grid}.debt-card:last-child{border-bottom:0}.debt-card p{color:#5d554e;margin:0;font-size:13px;font-weight:800}.filter-card summary{cursor:pointer;font-size:18px;font-weight:900}.filter-card summary::marker{color:#5e93c9}.filter-card summary span{float:right;font-size:13px}.detail-list{gap:8px;display:grid}.detail-list p{border-bottom:1px dashed var(--line);justify-content:space-between;gap:12px;margin:0;padding:10px 0;display:flex}.detail-list p:last-child{border-bottom:0}.detail-list strong{color:#5d554e}.hero-summary{background:linear-gradient(140deg,#fff4c7 0%,#ffe9a5 100%);flex-direction:column;justify-content:center;min-height:190px;display:flex}.hero-warn{border-color:#f2d58d}.hero-danger{background:linear-gradient(140deg,#fff0e8 0%,#ffd6c5 100%);border-color:#f6b8a7}.hero-safe{background:linear-gradient(140deg,#f3fbf1 0%,#dff1dc 100%);border-color:#d8ead5}.hero-summary .eyebrow{background:#fffdf8;border-radius:999px;align-self:flex-start;margin:0 0 14px;padding:7px 18px;font-size:15px;font-weight:800;display:inline-flex;box-shadow:0 3px 10px #61471d14}.hero-summary h2{letter-spacing:0;margin:0 0 12px;font-size:42px;line-height:1.05}.hero-summary p{color:#514a44;margin:0;font-weight:750;line-height:1.55}.summary-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.mini-card{border:1px solid var(--line);border-radius:18px;min-height:92px;padding:12px 10px;box-shadow:0 6px 16px #54422514}.mini-card p{margin:0 0 8px;font-size:14px;font-weight:850}.mini-card strong{font-size:20px}.tone-blue{background:var(--blue-soft);border-color:#cfe4f7}.tone-green{background:var(--green-soft);border-color:#d8ead5}.tone-peach{background:var(--peach-soft);border-color:#f2d9c6}.bottom-nav{left:50%;bottom:max(12px,env(safe-area-inset-bottom));border:1px solid var(--line);z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffdf8f5;border-radius:26px;grid-template-columns:repeat(5,1fr);width:min(100% - 44px,410px);height:70px;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 8px 26px #3f301c29}.bottom-nav a{color:#514a44;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:700;display:flex}.bottom-nav span{font-size:18px;font-weight:900;line-height:1}.bottom-nav a.active{color:#211d19;background:#fff5dc;border-radius:22px;margin:5px}@media (width<=370px){.app-shell{padding-inline:12px}.brand h1{font-size:22px}.brand p{font-size:12px}.hero-summary h2{font-size:34px}}.table-scroll{margin:4px -4px;padding:0 4px;overflow-x:auto}.query-table{border-collapse:collapse;width:100%;min-width:640px;font-size:13px}.query-table th{text-align:left;color:#5d554e;background:#fffdf8;font-weight:850;position:sticky;top:0}.query-table th,.query-table td{border-bottom:1px dashed var(--line);white-space:nowrap;padding:9px 10px}.query-table tbody tr:last-child td{border-bottom:0}
