.budget-tool{max-width:880px;margin:24px auto 70px}.bl-heading{padding:18px 0 24px}.bl-heading h1{font-size:clamp(25px,6vw,40px);line-height:1.4;letter-spacing:.02em}.bl-heading .intro{font-size:19px;line-height:1.9}.bl-help{background:#eeeae0;border-radius:14px;padding:20px;margin:20px 0;line-height:1.85}.bl-help p{margin:8px 0}.bl-help summary{cursor:pointer;font-weight:bold;min-height:44px;display:flex;align-items:center}.bl-help ul{padding-left:1.2em}.bl-help li a{display:inline-block;min-height:36px;padding:6px 0}
.bl-budget,.bl-phase{min-width:0;margin:18px 0;border:1px solid #c9c7bb;border-radius:14px;padding:20px;background:#fffef9}.bl-budget legend,.bl-phase legend{font-size:19px;font-weight:700;padding:0 8px}.bl-lead{line-height:1.8;font-size:14px;margin:0 0 8px}
.budget-tool label{display:block;font-size:14px;font-weight:600}.budget-tool input:not([type=file]),.budget-tool select{display:block;width:100%;box-sizing:border-box;min-height:46px;background:white;color:#242b25;border:1px solid #8f8f86;border-radius:7px;padding:8px 10px;font:16px/1.5 sans-serif;margin-top:6px}.budget-tool input:focus,.budget-tool select:focus,.budget-tool button:focus-visible,.budget-tool a:focus-visible{outline:3px solid #9cba9d;outline-offset:2px}
.bl-presets{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.bl-preset,.bl-actions button,.bl-secondary,.bl-remove{border:1px solid #375e48;border-radius:9px;background:#375e48;color:#fff;padding:10px 16px;min-height:46px;min-width:46px;font:600 15px/1.5 sans-serif;cursor:pointer}.bl-preset{background:transparent;color:#375e48}.bl-secondary,.bl-remove{background:transparent;color:#375e48}
.bl-summary{position:sticky;top:0;z-index:4;background:#fffef9;border:2px solid #375e48;border-radius:14px;padding:14px 18px;margin:18px 0;box-shadow:0 4px 14px rgba(36,43,37,.12)}.bl-sum-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px}.bl-sum-label{font-size:13px;font-weight:700;color:#375e48}#bl-remain{font-size:clamp(20px,5.5vw,28px);line-height:1.4}#bl-remain.over{color:#a3261c}.bl-meter{height:8px;border-radius:99px;background:#e3e0d3;margin:8px 0 10px;overflow:hidden}.bl-meter span{display:block;height:100%;width:0;background:#375e48;transition:width .25s}.bl-meter.over span{background:#a3261c}.bl-sum-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0}.bl-sum-grid div{min-width:0}.bl-sum-grid dt{font-size:11px;color:#55594f}.bl-sum-grid dd{margin:2px 0 0;font-weight:700;font-size:15px;overflow-wrap:anywhere}
.bl-list{list-style:none;margin:0;padding:0}.bl-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr);gap:8px 14px;align-items:end;padding:14px 0;border-top:1px solid #e3e0d3}.bl-row:first-child{border-top:0}.bl-name{display:flex;flex-direction:column;gap:2px;min-width:0}.bl-name span{font-size:13px;line-height:1.7;color:#55594f}.bl-guide{font-size:13px;display:inline-flex;align-items:center;min-height:36px;width:fit-content;text-decoration:underline}.bl-row[data-state=buy]{background:linear-gradient(90deg,#eef4ec,transparent 60%)}.bl-row[data-state=skip] .bl-name strong{text-decoration:line-through;color:#6b6f66}.bl-custom-name{grid-column:1/-1}.bl-custom-name input{margin-top:6px}.bl-remove{grid-column:1/-1;justify-self:start}
.bl-actions{display:flex;flex-wrap:wrap;gap:10px;padding:16px 0}#bl-status{font-size:14px;line-height:1.8;min-height:2em}
@media(max-width:650px){.bl-row{grid-template-columns:1fr 1fr}.bl-name{grid-column:1/-1}.bl-budget,.bl-phase{padding:16px}.bl-help{padding:16px}.bl-actions button{flex:1 1 45%}.bl-summary{padding:10px 14px}.bl-sum-grid dd{font-size:14px}}
@media print{.site-header,.site-footer,.pr-bar,.breadcrumb,.bl-actions,.bl-help,.bl-presets,.bl-add,#bl-add,#bl-status,.search-dialog,.back-top,.bl-guide,.bl-remove{display:none!important}.wrap{max-width:none;margin:0;padding:0}.budget-tool{margin:0;max-width:none}.bl-summary{position:static;box-shadow:none}.bl-phase,.bl-budget{break-inside:avoid;border-color:#999}.bl-row{break-inside:avoid}.budget-tool select,.budget-tool input{border:0;padding:0;min-height:0}}
