*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif;background:#f5f5f7;color:#1d1d1f;min-height:100vh;font-size:16px}.container{max-width:720px;margin:0 auto;padding:24px 16px 64px}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.header h1{font-size:24px;font-weight:700}.summary{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-bottom:24px}.summary-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.summary-card .label{font-size:13px;color:#6e6e73;margin-bottom:6px}.summary-card .amount{font-size:28px;font-weight:700;color:#1d1d1f}.summary-card .unit{font-size:14px;color:#6e6e73;margin-left:4px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title{font-size:17px;font-weight:600}.list{display:flex;flex-direction:column;gap:8px}.list-item{background:#fff;border-radius:12px;padding:16px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 3px rgba(0,0,0,.08)}.list-item .name{font-size:16px;font-weight:500}.list-item .date{font-size:13px;color:#6e6e73;margin-top:3px}.list-item .right{display:flex;align-items:center;gap:12px}.list-item .price{font-size:18px;font-weight:600;color:#1d1d1f;text-align:right}.list-item .price-sub{font-size:12px;color:#6e6e73;text-align:right}.btn-primary{background:#0071e3;color:#fff;border:none;border-radius:10px;padding:10px 18px;font-size:15px;font-weight:600;cursor:pointer}.btn-primary:hover{background:#0077ed}.btn-ghost{background:none;border:none;color:#6e6e73;cursor:pointer;padding:6px;border-radius:6px;font-size:14px}.btn-ghost:hover{background:#f5f5f7;color:#1d1d1f}.btn-danger{background:none;border:none;color:#ff3b30;cursor:pointer;padding:6px;border-radius:6px;font-size:14px}.btn-danger:hover{background:#fff0ef}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:flex-end;justify-content:center;z-index:100}.modal{background:#fff;border-radius:20px 20px 0 0;padding:28px 24px 40px;width:100%;max-width:720px}.modal-title{font-size:18px;font-weight:700;margin-bottom:20px}.form-group{margin-bottom:16px}.form-label{display:block;font-size:13px;color:#6e6e73;margin-bottom:6px;font-weight:500}.form-input{width:100%;border:1.5px solid #d2d2d7;border-radius:10px;padding:12px 14px;font-size:16px;outline:none;transition:border-color .2s;font-family:inherit}.form-input:focus{border-color:#0071e3}.form-select{width:100%;border:1.5px solid #d2d2d7;border-radius:10px;padding:12px 14px;font-size:16px;outline:none;background:#fff;font-family:inherit}.form-select:focus{border-color:#0071e3}.form-actions{display:flex;gap:10px;margin-top:24px}.btn-cancel{flex:1 1;background:#f5f5f7;color:#1d1d1f}.btn-cancel,.btn-save{border:none;border-radius:10px;padding:14px;font-size:16px;font-weight:600;cursor:pointer}.btn-save{flex:2 1;background:#0071e3;color:#fff}.btn-save:hover{background:#0077ed}.empty{text-align:center;padding:48px 24px;color:#6e6e73}.empty p{margin-top:8px;font-size:15px}.badge-soon{font-size:11px;background:#fff3cd;color:#856404;border-radius:6px;padding:2px 7px;margin-left:8px;font-weight:600}