:root{color-scheme:light;--ink:#1b2842;--muted:#718096;--blue:#2855e8;--line:#e6eaf1;--bg:#f4f6fa;--amber:#a46308;--radius:12px;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-size:16px;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:var(--blue)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #88a7ff;outline-offset:2px}button{border:1px solid var(--line);background:white;color:var(--ink);padding:10px 15px;border-radius:8px;font-size:.875rem;font-weight:600;transition:background .15s}button:hover{background:#f1f5ff}button.primary{background:var(--blue);border-color:var(--blue);color:#fff}button.primary:hover{background:#1943d2}button.danger{color:#b43c3c;border-color:#ebcaca}button.link{border:0;background:none;color:var(--blue);padding:5px}button.icon{padding:7px 9px;line-height:1;font-size:1.2rem}input,select,textarea{border:1px solid #dce2ec;background:white;border-radius:8px;padding:10px 12px;color:var(--ink);min-width:0;font-size:.875rem}textarea{resize:vertical;min-height:85px}input::placeholder,textarea::placeholder{color:#9aa4b5}h1,h2,h3,p{margin:0}h1{font-size:1.7rem;letter-spacing:-.04em;line-height:1.35}h2{font-size:1.2rem}h3{font-size:1rem}.muted{color:var(--muted);font-size:.875rem;line-height:1.65}.small{font-size:.8125rem}.money{font-variant-numeric:tabular-nums;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-weight:650;white-space:nowrap}.negative{color:#2458bd}.positive{color:#192a48}.pill{display:inline-flex;align-items:center;border-radius:5px;padding:4px 8px;font-size:.75rem;white-space:nowrap;background:#eef2f8;color:#617084;font-weight:550}.pill.pending{color:#2a5dc0;background:#edf3ff}.pill.draft,.pill.rejected{color:#a36608;background:#fff4de}.pill.approved,.pill.active{color:#168061;background:#e9f7f0}.pill.settled{background:#eef0f5;color:#636e83}.pill.disabled{background:#faeded;color:#b34646}.pill.ledger_only{color:#7c648f;background:#f4eff8}.boot{margin:20vh auto;text-align:center;color:var(--muted)}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:220px;background:#111d34;color:#d8e0f0;display:flex;flex-direction:column;padding:28px 18px;z-index:10}.brand{display:flex;align-items:center;gap:11px;font-size:1.15rem;font-weight:750;color:white;letter-spacing:.03em}.brand img{width:35px;height:35px}.brand small{display:block;font-size:.75rem;font-weight:400;color:#8e9eb8;margin-top:3px;letter-spacing:.04em}.side-caption{margin:39px 13px 12px;font-size:.75rem;color:#7085a5}.nav{display:flex;flex-direction:column;gap:7px}.nav button{display:flex;gap:12px;align-items:center;background:transparent;color:#aabbda;border:0;padding:13px;border-radius:8px;text-align:left;line-height:1.4}.nav button.active{background:#2855e8;color:#fff}.nav button:hover:not(.active){background:#1d2b46;color:#fff}.nav svg{width:19px;height:19px;flex-shrink:0}.nav .count{margin-left:auto;min-width:21px;border-radius:4px;background:#ffffff20;font-size:.75rem;padding:0 4px;text-align:center}.side-rule{border-top:1px solid #27334c;margin-top:32px;padding:20px 13px;color:#7e90ad;font-size:.8125rem;line-height:1.8}.account{margin-top:auto;border-top:1px solid #27334c;padding:21px 7px 0}.avatar{display:inline-flex;width:35px;height:35px;justify-content:center;align-items:center;background:#eaf0ff;border-radius:10px;color:var(--blue);font-size:.875rem;font-weight:700;flex-shrink:0}.account-head{display:flex;align-items:center;gap:10px;font-size:.875rem}.account-head small{display:block;color:#8093b3;font-size:.75rem;margin-top:4px}.account-actions{display:flex;margin-top:15px;gap:15px}.account-actions button{background:none;border:0;color:#9dafcb;padding:0;font-size:.75rem}.main{margin-left:220px;min-width:0;flex:1}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:15px}.breadcrumb{font-size:.875rem;color:#8793a6}.breadcrumb strong{color:#34435d;font-weight:500}.topnote{font-size:.8125rem;color:#7c899d;display:flex;align-items:center;gap:12px}.scope-badge{border:1px solid var(--line);padding:6px 10px;border-radius:6px;color:#5b6f92}.mobile-menu{display:none}.content{padding:30px 36px 45px;max-width:1740px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.page-heading p{margin-top:8px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:23px}.card{border:1px solid var(--line);background:white;border-radius:var(--radius);padding:20px 22px;min-width:0}.card-label{font-size:.8125rem;color:#708098;display:flex;align-items:center;justify-content:space-between;gap:6px}.card-value{font-size:1.9rem;letter-spacing:-.04em;line-height:1.6;white-space:nowrap}.card-value small{font-size:1rem;vertical-align:baseline;margin-right:4px}.card-note{font-size:.75rem;color:#8694aa;line-height:1.5}.card.highlight{background:#2855e8;border-color:#2855e8;color:white}.highlight .card-label,.highlight .card-note{color:#dce5ff}.highlight .tag{border-radius:4px;font-size:.7rem;background:#ffffff24;padding:2px 5px}.warning{display:flex;gap:12px;align-items:center;background:#fff8e8;border:1px solid #f0e3c3;padding:13px 18px;border-radius:9px;margin-bottom:23px;font-size:.875rem;line-height:1.6;color:#866020}.warning .warning-icon{font-size:1.1rem}.warning button{margin-left:auto;background:transparent;border:0;color:#98611b;white-space:nowrap;padding:4px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel-title{padding:20px 23px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-title .muted{font-size:.8125rem}.tabs{display:flex;gap:23px;padding:0 24px;border-bottom:1px solid var(--line);overflow:auto}.tabs button{white-space:nowrap;border:0;border-radius:0;padding:17px 0;background:none;font-weight:500;color:#72819a;border-bottom:2px solid transparent}.tabs button.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:650}.tabs span{font-size:.75rem;margin-left:5px}.filters{padding:17px 23px;display:flex;gap:11px;flex-wrap:wrap}.filters .search{min-width:200px;flex:1;max-width:330px}.filters select{max-width:180px}.filters input[type=month]{max-width:162px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:.875rem}th{background:#f8fafc;color:#7b889d;font-weight:500;font-size:.8125rem;padding:13px 20px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:15px 20px;border-bottom:1px solid #f0f2f7;line-height:1.6;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tr.clickable:hover{background:#f8faff;cursor:pointer}td.amount,th.amount{text-align:right}td.description{min-width:220px;max-width:350px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:330px}.cell-detail{font-size:.75rem;color:#94a0b2;margin-top:2px}.type-dot{display:inline-block;width:6px;height:6px;border-radius:2px;margin-right:6px;background:#617ec5}.type-dot.withdrawal,.type-dot.refund{background:#20a189}.type-dot.allocation_due{background:#9a73c4}.date{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.8125rem}.receipt{color:#8b98ac;white-space:nowrap;font-size:.8125rem}.pagination{display:flex;justify-content:space-between;align-items:center;padding:16px 23px;border-top:1px solid var(--line);gap:10px}.pagination .pages{display:flex;align-items:center;gap:12px}.empty{text-align:center;padding:65px 25px;color:#8a98ae;line-height:1.8}.empty strong{display:block;color:#51617c;font-size:1rem;margin-bottom:6px}.group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.group-card{padding:22px;background:white;border:1px solid var(--line);border-radius:12px}.group-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.group-card .group-amount{font-size:1.5rem;margin:6px 0 22px}.group-stats{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:.8125rem}.section-note{margin:20px 0 0;color:#8794a8;font-size:.8125rem;line-height:1.7}.login-page{min-height:100vh;background:#fff;display:grid;grid-template-columns:46% 54%}.login-story{background:#111f3b;padding:55px 12%;color:white;display:flex;flex-direction:column;justify-content:space-between;gap:50px}.login-story h1{font-size:2.5rem;line-height:1.5;font-weight:650;letter-spacing:-.03em}.login-story p{color:#99acca;line-height:1.9;margin-top:20px;font-size:.95rem}.steps{margin-top:35px;border-top:1px solid #32405b}.step{padding:22px 0;border-bottom:1px solid #32405b;display:flex;align-items:center;gap:17px;font-size:.95rem}.step .number{color:#86a5f9;font-family:Georgia,serif;font-size:1.3rem}.story-footer{color:#6e82a6;font-size:.75rem}.login-main{display:flex;align-items:center;justify-content:center;padding:40px}.auth-box{width:100%;max-width:385px}.auth-box h2{font-size:1.75rem;letter-spacing:-.03em;margin-bottom:10px}.auth-box .intro{margin-bottom:29px}.auth-box .primary{padding:13px;width:100%;margin-top:11px}.auth-switch{margin-top:23px;text-align:center;font-size:.875rem;color:#7c8a9e}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px;font-size:.875rem}.field label{font-size:.8125rem;font-weight:600;color:#53627b}.field input,.field select{min-height:43px}.field .hint{font-size:.75rem;color:#8b97a9}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.field.full{grid-column:1/-1}.error{color:#b23939;background:#fff0f0;border:1px solid #f2cccc;border-radius:7px;padding:11px 13px;font-size:.875rem;margin:10px 0;line-height:1.6}.success{color:#197254;background:#ecf9f2;border:1px solid #cbeadb;border-radius:8px;padding:17px;line-height:1.8;font-size:.875rem}dialog{width:700px;max-width:calc(100vw - 30px);border:0;border-radius:16px;padding:0;box-shadow:0 25px 100px #13224745;color:var(--ink);max-height:90vh}dialog::backdrop{background:#15213b70;backdrop-filter:blur(3px)}.modal-head{padding:21px 25px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px;position:sticky;top:0;background:white;z-index:1}.modal-head p{margin-top:5px}.modal-body{padding:23px 25px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:18px 25px;border-top:1px solid var(--line);background:#fafbfd;position:sticky;bottom:0;flex-wrap:wrap}.checkline{display:flex;align-items:flex-start;gap:9px;font-size:.875rem;line-height:1.7}.checkline input{margin-top:5px;accent-color:var(--blue)}.notice{background:#f5f7fc;border:1px solid #e6ebf5;border-radius:8px;padding:13px 15px;font-size:.8125rem;line-height:1.8;color:#687d9c;margin-bottom:20px}.notice.amber{background:#fff8e8;border-color:#f0e3c3;color:#946322}.facts{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:24px}.fact label{display:block;color:#8a97aa;font-size:.75rem;margin-bottom:6px}.fact p{font-size:.9375rem;line-height:1.7;overflow-wrap:anywhere}.fact.full{grid-column:1/-1}.receipt-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:15px 0}.receipt-grid a{border:1px solid var(--line);border-radius:8px;overflow:hidden;text-decoration:none}.receipt-grid img{display:block;width:100%;height:100px;object-fit:contain;background:#f8f9fb}.receipt-grid .file-name{display:block;padding:7px;font-size:.75rem;color:#6b7e9c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filebox{display:block;width:100%;border:1px dashed #bbc9e6;padding:20px;background:#f7f9fe;border-radius:9px;margin:15px 0;font-size:.8125rem}.history{margin-top:24px;border-top:1px solid var(--line);padding-top:18px}.history-row{margin-top:14px;display:flex;justify-content:space-between;font-size:.8125rem;color:#7b899f;gap:12px}.history-row strong{font-weight:500;color:#53657f}.pick-users{border:1px solid var(--line);border-radius:8px;max-height:160px;overflow:auto;padding:13px}.template-download{display:inline-flex;align-items:center;min-height:42px;padding:9px 14px;border:1px solid #cbd8f5;border-radius:8px;background:#f5f8ff;text-decoration:none;font-weight:650}.template-download:hover{background:#eaf0ff}.pick-users-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 9px}.export-users{max-height:220px}.export-users label{display:flex;align-items:center;gap:10px;min-height:42px;padding:6px 8px;border-bottom:1px solid #f0f2f7}.export-users label:last-child{border-bottom:0}.export-users input{accent-color:var(--blue);width:18px;height:18px}.split-line{border:0;border-top:1px solid var(--line);margin:25px 0}#toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,20px);padding:13px 24px;border-radius:10px;background:#152a4b;color:#fff;box-shadow:0 8px 35px #152a4b35;opacity:0;pointer-events:none;z-index:100;font-size:.875rem;max-width:90vw;transition:.2s}#toast.visible{opacity:1;transform:translate(-50%,0)}.inline-value{font-weight:600;color:#324c7a}.admin-blank{display:inline-block;color:#ad792f;font-size:.8125rem}.legend{display:flex;gap:16px;flex-wrap:wrap}.form-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.form-row .field{flex:1;min-width:170px;margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1500px){.content{padding:35px 45px}.topbar{padding:0 45px}.card-value{font-size:2.2rem}.card{padding:23px 26px}td{padding-top:17px;padding-bottom:17px}}
@media(max-width:1150px){.sidebar{width:195px;padding:24px 13px}.main{margin-left:195px}.content{padding:25px 22px}.topbar{padding:0 22px}.card{padding:17px 15px}.card-value{font-size:1.5rem}.group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading{flex-wrap:wrap}th,td{padding-left:15px;padding-right:15px}.topnote>span:first-child{display:none}}
@media(max-width:760px),(max-width:1000px) and (pointer:coarse){.sidebar{transform:translateX(-100%);width:225px;box-shadow:5px 0 35px #11254430}.sidebar.open{transform:none}.main{margin-left:0}.mobile-menu{display:block}.topbar{height:65px;padding:0 16px}.content{padding:22px 15px}.cards{grid-template-columns:1fr 1fr;gap:10px}.card{padding:15px}.card-value{font-size:1.4rem}.card-label{font-size:.75rem}.card-note{font-size:.7rem}.page-heading{gap:17px}h1{font-size:1.5rem}.actions button{padding:9px 11px}.warning{font-size:.8125rem;padding:12px}.warning button{display:none}.tabs{padding:0 15px;gap:20px}.filters{padding:14px;gap:8px}.filters .search{max-width:none;flex-basis:100%}.filters select{max-width:calc(50% - 4px);flex:1}.filters input[type=month]{max-width:100%;flex:1}.group-grid{grid-template-columns:1fr}.login-page{display:block}.login-story{padding:24px;background:#111f3b}.login-story>div:nth-child(2),.story-footer{display:none}.login-main{padding:36px 25px}.auth-box{max-width:450px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.modal-body{padding:20px}.modal-head,.modal-foot{padding:18px 20px}.receipt-grid{grid-template-columns:repeat(3,1fr)}.facts{gap:16px}.topnote .scope-badge{font-size:.75rem}.pagination{padding:15px;font-size:.75rem}.pagination button{padding:7px 10px}.table-wrap{overscroll-behavior-x:contain}.panel-title{padding:17px}.breadcrumb{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(max-width:760px),(max-width:1000px) and (pointer:coarse){.ledger-table thead{display:none}.ledger-table,.ledger-table tbody{display:block;width:100%}.ledger-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:15px;border-bottom:1px solid var(--line);gap:6px 12px}.ledger-table td{display:block;padding:0;border:0;min-width:0;max-width:none}.ledger-table td:nth-child(2){text-align:right;font-size:.8125rem}.ledger-table td:nth-child(3){grid-column:1/-1;margin:5px 0}.ledger-table .truncate{max-width:none;white-space:normal}.ledger-table td:nth-child(4){text-align:left;font-size:1.1rem}.ledger-table td:nth-child(4)::before{content:'¥ ';font-size:.85rem}.ledger-table td:nth-child(5),.ledger-table td:nth-child(7){text-align:right}.ledger-table td:nth-child(6){font-size:.75rem;padding-top:6px}.ledger-table td:nth-child(7) button{padding:0;font-size:.8125rem}.ledger-table .cell-detail{font-size:.75rem}}

.menu-back,.menu-shade{display:none}.modal-head>button{flex-shrink:0}.counterparty-picker{position:relative}.counterparty-picker>input{width:100%}.counterparty-options{position:absolute;top:100%;left:0;right:0;z-index:5;max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:white;box-shadow:0 8px 24px #13224720}.counterparty-options button{width:100%;display:flex;justify-content:space-between;gap:12px;border:0;border-radius:0;text-align:left}.counterparty-options small{color:var(--muted)}.counterparty-options p{padding:12px}.queued-receipts{display:grid;gap:8px}.queued-receipt{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--line);border-radius:8px}.queued-receipt img,.pdf-label{width:54px;height:54px;object-fit:cover;border-radius:5px}.queued-receipt>span{flex:1;overflow-wrap:anywhere;min-width:0;font-size:.8rem}.queued-receipt>button{flex-shrink:0}.filebox{cursor:pointer}
@media(max-width:760px),(max-width:1000px) and (pointer:coarse){.menu-back{display:block;margin-bottom:22px;background:#223554;border-color:#344967;color:white;text-align:left}.menu-shade:not([hidden]){display:block;position:fixed;inset:0;background:#13224766;border:0;border-radius:0;z-index:9}.sidebar{overflow-y:auto}.modal-head{position:sticky;top:0;background:white;z-index:6}}

/* Light translucent navigation and a quieter, spacious workspace. */
:root{--ink:#20242c;--muted:#7c838e;--blue:#087cff;--line:#e5e8ed;--bg:#f5f6f8;--radius:16px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}
body{background:radial-gradient(ellipse at 0 0,#e4effb80,transparent 45%),var(--bg)}
button{border-radius:10px;font-weight:500;transition:background .15s,box-shadow .15s}
button:hover{background:#edf3fa}button.primary{background:#087cff;border-color:#087cff}button.primary:hover{background:#006be4}
.sidebar{background:rgba(247,249,252,.34);color:#3b4656;border-right:1px solid #ffffff80;box-shadow:1px 0 0 #dce2e933;backdrop-filter:blur(12px) saturate(130%);-webkit-backdrop-filter:blur(12px) saturate(130%)}
.brand{color:#252d39;font-weight:650}.brand small{color:#8c96a4;letter-spacing:.08em;font-size:.65rem}.brand img{border-radius:10px}
.side-caption{color:#969eaa;font-size:.7rem;margin-top:34px}.nav{gap:6px}.nav button{color:#616d7e;padding:12px 13px;border-radius:10px;font-weight:500}.nav button.active{background:#087cff14;color:#0870de;box-shadow:inset 0 0 0 1px #087cff0a}.nav button:hover:not(.active){background:#ffffffc0;color:#202b3d}.nav svg{stroke-width:1.7}.nav .count{background:#087cff;color:white}
.side-rule{border-color:#dfe5ed99;color:#8d97a7;font-size:.75rem;line-height:1.9}.account{border-color:#dfe5ed99}.account-head small{color:#929aa6}.account-actions button{color:#738198}.avatar{background:#e6effa;color:#4186cc;border-radius:50%}
.topbar{height:76px;background:#ffffff9c;border-color:#e4e9ee99;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.breadcrumb{color:#9aa3b0}.breadcrumb strong{color:#5a6576}.scope-badge{background:#ffffff8c;border-color:#e7ebf0;border-radius:20px;font-size:.75rem}
h1{font-weight:650;font-size:1.65rem;letter-spacing:-.035em}.page-heading{margin-bottom:26px}.page-heading p{font-size:.8125rem;color:#8a93a1}.content{padding-top:32px}
.card{border-color:#e7ebf0;background:#ffffffdc;box-shadow:0 3px 12px #253b5d03;padding:22px}.card-label{color:#8390a2}.card-value{font-weight:600;font-size:1.8rem;letter-spacing:-.045em}.card.highlight{background:linear-gradient(125deg,#3e96f5,#1874e8);border-color:#2a83ed;color:white;box-shadow:0 5px 18px #2484e81b}.highlight .card-label,.highlight .card-note{color:#edf5ff}.highlight .tag{background:#ffffff24}
.warning{background:#fff9ecb3;border-color:#eee2c57d;color:#967b43;border-radius:12px}.panel,.group-card{border-color:#e5e9ef;box-shadow:0 3px 14px #253b5d03}.panel-title{border-color:#eef1f5}th{background:#f9fafc;color:#8994a5;font-size:.75rem}td{border-color:#f1f3f6}.tabs{border-color:#edf0f4}.tabs button{font-weight:500}.tabs button.active{color:#0878ed;border-bottom-color:#087cff}.filters{background:#ffffff70}
input,select,textarea{background:#fff;border-color:#dfe5ed;border-radius:10px}.pill{border-radius:6px;font-size:.7rem;font-weight:500}.pill.pending{background:#eff5ff;color:#5c8acb}.pill.draft{background:#fff5e3;color:#b28c43}.receipt{color:#a0abba}
dialog{border:1px solid #ffffffd9;border-radius:20px;box-shadow:0 24px 90px #2636502b;background:#fdfefe}dialog::backdrop{background:#27344b33;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.modal-head{border-color:#edf0f4}.modal-head h2{font-weight:600}.modal-foot{background:#fafbfd}.filebox{background:#f4f8ff;border-color:#cfe0f8;border-radius:12px}.counterparty-options{border-radius:12px;box-shadow:0 8px 24px #273a5617}.queued-receipt{border-radius:12px}
.login-story{background:linear-gradient(155deg,#18304d,#234976)}
@media(max-width:1150px){.card{padding:18px 16px}.card-value{font-size:1.45rem}}
@media(max-width:760px),(max-width:1000px) and (pointer:coarse){.sidebar{width:246px;background:rgba(248,250,253,.32);box-shadow:8px 0 35px #14243b10}.menu-back{background:#ffffff66;border-color:#e1e7ee80;color:#32669d;margin-bottom:25px;border-radius:10px}.sidebar .menu-back:hover{background:#ffffff99;color:#126dd1}.menu-shade:not([hidden]){background:#202e430d}.topbar{height:65px}.content{padding-top:24px}.card{padding:16px 13px}.card-value{font-size:1.35rem}.card-label{font-size:.72rem}.card-note{font-size:.68rem}.modal-head{background:#ffffffeb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.ledger-table tr{padding:17px 15px}.scope-badge{max-width:245px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Keep filter names and values readable at phone widths. */
.counterparty-picker>input{padding-right:48px}
.counterparty-toggle{position:absolute;right:1px;top:1px;width:42px;height:41px;border:0;background:transparent;color:#465365;display:flex;align-items:center;justify-content:center;padding:0}
.counterparty-options{max-height:260px;overscroll-behavior:contain}
.counterparty-options button{min-height:44px;align-items:center;color:#20242c}
.counterparty-options button>span{min-width:0;overflow-wrap:anywhere}
.counterparty-options small{color:#59677a;white-space:nowrap}
.counterparty-list-note{padding:9px 12px;background:#f3f6fa;color:#536174;font-size:.75rem;line-height:1.5;overflow-wrap:anywhere}
.filters{align-items:flex-end;gap:12px}
.filter-field{display:flex;flex-direction:column;gap:7px;flex:1 1 155px;min-width:0}
.filter-search{flex:2 1 260px}
.filter-month{flex-basis:205px}
.filter-field>span{font-size:.8125rem;font-weight:600;color:#465365;line-height:1.4}
.filter-field small{font-size:.75rem;font-weight:400;color:#59677a}
.filters .filter-field input,.filters .filter-field select{width:100%;min-width:0;max-width:none;min-height:46px;flex:none;color:#20242c;border-color:#cbd3df;font-size:16px;line-height:1.4;background-color:#fff}
.filters .filter-field input::placeholder{color:#64748b;opacity:1}
.filters .filter-field select{appearance:none;-webkit-appearance:none;padding-right:36px;background-image: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='%23465365' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat}
.filter-actions{display:flex;gap:8px;align-items:center;min-height:46px}
.filter-actions button{min-height:46px;white-space:nowrap;padding:10px 20px;font-size:.9375rem}
@media(max-width:760px),(max-width:1000px) and (pointer:coarse){.filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}.filter-search,.filter-kind,.filter-month,.filter-actions{grid-column:1/-1}.filter-actions button{flex:1}.filters .filter-field input[type=month]{display:block;min-inline-size:0;max-inline-size:100%}}
.help-panel{margin-bottom:18px}.help-list{padding:0 22px 8px}.help-item{display:grid;grid-template-columns:minmax(160px,.35fr) minmax(0,1fr);gap:20px;padding:14px 0;border-bottom:1px solid #eef1f5}.help-item:last-child{border-bottom:0}.help-item strong{font-size:.875rem;color:#30415e;line-height:1.6}.help-item p{font-size:.875rem;color:#65748a;line-height:1.75}
@media(max-width:600px){.help-list{padding:0 16px 6px}.help-item{grid-template-columns:minmax(0,1fr);gap:3px;padding:12px 0}}
.upload-summary{display:grid;gap:5px;padding:15px 17px;margin-bottom:14px;background:#f5f8fc;border:1px solid #e6ecf4;border-radius:12px}.upload-summary strong{color:#263b5a;font-size:.95rem}.upload-summary span,.template-card span{color:#738199;font-size:.8rem;line-height:1.6}.template-card{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 16px;margin:0 0 18px;border:1px solid #e6ecf4;border-radius:12px;background:#fff}.template-card>div{display:grid;gap:3px}.template-card>div strong{font-size:.875rem}.template-download{white-space:nowrap}.upload-block{padding:14px 15px;border:1px solid #e6ebf2;border-radius:12px;background:#fff}.upload-block input[type=file]{padding:10px;background:#f8fafc;border:1px dashed #c8d3e2;border-radius:9px}.upload-block .hint{line-height:1.7}.date-range-mode{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.date-range-mode .checkline{align-items:center}.date-range-mode input{accent-color:var(--blue)}.history-event{padding:11px 0;border-bottom:1px solid #eef1f5}.history-event:last-child{border-bottom:0}.history-event .history-row{margin-top:0}.history-diff{list-style:none;margin:9px 0 0;padding:9px 12px;background:#f8fafc;border-radius:9px;display:grid;gap:7px}.history-diff li{display:grid;grid-template-columns:100px minmax(0,1fr);gap:9px;font-size:.78rem;line-height:1.6}.history-diff li strong{color:#52627a}.history-diff li span{color:#77869a;overflow-wrap:anywhere}
@media(max-width:600px){.template-card{align-items:flex-start;flex-direction:column}.history-diff li{grid-template-columns:1fr;gap:1px}}

/* The entry sheet has a fixed frame; only its form body scrolls. */
html.entry-modal-open,html.entry-modal-open body{overflow:hidden;overscroll-behavior:none}
#modal.entry-dialog[open]{position:fixed;display:flex;flex-direction:column;inset:auto;left:50%;top:calc(var(--entry-viewport-top,0px) + var(--entry-viewport-height,100vh)/2);transform:translate(-50%,-50%);margin:0;width:700px;max-width:calc(100vw - 24px);height:min(780px,calc(var(--entry-viewport-height,100vh) - 24px));max-height:calc(var(--entry-viewport-height,100vh) - 24px);overflow:hidden}
.entry-dialog>.modal-head,.entry-dialog>.modal-foot{position:relative;flex:0 0 auto;background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;z-index:2}
.entry-dialog>.modal-head{padding:18px 22px;align-items:flex-start}
.entry-dialog .date-time-box{display:block;grid-column:1/-1;min-width:0;margin:0 0 18px;padding:12px 14px 14px;border:1px solid #dce3ed;border-radius:12px;background:#f8faff}
.entry-dialog .date-time-box legend{padding:0 6px;color:#3e4b5e;font-size:.875rem;font-weight:600}
.entry-dialog .date-time-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.entry-dialog .date-time-field{display:grid;gap:7px;min-width:0}
.entry-dialog .date-time-field>label{font-size:.8125rem;color:#59677a}
.entry-dialog .date-time-field input{width:100%;min-width:0;max-width:100%;min-inline-size:0;min-height:46px;padding:10px;border:1px solid #cbd3df;border-radius:8px;background:#fff;font-size:16px;color:#20242c}
.entry-dialog .date-time-field .hint{margin:0;font-size:.75rem;color:#59677a;line-height:1.5;overflow-wrap:anywhere}
.entry-dialog .modal-head>div{min-width:0;overflow-wrap:anywhere}
.entry-dialog .modal-head h2{font-size:1.2rem;line-height:1.4}
.entry-dialog .modal-head p{color:#59677a;line-height:1.5}
.entry-dialog .modal-head>button{min-height:44px;white-space:nowrap}
.entry-dialog>.modal-body{flex:1 1 auto;min-height:0;min-width:0;width:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:20px 22px;scroll-padding-block:16px}
.entry-dialog .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.entry-dialog .field{min-width:0;gap:8px;margin-bottom:18px}
.entry-dialog .field>label{font-size:.875rem;color:#3e4b5e;line-height:1.5;overflow-wrap:anywhere}
.entry-dialog .field .hint{font-size:.8125rem;color:#59677a;line-height:1.6;overflow-wrap:anywhere}
.entry-dialog input:not([type=checkbox]):not([type=file]),.entry-dialog select,.entry-dialog textarea{display:block;width:100%;min-width:0;max-width:100%;min-inline-size:0;min-height:46px;padding:11px 12px;font-size:16px;line-height:1.5;color:#20242c;border-color:#cbd3df;background-color:#fff}
.entry-dialog input::placeholder,.entry-dialog textarea::placeholder{color:#64748b;opacity:1}
.entry-dialog select{appearance:none;-webkit-appearance:none;padding-right:36px;background-image: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='%23465365' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat}
.entry-dialog textarea{min-height:82px;resize:vertical;overflow-wrap:anywhere}
.entry-dialog .counterparty-picker>input{padding-right:48px}
.entry-dialog .counterparty-toggle{height:46px}
.entry-dialog .counterparty-options{position:static;margin-top:6px;max-height:240px;max-height:min(240px,35dvh)}
.entry-dialog .filebox{position:relative;min-width:0;margin:0;padding:16px 12px;text-align:center;color:#1269bf;font-weight:600}
.entry-dialog .filebox:focus-within{outline:3px solid #88a7ff;outline-offset:2px}
.entry-dialog input[type=file]{position:absolute;width:1px;height:1px;min-height:0;padding:0;border:0;overflow:hidden;clip-path:inset(50%)}
.entry-dialog .queued-receipts,.entry-dialog .queued-receipt{min-width:0}
.entry-dialog>.modal-foot{padding:14px 22px;padding-bottom:max(14px,env(safe-area-inset-bottom));gap:10px;box-shadow:0 -4px 16px #26365006}
.entry-dialog .modal-foot button{min-height:46px;font-size:16px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
@media(max-width:760px),(max-width:1000px) and (pointer:coarse){#modal.entry-dialog[open]{max-width:calc(100vw - 16px);height:calc(var(--entry-viewport-height,100vh) - 16px);max-height:calc(var(--entry-viewport-height,100vh) - 16px);border-radius:16px}.entry-dialog .form-grid{grid-template-columns:minmax(0,1fr)}.entry-dialog .date-time-controls{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:10px}.entry-dialog .date-time-box{padding:10px 6px 12px}.entry-dialog .date-time-field input{padding:8px 3px}.entry-dialog .date-time-note{display:block;margin-top:8px;font-size:.75rem}.entry-dialog>.modal-head{padding:14px 16px;gap:12px}.entry-dialog>.modal-body{padding:16px}.entry-dialog>.modal-foot{padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.entry-dialog .modal-foot button{flex:1;min-width:0}}

[hidden]{display:none!important}
.import-kind-card{display:grid;gap:10px;padding:16px;margin:14px 0;border:1px solid var(--line);border-radius:14px;background:#f8faff;min-width:0}
.import-kind-card label{display:grid;gap:5px;font-size:.875rem}.import-kind-card label span{color:#58677a;overflow-wrap:anywhere}
.import-kind-card select{width:100%;min-width:0;max-width:100%;font-size:16px}
#import-file{max-width:100%;min-width:0;width:100%;font-size:14px}
#bill-kind-confirmation .notice{margin-bottom:10px}

/* Every phone view stays within the screen; wide tables become labelled cards. */
.member-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.deletion-note{margin-top:18px}
.modal-head>div,.field,.facts>div{min-width:0}
html.modal-open,html.modal-open body{overflow:hidden;overscroll-behavior:none}
@media(max-width:760px),(pointer:coarse){
 html,body{touch-action:pan-y;-webkit-text-size-adjust:100%;text-size-adjust:100%}
 button,a,input,select,textarea,dialog,.modal-body{touch-action:pan-y}
 input,select,textarea{font-size:16px}
}
@media(max-width:760px),(max-width:1000px) and (pointer:coarse){
 html,body{width:100%;max-width:100%;overflow-x:hidden;overscroll-behavior-x:none}
 #app,.app-shell,.main,.content,.panel,.login-page,.login-main,.auth-box{width:100%;min-width:0;max-width:100%}
 .sidebar{max-width:calc(100vw - 40px);overflow-x:hidden}
 .topbar{min-width:0;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));gap:8px}
 .topnote{min-width:0}.topnote .scope-badge{max-width:100%;white-space:normal;overflow-wrap:anywhere}
 .page-heading>div,.actions,.panel-title>*,.warning>span{min-width:0;max-width:100%;overflow-wrap:anywhere}
 .actions{width:100%;gap:8px}.actions button{flex:1 1 130px;min-width:0;white-space:normal}
 .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
 .card-value{font-size:clamp(1.05rem,4.4vw,1.35rem);white-space:normal;overflow-wrap:anywhere}
 .card-label{flex-wrap:wrap;line-height:1.5}
 .tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0 12px;gap:0 10px;overflow:visible}
 .tabs button{min-width:0;padding:13px 0;white-space:normal;font-size:.875rem}
 .table-wrap{overflow:visible;max-width:100%;min-width:0}
 .ledger-table .date,.money,.group-amount{white-space:normal;overflow-wrap:anywhere}
 .ledger-table td,.ledger-table .cell-detail{overflow-wrap:anywhere}
 .phone-table,.phone-table tbody{display:block;width:100%;min-width:0}
 .phone-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .phone-table tr{display:block;padding:14px 16px;border-bottom:1px solid var(--line)}
 .phone-table tr:last-child{border-bottom:0}
 .phone-table td{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;padding:6px 0;min-width:0;max-width:100%;border:0;text-align:left;white-space:normal;overflow-wrap:anywhere}
 .phone-table td::before{content:attr(data-label);font-size:.75rem;color:#687789;font-weight:400;line-height:1.7}
 .phone-table .cell-content{min-width:0;max-width:100%;overflow-wrap:anywhere}
 .pagination{flex-wrap:wrap;justify-content:center;text-align:center}.pagination>.muted{flex-basis:100%}
 .pagination .pages{gap:8px;max-width:100%;flex-wrap:wrap;justify-content:center}
 .form-grid,.entry-dialog .form-grid{grid-template-columns:minmax(0,1fr)}
 .field input:not([type=checkbox]):not([type=file]),.field select,.field textarea,.filebox:not([for=entry-receipts]) input{width:100%;max-width:100%;min-width:0;min-inline-size:0;font-size:16px}
 .entry-dialog input[type=file]{left:0;top:0;width:1px;height:1px;max-width:1px}
 .field input[type=date],.field input[type=time],.field input[type=month]{display:block;max-inline-size:100%;min-inline-size:0}
 .field input::-webkit-date-and-time-value{text-align:left;min-width:0}
 .form-row .field{min-width:0;flex:1 1 100%}.form-row>button{width:100%}
 #modal[open],#modal.entry-dialog[open]{position:fixed;display:flex;flex-direction:column;inset:auto;left:50%;top:calc(var(--entry-viewport-top,0px) + var(--entry-viewport-height,100dvh)/2);transform:translate(-50%,-50%);margin:0;width:calc(100% - 16px);min-width:0;max-width:calc(100% - 16px);height:auto;max-height:calc(var(--entry-viewport-height,100dvh) - 16px);overflow:hidden;border-radius:16px}
 #modal.entry-dialog[open]{height:calc(var(--entry-viewport-height,100dvh) - 16px)}
 #modal>.modal-head,#modal>.modal-foot{position:relative;flex:0 0 auto;min-width:0;padding:14px 16px;background:#fff;gap:10px}
 #modal>.modal-head{align-items:flex-start}#modal .modal-head>div{min-width:0;overflow-wrap:anywhere}
 #modal>.modal-body{flex:1 1 auto;min-width:0;min-height:0;width:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px;scroll-padding-block:12px;overflow-wrap:anywhere}
 #modal>.modal-foot{padding-bottom:max(12px,env(safe-area-inset-bottom));flex-wrap:wrap}
 #modal .modal-foot button{flex:1 1 105px;min-width:0;min-height:44px;white-space:normal;overflow-wrap:anywhere}
 #modal .modal-head h2{font-size:1.15rem;line-height:1.4}#modal .modal-head p{line-height:1.5}
 .facts{grid-template-columns:repeat(2,minmax(0,1fr))}.facts .money{white-space:normal}
 .receipt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.receipt-grid>a{min-width:0}
 .history-row{flex-direction:column;gap:4px;overflow-wrap:anywhere}
 .pick-users,.counterparty-options{overflow-x:hidden}.checkline{overflow-wrap:anywhere}
 .counterparty-options{max-width:100%}.counterparty-options button{min-width:0}
 #toast{max-width:calc(100% - 24px);overflow-wrap:anywhere;text-align:center}
}
