/* Shared native single-select control; preserve system option menus. */
.fs-scope {
  --fs-select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23717680' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
}
.fs-scope[data-theme="dark"] {
  --fs-select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23b9bbc2' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
}
.fs-scope select:not([multiple]):not([size]),
.fs-scope select:not([multiple])[size="1"] {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 44px !important;
  background-image: var(--fs-select-chevron) !important;
  background-position: right 16px center !important;
  background-size: 16px 16px !important;
  background-repeat: no-repeat !important;
}
.fs-scope .operation-field-help { margin: 6px 0 0; font-size: 12px; line-height: 1.45; }
.fs-scope .operation-date-error { margin: 8px 0 0; color: var(--fs-danger, #b42318); font-size: 13px; }

/* Personal operation and inline reference dialogs share the existing shell. */
.fs-scope #page-dialog:has(.personal-operation-modal),
.fs-scope #personal-reference-dialog { width: min(540px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 24px; border: 1px solid var(--fs-line-2); border-radius: 20px; background: var(--fs-bg-sheet, #fff); color: var(--fs-text, #171717); overflow-y:auto; }
.fs-scope #personal-reference-dialog::backdrop { background:rgb(0 0 0 / .35); }
.fs-scope .personal-operation-modal h2,.fs-scope .personal-reference-editor h2 { margin:0; font-size:22px; }
.fs-scope .personal-operation-modal > .fs-actions,.fs-scope .personal-reference-editor > .fs-actions { justify-content:space-between; margin-bottom:24px; }
.fs-scope .personal-reference-editor form { display:grid; gap:20px; }
.fs-scope .personal-reference-add { font-size:12px; color:var(--fs-text-secondary, #71717a); margin-top:4px; text-underline-offset:3px; }
.fs-scope .personal-reference-links { margin:16px 0 24px; font-size:13px; }
.fs-scope [data-personal-reference-delete] { display:inline-block; margin-left:12px; }
.fs-scope .personal-operation-modal .fs-panel { padding:0; }

.fs-scope .personal-reference-editor .profile-form-field :is(input,select),
.fs-scope #personal-operation-form .profile-form-field :is(input,select,textarea) {
  box-sizing:border-box; width:100%; min-width:0; min-height:48px; padding:12px 16px;
  border:1px solid var(--fs-line-2); border-radius:14px; background-color:var(--fs-bg-sheet);
  color:var(--fs-fg); font:400 15px/1.4 var(--fs-font-text);
}
.fs-scope .personal-reference-editor .profile-form-field :is(input,select):focus-visible { outline:2px solid var(--fs-fg); outline-offset:2px; }
.fs-scope #page-dialog #personal-operation-form input[type=radio] { width:16px; height:16px; min-height:0; padding:0; margin:0; accent-color:var(--fs-fg); }
.fs-scope .personal-reference-editor .errorlist { color:var(--fs-danger,#b42318); padding-left:18px; font-size:13px; margin:4px 0 0; }

.fs-scope .personal-operation-modal > .fs-actions,.fs-scope .personal-reference-editor > .fs-actions { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:12px; }

.category-picker{position:relative;min-width:0}.category-picker summary{display:flex;align-items:center;gap:10px;padding:12px 42px 12px 16px;min-height:48px;border:1px solid var(--fs-line-2);border-radius:14px;background-color:var(--fs-bg-sheet);cursor:pointer;font-size:15px;list-style:none;background-image:var(--fs-select-chevron);background-repeat:no-repeat;background-position:right 16px center;box-sizing:border-box}.category-picker summary::-webkit-details-marker{display:none}.category-picker svg{flex-shrink:0}.category-picker summary:focus-visible{outline:2px solid var(--fs-fg);outline-offset:2px}.category-picker-panel{padding:12px;border:1px solid var(--fs-line-2);border-radius:14px;background:var(--fs-bg-sheet);margin-top:6px}.category-picker-options{max-height:230px;overflow:auto;margin-top:8px}.category-picker-options h3{font-size:11px;font-weight:500;color:var(--fs-fg-muted,#71717a);margin:16px 8px 8px}.category-picker-options button{display:flex;width:100%;align-items:center;gap:10px;text-align:left;padding:10px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;font-size:14px;cursor:pointer}.category-picker-options button:hover,.category-picker-options button[aria-pressed=true]{background:var(--fs-bg-soft)}.category-picker-options button.is-child{padding-left:28px}.category-icon-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;max-height:222px;overflow:auto;margin-top:10px;padding:2px}.category-icon-grid button{display:grid;place-items:center;aspect-ratio:1;border:1px solid var(--fs-line-2);border-radius:10px;background:var(--fs-bg-sheet);color:var(--fs-fg);cursor:pointer}.category-icon-grid button[aria-pressed=true]{border:2px solid var(--fs-fg);background:var(--fs-bg-soft)}.category-icon-grid .inherit-icon{grid-column:span 8;aspect-ratio:auto;min-height:36px;font-size:12px}.category-group-heading th{background:var(--fs-bg-soft);font-size:12px;text-align:left}.category-depth-1 td:first-child{padding-left:40px}.fs-scope [hidden]{display:none!important}@media(max-width:480px){.category-icon-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.category-icon-grid .inherit-icon{grid-column:span 6}}

.category-picker.is-disabled{pointer-events:none;opacity:.5}
.operation-optional{border-top:1px solid var(--fs-line-2);padding-top:14px;min-width:0}.operation-optional>summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font-size:14px;min-height:30px}.operation-optional>summary::-webkit-details-marker{display:none}.operation-optional>summary small{margin-left:auto;font-size:11px;color:var(--fs-fg-muted,#71717a);text-align:right}.optional-chevron{flex-shrink:0;transition:transform 180ms ease}.operation-optional[open]>summary .optional-chevron{transform:rotate(90deg)}.operation-optional-body{padding:14px 0 2px}.operation-optional-body>.profile-form-field>label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@supports(interpolate-size:allow-keywords){.operation-optional{interpolate-size:allow-keywords}.operation-optional::details-content{block-size:0;overflow:clip;transition:block-size 180ms ease,content-visibility 180ms allow-discrete}.operation-optional[open]::details-content{block-size:auto}}
.web-date-picker>summary{cursor:pointer;list-style:none;min-height:48px;box-sizing:border-box;padding:12px 42px 12px 16px;border:1px solid var(--fs-line-2);border-radius:14px;background-color:var(--fs-bg-sheet);font-size:15px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23717680' stroke-width='1.7'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 11h18'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:18px;background-position:right 16px center}.web-date-picker>summary::-webkit-details-marker{display:none}.web-calendar{padding:16px;border:1px solid var(--fs-line-2);border-radius:14px;margin-top:6px;background:var(--fs-bg-sheet);max-width:100%;box-sizing:border-box}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-header strong{font-size:14px;font-weight:500;text-transform:capitalize}.calendar-header button,.calendar-grid button{border:0;background:transparent;color:var(--fs-fg);border-radius:8px;cursor:pointer;min-height:32px}.calendar-header button{font-size:24px;width:32px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.calendar-grid span{font-size:11px;line-height:28px;color:var(--fs-fg-muted,#71717a)}.calendar-grid button{font:inherit;font-size:13px}.calendar-grid button:hover:not(:disabled){background:var(--fs-bg-soft)}.calendar-grid button[aria-pressed=true]{background:var(--fs-fg);color:var(--fs-bg-sheet)}.calendar-grid button:disabled,.calendar-header button:disabled{opacity:.3;cursor:default}.calendar-time{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;font-size:13px}.fs-scope #personal-operation-form .calendar-time input{width:130px;min-height:40px;padding:8px;border:1px solid var(--fs-line-2);border-radius:10px;background:var(--fs-bg-sheet);color:inherit;font:inherit}.fs-scope dialog{overscroll-behavior:contain;max-height:calc(100dvh - 32px);overflow-y:auto}.fs-scope dialog::backdrop{overscroll-behavior:none}.category-picker-options,.category-icon-grid{overscroll-behavior:contain}
@media(prefers-reduced-motion:reduce){.optional-chevron,.operation-optional::details-content{transition:none!important}}

.operation-advanced>.operation-optional-body{display:grid;gap:20px}
.operation-advanced>.operation-optional-body>.profile-form-field>label{position:static;width:auto;height:auto;overflow:visible;clip-path:none}

/* Every shared dropdown/calendar is outside the form layout. Popover lifts it
   above scrolling dialogs while preserving DOM ownership and keyboard events. */
.web-date-picker{position:relative;min-width:0}
.category-picker-panel,.web-calendar{position:absolute;inset:auto;top:calc(100% + 6px);left:0;width:100%;box-sizing:border-box;margin:0;z-index:1000;max-height:min(380px,60dvh);overflow:auto;box-shadow:0 12px 32px rgb(0 0 0 / .12);overscroll-behavior:contain}
.category-picker-panel[popover],.web-calendar[popover]{inset:auto;margin:0;color:var(--fs-fg);background:var(--fs-bg-sheet)}
.operation-optional[open]::details-content{overflow:visible}
.category-picker[open]>summary,.web-date-picker[open]>summary{border-color:var(--fs-fg-muted,#9b9ba2)}

.fs-scope .fs-horizontal-header{border-bottom:0}
.reference-page{width:100%;min-width:0}.reference-table-shell{border:1px solid var(--fs-line-2);border-radius:16px;overflow-x:auto;background:var(--fs-bg-sheet)}
.fs-scope .reference-table{width:100%;border-collapse:collapse;font-size:14px;table-layout:auto}.fs-scope .reference-table th,.fs-scope .reference-table td{padding:14px 20px;text-align:left;border-bottom:1px solid var(--fs-line-2);vertical-align:middle}.fs-scope .reference-table thead th{font-size:12px;font-weight:500;color:var(--fs-fg-muted,#71717a);background:var(--fs-bg-sheet);white-space:nowrap}.fs-scope .reference-table tbody tr:last-child td{border-bottom:0}.reference-row:hover{background:var(--fs-bg-soft)}
.fs-scope .reference-table .reference-group th{padding:10px 20px;background:var(--fs-bg-soft);font-size:12px;font-weight:500;color:var(--fs-fg-muted,#71717a)}.reference-group small{margin-left:8px;opacity:.65;font-size:11px;font-weight:400}
.reference-name{display:flex;align-items:center;gap:12px;min-width:160px}.reference-mark{width:32px;height:32px;display:grid;place-items:center;flex-shrink:0;background:var(--fs-bg-soft);border:1px solid var(--fs-line-2);border-radius:10px;color:var(--fs-fg);font-size:13px;font-weight:500}.reference-name-text{font-weight:500;overflow-wrap:anywhere}.reference-row-child .reference-name{padding-left:20px}.reference-row-child .reference-name-text{font-weight:400}.reference-row-child .reference-mark{width:28px;height:28px;border-radius:8px}.reference-type{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:12px}.reference-type:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--fs-fg-muted,#777)}.reference-type.is-income:before{background:#16835a}.reference-type.is-expense:before{background:#bd7351}.reference-source,.reference-date{font-size:12px;color:var(--fs-fg-muted,#71717a);white-space:nowrap}
.reference-row-actions{display:flex;justify-content:flex-end;align-items:center;gap:4px;min-height:32px}.fs-scope .reference-row-actions [data-personal-reference-delete]{margin:0;display:block}.reference-icon-button{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--fs-fg-muted,#71717a);cursor:pointer;text-decoration:none}.reference-icon-button:hover{background:var(--fs-bg-soft);color:var(--fs-fg)}.reference-icon-button.is-delete:hover{color:#b42318;background:rgb(180 35 24 / .06)}.reference-icon-button:focus-visible{outline:2px solid var(--fs-fg);outline-offset:2px}.reference-readonly{color:var(--fs-line-2);padding-right:12px}.fs-scope .reference-table .reference-actions-heading{text-align:right}.fs-scope .reference-table .reference-empty{text-align:center;padding:48px 20px;color:var(--fs-fg-muted,#71717a)}.reference-empty strong{display:block;color:var(--fs-fg);font-size:15px;font-weight:500}.reference-empty p{margin:8px 0 0;font-size:13px}
@media(max-width:640px){.fs-scope .reference-table th,.fs-scope .reference-table td{padding:12px}.reference-name{gap:8px;min-width:120px}.reference-row-child .reference-name{padding-left:12px}.reference-source{font-size:11px}.reference-mark{width:28px;height:28px}.reference-name-text{font-size:13px}.reference-icon-button{width:28px;height:32px}.reference-table-shell{border-radius:12px}}

.operation-transfer-note{margin:0;font-size:13px;line-height:1.5}.transfer-direction{padding:0 8px;color:var(--fs-fg-muted,#777)}.transfer-wallet-path{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.personal-operation-sum.is-transfer,.personal-wallet-amount.is-transfer{color:var(--fs-fg)}.personal-category-mark.is-transfer{background:var(--fs-bg-soft);color:var(--fs-fg)}

.personal-op-kind-switch { display:flex;gap:4px;padding:4px;background:var(--fs-bg-soft);border-radius:12px;margin:0 0 20px; }
.personal-op-kind-switch a { flex:1;text-align:center;padding:9px 12px;border-radius:9px;color:var(--text-secondary,#727278);font-size:14px;text-decoration:none; }
.personal-op-kind-switch a[aria-current="true"] {background:var(--fs-bg-sheet);color:var(--fs-fg);box-shadow:0 1px 3px #0000000d;}
.personal-op-kind-switch a:focus-visible {outline:2px solid currentColor;outline-offset:2px;}

.fs-scope .account-card-value.is-negative, .fs-scope .personal-wallet-amount.is-negative {color:#cf333d;}
[data-theme="dark"] .account-card-value.is-negative, [data-theme="dark"] .personal-wallet-amount.is-negative {color:#ff7b84;}
.personal-debt-direction {margin:0 0 18px;}
@media(max-width:420px){.personal-op-kind-switch a{padding:9px 5px;font-size:13px;}}

.personal-debt-direction {margin:0;}
.personal-debt-direction>div {gap:8px;}
.personal-debt-direction>div>div {flex:1;}
.personal-debt-direction label {position:relative;justify-content:center;padding:10px 14px;border:1px solid #dfdfe2;border-radius:10px;cursor:pointer;}
.personal-debt-direction label:has(input:checked) {background:var(--fs-inverse);color:var(--fs-on-inverse);border-color:var(--fs-fg);}
.personal-debt-direction label:focus-within {outline:2px solid #a4a4ad;outline-offset:2px;}
.personal-debt-direction input {position:absolute;width:1px;height:1px;opacity:0;}

.personal-debt-direction>div {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.debt-balance-hint {margin:0;font-size:13px;}
.debt-progress {margin:18px 0;padding:14px;background:var(--fs-bg-soft);border-radius:12px;}

.debt-view-filters{display:flex;gap:6px;margin:20px 0 24px;}.debt-view-filters a{padding:8px 14px;border-radius:10px;font-size:14px;color:var(--fs-fg-2);text-decoration:none}.debt-view-filters a[aria-current]{background:var(--fs-bg-soft);color:var(--fs-fg)}.debt-contact-table{border:1px solid var(--fs-line-2);border-radius:16px;}.debt-contact-table table{width:100%;border-collapse:collapse}.debt-contact-table th{color:var(--fs-fg-3);font-size:12px;font-weight:400;text-align:left;padding:14px 20px}.debt-contact-table td{padding:18px 20px;border-top:1px solid var(--fs-line);font-size:14px}.debt-contact-table td:last-child{text-align:right}.debt-person-link{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none;font-weight:500}.debt-person-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--fs-bg-soft);color:var(--fs-fg-2)}.debt-contact-amount{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.debt-return-context{display:grid;gap:6px;margin:0 0 4px}.debt-return-context strong{font-size:18px}.debt-return-context>span{font-size:14px;color:var(--fs-fg-2)}.debt-return-context b{color:var(--fs-fg);font-weight:500}.debt-history-list{margin-top:12px}.debt-history-row{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-top:1px solid var(--fs-line);color:inherit;text-decoration:none;font-size:14px}.debt-history-row small{display:block;margin-top:4px;color:var(--fs-fg-3);font-size:12px}.debt-history-row strong{white-space:nowrap;font-weight:500}.debt-contact-history h3{margin-top:28px;font-size:16px}@media(max-width:600px){.debt-contact-table th,.debt-contact-table td{padding:14px 12px}.debt-person-avatar{display:none}.debt-contact-table .button{font-size:12px;padding:8px 10px}.debt-contact-table table{min-width:520px}}

.overview-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.overview-section-heading h2{margin:0;font-size:18px}.overview-section-heading>a{font-size:13px;color:var(--fs-fg-2)}.overview-monthly,.overview-recent{margin-top:30px}.overview-period{gap:8px}.overview-period input[type=month]{width:160px}.overview-flow-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.overview-flow-card{padding:18px 20px;border:1px solid var(--fs-line-2);border-radius:14px}.overview-flow-card>span{font-size:12px}.overview-flow-card dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 0}.overview-flow-card dt{font-size:12px;color:var(--fs-fg-3);margin-bottom:7px}.overview-flow-card dd{margin:0;font-size:21px;font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.overview-flow-card dd a{color:inherit;text-decoration:none}.overview-flow-card dd a:hover{text-decoration:underline}.overview-flow-card .is-negative{color:#cf333d}.overview-debts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px}.overview-debt-card{display:grid;align-content:start;gap:9px;padding:18px 20px;background:var(--fs-bg-soft);border-radius:14px;text-decoration:none;color:inherit}.overview-debt-card>span{font-size:13px;color:var(--fs-fg-2)}.overview-debt-card strong{font-size:22px;font-weight:500;letter-spacing:-.02em;overflow-wrap:anywhere}.overview-debt-card .overview-debt-empty{font-size:16px;color:var(--fs-fg-3);font-weight:400}.fx-summary h2 small{font-size:12px;font-weight:400;margin-left:6px}.personal-operation-filters{display:grid!important;grid-template-columns:minmax(170px,1.4fr) repeat(4,minmax(125px,1fr)) minmax(135px,1fr) auto;gap:8px}.personal-operation-filters>*{min-width:0;width:100%}.personal-operation-filters input[type=search]{max-width:none!important}.operation-filter-reset{display:inline-block;margin:0 0 16px;font-size:12px;color:var(--fs-fg-2)}@media(max-width:1100px){.personal-operation-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.personal-operation-filters input[type=search]{grid-column:span 2}}@media(max-width:600px){.overview-section-heading{align-items:start;flex-wrap:wrap}.overview-period{width:100%}.overview-period input[type=month]{flex:1}.overview-debts{gap:10px}.overview-debt-card{padding:14px}.overview-debt-card strong{font-size:18px}.overview-flow-grid{grid-template-columns:1fr}.overview-flow-card{padding:16px}.overview-flow-card dd{font-size:19px}.personal-operation-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.personal-operation-filters input[type=search]{grid-column:1/-1}.overview-recent .personal-operation-table{min-width:340px}}

.overview-currency-totals{display:flex;gap:12px 24px;flex-wrap:wrap;margin:16px 0 24px}.overview-currency-totals>span{display:flex;align-items:baseline;gap:8px}.overview-currency-totals small{font-size:12px;color:var(--fs-fg-3)}.overview-currency-totals strong{font-size:16px;font-weight:500}.overview-currency-totals .is-negative{color:#cf333d}

.finance-content .overview-period{display:flex;flex-wrap:nowrap;align-items:center;margin:0;width:auto;max-width:none}.finance-content .overview-period input[type=month]{width:170px!important;flex:0 1 auto}.finance-content .overview-period .button{flex-shrink:0}.overview-heading-actions{margin:0!important;gap:8px}.overview-monthly,.overview-recent{margin-top:8px}.overview-debts{margin-top:4px}.fx-summary .personal-wallet-amount.is-negative{color:#cf333d}@media(max-width:600px){.finance-content .overview-period{width:100%}.finance-content .overview-period input[type=month]{width:0!important;min-width:0;flex:1}.overview-heading-actions{width:100%;justify-content:flex-start}.overview-heading-actions .button{font-size:13px}}

.fs-scope .profile-form-field .field-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.fs-scope .field-label-row label{margin:0}.fs-scope .field-label-row .personal-reference-add{display:inline-flex;align-items:center;flex-shrink:0;margin:0;padding:3px 8px;border-radius:7px;font-size:12px;line-height:1.5;text-decoration:none;color:var(--fs-fg);background:var(--fs-bg-soft)}.fs-scope .field-label-row .personal-reference-add:hover{background:var(--fs-line)}.fs-scope .picker-create{display:flex;align-items:center;gap:8px;padding:12px;margin-top:6px;border-top:1px solid var(--fs-line);color:var(--fs-fg);font-size:13px;text-decoration:none;overflow-wrap:anywhere}.fs-scope .picker-create[hidden]{display:none}.picker-create svg{flex-shrink:0}.fs-scope .picker-create:hover{background:var(--fs-bg-soft)}
