:root{--line-green:#06c755;--line-green-active:#05a949;--line-text:#1e1e1e;--line-sub:#8e8e93;--line-bg:#f6f6f6;--line-border:#e5e5e5;--line-red:#ff334b;--line-blue:#3b82f6;--white:#fff;--font-family-base:-apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif}*{box-sizing:border-box}html,body{background:var(--line-bg);font-family:var(--font-family-base);color:var(--line-text);margin:0;padding:0}.app-header{background:var(--white);border-bottom:1px solid var(--line-border);flex:none;align-items:center;gap:4px;height:52px;padding:0 8px;display:flex}.app-header .back-btn{width:36px;height:36px;color:var(--line-text);border-radius:50%;justify-content:center;align-items:center;font-size:20px;text-decoration:none;display:flex}.app-header .close-btn{width:36px;height:36px;color:var(--line-text);justify-content:center;align-items:center;margin-left:auto;font-size:20px;text-decoration:none;display:flex}.app-header h1{margin:0;font-size:17px;font-weight:700}.app-content{padding:14px}.card{background:var(--white);border-radius:12px;margin-bottom:12px;padding:14px;box-shadow:0 1px 3px #0000000f}.card-link{color:inherit;text-decoration:none;display:block}.card-row{justify-content:space-between;align-items:center;display:flex}.card-title{margin:0 0 4px;font-size:15px;font-weight:700}.card-sub{color:var(--line-sub);font-size:12px}.badge{border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;line-height:1.6;display:inline-block}.badge-progress{color:var(--line-green-active);background:#e6f7ec}.badge-settled{color:var(--line-blue);background:#e8f0fe}.badge-deleted{color:#888;background:#f1f1f1}.empty-state,.error-state{text-align:center;color:var(--line-sub);padding:60px 20px}.error-state p{color:#b04350}.btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:12px 16px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.btn-primary{background:var(--line-green);color:#fff}.btn-primary:active{background:var(--line-green-active)}.btn-outline{color:#555;background:#fff;border:1px solid #ccc}.btn-text{color:var(--line-green-active);background:0 0;padding:8px;font-weight:600}.btn~.btn{margin-top:8px}.fab{background:var(--line-green);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:28px;text-decoration:none;display:flex;position:fixed;bottom:24px;right:18px;box-shadow:0 4px 12px #06c75566}.modal-sheet{background:#fff;border-radius:16px 16px 0 0;padding:16px}.modal-sheet-body{display:block}.field{margin-bottom:16px}.field input[type=text],.field input[type=date],.field input[type=number],.field select{border:1px solid var(--line-border);background:#fff;border-radius:8px;width:100%;padding:12px;font-family:inherit;font-size:15px}.field.has-error input{border-color:var(--line-red)}.check-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.check-row:last-child{border-bottom:none}.amount-input{border:1px solid var(--line-border);text-align:right;border-radius:6px;width:96px;padding:8px;font-size:14px}.error-text{color:var(--line-red);margin-top:4px;font-size:12px}.hint{color:#999;margin-top:4px;font-size:11px}.btn-secondary{color:var(--line-green-active);border:1px solid var(--line-green);background:#fff}.btn-danger{color:var(--line-red);background:#fff;border:1px solid #f3c1c8}.btn-sm{width:auto;padding:8px 12px;font-size:13px}.badge-host{color:var(--line-green-active);border:1px solid var(--line-green);background:#fff}.badge-linked{background:var(--line-green);color:#fff}.badge-unlinked{color:#999;background:#fff;border:1px solid #ccc}.avatar{background:linear-gradient(135deg,#b6e3c9,#7fd1a3);border-radius:50%;flex:none;width:36px;height:36px}.avatar-placeholder{background:#eee;border:1px dashed #ccc}.banner-deleted{color:#a8323f;background:#fdecee;border:1px solid #f5c6cb;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:13px;font-weight:700}.accordion-toggle{cursor:pointer;color:#555;text-align:left;background:0 0;border:none;width:100%;margin-top:8px;padding:0;font-size:13px}.accordion-body{border-top:1px dashed #eee;margin-top:10px;padding-top:10px;padding-left:0;list-style:none}.accordion-row{color:#555;justify-content:space-between;padding:4px 0;font-size:13px;display:flex}
