:root{--fw-bg-page: #f0fdf4;--fw-bg-top: #ecfdf5;--fw-bg-mid: #d1fae5;--fw-green-900: #14532d;--fw-green-700: #15803d;--fw-green-600: #16a34a;--fw-green-500: #22c55e;--fw-surface: #ffffff;--fw-surface-muted: #ecfdf5;--fw-text: #1f2937;--fw-text-muted: #475569;--fw-border: rgba(20, 83, 45, .12);--fw-border-strong: rgba(20, 83, 45, .22);--fw-primary: var(--fw-green-600);--fw-primary-hover: #15803d;--fw-link: var(--fw-green-700);--fw-focus-ring: #86efac;--fw-shadow: rgba(20, 83, 45, .12);--fw-error: #c0392b;--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:radial-gradient(120% 80% at 50% 0%,var(--fw-bg-top) 0%,var(--fw-bg-mid) 35%,var(--fw-bg-page) 100%);color:var(--fw-text);min-height:100dvh;padding-bottom:calc(4.5rem + var(--safe-bottom))}.app-header{background:linear-gradient(135deg,var(--fw-green-700),var(--fw-green-600));color:#fff;padding:1rem 1rem .75rem;position:sticky;top:0;z-index:10;box-shadow:0 2px 12px var(--fw-shadow)}.app-header h1{margin:0;font-size:1.25rem;font-weight:700}.app-header p{margin:.25rem 0 0;font-size:.85rem;opacity:.92}.app-main{padding:1rem;max-width:32rem;margin:0 auto}.panel{background:var(--fw-surface);border:1px solid var(--fw-border);border-radius:12px;padding:1rem;box-shadow:0 4px 16px var(--fw-shadow)}.panel h2{margin:0 0 .75rem;font-size:1.1rem}.field{margin-bottom:.75rem}.field label{display:block;font-size:.85rem;color:var(--fw-text-muted);margin-bottom:.25rem}.field input,.field textarea,.field select{width:100%;padding:.65rem .75rem;border:1px solid var(--fw-border-strong);border-radius:8px;font-size:1rem;background:#fff}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--fw-focus-ring);border-color:var(--fw-link)}.gate-login-form{margin-top:.5rem}.gate-subscribe{margin-top:.75rem}.upgrade-panel h2{margin-bottom:.5rem}.upgrade-signed-in{margin:0 0 .75rem;padding:.5rem .75rem;background:var(--fw-surface-muted);border-radius:8px;font-size:.9rem;color:var(--fw-text)}.upgrade-list{margin:.75rem 0 0;padding-left:1.25rem;color:var(--fw-text-muted);font-size:.9rem;line-height:1.5}.upgrade-list li+li{margin-top:.35rem}.btn-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1rem;border-radius:8px;border:none;font-size:.95rem;font-weight:600;cursor:pointer;text-decoration:none;min-height:44px}.btn.primary{background:var(--fw-primary);color:#fff}.btn.primary:active{background:var(--fw-primary-hover)}.btn.secondary{background:var(--fw-surface-muted);color:var(--fw-text);border:1px solid var(--fw-border-strong)}.btn.ghost{background:transparent;color:var(--fw-link);border:1px solid var(--fw-border)}.btn.danger{background:#fdecea;color:var(--fw-error);border:1px solid #f5c6cb}.btn.small{padding:.4rem .65rem;font-size:.85rem;min-height:36px}.btn:disabled{opacity:.55;cursor:not-allowed}.bottom-nav{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--fw-surface);border-top:1px solid var(--fw-border);padding-bottom:var(--safe-bottom);z-index:20}.bottom-nav button{flex:1;border:none;background:transparent;padding:.6rem .25rem;font-size:.75rem;color:var(--fw-text-muted);min-height:56px}.bottom-nav button.active{color:var(--fw-green-700);font-weight:700}.card{background:var(--fw-surface);border:1px solid var(--fw-border);border-radius:10px;padding:.85rem;margin-bottom:.6rem;box-shadow:0 2px 8px var(--fw-shadow)}.card strong{font-size:1rem}.card .meta{font-size:.85rem;color:var(--fw-text-muted);margin-top:.25rem}.card .actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.badge{display:inline-block;font-size:.75rem;padding:.15rem .45rem;border-radius:999px;background:var(--fw-surface-muted);color:var(--fw-green-700);margin-left:.35rem}.error-text{color:var(--fw-error);font-size:.9rem;margin:.5rem 0;font-weight:600}.hint{font-size:.85rem;color:var(--fw-text-muted);margin:.5rem 0}.sync-status{font-size:.85rem;opacity:.95}.fab{position:fixed;right:1rem;bottom:calc(4.75rem + var(--safe-bottom));width:3.25rem;height:3.25rem;border-radius:50%;border:none;background:var(--fw-primary);color:#fff;font-size:1.5rem;box-shadow:0 4px 16px var(--fw-shadow);cursor:pointer;z-index:15}[hidden]{display:none!important}.section-title{margin:0 0 .75rem;font-size:1.15rem}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.panel-header h2{margin:0;font-size:1.1rem}.preview-section{border-top:1px solid var(--fw-border);padding-top:.5rem}.preview-row{display:flex;justify-content:space-between;gap:.75rem;padding:.45rem 0;font-size:.95rem}.preview-label{color:var(--fw-text-muted)}.amount-stack{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.amount-stack small{color:var(--fw-text-muted);font-size:.8rem}.nav-card{display:block;background:var(--fw-surface);border:1px solid var(--fw-border);border-radius:10px;padding:.85rem 1rem;margin-bottom:.6rem;text-decoration:none;color:inherit;box-shadow:0 2px 8px var(--fw-shadow)}.nav-card-title{display:block;font-weight:700}.nav-card-hint{display:block;font-size:.85rem;color:var(--fw-text-muted);margin-top:.2rem}.manual-send-dialog{border:1px solid var(--fw-border-strong);border-radius:12px;padding:0;max-width:min(32rem,92vw);width:100%}.manual-send-form{padding:1rem;display:flex;flex-direction:column;gap:.75rem}.manual-send-form h3{margin:0}.manual-send-pre{margin:0;padding:.75rem;background:var(--fw-surface-muted);border-radius:8px;font-size:.8rem;white-space:pre-wrap;word-break:break-word;max-height:12rem;overflow:auto}.card-static{color:inherit}.field-row{display:flex;flex-wrap:wrap;gap:.5rem}.field-row .field{flex:1 1 8rem}.field-narrow{flex:0 1 5.5rem!important}.flex-2{flex:2 1 12rem!important}fieldset.field{border:1px solid var(--fw-border);border-radius:8px;padding:.75rem}.radio,.checkbox{display:block;margin:.35rem 0;font-size:.95rem}.invoice-group{margin-bottom:.75rem}.invoice-group summary{font-weight:700;cursor:pointer;padding:.5rem 0}.filters-panel{margin-bottom:.75rem}.card-click{cursor:pointer}.card-top{display:flex;align-items:center;justify-content:space-between}.countdown-overdue{color:var(--fw-error);font-weight:600}.countdown-due_today{color:#b45309;font-weight:600}.line-item{align-items:flex-end;margin-bottom:.5rem}.totals-panel{margin-top:.75rem}.badge-send_queued,.badge-send_failed{background:#fef3c7;color:#92400e}.badge-sent{background:#dbeafe;color:#1e40af}.badge-paid{background:#dcfce7;color:#166534}.status-select{max-width:8rem;padding:.35rem;font-size:.85rem}
