@charset "UTF-8";
:root{--ink:#253e36;--muted:#7b8680;--green:#29745a;--line:#e7eae4;--bg:#f6f7f2;--orange:#cd7959}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-family: 'Malgun Gothic','Apple SD Gothic Neo',sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer;background:white;color:var(--ink);border:1px solid var(--line);padding:11px 17px;border-radius:9px;font-weight:600}button:hover{filter:brightness(.96)}button:disabled{opacity:.5;cursor:wait}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #96c5a9;outline-offset:2px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #dce2da;border-radius:8px;background:white;color:var(--ink)}label{display:block;font-size:13px;font-weight:600}label input,label select,label textarea{margin-top:8px}textarea{resize:vertical}.sidebar{position:fixed;inset:0 auto 0 0;width:225px;background:#fff;border-right:1px solid var(--line);padding:36px 23px;display:flex;flex-direction:column}.brand{color:var(--ink);text-decoration:none;font-size:29px;font-weight:800;letter-spacing:1px;padding-left:12px}.logo{color:var(--green);margin-right:8px}.brand-sub{display:block;font-size:11px;color:var(--muted);font-weight:400;letter-spacing:1px;margin:6px 0 40px 46px}nav{display:grid;gap:9px}.nav{text-align:left;background:none;border:0;padding:15px;font-size:17px;color:#86918a}.nav span{font-size:14px;margin-left:10px}.nav.active{background:#eaf2eb;color:var(--green)}.side-note{margin-top:auto;padding:20px 12px 0;font-size:11px;color:var(--green)}.side-note p{font-size:13px;line-height:1.8;color:#8b938c}.tiny-dot{display:inline-block;background:#7baf8c;width:6px;height:6px;border-radius:50%;margin-right:6px}main{max-width:1660px;margin-left:225px;padding:0 42px}header{height:90px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:2px;color:var(--muted)}.privacy-pill{background:#eaf1e8;color:#60816c;padding:9px 14px;border-radius:30px;letter-spacing:0;font-size:11px}.view{padding:33px 0}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}h1{font-size:29px;letter-spacing:-1.4px;margin:9px 0 11px;line-height:1.4}h2{font-size:17px;letter-spacing:-.5px;margin:0}.eyebrow{font-size:11px;letter-spacing:1.2px;color:#73937d;margin:0}.muted{color:var(--muted);font-size:12px;line-height:1.8}.primary{background:var(--green);border-color:var(--green);color:white}.monthbar{display:flex;justify-content:space-between;align-items:center;margin:10px 0 19px}.month-control{display:flex;align-items:center;gap:5px}.month-control button{border:0;background:transparent;font-size:23px;padding:4px 10px}.month-control input{width:160px;border:0;background:transparent;font-weight:bold;font-size:16px;padding:5px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.stat{padding:23px 26px;border:1px solid var(--line);border-radius:15px;background:#fff}.stat>span{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#718178}.stat strong{display:block;font-size:32px;letter-spacing:-1px;margin:14px 0 12px;font-weight:700}.stat strong span{font-size:16px;font-weight:400;margin-left:4px}.stat small{font-size:10px;color:#9aA49c}.stat-icon{display:grid;place-items:center;background:#edf3ee;border-radius:9px;width:31px;height:31px;font-size:18px}.orange{color:#bc775b;background:#fcf0e9}.green{color:#48896a}.stat.balance{background:#e8efe4;border-color:#e0e9db}.dashboard-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin-top:23px}.panel{padding:25px;background:#fff;border:1px solid var(--line);border-radius:15px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:23px}.panel-heading>.muted{font-size:10px}.chart-wrap{display:flex;align-items:center;justify-content:space-around;gap:25px;min-height:210px}#donut{width:175px;height:175px;flex-shrink:0;border-radius:50%;background:#eef1e9;display:grid;place-items:center;position:relative}#donut>div{width:134px;height:134px;background:#fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}#donut small{color:var(--muted);font-size:10px}#donut strong{margin-top:9px;font-size:21px}#legend{min-width:135px}.legend-row{display:flex;align-items:center;gap:8px;margin:14px 0;font-size:11px}.legend-row i{width:7px;height:7px;border-radius:50%;flex-shrink:0}.legend-row b{margin-left:auto;font-weight:500}.empty-hint{text-align:center;color:#8b978c;font-size:11px}.photo-card{border-radius:15px;background:#eceddf;padding:27px 30px;position:relative;overflow:hidden}.photo-card h2{font-size:25px;line-height:1.55;margin:11px 0 14px}.photo-card p:not(.eyebrow){font-size:11px;line-height:1.9;color:#83907c}.photo-card button{margin-top:10px;width:100%;text-align:left;border:0;padding:13px 16px;background:#fffef8}.photo-card button span{float:right}.photo-card small{display:block;margin-top:13px;font-size:9px;color:#91a087}.photo-icon{position:absolute;right:30px;top:40px;font-size:66px;transform:rotate(12deg);color:#abbc9f}.photo-icon i{font-size:17px;background:#709976;border:4px solid #eceddf;color:white;border-radius:50%;position:absolute;bottom:4px;right:-9px;font-style:normal;padding:4px}.recent{margin-top:22px}.text-btn{border:0;background:none;color:#6b8a74;font-size:11px;padding:5px}.transaction{display:flex;align-items:center;gap:15px;padding:17px 0;border-bottom:1px solid #f0f2ed}.transaction:last-child{border:0}.tx-icon{width:39px;height:39px;display:grid;place-items:center;background:#f4f1e9;border-radius:11px;font-size:17px;color:#8e967d}.tx-info{flex:1;min-width:0}.tx-info strong{font-size:13px;font-weight:600;overflow-wrap:anywhere}.tx-info small{display:block;color:#9aa299;font-size:10px;margin-top:7px}.tx-amount{font-size:14px;white-space:nowrap}.income{color:var(--green)}.expense{color:#b47159}.tx-actions{display:flex;gap:3px}.tx-actions button{font-size:10px;padding:7px 8px;border:0;color:#7b877d}.empty{padding:35px;text-align:center;color:#929d92;line-height:2;font-size:13px}footer{display:flex;justify-content:space-between;padding:25px 0;color:#a6afa2;font-size:10px}.filters{display:flex;gap:15px;align-items:end}.grow{flex:1}hr{border:0;border-top:1px solid var(--line);margin:30px 0}.privacy-list{color:#7e897e;line-height:2;padding-left:20px}.danger{color:#bb5d4e;border-color:#eac8c0}.upload{display:block;text-align:center;border:1.5px dashed #a9baa7;border-radius:13px;margin:22px 0;padding:30px;background:#f6f8f1;cursor:pointer}.upload>span{font-size:35px;display:block;color:#779c7c}.upload p{font-size:12px;font-weight:400;color:#899584}.upload input{max-width:380px}#ocrMode{max-width:330px}#preview{max-width:100%;max-height:300px;object-fit:contain;margin:20px 0;border-radius:10px}#ocrProgress{width:100%;accent-color:var(--green)}#ocrWork>button{margin:10px 5px 10px 0}.review{border:1px solid var(--line);border-radius:12px;padding:20px;margin-top:18px}.review>label{margin:16px 0}.review input[type=checkbox]{width:auto}.evidence{font-size:11px;color:#87907f;white-space:pre-wrap;overflow-wrap:anywhere;max-height:110px;overflow:auto}.review-heading{display:flex;align-items:center;justify-content:space-between}.notice{background:#f8f4e8;padding:15px;border-radius:9px;font-size:12px;line-height:1.8;color:#948363}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}dialog{width:min(550px,94vw);border:0;border-radius:17px;padding:27px;box-shadow:0 25px 100px #203b3540}dialog::backdrop{background:#17332a55;backdrop-filter:blur(3px)}.full-button{width:100%;margin-top:10px}.error{color:#ba543f;font-size:12px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90vw;background:#294638;color:white;padding:15px 24px;border-radius:12px;z-index:10;font-size:13px}.ocr-lanes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.lane{padding:20px;text-align:left;border:2px solid transparent;background:#eff4ec}.lane strong{display:block;font-size:16px;margin-bottom:9px}.lane small{font-weight:400;color:#7e8a7b;line-height:1.7}.lane[data-lane=expense]{background:#fbf0e8}.lane[data-lane=mixed]{background:#eef0f2}.lane.selected{border-color:#42886a}.queue-summary{padding:12px;background:#eef3e9;border-radius:8px;margin-bottom:15px}.review-photo{max-width:100%;max-height:180px;display:block;margin:15px 0}.review-head-actions{display:flex;gap:6px}[hidden]{display:none!important}@media(min-width:1500px){main{padding:0 65px}}@media(max-width:1100px){.sidebar{width:190px;padding:32px 16px}main{margin-left:190px;padding:0 25px}.chart-wrap{gap:15px;flex-wrap:wrap}.stat{padding:20px}.stat strong{font-size:27px}.photo-icon{opacity:.45}.dashboard-grid{grid-template-columns:1.2fr 1fr}}@media(max-width:760px){.sidebar{position:static;width:auto;padding:18px;border:0}.brand{font-size:25px;padding:0}.brand-sub{display:inline;margin-left:12px;font-size:10px}.sidebar nav{display:flex;margin-top:20px;gap:5px}.nav{flex:1;padding:11px 4px;text-align:center;font-size:17px}.nav span{display:block;margin:5px 0 0;font-size:10px}.side-note{display:none}main{margin:0;padding:0 17px}header{height:50px;font-size:8px}.privacy-pill{font-size:9px}.view{padding-top:25px}h1{font-size:23px}.heading{align-items:flex-start;gap:12px}.heading .primary{white-space:nowrap;padding:11px;font-size:11px}.heading .muted{font-size:11px}.stats{gap:9px}.stat{padding:15px 11px;border-radius:11px}.stat>span{font-size:10px}.stat-icon{display:none}.stat strong{font-size:20px;letter-spacing:-1px;overflow-wrap:anywhere}.stat strong span{font-size:10px}.stat small{font-size:9px;line-height:1.5;display:block}.dashboard-grid{grid-template-columns:1fr}.chart-wrap{flex-wrap:nowrap}.photo-card h2 br{display:none}.photo-icon{right:25px;top:24px;font-size:55px}.panel{padding:20px 16px}.filters{flex-wrap:wrap}.filters label{width:calc(50% - 8px)}.filters .grow{flex-basis:100%}.tx-actions{flex-direction:column}.transaction{gap:10px}.tx-amount{font-size:12px}.tx-icon{width:30px;height:30px}.form-grid{gap:13px}.ocr-lanes{gap:7px}.lane{padding:15px 9px}.lane strong{font-size:13px}.lane small{font-size:10px}footer{font-size:8px}#donut{width:155px;height:155px}#donut>div{width:118px;height:118px}#donut strong{font-size:18px}#legend{min-width:115px}}

.settlement{margin-top:22px}#settlementGroups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.settlement-group{padding:18px;border:1px solid var(--line);border-radius:11px}.settlement-group:last-child{grid-column:1/-1}.settlement-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:16px;gap:10px}.settlement-head h3{font-size:14px;margin:0}.settlement-head strong{font-size:16px;color:var(--green)}.settlement-item{display:flex;justify-content:space-between;gap:10px;padding:8px 0;font-size:11px;color:#839080}.settlement-item b{font-weight:500;white-space:nowrap}@media(max-width:760px){#settlementGroups{grid-template-columns:1fr}.settlement-group{padding:15px}}

.currency-choice{display:flex;align-items:center;gap:8px;letter-spacing:0;font-size:10px}.currency-choice select{width:auto;margin:0;padding:8px;font-size:12px}.review details{margin-top:15px;color:#64836d}.review summary{cursor:pointer;padding:10px 0}.review details button{margin-top:8px}.review-photo{max-height:320px}.stat strong{overflow-wrap:anywhere}header{gap:12px}@media(max-width:760px){header{flex-wrap:wrap;height:auto;padding:12px 0}#breadcrumb{display:none}.currency-choice select{max-width:190px}.stat strong{font-size:17px}}

/* Compact transaction editor: four primary fields, then three secondary fields. */
#editDialog{width:min(900px,94vw);max-height:90vh;overflow:auto}
#editForm .transaction-form-grid{display:grid;grid-template-columns:1fr 1fr 1.3fr 1fr;gap:18px 14px;grid-template-areas:"date type category amount" "currency description description note"}
#editForm .transaction-form-grid label{min-width:0}
.edit-date{grid-area:date}.edit-type{grid-area:type}.edit-category{grid-area:category}.edit-amount{grid-area:amount}.edit-currency{grid-area:currency}.edit-description{grid-area:description}.edit-note{grid-area:note}
#editForm .edit-note textarea{height:42px;min-height:42px;max-height:100px;font-size:12px;padding:10px;resize:vertical}
@media(max-width:760px){#editDialog{padding:22px 16px}#editForm .transaction-form-grid{grid-template-columns:1fr 1fr;gap:14px 12px;grid-template-areas:"date type" "category amount" "currency description" "note note"}}

.mobile-type-filter,.mobile-ledger{display:none}
.ledger-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #cdd8cd;margin:18px 0 24px;background:#f5f8f1}
.ledger-summary>div{padding:17px 20px;border-right:1px solid #cdd8cd}.ledger-summary>div:last-child{border:0}.ledger-summary span{display:block;font-size:12px;margin-bottom:9px}.ledger-summary strong{font-size:22px;overflow-wrap:anywhere}
.ledger-scroll{overflow:auto}.ledger-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:auto}.ledger-table caption{text-align:left;color:var(--muted);padding:0 0 12px;font-size:12px}.ledger-table th,.ledger-table td{border:1px solid #ccd5cb;padding:12px 10px;vertical-align:middle}.ledger-table thead th{background:#e9efe4;font-weight:700;white-space:nowrap}.ledger-table tbody tr:nth-child(even){background:#f8faf5}.ledger-table tbody tr:hover{background:#eef4e9}.ledger-table td:nth-child(2),.ledger-table td:nth-child(4){overflow-wrap:anywhere;max-width:200px}.ledger-table td:first-child{white-space:nowrap;font-variant-numeric:tabular-nums}.ledger-number{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.ledger-actions{white-space:nowrap;text-align:center}.ledger-actions button{padding:5px 7px;font-size:11px;margin:2px}.ledger-table tfoot{background:#eef4e9;font-weight:700}.ledger-table tfoot th{text-align:left}.ledger-table tfoot tr:last-child{background:#dfead9}.ledger-empty{text-align:center;padding:30px!important;color:var(--muted)}
@media(max-width:760px){.desktop-ledger{display:none}.mobile-type-filter,.mobile-ledger{display:block}}

/* Dashboard entry follows the chart, with photo entry alongside it. */
.dashboard-grid{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}.spending-chart{grid-column:1/-1}.dashboard-manual{min-width:0}.dashboard-manual .transaction-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;grid-template-areas:"date type" "category amount" "currency description" "note note"}.dashboard-manual label{min-width:0}.dashboard-manual textarea{min-height:42px;height:42px}.dashboard-grid .photo-card h2{position:relative}.dashboard-grid .photo-icon{top:auto;bottom:30px;opacity:.35}.dashboard-grid .photo-card button{position:relative}
@media(max-width:760px){.dashboard-grid{grid-template-columns:1fr}.dashboard-manual{display:none}}

/* Compact summary and running settlement column. */
.ledger-summary{display:flex;align-items:center;gap:24px;white-space:nowrap;overflow-x:auto;padding:14px 16px;margin:16px 0}.ledger-summary>div{display:flex;align-items:baseline;gap:7px;padding:0;border:0}.ledger-summary span{display:inline;margin:0;font-size:13px}.ledger-summary strong{font-size:17px}.ledger-table td:nth-child(4){max-width:none;overflow-wrap:normal}.dashboard-manual .transaction-form-grid{grid-template-areas:"date type" "category amount" "currency note"} @media(min-width:761px){#listSummary{display:none}}

/* Desktop: compact chart, wide manual entry, photo entry in one row. */
@media(min-width:761px){
 .dashboard-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.65fr) minmax(0,1fr);gap:16px;align-items:stretch}
 .dashboard-grid>article{min-width:0;padding:22px 18px}
 .spending-chart{grid-column:auto}
 .spending-chart .panel-heading{display:block;margin-bottom:18px}
 .spending-chart .panel-heading .muted{display:block;margin-top:7px}
 .spending-chart .chart-wrap{flex-direction:column;gap:12px;min-height:0}
 .spending-chart #donut{width:140px;height:140px;max-width:100%;aspect-ratio:1;flex-shrink:1}
 .spending-chart #donut>div{width:76%;height:76%}
 .spending-chart #donut strong{font-size:16px;max-width:95%;overflow-wrap:anywhere;text-align:center}
 .spending-chart #legend{min-width:0;width:100%;max-height:260px;overflow:auto}
 .spending-chart .legend-row{align-items:flex-start;gap:5px;font-size:10px}
 .spending-chart .legend-row i{margin-top:3px}
 .spending-chart .legend-row b{white-space:nowrap}
 .dashboard-manual .panel-heading{flex-wrap:wrap;margin-bottom:18px}
 .dashboard-manual .transaction-form-grid{gap:12px 10px}
 .dashboard-manual input,.dashboard-manual select,.dashboard-manual textarea{padding:10px 8px;min-width:0}
 .dashboard-grid .photo-card h2{font-size:22px;line-height:1.4;overflow-wrap:anywhere}
 .dashboard-grid .photo-card button{padding:12px 10px;font-size:12px}
 .dashboard-grid .photo-card small{font-size:10px;line-height:1.7}
}
@media(min-width:761px) and (max-width:1000px){
 .dashboard-grid{gap:10px;grid-template-columns:minmax(0,.8fr) minmax(0,1.7fr) minmax(0,.95fr)}
 .dashboard-grid>article{padding:18px 10px}
 .dashboard-grid h2{font-size:15px}.dashboard-grid .photo-card h2{font-size:18px}
 .dashboard-manual label,.dashboard-manual input,.dashboard-manual select{font-size:11px}
 .spending-chart #donut{width:110px;height:110px}.spending-chart #donut strong{font-size:12px}
 .spending-chart .legend-row{flex-wrap:wrap}.spending-chart .legend-row b{margin-left:12px}
}

/* Ledger filters, equal colored totals, and spreadsheet alignment. */
#transactions .ledger-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0;border:0;background:none;overflow:visible;white-space:normal}
#transactions .ledger-summary>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:19px 16px;border:1px solid;border-radius:12px;min-width:0}
#transactions .ledger-summary>div:nth-child(1){background:#eaf4ed;border-color:#c9dfd0;color:#286343}
#transactions .ledger-summary>div:nth-child(2){background:#fff0e9;border-color:#efd3c5;color:#a55433}
#transactions .ledger-summary>div:nth-child(3){background:#eaf0fb;border-color:#cedbf0;color:#365b91}
#transactions .ledger-summary span{font-size:12px;line-height:1.6}
#transactions .ledger-summary strong{font-size:19px;font-weight:800;text-align:right;color:inherit;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
#transactions .ledger-table th,#transactions .ledger-table td{text-align:center}
#transactions .ledger-table td.ledger-number{text-align:right;font-weight:800}
#transactions .ledger-table tfoot th{text-align:center}
@media(min-width:761px){
 #transactions .filters{align-items:center;justify-content:space-between;gap:24px}
 #transactions .filters>label:first-child{display:flex;align-items:center;gap:12px;white-space:nowrap}
 #transactions .filters>label:first-child input{margin:0;width:185px}
 #transactions .filters>.grow{display:flex;align-items:center;gap:12px;flex:0 1 440px;white-space:nowrap;margin-left:auto}
 #transactions .filters>.grow input{margin:0;min-width:0}
}
@media(min-width:761px) and (max-width:1100px){#transactions .ledger-summary>div{flex-wrap:wrap;padding:14px 12px}#transactions .ledger-summary strong{margin-left:auto;font-size:17px}}

.ocr-lanes .lane{text-align:center}


/* Double desktop settlement detail text (11px -> 22px). */
@media(min-width:761px){
 #dashboard .settlement-item{font-size:22px;line-height:1.5;flex-wrap:wrap;gap:4px 12px;padding:10px 0}
 #dashboard .settlement-item>span{min-width:0;overflow-wrap:anywhere}
 #dashboard .settlement-item>b{margin-left:auto;max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:right}
}

.recent-columns{display:none}.recent-remark{min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}.recent-remark small{font-size:10px;color:var(--muted);display:block;margin-bottom:5px}
@media(min-width:761px){
 .recent-columns,#recentRows .transaction{display:grid;grid-template-columns:39px minmax(0,1fr) minmax(110px,.65fr) minmax(0,1.6fr) 82px;gap:12px;align-items:center}
 .recent-columns{padding:13px 0;background:#f0f4eb;border-bottom:1px solid var(--line);font-size:12px;font-weight:700;text-align:center;border-radius:8px 8px 0 0}
 #recentRows .tx-info{padding-right:0}#recentRows .tx-info strong{font-size:15px}#recentRows .tx-info small{line-height:1.7}
 #recentRows .tx-amount{font-weight:800;text-align:right;font-size:16px;white-space:normal;overflow-wrap:anywhere}
 #recentRows .recent-remark{align-self:stretch;display:flex;align-items:center;border-left:1px solid var(--line);padding:10px 16px;font-size:14px;line-height:1.7}
 #recentRows .recent-remark small{display:none}#recentRows .tx-actions{justify-content:center}
}
@media(max-width:760px){#recentRows .transaction{flex-wrap:wrap}#recentRows .recent-remark{order:5;flex-basis:100%;padding-left:40px;font-size:12px}}

#transactions .ledger-summary span{font-size:19px;font-weight:800}
@media(min-width:761px) and (max-width:1100px){#transactions .ledger-summary span{font-size:17px}}

.spending-chart .chart-wrap #donut,.spending-chart .chart-wrap #legend{display:none}.spending-chart .chart-wrap{display:block;min-height:0}.connected-chart{display:block;width:100%;height:auto;overflow:visible}.spending-chart{overflow:hidden}

/* Balanced desktop settlement: 1.2 times the original 14px heading. */
@media(min-width:761px){
 #dashboard .settlement-item,#dashboard .settlement-head h3,#dashboard .settlement-head strong{font-size:16.8px;line-height:1.5}
 #dashboard .settlement-item{padding:9px 0;color:#66756a}
 #dashboard .settlement-head{padding:12px;border-radius:9px;margin-bottom:12px;gap:8px}
 #dashboard .settlement-head h3,#dashboard .settlement-head strong{font-weight:800;color:inherit}
 #dashboard .settlement-group:nth-child(1) .settlement-head{background:#eaf4ed;color:#286343}
 #dashboard .settlement-group:nth-child(2) .settlement-head{background:#fff0e9;color:#a55433}
 #dashboard .settlement-group:nth-child(3) .settlement-head{background:#eaf0fb;color:#365b91}
 #dashboard .settlement-group:nth-child(4) .settlement-head{background:#f0eef6;color:#685782}
}

@media(min-width:761px){
 #dashboard .stats .stat{text-align:center;position:relative}
 #dashboard .stats .stat>span{justify-content:center;min-height:31px;padding:0 34px}
 #dashboard .stats .stat-icon{position:absolute;right:20px;top:20px}
 #dashboard .stats .stat strong,#dashboard .stats .stat small{text-align:center}
}

.dashboard-manual .panel-heading>.muted{font-size:17px;font-weight:700;color:#2864b4;line-height:1.5}


#transactions .ledger-summary>div{justify-content:center;text-align:center;gap:12px}#transactions .ledger-summary strong{margin-left:0;text-align:center}


/* Clear original donut with a larger ring and a separate category legend. */
.spending-chart .connected-chart{display:none}
.spending-chart .chart-wrap{display:flex;flex-direction:column;gap:4px;align-items:center}
.spending-chart .chart-wrap #donut{display:grid;width:190px;height:auto;aspect-ratio:1;max-width:100%;flex-shrink:0}
.spending-chart .chart-wrap #donut>div{width:73%;height:73%}
.spending-chart .chart-wrap #donut strong{font-size:18px;max-width:95%;overflow-wrap:anywhere;text-align:center}
.spending-chart .chart-wrap #legend{display:block;width:100%;min-width:0;max-height:240px;overflow:auto}
.spending-chart .legend-row{font-size:12px;gap:8px;align-items:center;line-height:1.3;margin:3px 0}
.spending-chart .legend-row i{width:10px;height:10px;margin-top:0}
.spending-chart .legend-row b{margin-left:auto}

#donut .chart-numbers{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.spending-chart .legend-number{display:inline-grid;place-items:center;width:22px;height:22px;flex:0 0 22px;border-radius:50%;background:#edf1ec;color:#253e36;font-size:12px;font-weight:800;border:1px solid #d8e1d7}

.edit-receipt-items{margin-top:18px}.receipt-item-details{margin-top:10px;font-size:12px;text-align:left;font-weight:400}.receipt-item-details summary{cursor:pointer;color:#2864b4}.receipt-item-details p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;background:#f3f6ef;padding:12px;border-radius:8px}.review>label textarea{font-family:inherit;line-height:1.7}

.spending-chart .chart-wrap #donut{width:170px;max-width:calc(100% - 30px);margin:20px 15px}.spending-chart .chart-wrap #legend{margin-top:0}

/* Compact PC workspace: summary left, entry center, settlement right. */
.chart-disclosure{min-width:0}.chart-disclosure>summary{cursor:pointer;color:#29745a;font-weight:700;padding:10px 12px;border:1px solid #dce5d8;border-radius:8px;background:#fff}.chart-disclosure[open]>summary{margin-bottom:8px}
.currency-choice{font-size:17px;font-weight:800}.currency-choice select{font-size:16px}
@media(min-width:1001px){
 .sidebar{width:180px;padding:22px 12px}.brand{font-size:26px}.brand-sub{margin-bottom:24px;margin-left:35px}.nav{padding:12px 8px}.nav span{margin-left:6px}
 main{margin-left:180px;padding:0 18px;max-width:none}header{height:52px;gap:10px}#breadcrumb{display:none}.currency-choice{font-size:18px}.currency-choice select{font-size:17px;padding:7px 10px}
 #dashboard{display:grid;grid-template-columns:minmax(165px,.6fr) minmax(290px,1.15fr) minmax(380px,1.65fr);grid-template-areas:'heading month month' 'stats manual settlement' 'photo manual settlement' 'chart manual settlement' 'recent recent recent';gap:10px;padding:10px 0;align-items:start}
 #dashboard>.heading{grid-area:heading;margin:0;min-height:38px}#dashboard>.heading h1{font-size:20px;margin:0;letter-spacing:-.8px}#dashboard>.heading .eyebrow,#dashboard>.heading .muted,#dashboard>.heading>#add{display:none}
 #dashboard>.monthbar{grid-area:month;margin:0;min-height:38px;justify-content:flex-end;gap:15px}#dashboard .dashboard-grid{display:contents}
 #dashboard>.stats{grid-area:stats;grid-template-columns:1fr;gap:6px}#dashboard .stats .stat{padding:9px 10px;text-align:left;border-radius:10px}#dashboard .stats .stat>span{font-size:12px;padding:0;min-height:20px;justify-content:flex-start}#dashboard .stats .stat-icon{display:none}#dashboard .stats .stat strong{font-size:clamp(18px,1.6vw,27px);line-height:1.2;text-align:left;margin:5px 0;letter-spacing:-.5px}#dashboard .stats .stat small{display:none}
 #dashboard .dashboard-manual{grid-area:manual;padding:14px;align-self:stretch}#dashboard .dashboard-manual .panel-heading{margin-bottom:12px;gap:6px}#dashboard .dashboard-manual h2{font-size:17px}#dashboard .dashboard-manual .panel-heading>.muted{font-size:14px}#dashboard .dashboard-manual .transaction-form-grid{gap:10px}#dashboard .dashboard-manual label{font-size:13px}#dashboard .dashboard-manual input,#dashboard .dashboard-manual select,#dashboard .dashboard-manual textarea{padding:8px;margin-top:5px;font-size:14px;height:38px}#dashboard #quickForm>.full-button{padding:9px;margin-top:8px}#quickError:empty{display:none}
 #dashboard .photo-card{grid-area:photo;padding:10px 12px;border-radius:10px}#dashboard .photo-card h2{font-size:16px;margin:0 0 6px}#dashboard .photo-card .eyebrow,#dashboard .photo-card .photo-icon,#dashboard .photo-card p:not(.eyebrow),#dashboard .photo-card small{display:none}#dashboard .photo-card button{font-size:12px;margin:0;padding:9px;width:100%}
 #dashboard .chart-disclosure{grid-area:chart;font-size:12px}#dashboard .chart-disclosure .panel{padding:12px}#dashboard .spending-chart .panel-heading{display:none}#dashboard .spending-chart .chart-wrap #donut{width:120px}#dashboard .spending-chart .chart-wrap #donut strong{font-size:13px}
 #dashboard>.settlement{grid-area:settlement;margin:0;padding:12px;align-self:stretch}#dashboard .settlement>.panel-heading{margin-bottom:10px;gap:6px;flex-wrap:wrap}#dashboard #settlementTitle{font-size:17px}#dashboard #settlementGroups{gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}#dashboard .settlement-group{padding:7px;border-radius:8px}#dashboard .settlement-head{padding:7px;margin-bottom:4px;gap:3px}#dashboard .settlement-head h3,#dashboard .settlement-head strong{font-size:13px;line-height:1.4}#dashboard .settlement-item{font-size:12px;line-height:1.4;padding:4px 0;gap:3px 6px}#dashboard .settlement-item b{font-weight:700}#dashboard #settlementNote{padding:7px 9px;font-size:11px;line-height:1.5;margin:8px 0 0}
 #dashboard>.recent{grid-area:recent;margin:0;padding:12px}#dashboard .recent>.panel-heading{margin-bottom:6px}#dashboard .recent-columns{padding:7px 0}#dashboard #recentRows{max-height:clamp(100px,calc(100dvh - 590px),245px);overflow:auto}#dashboard #recentRows .transaction{padding:7px 0}#dashboard #recentRows .recent-remark{padding:4px 10px;line-height:1.4;font-size:13px}#dashboard #recentRows .tx-info strong{font-size:13px}#dashboard #recentRows .tx-info small{margin-top:3px}#dashboard #recentRows .tx-amount{font-size:14px}#dashboard #recentRows .empty{padding:12px}#dashboard>footer{display:none}
}
@media(min-width:1001px) and (max-width:1450px){#dashboard #settlementGroups{grid-template-columns:repeat(2,minmax(0,1fr))}#dashboard .settlement-item{font-size:11px;padding:3px 0}#dashboard .settlement-head h3,#dashboard .settlement-head strong{font-size:12px}#dashboard .dashboard-manual .panel-heading{display:block}#dashboard .dashboard-manual .panel-heading>.muted{display:block;margin-top:5px}}
@media(max-width:1000px){.chart-disclosure{grid-column:1/-1}.currency-choice{font-size:15px}.currency-choice select{font-size:15px}}
@media(min-width:1001px){#dashboard .settlement-group{padding:5px}#dashboard .settlement-head{padding:5px}#dashboard .settlement>.panel-heading{margin-bottom:7px}#dashboard .settlement-item{padding:3px 0}#dashboard #recentRows .empty{padding:7px}}
@media(min-width:1250px){#dashboard #settlementGroups{grid-template-columns:repeat(3,minmax(0,1fr))}}

@media(min-width:1001px){#dashboard{padding-bottom:0}#dashboard>.recent{padding:9px 12px}}
.sidebar .brand{font-size:21px;letter-spacing:-1px;padding-left:0;line-height:1.4}.sidebar .brand .logo{margin-right:4px}.sidebar nav{margin-top:20px}
@media(min-width:1001px){.sidebar .brand{font-size:18px;white-space:nowrap}#transactions{padding:10px 0}#transactions>.heading{margin-bottom:10px;min-height:38px}#transactions>.heading .eyebrow{display:none}#transactions>.heading h1{font-size:22px;margin:0}#transactions>.heading .primary{padding:8px 12px}#transactions>.panel{padding:14px}#transactions .filters input,#transactions .filters select{padding:8px}#transactions .ledger-summary{margin:10px 0;gap:8px}#transactions .ledger-summary>div{padding:11px 12px}#transactions .ledger-table caption{padding-bottom:7px}}
@media(min-width:1001px){
 #dashboard{grid-template-columns:repeat(10,minmax(0,1fr));grid-template-areas:'heading heading month month month month month month month month' 'stats stats stats stats stats stats photo photo chart chart' 'manual manual manual manual settlement settlement settlement settlement settlement settlement' 'recent recent recent recent recent recent recent recent recent recent'}
 #dashboard>.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-self:stretch}#dashboard .stats .stat{padding:8px 12px}#dashboard .stats .stat strong{font-size:23px;margin:4px 0 0}#dashboard .photo-card{align-self:stretch;padding:8px 10px}#dashboard .photo-card h2{font-size:13px;margin-bottom:4px}#dashboard .photo-card button{padding:7px;font-size:12px}#dashboard .chart-disclosure{align-self:stretch;position:relative}#dashboard .chart-disclosure>summary{height:100%;min-height:65px;display:flex;align-items:center;justify-content:center;text-align:center}#dashboard .chart-disclosure>summary:before{content:'▸';margin-right:5px}#dashboard .chart-disclosure[open]>summary:before{content:'▾'}#dashboard .chart-disclosure[open]>.spending-chart{position:absolute;top:100%;right:0;width:270px;z-index:5;box-shadow:0 12px 30px #253e3626;margin-top:8px}
 #dashboard #settlementGroups{grid-template-columns:repeat(3,minmax(0,1fr))}#dashboard .dashboard-manual .panel-heading{display:flex}#dashboard #recentRows{max-height:clamp(90px,calc(100dvh - 620px),220px)}
}
.language-choice{display:flex;align-items:center;gap:7px;letter-spacing:0;font-size:14px;white-space:nowrap}.language-choice select{width:auto;margin:0;padding:7px;font-size:14px}header .privacy-pill{margin-left:auto}
@media(max-width:760px){.language-choice{font-size:13px}.language-choice select{font-size:13px;max-width:160px}header .privacy-pill{display:none}}
header .language-choice{margin-left:clamp(24px,5vw,90px);font-size:18px;font-weight:800;color:#253e36}header .language-choice select{font-size:16px;font-weight:700;max-width:250px}.sidebar .brand{white-space:normal!important;overflow-wrap:anywhere}
@media(min-width:1001px){header{justify-content:flex-start}header .currency-choice{flex-shrink:0}header .privacy-pill{font-size:10px;padding:6px 8px}html:not([lang=ko]) #dashboard .settlement-item{font-size:11px}html:not([lang=ko]) #dashboard .settlement-head h3{font-size:12px}html:not([lang=ko]) #dashboard .dashboard-manual .panel-heading{flex-wrap:wrap}html:not([lang=ko]) #dashboard .settlement-head{display:block}html:not([lang=ko]) #dashboard .settlement-head strong{display:block}}
@media(max-width:1200px){header .privacy-pill{display:none}header .language-choice{margin-left:20px}}
@media(max-width:760px){header .language-choice{margin-left:0;font-size:16px}header .language-choice select{font-size:14px;max-width:230px}header .currency-choice{font-size:15px}}
@media(min-width:1001px){header .language-choice{margin-left:calc(clamp(24px,5vw,90px) + 2cm)}header{height:auto;min-height:52px;flex-wrap:wrap;padding:7px 0;row-gap:8px}header .privacy-pill{margin-left:auto}}
.excel-download{margin-left:auto;background:#216c47;color:white;border-color:#216c47;font-size:17px;font-weight:800;padding:10px 15px;white-space:nowrap}.excel-download:hover{background:#185435}
@media(max-width:760px){.excel-download{font-size:15px;padding:9px 12px;margin-left:0}}
.excel-mobile-label{display:none}
@media(max-width:760px){
 main>header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 8px;align-items:center}
 header .currency-choice{grid-column:1;grid-row:1;gap:5px;min-width:0;font-size:14px;white-space:nowrap}
 header .currency-choice select{width:100%;min-width:0;max-width:155px;flex:1;padding:8px 4px;font-size:12px}
 header .excel-download{grid-column:2;grid-row:1;margin:0;padding:10px 9px;font-size:14px;font-weight:800}
 header .language-choice{grid-column:1/-1;grid-row:2;margin-left:0}
 .excel-desktop-label{display:none}.excel-mobile-label{display:inline}
}
/* The supplied KYS and ledger marks form one brand lockup. */
.sidebar .brand{display:flex;align-items:center;gap:6px;letter-spacing:-.6px;font-size:14px;padding:0;line-height:1.35}
.brand-lockup{display:inline-flex;align-items:center;gap:0;flex:none;white-space:nowrap}.brand-lockup img{display:block;object-fit:contain}.brand-lockup .kys-brand{width:42px;height:29px;border-radius:5px}.brand-lockup .ledger-mark{width:22px;height:22px}.brand-name{min-width:0;overflow-wrap:normal}
@media(max-width:760px){.sidebar .brand{font-size:21px;gap:9px}.brand-lockup .kys-brand{width:58px;height:39px}.brand-lockup .ledger-mark{width:30px;height:30px}}
.icon-download{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:3px 8px;color:#245846;text-decoration:none;letter-spacing:0;flex-shrink:0}.icon-download img{width:32px;height:32px;border-radius:7px}.icon-download span{font-size:11px;font-weight:800;line-height:1.3;white-space:nowrap}.icon-download:hover{background:#eaf2e8;border-radius:8px}.icon-download:focus-visible{outline:3px solid #96c5a9;outline-offset:2px}
@media(max-width:760px){header .language-choice{grid-column:1;min-width:0;gap:5px;font-size:14px}header .language-choice select{min-width:0;width:100%;max-width:155px;flex:1;padding:7px 4px;font-size:12px}header .icon-download{grid-column:2;grid-row:2;justify-self:center}header .icon-download img{width:30px;height:30px}}
