@font-face{font-family:Inter;src:url(/static/fonts/InterVariable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{color-scheme:dark;--accent:#3f7c82;--accent-hover:#32666b;--accent-ink:#8dbabd;--accent-text:#fffaf2;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
:root[data-theme=light]{color-scheme:light;--accent-ink:#32666b}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,a{touch-action:manipulation}button:disabled{opacity:.55;cursor:wait}button{color:inherit}a{color:inherit;text-decoration:none}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.22;font-weight:550;letter-spacing:-1.25px}h2{font-size:16px;font-weight:550;letter-spacing:-.3px}h3{font-size:16px;font-weight:550}button:focus-visible,a:focus-visible{outline:2px solid var(--accent-ink);outline-offset:4px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-ink);outline-offset:1px}::selection{background:var(--accent);color:var(--accent-text)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.insight-stats{grid-template-columns:repeat(3,1fr)}.insights-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px}.category-list,.expensive-list{padding:24px 25px}.category-item{margin-bottom:22px}.category-item:last-child{margin-bottom:0}.category-label{display:flex;align-items:center;font-size:11px;gap:8px}.category-label strong{margin-left:auto;font-weight:500;font-variant-numeric:tabular-nums}.category-label small{color:var(--muted);font-size:11px;width:32px;text-align:right}.category-bar{height:5px;background:var(--surface);border-radius:6px;margin-top:10px;overflow:hidden}.category-bar span{height:100%;display:block;border-radius:6px}.expensive-row{display:flex;align-items:center;gap:12px;margin-bottom:18px;background:none;border:0;width:100%;text-align:left;padding:0}.expensive-row:last-child{margin-bottom:0}.rank{font-size:11px;color:var(--faint);width:13px}.expensive-row .payment-amount{font-size:12px}.method-note{color:var(--faint);font-size:11px;line-height:1.9;margin-top:25px}.insight-empty{padding:55px 25px;text-align:center;color:var(--muted);font-size:11px}.settings-layout{max-width:850px;display:grid;gap:24px}.settings-panel .panel-heading{padding-bottom:20px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:0 25px;padding:23px 0;border-top:1px solid var(--line)}.setting-row label,.setting-row strong,.setting-block>label{font-size:12px;font-weight:500}.setting-row p,.setting-block p{font-size:11px;line-height:1.9;color:var(--muted);margin-top:6px}.setting-row select{min-width:140px;font-size:12px}.setting-block{border-top:1px solid var(--line);margin:0 25px;padding:23px 0}.currency-checkboxes{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}.currency-checkboxes label{background:var(--surface);border:1px solid var(--line);padding:8px 11px;border-radius:7px;font-size:11px;display:flex;align-items:center;gap:7px;cursor:pointer}.currency-checkboxes label:has(input:checked){border-color:var(--accent-ink)}input[type=checkbox]{accent-color:var(--accent-ink);margin:0}.settings-actions{padding:0 25px 25px}.privacy-note{border-top:1px solid var(--line);margin:0 25px;padding:25px 0;display:flex;gap:16px;align-items:center}.privacy-note svg{width:38px;height:38px;color:var(--accent-ink);stroke-width:1}.privacy-note strong{font-size:11px;font-weight:500}.privacy-note p{font-size:11px;color:var(--muted);line-height:1.9;margin-top:5px}
dialog{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:18px;padding:0;width:min(580px,calc(100% - 32px));max-height:calc(100dvh - 50px);box-shadow:var(--shadow);margin:auto;overflow:auto}dialog[open]{animation:dialog-in .2s ease-out}dialog::backdrop{background:#050805b0;backdrop-filter:blur(7px)}.modal-heading{display:flex;justify-content:space-between;align-items:flex-start;padding:29px 30px 23px;border-bottom:1px solid var(--line)}.modal-heading .eyebrow{font-size:10px;margin-bottom:10px}.modal-heading h2{font-size:23px;letter-spacing:-.7px}.modal-heading p{font-size:11px;color:var(--muted);margin-top:7px}.icon-button{border:1px solid var(--line);border-radius:7px;background:var(--surface);padding:6px;display:grid;place-items:center;color:var(--muted)}.icon-button:hover{color:var(--text);background:var(--hover)}.icon-button svg{width:17px;height:17px}.modal-body{padding:23px 30px 27px}.form-field{display:flex;flex-direction:column;gap:8px;font-size:11px;color:var(--muted);margin-bottom:18px}.form-field input,.form-field select,.form-field textarea{width:100%;font-size:12px;padding:11px 12px}.form-field:last-child{margin-bottom:0}.form-field .optional{display:inline;font-size:11px;color:var(--faint)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.field-hint{font-size:11px;color:var(--faint)}textarea{resize:vertical;min-height:70px}.modal-footer{padding:19px 30px;border-top:1px solid var(--line);display:flex;gap:9px;align-items:center;background:var(--sidebar)}.modal-footnote{margin-right:auto;font-size:11px;color:var(--faint)}.error-banner{background:#d85d5812;color:#ed9995;border:1px solid #d85d583d;border-radius:8px;padding:12px;font-size:12px;margin-bottom:18px}.detail-header{padding:30px;display:flex;align-items:center;gap:17px}.detail-header .icon-button{margin-left:auto;align-self:flex-start}.detail-header h2{font-size:24px;max-width:330px;overflow-wrap:anywhere}.detail-header p{font-size:11px;color:var(--muted);margin-top:5px}.detail-price{padding:0 30px 25px;font-size:38px;letter-spacing:-1.5px}.detail-price small{font-size:13px;color:var(--muted);letter-spacing:0}.detail-info{padding:0 30px 28px}.detail-info-row{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-top:1px solid var(--line);font-size:12px}.detail-info-row>span{color:var(--muted)}.detail-info-row strong{font-weight:450;text-align:right}.detail-info-row a{display:flex;align-items:center;gap:6px;color:var(--accent-ink);max-width:320px;word-break:break-all}.detail-info-row a svg{width:13px;height:13px}.detail-notes{font-size:12px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface);border-radius:9px;padding:15px;margin-top:10px;color:var(--muted)}.detail-actions{display:flex;gap:8px;padding:19px 30px;border-top:1px solid var(--line);flex-wrap:wrap}.detail-actions .danger-text{color:#dc8b86;margin-right:auto;background:none;border-color:transparent}.confirm-content{padding:30px;text-align:center}.confirm-icon{margin:0 auto 18px;width:47px;height:47px;border-radius:50%;color:#ed9995;background:#d85d5812;display:grid;place-items:center}.confirm-content h2{font-size:22px}.confirm-content p{font-size:12px;color:var(--muted);margin:12px 0 25px;line-height:1.8}.confirm-actions{display:flex;gap:10px;justify-content:center}.toast{position:fixed;bottom:28px;left:calc(50% + 112px);transform:translate(-50%,15px);background:var(--text);color:var(--bg);border-radius:10px;padding:12px 20px;font-size:12px;box-shadow:var(--shadow);opacity:0;pointer-events:none;z-index:100;transition:opacity .2s,transform .2s;max-width:calc(100% - 30px)}.toast.visible{opacity:1;transform:translate(-50%,0)}.view{animation:fade-in .25s ease-out}@keyframes fade-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes dialog-in{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}/* Local service marks keep the same compact icon containers. */
.service-logo img{width:24px;height:24px;object-fit:contain}
.service-logo.small img{width:20px;height:20px}
.service-logo.large img{width:38px;height:38px}
.service-logo.monochrome img{filter:brightness(0) invert(1)}
[data-theme="light"] .service-logo.monochrome img{filter:brightness(0)}
.logo-field{display:grid;grid-template-columns:39px minmax(0,1fr) auto;align-items:end;gap:10px;margin:0 0 20px}
.logo-field .form-field{margin:0}
.logo-field #logo-preview{align-self:center;padding-top:20px}
.logo-upload-actions{display:flex;align-items:center;gap:10px;min-height:42px}
.logo-field>.field-hint{grid-column:2/-1}
@media(max-width:480px){.logo-field{grid-template-columns:39px minmax(0,1fr)}.logo-upload-actions{grid-column:2;flex-wrap:wrap}.logo-field>.field-hint{grid-column:2}}

/* Orbit's compact list composition uses Foundry 2.1 roles and geometry. */
:root{--bg:var(--fd-surface-canvas);--panel:var(--fd-surface-base);--surface:var(--fd-surface-raised);--sidebar:var(--fd-surface-base);--hover:var(--fd-surface-raised);--text:var(--fd-text-primary);--muted:var(--fd-text-secondary);--faint:var(--fd-text-tertiary);--line:var(--fd-border-default);--radius:6px;--shadow:0 24px 80px #0003}
:root[data-theme=light]{--bg:var(--fd-surface-canvas);--panel:var(--fd-surface-base);--surface:var(--fd-surface-raised);--sidebar:var(--fd-surface-base);--hover:var(--fd-surface-raised);--text:var(--fd-text-primary);--muted:var(--fd-text-secondary);--faint:var(--fd-text-tertiary);--line:var(--fd-border-default)}
h1,h2,h3{font-family:var(--fd-font-display);font-weight:500;letter-spacing:0}h1{font-size:32px;line-height:1.12}h2{font-size:22px}h3{font-size:21px}
.app-shell{min-height:100dvh}.main-wrap{width:min(100%,760px);margin:auto;padding:0 28px}.app-header{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:40px}.brand{display:flex;align-items:center;gap:8px;font-size:24px;font-weight:550;letter-spacing:-1px}.orbit-mark{width:34px;height:36px;object-fit:contain;flex-shrink:0}.brand{font-weight:750;font-size:28px;letter-spacing:-1.2px;min-height:44px}.dark-mark{display:block}.light-mark{display:none}[data-theme=light] .dark-mark{display:none}[data-theme=light] .light-mark{display:block}main{outline:none;padding-bottom:calc(48px + env(safe-area-inset-bottom))}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:32px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid transparent;border-radius:6px;font-size:14px;font-weight:500}.button svg{width:18px;height:18px}.primary{background:var(--accent);color:var(--accent-text)}.primary:hover{background:var(--accent-hover)}.secondary{background:var(--surface);border-color:var(--line)}.secondary:hover{background:var(--hover)}.danger{background:#b33c36;color:#fff}.text-button{display:inline-flex;align-items:center;gap:8px;background:none;border:0;min-height:44px;color:var(--accent-ink);padding:8px 0}.text-button svg{width:16px;height:16px}
select,input,textarea{background:var(--surface);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:10px 12px;font-size:16px;min-width:0;min-height:44px}select{cursor:pointer}
summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px;list-style:none}summary::-webkit-details-marker{display:none}summary:before{content:'▸';font-size:14px}details[open]>summary:before{content:'▾'}summary:focus-visible{outline:2px solid var(--accent-ink);outline-offset:4px}.app-menu{position:relative}.app-menu>summary{justify-content:center;min-width:44px}.app-menu>summary:before{display:none}.app-menu nav{position:absolute;right:0;top:48px;min-width:180px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px;z-index:10}.nav-item{display:block;width:100%;min-height:44px;background:none;border:0;text-align:left;padding:10px 12px;border-radius:6px}.nav-item:hover,.nav-item.active{background:var(--surface)}
.monthly-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 32px;border-bottom:1px solid var(--line)}.stat-card{background:none;border:0;padding:0;min-width:0}.stat-label{font-size:14px;color:var(--muted)}.stat-value{font-size:44px;line-height:1.2;letter-spacing:-1.5px;font-weight:500;margin-top:8px;font-variant-numeric:tabular-nums}.stat-value .unit{font-size:16px;color:var(--muted);letter-spacing:0;margin-right:8px}.stat-meta{font-size:12px;color:var(--muted);margin-top:8px}.currency-select select{font-size:14px;background:none;border-color:transparent;padding-right:4px}.monthly-summary .stat-value .unit{font-size:inherit;color:var(--text);letter-spacing:-1.5px}.list-tools{margin-top:16px;border-bottom:1px solid var(--line);padding-bottom:8px}.filter-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px 0 16px}.search-wrap{position:relative;grid-column:1/-1}.search-wrap input{width:100%;padding-left:40px}.search-wrap svg{position:absolute;left:12px;top:12px;color:var(--muted)}.filter-bar select{font-size:14px;width:100%}.list-summary{font-size:12px;color:var(--muted);margin:12px 0 8px}.subscription-list{display:flex;flex-direction:column}.subscription-card{display:flex;align-items:center;gap:16px;width:100%;padding:20px 0;min-height:88px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;text-align:left}.subscription-card:hover{background:var(--hover)}.service-logo{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;background:var(--surface);border-radius:6px;color:var(--accent-ink);font-size:18px;font-weight:600}.service-logo.small{width:32px;height:32px}.service-logo.large{width:64px;height:64px}.row-name{min-width:0;flex:1}.card-name{display:block;font-size:16px;font-weight:500;overflow-wrap:anywhere}.row-meta{display:block;font-size:12px;color:var(--muted);margin-top:4px}.row-cost{text-align:right;flex-shrink:0;max-width:55%;overflow-wrap:anywhere}.card-price{font-size:18px;font-weight:500;font-variant-numeric:tabular-nums}.card-price .unit{font-size:12px;color:var(--muted);margin-right:6px}.empty-subscriptions{text-align:center;padding:64px 16px}.empty-subscriptions p{margin:12px 0 20px;color:var(--muted);font-size:14px}
.panel{border:1px solid var(--line);border-radius:6px;background:var(--panel);overflow:hidden}.panel-heading{padding:20px 20px 0}.panel-heading h2{font-size:22px}.panel-heading p{font-size:12px;color:var(--muted);margin-top:8px}.currency-strip{display:flex;justify-content:flex-end;align-items:center;gap:8px;color:var(--muted);font-size:12px;margin-bottom:24px}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:32px}.insight-stats .stat-value{font-size:28px}.insight-stats .unit{font-size:12px}.insights-grid{grid-template-columns:1fr}.chart-content{display:flex;align-items:center;gap:32px;padding:24px}.donut{width:150px;height:150px;flex-shrink:0;border-radius:50%;position:relative;display:grid;place-items:center}.donut:before{content:'';position:absolute;inset:15px;background:var(--panel);border-radius:50%}.donut-center{position:relative;text-align:center;max-width:110px}.number{font-size:24px}.donut-center .currency{font-size:11px;color:var(--muted)}.legend{flex:1}.legend-row{display:flex;align-items:center;gap:8px;font-size:12px;margin:12px 0}.legend-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.legend-row strong{margin-left:auto;font-weight:500}.legend-row small{width:32px;text-align:right;color:var(--muted)}.payment-name{font-size:14px;overflow-wrap:anywhere}.payment-sub{font-size:12px;color:var(--muted)}.payment-amount{margin-left:auto;text-align:right;font-size:14px}.payment-amount small{font-size:11px;color:var(--muted);margin-right:4px}.expensive-row{min-height:44px}.method-note{font-size:12px}.setting-row label,.setting-row strong,.setting-block>label{font-size:14px}.setting-row p,.setting-block p{font-size:12px}.currency-checkboxes label{min-height:44px;font-size:12px;border-radius:6px}
dialog{border-radius:16px}.modal-heading h2{font-size:24px}.icon-button{min-width:44px;min-height:44px;border-radius:6px}.form-field{font-size:14px}.form-field input,.form-field select,.form-field textarea{font-size:16px}.field-hint{font-size:12px}.form-options{border-top:1px solid var(--line);padding-top:8px}.form-options[open]>summary{margin-bottom:16px}.modal-footer{justify-content:flex-end;background:var(--panel)}.detail-header p,.detail-info-row,.detail-notes,.confirm-content p{font-size:14px}.detail-actions{gap:8px}.toast{left:50%;font-size:14px;border-radius:6px}.error-banner{color:var(--fd-feedback-danger);font-size:14px}.insight-empty{font-size:14px}
@media(max-width:560px){.main-wrap{padding:0 18px}.app-header{height:72px;margin-bottom:32px}.page-heading{margin-bottom:28px}.page-heading h1{font-size:28px}.page-heading .button{font-size:0;padding:10px;gap:0;min-width:44px}.page-heading .button svg{width:20px;height:20px}.stat-value{font-size:40px}.monthly-summary{padding-bottom:24px}.subscription-card{gap:12px;padding:18px 0}.card-price{font-size:16px}.card-name{font-size:16px}.row-cost{max-width:50%}.filter-bar{grid-template-columns:1fr}.search-wrap{grid-column:auto}.stats-grid{grid-template-columns:1fr;gap:24px}.chart-content{flex-direction:column;gap:20px}.legend{width:100%}.modal-heading,.modal-body,.detail-header,.detail-info,.confirm-content{padding:20px}.detail-price{padding:0 20px 20px}.modal-footer,.detail-actions{padding:16px 20px}.setting-row{margin:0 16px;gap:12px;flex-wrap:wrap}.setting-block{margin:0 16px}.setting-row select{font-size:16px}.form-grid{gap:0 12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

body:has(dialog[open]){overflow:hidden}.detail-price{overflow-wrap:anywhere}.detail-header>div{min-width:0}.row-cost .card-price{overflow-wrap:anywhere}.form-options input[type=file]{min-height:0}.currency-checkboxes input{min-height:0}
