:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f4f9;--bg-soft:#eceefa;--surface:#fff;--surface-alt:#f8f9fd;--border:#e6e8f0;--border-strong:#d7dae6;--text:#1b1e2b;--text-muted:#6b7086;--text-faint:#9498ab;--primary:#6449f5;--primary-hover:#5338e0;--primary-soft:#eeeafe;--primary-soft-text:#4a34c9;--accent:#14b8a6;--success:#16a34a;--success-bg:#dcfce7;--success-text:#166534;--warning-bg:#fef3c7;--warning-text:#92400e;--danger:#e0284a;--danger-hover:#c11f3d;--danger-bg:#fde3e8;--danger-text:#9f1239;--info-bg:#e0e7ff;--info-text:#3730a3;--shadow-sm:0 1px 2px #17182d0a;--shadow-md:0 6px 16px -4px #17182d1a, 0 2px 6px -2px #17182d0f;--shadow-lg:0 20px 40px -12px #17182d2e;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--font-display:"Plus Jakarta Sans", "Inter", system-ui, sans-serif;--font-body:"Inter", system-ui, -apple-system, sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#12131c;--bg-soft:#171927;--surface:#1b1d2b;--surface-alt:#20222f;--border:#2c2f42;--border-strong:#383c54;--text:#edeef7;--text-muted:#a1a4bd;--text-faint:#74778f;--primary:#8b74ff;--primary-hover:#a191ff;--primary-soft:#262247;--primary-soft-text:#c4b8ff;--accent:#2dd4bf;--success:#4ade80;--success-bg:#123023;--success-text:#86efac;--warning-bg:#3a2a0c;--warning-text:#fcd34d;--danger:#f76e8b;--danger-hover:#ff87a1;--danger-bg:#3a1220;--danger-text:#fda4af;--info-bg:#24244a;--info-text:#b4b8ff;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 20px -6px #00000073;--shadow-lg:0 24px 48px -16px #0000008c}}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{background:radial-gradient(1100px 480px at 12% -10%, var(--bg-soft), transparent), radial-gradient(900px 420px at 100% 0%, #6449f514, transparent), var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--primary-soft);color:var(--primary-soft-text)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}.app-shell{max-width:1220px;margin:0 auto;padding:2.5rem 1.5rem 4rem}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:2rem;display:flex}.app-header-text{align-items:center;gap:.9rem;display:flex}.app-header-icon{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--primary), var(--accent));width:52px;height:52px;box-shadow:var(--shadow-md);flex-shrink:0;place-items:center;font-size:1.5rem;display:grid}.app-header h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:1.65rem;font-weight:800}.app-header p{color:var(--text-muted);margin:.15rem 0 0;font-size:.95rem}.btn-toggle-form{background:var(--primary);color:#fff;cursor:pointer;box-shadow:var(--shadow-md);white-space:nowrap;border:none;border-radius:999px;align-items:center;gap:.45rem;padding:.7rem 1.3rem;font-size:.92rem;font-weight:600;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex}.btn-toggle-form:hover{background:var(--primary-hover);transform:translateY(-1px)}.btn-toggle-form:active{transform:translateY(0)}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin-bottom:1.75rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);align-items:center;gap:.9rem;padding:1.1rem 1.25rem;transition:box-shadow .15s,transform .15s;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-icon{border-radius:12px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:1.15rem;display:grid}.stat-icon.tone-primary{background:var(--primary-soft);color:var(--primary-soft-text)}.stat-icon.tone-success{background:var(--success-bg);color:var(--success-text)}.stat-icon.tone-warning{background:var(--warning-bg);color:var(--warning-text)}.stat-icon.tone-danger{background:var(--danger-bg);color:var(--danger-text)}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin:0 0 .15rem;font-size:.78rem;font-weight:600}.stat-value{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:1.35rem;font-weight:800}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:1.5rem;padding:1.75rem}.card-form{animation:.22s card-in}@keyframes card-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.form-heading{grid-column:1/-1;justify-content:space-between;align-items:center;margin-bottom:.35rem;display:flex}.form-heading h2{font-family:var(--font-display);margin:0;font-size:1.15rem;font-weight:700}.form-heading span{color:var(--text-muted);font-size:.85rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.15rem 1.35rem;display:grid}.field{flex-direction:column;gap:.4rem;display:flex}.field-wide{grid-column:1/-1}label{color:var(--text-muted);font-size:.8rem;font-weight:600}input,textarea{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text);padding:.6rem .75rem;font-family:inherit;font-size:.92rem;transition:border-color .15s,box-shadow .15s,background .15s}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:hover,textarea:hover{border-color:var(--border-strong)}input:focus,textarea:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 4px var(--primary-soft);outline:none}textarea{resize:vertical;min-height:4.5rem}.datepicker{align-items:center;gap:.4rem;display:flex;position:relative}.datepicker-trigger{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text);cursor:pointer;text-align:left;flex:1;align-items:center;gap:.55rem;padding:.6rem .75rem;font-family:inherit;font-size:.92rem;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.datepicker-trigger svg{color:var(--text-faint);flex-shrink:0}.datepicker-trigger.is-empty{color:var(--text-faint)}.datepicker-trigger:hover{border-color:var(--border-strong)}:is(.datepicker-trigger:focus-visible,.datepicker:has(.datepicker-panel) .datepicker-trigger){border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 4px var(--primary-soft);outline:none}.date-clear{width:22px;height:22px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:999px;flex-shrink:0;place-items:center;transition:background .15s,color .15s;display:grid}.date-clear:hover{background:var(--danger-bg);color:var(--danger)}.date-hint{color:var(--text-muted);margin-top:-.05rem;font-size:.76rem}.date-hint.tone-warning{color:var(--warning-text);font-weight:600}.date-hint.tone-danger{color:var(--danger);font-weight:600}.field-hint{color:var(--text-muted);margin-top:-.05rem;font-size:.76rem}.field-hint.tone-warning{color:var(--warning-text)}input:disabled{cursor:not-allowed;opacity:.6}.datepicker-panel{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:300px;box-shadow:var(--shadow-lg);padding:1rem;animation:.15s datepicker-in;position:absolute;top:calc(100% + 8px);left:0}@keyframes datepicker-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.datepicker-header{justify-content:space-between;align-items:center;margin-bottom:.85rem;display:flex}.datepicker-month{font-family:var(--font-display);text-transform:capitalize;font-size:.92rem;font-weight:700}.datepicker-nav{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text-muted);cursor:pointer;border-radius:8px;place-items:center;transition:all .15s;display:grid}.datepicker-nav:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.datepicker-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:.35rem;display:grid}.datepicker-weekdays span{text-align:center;color:var(--text-faint);text-transform:uppercase;letter-spacing:.02em;font-size:.68rem;font-weight:700}.datepicker-grid{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.datepicker-day{aspect-ratio:1;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:9px;place-items:center;font-family:inherit;font-size:.85rem;transition:background .12s,color .12s;display:grid}.datepicker-day:hover:not(:disabled){background:var(--primary-soft);color:var(--primary-soft-text)}.datepicker-day.is-outside{color:var(--text-faint);opacity:.5}.datepicker-day.is-today{border:1.5px solid var(--primary);color:var(--primary);font-weight:700}.datepicker-day.is-selected{background:var(--primary);color:#fff;font-weight:700}.datepicker-day.is-selected:hover:not(:disabled){background:var(--primary-hover);color:#fff}.datepicker-day:disabled{color:var(--text-faint);opacity:.3;cursor:not-allowed}.datepicker-footer{border-top:1px solid var(--border);justify-content:space-between;margin-top:.85rem;padding-top:.75rem;display:flex}.datepicker-quick{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:.2rem .3rem;font-size:.82rem;font-weight:700}.datepicker-quick:hover{text-decoration:underline}.datepicker-quick.danger{color:var(--danger)}.email-field{position:relative}.email-panel{max-height:220px}.website-field{align-items:center;display:flex;position:relative}.website-field>svg:first-child{color:var(--text-faint);pointer-events:none;position:absolute;left:.75rem}.website-field input{width:100%;padding-left:2.35rem}.website-field:has(.website-visit) input{padding-right:2.1rem}.website-field.has-error input{border-color:var(--danger)}.website-field.has-error input:focus{box-shadow:0 0 0 4px var(--danger-bg)}.website-visit{color:var(--text-faint);border-radius:6px;place-items:center;padding:.2rem;display:grid;position:absolute;right:.65rem}.website-visit:hover{color:var(--primary);background:var(--primary-soft)}.ui-select{position:relative}.ui-select-trigger{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);width:100%;color:var(--text);cursor:pointer;text-align:left;align-items:center;gap:.55rem;padding:.6rem .75rem;font-family:inherit;font-size:.92rem;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.ui-select-trigger:hover{border-color:var(--border-strong)}.ui-select-trigger:focus-visible,.ui-select-trigger[aria-expanded=true]{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft);outline:none}.ui-select-trigger:not(.pill-trigger):focus-visible,.ui-select-trigger:not(.pill-trigger)[aria-expanded=true]{background:var(--surface)}.ui-select-value{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ui-select-trigger svg:last-child{color:var(--text-faint);flex-shrink:0;transition:transform .15s}.ui-select-trigger[aria-expanded=true] svg:last-child{color:var(--primary);transform:rotate(180deg)}.ui-select-dot{border-radius:999px;flex-shrink:0;width:8px;height:8px}.ui-select-icon{color:var(--text-muted);flex-shrink:0;place-items:center;display:grid}.ui-select-option.is-selected .ui-select-icon{color:var(--primary-soft-text)}.ui-select-panel{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);max-height:280px;box-shadow:var(--shadow-lg);margin:0;padding:.4rem;list-style:none;animation:.15s datepicker-in;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.ui-select-option{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.6rem;padding:.55rem .65rem;font-family:inherit;font-size:.88rem;display:flex}.ui-select-option .ui-select-label{text-overflow:ellipsis;flex:1;overflow:hidden}.ui-select-dot{flex-grow:0;flex-shrink:0}.ui-select-option svg{color:var(--primary);flex-shrink:0}.ui-select-option:hover,.ui-select-option:focus-visible{background:var(--surface-alt);outline:none}.ui-select-option.is-selected{color:var(--primary-soft-text);background:var(--primary-soft);font-weight:600}.ui-select-trigger.pill-trigger{border-color:#0000;border-radius:999px;gap:.4rem;width:auto;padding:.3rem .65rem;font-size:.76rem;font-weight:700}.ui-select-trigger.pill-trigger svg:last-child{width:12px;height:12px}.form-actions{grid-column:1/-1;gap:.75rem;margin-top:.25rem;display:flex}.btn-primary,.btn-secondary{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:.65rem 1.4rem;font-size:.92rem;font-weight:600;transition:background .15s,transform .15s,box-shadow .15s}.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{border:1.5px solid var(--border);color:var(--text);background:0 0}.btn-secondary:hover{border-color:var(--border-strong);background:var(--surface-alt)}.filters{flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;display:flex}.search-box{flex:1;min-width:220px;position:relative}.search-box svg{color:var(--text-faint);pointer-events:none;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.search-box input{width:100%;padding-left:2.35rem}.filter-select,.filter-select .ui-select-panel{min-width:190px}.table-header-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:1rem;display:flex}.table-header-row h2{font-family:var(--font-display);margin:0;font-size:1.15rem;font-weight:700}.table-summary{color:var(--text-muted);font-size:.85rem}.table-summary strong{color:var(--text)}.table-wrapper{border:1px solid var(--border);border-radius:var(--radius-md);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.87rem}thead tr{background:var(--surface-alt)}th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-bottom:1px solid var(--border);padding:.7rem .5rem;font-size:.68rem;font-weight:600}th:first-child,td:first-child{padding-left:.9rem}th:last-child,td:last-child{padding-right:.9rem}td{border-bottom:1px solid var(--border);white-space:nowrap;vertical-align:middle;padding:.55rem .5rem;font-size:.85rem}.email-cell{text-overflow:ellipsis;max-width:150px;overflow:hidden}tbody tr{transition:background .12s}tbody tr:hover{background:var(--surface-alt)}tbody tr:last-child td{border-bottom:none}.service-cell{align-items:center;gap:.55rem;display:flex}.service-avatar{color:#fff;width:30px;height:30px;font-size:.85rem;font-weight:700;font-family:var(--font-display);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.service-name-block{flex-direction:column;line-height:1.25;display:flex}.service-name-block .plan-tag{color:var(--text-muted);font-size:.74rem;font-weight:500}.service-name-row{align-items:center;gap:.35rem;display:inline-flex}.service-website-link{color:var(--text-faint);border-radius:4px;flex-shrink:0;place-items:center;display:grid}.service-website-link:hover{color:var(--primary)}.price-cell{font-variant-numeric:tabular-nums;font-weight:700}.date-cell{flex-direction:column;line-height:1.3;display:flex}.date-cell .date-hint{margin-top:0;font-size:.72rem}.muted-cell{color:var(--text-muted)}.tickets-pill{background:var(--surface-alt);border:1px solid var(--border);border-radius:999px;justify-content:center;align-items:center;min-width:1.6rem;height:1.6rem;padding:0 .4rem;font-size:.78rem;font-weight:700;display:inline-flex}.tickets-pill.has-open{background:var(--warning-bg);color:var(--warning-text);border-color:#0000}.support-pill{align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;display:inline-flex}.support-dot{background:var(--border-strong);border-radius:999px;width:7px;height:7px}.support-pill.contacted .support-dot{background:var(--info-text)}.status-active{background-color:var(--success-bg);color:var(--success-text)}.status-paused{background-color:var(--warning-bg);color:var(--warning-text)}.status-cancelled,.status-overdue{background-color:var(--danger-bg);color:var(--danger-text)}.status-trial{background-color:var(--info-bg);color:var(--info-text)}.cell-actions{justify-content:flex-end;gap:.3rem;display:flex}.icon-btn{border:1px solid var(--border);background:var(--surface);width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:8px;place-items:center;transition:all .15s;display:grid}.icon-btn:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-soft)}.icon-btn.danger:hover{color:var(--danger);border-color:var(--danger);background:var(--danger-bg)}.empty-state{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:3.5rem 1rem;display:flex}.empty-state .empty-icon{opacity:.75;margin-bottom:.25rem;font-size:2.2rem}.empty-state strong{color:var(--text);font-size:1rem}.loading-shell{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.9rem;padding:4rem 0;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:999px;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error{color:var(--danger);font-size:.85rem}.error.banner{background:var(--danger-bg);color:var(--danger-text);border-radius:var(--radius-sm);border:1px solid #0000;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding:.85rem 1.1rem;font-size:.88rem;display:flex}@media (width<=640px){.app-shell{padding:1.5rem 1rem 3rem}.app-header{flex-direction:column}.btn-toggle-form{justify-content:center;width:100%}.card{padding:1.25rem}}.app-header-actions{align-items:center;gap:12px;display:flex}.login-page{background:var(--bg);place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:var(--shadow-lg);text-align:center;border-radius:16px;flex-direction:column;gap:14px;padding:32px 28px;display:flex}.login-card h1{color:var(--text);margin:4px 0 0;font-size:1.25rem}.login-card p{color:var(--text-muted);margin:0;font-size:.9rem}.login-card label{text-align:left;color:var(--text-muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.login-card input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;color:var(--text);background:var(--surface);padding:10px 12px}.login-card input:focus{outline:2px solid var(--primary);outline-offset:-1px}.login-card .error{color:var(--danger-text);background:var(--danger-bg);border-radius:var(--radius-sm);padding:8px 10px}.login-card .app-header-icon{margin:0 auto}
