.tn-label{color:var(--color-text-primary);margin-bottom:var(--space-2,.5rem);font-weight:600;display:block}.tn-help{margin:0 0 var(--space-2,.5rem);color:var(--color-text-secondary);font-size:.875rem}.tn-chips{margin:0 0 var(--space-4,1rem);border:0;min-width:0;padding:0}.tn-chip-row{gap:var(--space-2,.5rem);flex-wrap:wrap;display:flex}.tn-chip{border:1.5px solid var(--color-border-default);background:var(--color-bg-surface);min-height:44px;color:var(--color-text-primary);cursor:pointer;border-radius:999px;padding:.5rem .95rem;font-size:.9rem;transition:background-color .16s,border-color .16s,transform .16s}.tn-chip:hover{border-color:var(--color-primary)}.tn-chip.is-on{background:var(--color-primary);border-color:var(--color-primary);color:#fff;transform:scale(1.03)}.tn-chip:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tn-budget{margin:0 0 var(--space-5,1.25rem)}.tn-budget-head{justify-content:space-between;align-items:baseline;gap:var(--space-2,.5rem);flex-wrap:wrap;display:flex}.tn-budget-value{color:var(--color-primary);font-variant-numeric:tabular-nums;direction:ltr;font-size:1.15rem;font-weight:800;transition:color .2s}.tn-budget-track{height:44px;margin-top:var(--space-1,.25rem);position:relative}.tn-budget-track:before{content:"";inset-inline:0;background:var(--color-border-default);border-radius:999px;height:6px;position:absolute;top:50%;transform:translateY(-50%)}.tn-budget-fill{background:linear-gradient(90deg, var(--color-primary), var(--color-primary-bright,var(--color-primary)));border-radius:999px;height:6px;transition:left .18s cubic-bezier(.2,.8,.2,1),right .18s cubic-bezier(.2,.8,.2,1),width .18s cubic-bezier(.2,.8,.2,1);position:absolute;top:50%;transform:translateY(-50%)}.tn-budget-track input[type=range]{pointer-events:none;appearance:none;background:0 0;width:100%;height:44px;margin:0;position:absolute;inset:0}.tn-budget-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;border:3px solid var(--color-primary);cursor:grab;background:#fff;border-radius:50%;width:26px;height:26px;transition:transform .15s;box-shadow:0 2px 8px #0000002e}.tn-budget-track input[type=range]::-moz-range-thumb{pointer-events:auto;border:3px solid var(--color-primary);cursor:grab;background:#fff;border-radius:50%;width:22px;height:22px}.tn-budget-track input[type=range]:active::-webkit-slider-thumb{cursor:grabbing;transform:scale(1.18)}.tn-budget-track input[type=range]:focus-visible::-webkit-slider-thumb{outline:3px solid color-mix(in srgb, var(--color-primary) 35%, transparent)}.tn-budget-hint{margin:var(--space-1,.25rem) 0 0;color:var(--color-text-secondary);min-height:1.3em;font-size:.875rem}.tn-needs{margin:0 0 var(--space-4,1rem);border:0;min-width:0;padding:0}.tn-needs-count{background:var(--color-bg-elevated);color:var(--color-text-secondary);border-radius:999px;padding:.1rem .5rem;font-size:.8rem;font-weight:700;transition:background-color .2s,color .2s}.tn-needs-count.is-ok{background:var(--badge-success-bg);color:var(--badge-success-color)}.tn-needs-list{gap:var(--space-2,.5rem);counter-reset:need;margin:0;padding:0;list-style:none;display:grid}.tn-need{align-items:center;gap:var(--space-2,.5rem);counter-increment:need;display:flex}.tn-need:before{content:counter(need);text-align:center;width:1.6rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex:none;font-weight:700}.tn-need-input{border-radius:var(--radius-md);border:1.5px solid var(--color-border-default);background:var(--color-bg-surface);min-width:0;min-height:44px;color:var(--color-text-primary);flex:1;padding:.55rem .8rem;font-size:.95rem}.tn-need-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 18%, transparent);outline:none}.tn-need-remove{border-radius:var(--radius-md);width:44px;height:44px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;flex:none;font-size:1.3rem}.tn-need-remove:hover{color:var(--color-text-primary);background:var(--color-bg-elevated)}.tn-need-add{margin-top:var(--space-2,.5rem);border-radius:var(--radius-md);border:1.5px dashed var(--color-border-default);min-height:44px;color:var(--color-primary);cursor:pointer;background:0 0;padding:0 .9rem;font-weight:600}@media (prefers-reduced-motion:reduce){.tn-chip,.tn-budget-fill,.tn-budget-value,.tn-needs-count{transition:none}.tn-budget-track input[type=range]::-webkit-slider-thumb{transition:none}.tn-chip.is-on{transform:none}}