@import"https://fonts.googleapis.com/css2?family=Noto+Serif+TC:wght@500;700;900&family=Noto+Sans+TC:wght@400;500;700&family=Roboto+Mono:wght@400;500;700&display=swap";.liff-theme{--bg-blueprint: #16283d;--blueprint-line: rgba(111, 168, 201, .1);--paper: #ede6d3;--paper-dim: #e1d8be;--paper-line: #cfc3a2;--stamp-red: #a63a2e;--ledger-gold: #b8923f;--ink: #26221b;--muted: #8c9ba5;--muted-dark: #7a6f58;--success: #3c7a5e;--font-display: "Noto Serif TC", serif;--font-body: "Noto Sans TC", sans-serif;--font-mono: "Roboto Mono", monospace;background:var(--bg-blueprint);background-image:linear-gradient(var(--blueprint-line) 1px,transparent 1px),linear-gradient(90deg,var(--blueprint-line) 1px,transparent 1px);background-size:28px 28px;font-family:var(--font-body);color:var(--ink)}.liff-theme .app-header{background:var(--bg-blueprint);border-bottom:1px solid var(--blueprint-line)}.liff-theme .app-header__brand{font-family:var(--font-display)}.liff-theme .app-header__nav{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.liff-theme .app-header__nav a{white-space:nowrap}.liff-theme .app-main{max-width:480px}.liff-theme .page,.liff-theme .app-main{background:var(--paper);border-radius:1.4rem;border:1px solid var(--paper-line);padding:1.1rem 1.2rem;box-shadow:0 20px 40px #00000059}.liff-theme .page h1{font-family:var(--font-display);color:var(--ink);font-size:1.3rem}.liff-theme .card,.liff-theme .approval-card,.liff-theme .add-user-form{background:var(--paper-dim);border:1px solid var(--paper-line);border-radius:1rem;color:var(--ink)}.liff-theme .stat-grid__item{background:var(--paper-dim);border:1px solid var(--paper-line);border-radius:.85rem}.liff-theme .stat-grid__value{font-family:var(--font-mono);color:var(--ink)}.liff-theme .stat-grid__label,.liff-theme .hint{color:var(--muted-dark)}.liff-theme button{font-family:var(--font-body);border-radius:.7rem;border:1px solid var(--paper-line);background:var(--paper-dim);color:var(--ink)}.liff-theme button:hover{background:var(--paper-line)}.liff-theme button[type=submit],.liff-theme .btn--approve{background:var(--stamp-red);border-color:var(--stamp-red);color:var(--paper);font-weight:700}.liff-theme .btn--reject,.liff-theme .btn--danger{background:transparent;border-color:var(--stamp-red);color:var(--stamp-red)}.liff-theme .btn--return{background:transparent;border-color:var(--ledger-gold);color:var(--ledger-gold)}.liff-theme .status-badge--success{background:var(--success)}.liff-theme .status-badge--danger{background:var(--stamp-red)}.liff-theme .status-badge--pending,.liff-theme .status-badge--warning{background:var(--ledger-gold);color:var(--ink)}.liff-theme .status-badge--info,.liff-theme .status-badge--neutral{background:var(--bg-blueprint)}.liff-theme table.specs-table th{background:var(--paper-line);color:var(--ink)}.liff-theme table.specs-table th,.liff-theme table.specs-table td{border-color:var(--paper-line)}.liff-theme .total-line,.liff-theme .detail-grid dd{font-family:var(--font-mono)}.liff-theme a{color:var(--stamp-red)}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Microsoft JhengHei,system-ui,sans-serif;background:#f4f5f7;color:#1f2430}a{color:#2757c6}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:.75rem 1.5rem;background:#1f2b45;color:#fff}.app-header a{color:#fff;text-decoration:none}.app-header__brand{font-weight:700;font-size:1.1rem;margin-right:1rem}.app-header__nav{display:flex;gap:1rem;flex:1}.app-header__nav a.active{text-decoration:underline}.app-header__user{background:#ffffff14;padding:.5rem .75rem;border-radius:6px}.app-main{flex:1;padding:1.5rem;max-width:1000px;width:100%;margin:0 auto}.page h1{margin-top:0}.card{background:#fff;border:1px solid #dde1e8;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.25rem}.detail-grid{display:grid;grid-template-columns:10rem 1fr;gap:.35rem 1rem;margin:0}.detail-grid dt{font-weight:600;color:#555}.detail-grid dd{margin:0}.order-form fieldset{border:1px solid #dde1e8;border-radius:8px;margin-bottom:1rem;padding:1rem}.order-form label,.add-user-form label{display:block;margin-bottom:.75rem;font-weight:600;font-size:.9rem}.order-form input,.order-form select,.order-form textarea,.add-user-form input,.add-user-form select{display:block;width:100%;margin-top:.25rem;padding:.4rem .5rem;border:1px solid #c6ccd6;border-radius:4px;font:inherit}.checkbox-label{display:flex!important;align-items:center;gap:.5rem;font-weight:500!important}.checkbox-label input{width:auto!important}table.specs-table{width:100%;border-collapse:collapse;margin-bottom:.75rem}table.specs-table th,table.specs-table td{border:1px solid #e2e5eb;padding:.4rem .55rem;text-align:left}table.specs-table th{background:#f0f2f6}.total-line{text-align:right;font-size:1.05rem;padding-top:.25rem}.status-badge{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.8rem;font-weight:700;color:#fff}.status-badge--neutral{background:#6b7280}.status-badge--pending{background:#d97706}.status-badge--success{background:#15803d}.status-badge--danger{background:#b91c1c}.status-badge--warning{background:#a16207}.status-badge--info{background:#1d4ed8}.error-banner{background:#fdecea;border:1px solid #f2b8b5;color:#a11e1e;padding:.6rem .85rem;border-radius:6px;margin:.5rem 0;white-space:pre-wrap}.warning-banner{background:#fff7e6;border:1px solid #f2d38a;color:#7a5300;padding:.6rem .85rem;border-radius:6px;margin:.5rem 0}.success-banner{background:#ecfdf3;border:1px solid #86efac;color:#15803d;padding:.6rem .85rem;border-radius:6px;margin:.5rem 0}.error-list{color:#a11e1e;background:#fdecea;border:1px solid #f2b8b5;border-radius:6px;padding:.6rem .85rem .6rem 1.6rem;margin:.5rem 0}.hint{color:#5b6472;font-size:.85rem}button{font:inherit;cursor:pointer;border:1px solid #c6ccd6;background:#f0f2f6;border-radius:5px;padding:.4rem .85rem}button:hover{background:#e4e8f0}button:disabled{opacity:.6;cursor:not-allowed}.link-button{border:none;background:none;color:#2757c6;text-decoration:underline;padding:0}.btn--approve{background:#dcfce7;border-color:#86efac}.btn--return{background:#fef3c7;border-color:#fcd34d}.btn--reject,.btn--danger{background:#fee2e2;border-color:#fca5a5}.action-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-start}.confirm-action__panel,.approval-actions__panel{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem;max-width:24rem}.confirm-action__panel textarea,.approval-actions__panel textarea{width:100%;font:inherit;padding:.4rem;border:1px solid #c6ccd6;border-radius:4px}.approval-actions__panel-buttons,.approval-actions__buttons{display:flex;gap:.5rem}.user-switcher{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem}.user-switcher label{display:flex;align-items:center;gap:.5rem}.user-switcher select{color:#1f2430}.user-switcher__meta{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.78rem;opacity:.9}.add-user-form{background:#fff;color:#1f2430;padding:.75rem;border-radius:6px;margin-top:.4rem;max-width:22rem}.error-text{color:#b91c1c;font-size:.8rem}.scope-picker{margin:.75rem 0}.scope-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.3rem;margin:.5rem 0}.approval-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.approval-card{background:#fff;border:1px solid #dde1e8;border-radius:8px;padding:.85rem 1rem}.approval-card__header{display:flex;align-items:center;gap:.75rem;margin-bottom:.35rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.6rem;margin:.5rem 0}.stat-grid__item{background:#f7f8fb;border:1px solid #e2e5eb;border-radius:6px;padding:.5rem .7rem}.stat-grid__label{font-size:.78rem;color:#5b6472}.stat-grid__value{font-size:1.2rem;font-weight:700}.unit-floor-group{margin-bottom:1.25rem}.unit-floor-group h3{margin-bottom:.5rem;padding-bottom:.25rem;border-bottom:1px solid #dde1e8}.budget-bar{display:flex;align-items:center;gap:.5rem;min-width:8rem}.budget-bar__track{flex:1;height:.55rem;background:#e2e5eb;border-radius:999px;overflow:hidden}.budget-bar__fill{height:100%;border-radius:999px}.budget-bar__fill--approved{background:#1d4ed8}.budget-bar__fill--paid{background:#15803d}.budget-bar__label{font-size:.78rem;color:#5b6472;white-space:nowrap;min-width:3.2rem;text-align:right}
