*{box-sizing:border-box;margin:0;padding:0}body{color:#29251f;font-feature-settings:"palt" 1, "tnum" 1;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f6f3ed;min-height:100vh;font-family:Segoe UI,Noto Sans JP,Yu Gothic UI,Hiragino Sans,Meiryo,sans-serif}#root{min-height:100vh}.btn-primary{color:#fff;cursor:pointer;background:#2f5d50;border:1px solid #2f5d50;border-radius:6px;padding:12px 24px;font-size:16px;font-weight:600;transition:background .2s}.btn-primary:hover{background:#24483e}.btn-primary:disabled{cursor:not-allowed;background:#9a958d;border-color:#9a958d}.btn-secondary{color:#2f5d50;cursor:pointer;background:#fffdf8;border:1px solid #9db1a9;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .2s}.btn-secondary:hover{background:#eef3ef;border-color:#2f5d50}.btn-back{color:#5f5a51;cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:14px}.btn-back:hover{text-decoration:underline}.error-text{color:#e53e3e;margin-top:4px;font-size:14px}.loading,.not-found{color:#666;flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100vh;display:flex}.site-brand{align-items:center;line-height:1;text-decoration:none;display:inline-flex}.site-brand-logo{width:min(136px,38vw);height:auto;display:block}.site-brand:hover{opacity:.82}.app-footer{justify-content:center;padding:10px 0 0;display:flex}.app-footer .site-brand-logo{opacity:.88;width:min(124px,36vw)}.home-container{flex-direction:column;align-items:center;gap:18px;min-height:100vh;padding:28px 20px 40px;display:flex}.home-card{text-align:left;background:#fffdf8;border:1px solid #ddd6ca;border-radius:8px;width:100%;max-width:420px;padding:36px 32px;box-shadow:0 1px 2px #29251f0d}.home-card h1{color:#29251f;margin-bottom:12px;font-size:30px;font-weight:700}.home-card p{color:#5f5a51;margin-bottom:28px;line-height:1.6}.home-card .btn-primary{width:100%;padding:14px;font-size:18px}.sessions-list-card{background:#fffdf8;border:1px solid #ddd6ca;border-radius:8px;width:100%;max-width:420px;padding:24px;box-shadow:0 1px 2px #29251f0d}.sessions-list-card h2{color:#504a42;margin-bottom:14px;font-size:16px;font-weight:700}.sessions-list{flex-direction:column;gap:8px;list-style:none;display:flex}.session-item{background:#f8f4eb;border:1px solid #ebe3d6;border-radius:6px;justify-content:space-between;align-items:center;padding:12px 14px;text-decoration:none;transition:background .15s;display:flex}.session-item:hover{background:#eef3ef;border-color:#c4d0ca}.session-members{color:#29251f;font-size:15px;font-weight:600}.session-expire{color:#817a70;white-space:nowrap;margin-left:8px;font-size:12px}.new-session-container{flex-direction:column;justify-content:center;align-items:flex-start;min-height:100vh;padding:32px 20px;display:flex}.new-session-container .new-session-card,.new-session-container .app-footer{align-self:center}.new-session-card{background:#fffdf8;border:1px solid #ddd6ca;border-radius:8px;flex-direction:column;gap:16px;width:100%;max-width:480px;padding:32px;display:flex;box-shadow:0 1px 2px #29251f0d}.new-session-card h1{color:#29251f;font-size:24px;font-weight:700}.new-session-card>p{color:#5f5a51;font-size:14px}.members-list{flex-direction:column;gap:10px;display:flex}.member-row{align-items:center;gap:8px;display:flex}.member-row input{color:#29251f;background:#fffefa;border:1px solid #cfc7ba;border-radius:6px;outline:none;flex:1;padding:10px 12px;font-size:15px;transition:border-color .2s}.member-row input:focus{border-color:#2f5d50}.btn-remove{color:#817a70;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px;font-size:16px}.btn-remove:hover{color:#b33a2e;background:#f8eae6}.new-session-card .btn-primary{width:100%;margin-top:4px;padding:14px}.session-container{flex-direction:column;gap:20px;max-width:640px;margin:0 auto;padding:24px 20px 60px;display:flex}.session-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.session-header h1{color:#29251f;order:3;width:100%;font-size:20px;font-weight:700}.btn-share{color:#fff;cursor:pointer;white-space:nowrap;background:#2f5d50;border:1px solid #2f5d50;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .2s}.btn-share:hover{background:#24483e}.url-display{background:#fffdf8;border:1px solid #ddd6ca;border-radius:6px;align-items:center;gap:8px;padding:10px 16px;display:flex;box-shadow:0 1px 2px #29251f0d}.url-text{color:#5f5a51;word-break:break-all;font-size:13px}.members-summary{background:#fffdf8;border:1px solid #ddd6ca;border-radius:8px;padding:16px 20px;box-shadow:0 1px 2px #29251f0d}.members-summary h2{color:#504a42;margin-bottom:8px;font-size:16px;font-weight:600}.session-meta{color:#817a70;flex-wrap:wrap;gap:16px;margin-bottom:10px;font-size:12px;display:flex}.member-chips{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.btn-remove-member{color:#817a70;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:13px;line-height:1}.btn-remove-member:hover{color:#b33a2e}.add-member-row{gap:8px;margin-top:4px;display:flex}.add-member-input{background:#fffefa;border:1px solid #cfc7ba;border-radius:6px;outline:none;flex:1;padding:8px 12px;font-size:14px}.add-member-input:focus{border-color:#2f5d50}.btn-add-member{color:#fff;cursor:pointer;white-space:nowrap;background:#2f5d50;border:1px solid #2f5d50;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:600}.btn-add-member:hover{background:#24483e}.btn-add-member:disabled{opacity:.6;cursor:default}.chip{color:#2f5d50;background:#eef3ef;border:1px solid #c4d0ca;border-radius:999px;align-items:center;gap:4px;padding:4px 12px;font-size:14px;font-weight:500;display:inline-flex}.section{background:#fffdf8;border:1px solid #ddd6ca;border-radius:8px;flex-direction:column;gap:14px;padding:20px;display:flex;box-shadow:0 1px 2px #29251f0d}.section-header{justify-content:space-between;align-items:center;display:flex}.btn-list-edit{color:#2f5d50;cursor:pointer;background:0 0;border:1px solid #9db1a9;border-radius:6px;padding:5px 14px;font-size:13px;font-weight:600;transition:background .15s}.btn-list-edit:hover{background:#eef3ef;border-color:#2f5d50}.btn-list-edit-done{color:#fff;cursor:pointer;background:#2f5d50;border:1px solid #2f5d50;border-radius:6px;padding:5px 14px;font-size:13px;font-weight:600;transition:background .15s}.btn-list-edit-done:hover{background:#24483e}.section h2{color:#29251f;font-size:18px;font-weight:700}.payment-form{background:#f8f4eb;border:1px solid #ebe3d6;border-radius:6px;flex-direction:column;gap:10px;padding:16px;display:flex}.payment-form select,.payment-form input{background:#fffefa;border:1px solid #cfc7ba;border-radius:6px;outline:none;width:100%;padding:10px 12px;font-size:15px}.payment-form select:focus,.payment-form input:focus{border-color:#2f5d50}.payment-form .btn-primary{padding:10px}.empty-text{color:#817a70;text-align:center;padding:12px 0;font-size:14px}.payments-table,.summary-table{border-collapse:collapse;width:100%;font-size:14px}.payments-table th,.summary-table th{text-align:left;color:#6b645b;background:#f8f4eb;border-bottom:1px solid #ddd6ca;padding:8px 10px;font-weight:600}.payments-table td,.summary-table td{vertical-align:middle;border-bottom:1px solid #eee7db;padding:10px}.payments-table tr:last-child td,.summary-table tr:last-child td{border-bottom:none}td.amount{text-align:right;font-weight:600}td.positive{color:#2f6c52;text-align:right;font-weight:600}td.negative{color:#b33a2e;text-align:right;font-weight:600}.row-actions{white-space:nowrap;gap:4px;display:flex}.btn-edit{color:#2f5d50;cursor:pointer;background:0 0;border:1px solid #cfc7ba;border-radius:6px;padding:4px 10px;font-size:12px}.btn-edit:hover{background:#eef3ef;border-color:#2f5d50}.btn-delete{color:#817a70;cursor:pointer;background:0 0;border:1px solid #cfc7ba;border-radius:6px;padding:4px 10px;font-size:12px}.btn-delete:hover{color:#b33a2e;background:#f8eae6;border-color:#b33a2e}.edit-select,.edit-input{border:1px solid #2f5d50;border-radius:6px;outline:none;width:100%;padding:4px 8px;font-size:13px}.edit-amount{width:80px}.edit-actions{white-space:nowrap;flex-direction:column;align-items:flex-end;gap:4px;display:flex}.btn-save{color:#fff;cursor:pointer;background:#2f5d50;border:1px solid #2f5d50;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600}.btn-save:hover{background:#24483e}.btn-save:disabled{opacity:.6;cursor:default}.btn-cancel-edit{color:#817a70;cursor:pointer;background:0 0;border:1px solid #cfc7ba;border-radius:6px;padding:4px 8px;font-size:12px}.btn-cancel-edit:hover{color:#b33a2e;border-color:#b33a2e}.total-label{color:#5f5a51;font-size:15px}.settlements-list{flex-direction:column;gap:10px;list-style:none;display:flex}.settlement-item{background:#f8f4eb;border:1px solid #ebe3d6;border-radius:6px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}.debtor{color:#b33a2e;font-weight:600}.arrow{color:#817a70}.creditor{color:#2f6c52;font-weight:600}.settlement-amount{color:#29251f;margin-left:auto;font-size:16px;font-weight:700}.btn-paypay{color:#fff;white-space:nowrap;background:#eb0000;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:700;text-decoration:none;transition:background .2s;display:inline-block}.btn-paypay:hover{background:#c50000}.image-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.image-modal{background:#fffdf8;border-radius:8px;flex-direction:column;width:100%;max-width:100%;max-height:90dvh;display:flex;overflow:hidden}.image-modal-header{border-bottom:1px solid #ddd6ca;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.image-modal-title{color:#504a42;font-size:14px;font-weight:600}.image-modal-close{cursor:pointer;color:#504a42;background:#eee7db;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;display:flex}.image-modal-close:hover{background:#ddd6ca}.image-modal-img{width:100%;height:auto;display:block;overflow-y:auto}.capture-area{flex-direction:column;gap:20px;display:flex}.save-image-row{justify-content:center;display:flex}.btn-save-image{color:#fff;cursor:pointer;touch-action:manipulation;background:#8a6f3d;border:1px solid #8a6f3d;border-radius:6px;padding:12px 28px;font-size:15px;font-weight:700;transition:background .2s}.btn-save-image:hover{background:#70572f}.btn-save-image:disabled{opacity:.6;cursor:default}.section-delete{justify-content:center;padding:8px 0 16px;display:flex}.btn-delete-session{color:#817a70;cursor:pointer;background:0 0;border:1px solid #cfc7ba;border-radius:8px;padding:10px 24px;font-size:14px;transition:all .2s}.btn-delete-session:hover{color:#b33a2e;background:#f8eae6;border-color:#b33a2e}.advance-checkbox-label{color:#504a42;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:14px;display:flex}.advance-checkbox-label input[type=checkbox]{accent-color:#f6ad55;cursor:pointer;width:16px;height:16px}.advance-checkbox-small{font-size:12px}.advance-description{color:#817a70;margin:0;font-size:12px}.advance-badge{color:#8a6f3d;white-space:nowrap;background:#fff2c8;border:1px solid #ead58b;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.payment-description-cell{flex-direction:column;gap:3px;display:flex}.edit-description-cell{flex-direction:column;gap:4px;display:flex}.amount-row{align-items:stretch;gap:8px;display:flex}.amount-row input{flex:1}.btn-calc{color:#fff;cursor:pointer;white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#2f5d50;border:1px solid #2f5d50;border-radius:6px;padding:10px 16px;font-size:14px;font-weight:600;transition:background .2s}.btn-calc:hover{background:#24483e}.calc-expr-preview{color:#6b645b;background:#eef3ef;border-radius:6px;padding:4px 10px;font-size:12px}.btn-show-expr{color:#2f5d50;cursor:pointer;text-align:right;background:0 0;border:none;width:100%;padding:2px 0;font-size:11px;text-decoration:underline;display:block}.btn-show-expr:hover{color:#24483e}.expr-detail{color:#6b645b;text-align:right;word-break:break-all;background:#eef3ef;border-radius:4px;margin-top:2px;padding:3px 6px;font-size:11px}.calc-overlay{z-index:1000;background:#29251f85;justify-content:center;align-items:flex-end;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.calc-modal{background:#fffdf8;border:1px solid #ddd6ca;border-radius:12px 12px 0 0;width:100%;max-width:400px;padding:20px 16px 32px;animation:.2s slideUp}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.calc-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.calc-title{color:#29251f;font-size:16px;font-weight:700}.calc-close{cursor:pointer;color:#504a42;background:#eee7db;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;display:flex}.calc-close:hover{background:#ddd6ca}.calc-display{background:#f8f4eb;border:1px solid #ebe3d6;border-radius:8px;flex-direction:column;align-items:flex-end;gap:4px;min-height:64px;margin-bottom:12px;padding:14px 16px;display:flex}.calc-base-expr{color:#817a70;text-align:right;word-break:break-all;font-size:13px}.calc-expr{color:#29251f;word-break:break-all;text-align:right;font-size:20px;font-weight:500}.calc-result{color:#2f5d50;min-height:20px;font-size:14px;font-weight:600}.calc-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.calc-btn{cursor:pointer;color:#29251f;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:#f8f4eb;border:1px solid #ebe3d6;border-radius:6px;height:56px;font-size:18px;font-weight:500;transition:background .1s}.calc-btn:hover{background:#eee7db}.calc-btn:active{background:#ddd6ca}.calc-btn-wide{grid-column:span 2}.calc-btn-func{color:#2f5d50;background:#eef3ef;font-size:16px}.calc-btn-func:hover{background:#dfe8e3}.calc-btn-op{color:#2c665f;background:#edf4f3}.calc-btn-op:hover{background:#d8e7e5}.calc-btn-paren{color:#8a6f3d;background:#fff2c8}.calc-btn-paren:hover{background:#f3df9f}.calc-btn-eval{color:#2f5d50;background:#eef3ef}.calc-btn-eval:hover{background:#dfe8e3}.calc-btn-confirm{color:#fff;background:#2f5d50;font-size:14px;font-weight:700}.calc-btn-confirm:hover:not(:disabled){background:#24483e}.calc-btn-confirm:disabled{opacity:.4;cursor:default}
