:root{--maroon:#7a1f3d;--maroon-dark:#5c1730;--gold:#c99a3c;--bg:#faf7f2;--card:#ffffff;--ink:#2a2320;--muted:#8a7f78;--line:#e8e0d8;--danger:#b3402f;--radius:12px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}header{background:linear-gradient(120deg,var(--maroon),var(--maroon-dark));color:#fff;padding:22px 20px;text-align:center;box-shadow:0 2px 8px #00000026}header h1{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:.2px}header p{margin:4px 0 0;font-size:.85rem;color:#f0d9c8}.install-hint{display:flex;align-items:center;justify-content:center;gap:12px;background:#f5efe6;color:var(--maroon-dark);padding:10px 20px;font-size:.85rem;text-align:center;border-bottom:1px solid var(--line)}.install-hint b{font-weight:700}.install-hint-close{background:none;color:var(--muted);padding:2px;min-height:auto;width:24px;height:24px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.install-hint-close svg{width:14px;height:14px}.install-hint-close:hover{background:#ece2d3;opacity:1}main{max-width:clamp(1000px,97vw,2100px);margin:0 auto;padding:20px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px;box-shadow:0 1px 3px #0000000a}.card h2{margin:0 0 16px;font-size:1.05rem;color:var(--maroon-dark)}.card-toggle-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.card-toggle-header h2{margin:0}.quick-actions-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.btn-quick{display:inline-flex;align-items:center;gap:8px;background:var(--card);color:var(--maroon-dark);border:1px solid var(--line);padding:10px 16px;border-radius:8px;font-weight:600;font-size:.88rem;box-shadow:0 1px 3px #0000000a}.btn-quick svg{width:16px;height:16px;flex-shrink:0}.btn-quick:hover{opacity:1;border-color:var(--gold)}.btn-quick.active{background:var(--maroon);color:#fff;border-color:var(--maroon)}.btn-panel-close{background:none;color:var(--muted);padding:4px;min-height:auto;width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.btn-panel-close svg{width:16px;height:16px}.btn-panel-close:hover{background:#f5efe6;opacity:1}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:5px;font-weight:600}input,select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:1rem;background:#fff;color:var(--ink)}input:focus,select:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}.field-full{grid-column:1/-1}.readonly-field{background:#f5efe6;color:var(--muted);cursor:not-allowed}.actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap;align-items:center}button{cursor:pointer;border:none;border-radius:8px;padding:11px 20px;font-family:inherit;font-size:.95rem;font-weight:600;min-height:40px;transition:opacity .15s}button:hover{opacity:.88}.btn-primary{background:var(--maroon);color:#fff}.btn-secondary{background:#efe6dc;color:var(--ink)}.btn-danger{background:var(--danger);color:#fff}.btn-edit{background:var(--gold);color:#3a2c0d}.btn-measure{background:var(--maroon);color:#fff}.btn-danger,.btn-edit,.btn-measure{width:36px;height:36px;min-height:36px;padding:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.btn-danger svg,.btn-edit svg,.btn-measure svg{width:18px;height:18px}.btn-export{background:#2f6b4f;color:#fff}.toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.search-box{flex:1;min-width:200px;max-width:320px}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}th{background:#f5efe6;color:var(--maroon-dark);font-weight:600;position:sticky;top:0}tbody tr:hover{background:#fbf5ec}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}.empty{padding:30px;text-align:center;color:var(--muted)}.status{font-size:.82rem;color:var(--muted);margin-top:8px;min-height:18px}.status.error{color:var(--danger)}.status.ok{color:#2f6b4f}.badge{display:inline-block;background:var(--gold);color:#3a2c0d;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:20px;margin-left:8px;vertical-align:middle}.setup-box{max-width:680px;margin:60px auto;padding:24px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.setup-box h2{color:var(--maroon-dark);margin-top:0}.setup-box ol{padding-left:20px;line-height:1.7}.setup-box code{background:#f5efe6;padding:2px 6px;border-radius:4px;font-size:.85em}.setup-box pre{background:#2a2320;color:#f0e9df;padding:14px;border-radius:8px;overflow-x:auto;font-size:.78rem}.row-actions{display:flex;gap:6px}.login-box{max-width:380px;margin:70px auto;padding:28px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 16px #0000000f}.login-box h2{color:var(--maroon-dark);margin-top:0;text-align:center}.login-box .actions{flex-direction:column;align-items:stretch}.login-box button{width:100%}.topbar{display:flex;justify-content:flex-end;align-items:center;gap:12px;max-width:clamp(1000px,97vw,2100px);margin:14px auto -4px;padding:0 20px;font-size:.82rem;color:var(--muted)}.btn-signout{background:none;color:var(--maroon-dark);text-decoration:underline;padding:4px 6px;font-size:.8rem;font-weight:600}.hidden{display:none!important}.tabs{display:flex;gap:8px;max-width:clamp(1000px,97vw,2100px);margin:18px auto 0;padding:0 20px}.tab-btn{background:#efe6dc;color:var(--ink);border-radius:8px 8px 0 0;padding:10px 20px;font-size:.88rem}.tab-btn.active{background:var(--card);color:var(--maroon-dark);box-shadow:0 -2px 6px #0000000a}.summary-bar{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:16px}.summary-tile{flex:1;min-width:140px;background:#f5efe6;border-radius:8px;padding:12px 16px}.summary-tile .label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;font-weight:600}.summary-tile .value{font-size:1.3rem;font-weight:700;color:var(--maroon-dark);margin-top:2px}.summary-tile.income .value{color:#2f6b4f}.summary-tile.expense .value{color:var(--danger)}.header-inner{display:flex;align-items:center;justify-content:center;gap:14px}.logo{width:52px;height:52px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px #ffffff59;flex-shrink:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2a23208c;display:flex;align-items:flex-end;justify-content:center;z-index:100;padding:0}.measure-card{background:var(--card);width:100%;max-width:420px;max-height:92vh;overflow-y:auto;border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #0003}@media (min-width:480px){.modal-overlay{align-items:center;padding:20px}.measure-card{border-radius:var(--radius);max-height:88vh}}.measure-header{background:linear-gradient(120deg,var(--maroon),var(--maroon-dark));color:#fff;padding:20px 22px;text-align:center;border-radius:16px 16px 0 0}@media (min-width:480px){.measure-header{border-radius:var(--radius) var(--radius) 0 0}}.measure-header .brand{font-size:.72rem;letter-spacing:1px;text-transform:uppercase;opacity:.85;margin-bottom:4px}.measure-header .cname{font-size:1.15rem;font-weight:700}.measure-header .cphone{font-size:.8rem;opacity:.85;margin-top:2px}.measure-list{padding:8px 22px 24px}.measure-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.measure-row:last-child{border-bottom:none}.measure-row .mlabel{font-size:.82rem;color:var(--muted)}.measure-row .mvalue{font-size:.95rem;font-weight:600;color:var(--ink);text-align:right}.measure-capture{border-radius:16px;overflow:hidden}.measure-actions{display:flex;gap:10px;padding:20px 22px 10px}.measure-actions button{flex:1}.measure-actions button:disabled{opacity:.6;cursor:not-allowed}.measure-share-alt{display:block;width:calc(100% - 44px);margin:6px 22px 20px;padding:6px 0;background:none;border:none;color:var(--maroon-dark);text-decoration:underline;font-size:.8rem;font-weight:600;cursor:pointer;min-height:auto}.measure-share-alt:hover{opacity:.75}.measure-share-status{text-align:center;font-size:.78rem;color:#2f6b4f;min-height:16px;padding:0 22px 10px}.tabs{-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}@media (max-width:700px){main{padding:14px}.topbar{max-width:none;padding:0 14px;flex-wrap:wrap;justify-content:flex-start}.tabs{max-width:none;padding:0 14px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.tab-btn{flex:0 0 auto;padding:10px 16px;white-space:nowrap}.card{padding:16px}.grid{grid-template-columns:1fr;gap:12px}.search-box{max-width:none;flex:1 1 100%}.row-actions{flex-wrap:wrap}.summary-bar{gap:12px}.summary-tile{min-width:0;flex:1 1 45%}}@media (max-width:600px){header h1{font-size:1.25rem}.card{padding:14px}.logo{width:40px;height:40px}table{font-size:.82rem}th,td{padding:8px 9px}}@media (min-width:1024px){header{padding:14px 20px}header h1{font-size:1.3rem}header p{margin:2px 0 0}.logo{width:40px;height:40px}.topbar{margin:10px auto -2px}.tabs{margin:12px auto 0}main{padding:16px 20px}.card{padding:16px;margin-bottom:14px}.card h2,.card-toggle-header{margin-bottom:12px}.grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.table-wrap{max-height:50vh;overflow-y:auto}}
