:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.45;color:#25202a;background:#f7f4f6;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0}.shell{min-height:100vh;display:flex}.sidebar{width:240px;background:#fff;border-right:1px solid #e7e0e6;padding:24px 16px;position:sticky;top:0;height:100vh}.brand{font-size:20px;font-weight:800;padding:4px 10px 24px}.brand span{font-size:24px}.nav button{width:100%;border:0;background:transparent;text-align:left;padding:11px 12px;border-radius:10px;font-size:15px;color:#5e5660;cursor:pointer}.nav button.active,.nav button:hover{background:#f1e8ef;color:#6b2d5c;font-weight:700}.add{margin:16px 0;border:0;border-radius:12px;padding:13px;width:100%;font-weight:800;background:#6b2d5c;color:white;cursor:pointer}.main{flex:1;min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid #e7e0e6;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:5}.search{width:min(440px,45vw);border:1px solid #ddd4dc;border-radius:10px;padding:10px 13px;font-size:14px}.content{max-width:1180px;margin:0 auto;padding:28px}.title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.title{font-size:28px;font-weight:850;margin:0}.year{border:1px solid #d9ced7;border-radius:9px;padding:8px 10px;background:white}.quick{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.quick button,.btn{border:1px solid #d8cdd6;background:#fff;padding:10px 13px;border-radius:10px;cursor:pointer;font-weight:700}.quick button.primary,.btn.primary{background:#6b2d5c;color:#fff;border-color:#6b2d5c}.grid-card{background:#fff;border:1px solid #e8e0e6;border-radius:16px;overflow:hidden;margin-bottom:20px}.card-head{padding:16px 18px;border-bottom:1px solid #eee7ec;font-weight:800}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:13px 16px;text-align:right;border-bottom:1px solid #f0eaee;white-space:nowrap}.table th:first-child,.table td:first-child{text-align:left}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#817783}.table tr.clickable{cursor:pointer}.table tr.clickable:hover{background:#fbf8fa}.total{font-weight:850;background:#faf7f9}.muted{color:#817783}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:750;background:#f1e8ef;color:#6b2d5c}.pill.green{background:#e9f6ed;color:#21633b}.pill.yellow{background:#fff6dc;color:#765b00}.pill.gray{background:#f0eef0;color:#665f66}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat{background:#fff;border:1px solid #e8e0e6;border-radius:14px;padding:16px}.stat .label{font-size:12px;color:#817783;text-transform:uppercase}.stat .value{font-size:23px;font-weight:850;margin-top:5px}.section-title{font-size:18px;font-weight:850;margin:28px 0 12px}.list{display:flex;flex-direction:column}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #eee7ec}.row:last-child{border-bottom:0}.row.clickable{cursor:pointer}.row.clickable:hover{background:#fbf8fa}.empty{padding:28px;color:#817783;text-align:center}.modal-backdrop{position:fixed;inset:0;background:rgba(24,17,23,.45);display:flex;align-items:center;justify-content:center;padding:20px;z-index:20}.modal{background:#fff;border-radius:18px;max-width:620px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 24px 70px rgba(0,0,0,.2)}.modal-head{padding:18px 20px;border-bottom:1px solid #eee7ec;display:flex;justify-content:space-between;align-items:center}.modal-body{padding:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:13px;font-weight:750;color:#5f5660}.field input,.field select,.field textarea{width:100%;border:1px solid #d9ced7;border-radius:9px;padding:10px 11px;font:inherit;background:#fff}.field textarea{min-height:90px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:18px}.check{display:flex;gap:8px;align-items:center;margin-top:4px}.check input{width:auto;margin:0;flex:0 0 auto}.check span{display:inline-block}.toast{position:fixed;right:20px;bottom:20px;background:#282129;color:#fff;padding:12px 16px;border-radius:10px;z-index:30}.mobile-nav{display:none}@media(max-width:800px){.sidebar{display:none}.topbar{padding:0 14px}.search{width:58vw}.content{padding:18px 14px 90px}.cards{grid-template-columns:1fr 1fr}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e7e0e6;z-index:10;justify-content:space-around;padding:7px}.mobile-nav button{border:0;background:none;font-size:11px;color:#665f66;padding:5px}.mobile-nav button.active{color:#6b2d5c;font-weight:800}.form-grid{grid-template-columns:1fr}.title{font-size:24px}.table th,.table td{padding:11px 10px}}
.target-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.target-list{display:flex;flex-direction:column}
.target-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1.5fr) auto;gap:14px;align-items:center;padding:14px 16px;border-bottom:1px solid #eee7ec}
.target-row:last-child{border-bottom:0}
.target-track{height:10px;background:#eee8ec;border-radius:999px;overflow:hidden}
.target-fill{height:100%;background:#6b2d5c;border-radius:999px}
.target-fill.over{background:#b45309}
.dashboard-secondary{margin-top:14px}
@media(max-width:800px){.target-row{grid-template-columns:1fr auto}.target-track{grid-column:1/-1}.target-title-row{align-items:flex-start}}

.target-title{margin:0;font-size:20px}
.overall-target-shell{margin:28px 0 20px}
.overall-target-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.overall-target-card{background:linear-gradient(180deg,#fff 0%,#fbf7fa 100%);border:1px solid #e3d7e0;border-radius:18px;padding:22px 24px;box-shadow:0 8px 24px rgba(72,43,64,.06)}
.overall-target-summary{display:flex;align-items:center;justify-content:space-between;gap:24px}
.overall-target-main{min-width:190px}
.target-kicker{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#817783;font-weight:800}
.target-big{font-size:36px;line-height:1.1;font-weight:900;color:#6b2d5c;margin-top:6px}
.overall-target-stats{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:18px;flex:1}
.overall-target-stats>div{padding-left:18px;border-left:1px solid #e7dfe6}
.overall-target-stats span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#817783}
.overall-target-stats strong{display:block;font-size:22px;margin-top:5px}
.overall-progress-row{display:flex;align-items:center;gap:12px;margin-top:22px}
.overall-progress-row .target-track{flex:1;height:12px}
.overall-progress-row>span{font-size:12px;font-weight:800;color:#6b2d5c;min-width:62px;text-align:right}
.over-text{color:#b45309}
@media(max-width:800px){.overall-target-head{flex-direction:column}.overall-target-summary{flex-direction:column;align-items:stretch}.overall-target-main{min-width:0}.overall-target-stats{grid-template-columns:repeat(3,1fr);gap:10px}.overall-target-stats>div{padding-left:10px}.target-big{font-size:32px}}

.overall-target-empty{display:flex;align-items:center;gap:16px;background:#fff;border:1px dashed #cdbdca;border-radius:18px;padding:20px 24px;box-shadow:0 6px 18px rgba(72,43,64,.04)}
.overall-target-empty-icon{width:42px;height:42px;border-radius:12px;background:#f6eef4;display:flex;align-items:center;justify-content:center;font-size:20px;flex:0 0 42px}
.overall-target-empty-title{font-size:17px;font-weight:800;margin-bottom:3px}
@media(max-width:800px){.overall-target-empty{align-items:flex-start;padding:18px}}

.check input{width:auto !important;flex:0 0 auto;margin:0;}
.check{display:flex;align-items:center;gap:8px;width:max-content;}
.check span{display:inline-block;line-height:1.2;}

.compare-toolbar{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(160px,.7fr) auto;gap:14px;align-items:end;margin-bottom:18px}
.compare-control{display:flex;flex-direction:column;gap:6px}
.compare-control label{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#817783;font-weight:800}
.compare-control select{border:1px solid #d9ced7;border-radius:9px;padding:10px 11px;background:#fff;font:inherit}
.compare-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.compare-picker .card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.compare-people{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:16px}
.compare-person{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:9px;align-items:center;border:1px solid #e8e0e6;border-radius:12px;padding:11px 12px;cursor:pointer;background:#fff}
.compare-person:hover{background:#fbf8fa}
.compare-person input{grid-row:1/3;width:auto;margin:0}
.compare-person span{font-weight:750}
.compare-person small{color:#817783;margin-top:2px}
.btn.danger{color:#a63b32;border-color:#e1b8b4;background:#fff8f7}
.btn.danger:hover{background:#fff0ee}
@media(max-width:900px){.compare-toolbar{grid-template-columns:1fr 1fr}.compare-actions{grid-column:1/-1;justify-content:flex-start}.compare-people{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.compare-toolbar{grid-template-columns:1fr}.compare-people{grid-template-columns:1fr}.compare-actions{grid-column:auto}}

.price-watch-row{align-items:center}
.price-watch-row>div:first-child{min-width:0}
.price-watch-meta{margin-top:5px;font-size:12px;color:#817783}
.price-watch-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.price-watch-count{font-size:12px;margin-right:3px}
.price-observation-list{border:1px solid #eee7ec;border-radius:12px;overflow:hidden}
.price-observation{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border-bottom:1px solid #eee7ec;background:#fff}
.price-observation:last-child{border-bottom:0}
.price-observation>div:last-child{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.price-watch-row .btn.primary{background:#6b2d5c;border-color:#6b2d5c;color:#fff}
@media(max-width:800px){.price-watch-row{align-items:flex-start}.price-watch-actions{justify-content:flex-start}.price-watch-count{width:100%;margin:0 0 2px}}

.catalog-search{margin-bottom:14px}.catalog-search input{width:100%;border:1px solid #d9ced7;border-radius:10px;padding:11px 13px;font:inherit;background:#fff}.catalog-row{align-items:flex-start}.catalog-notes{margin-top:4px}.catalog-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.wishlist-card{padding:18px;display:flex;flex-direction:column;gap:14px}.wishlist-fields{margin-top:2px}.wishlist-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.wishlist-links-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.wishlist-links-inline a{color:#6b2d5c;font-weight:750;text-decoration:none}.wishlist-links-inline a:hover{text-decoration:underline}
.wishlist-link-list{display:flex;flex-direction:column;border:1px solid #e8e0e6;border-radius:12px;overflow:hidden}.wishlist-link-row{align-items:center;border-bottom:1px solid #eee7ec}.wishlist-link-row:last-child{border-bottom:0}.wishlist-link-row>div{min-width:0;flex:1}.wishlist-link-row .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media(max-width:700px){.catalog-actions{width:100%;justify-content:flex-start}.catalog-row{align-items:flex-start}.wishlist-card{padding:14px}}

.wishlist-candidates{display:flex;flex-direction:column;border:1px solid #e8e0e6;border-radius:12px;overflow:hidden;margin-top:12px}.wishlist-candidate{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid #eee7ec;background:#fff;cursor:pointer}.wishlist-candidate:last-child{border-bottom:0}.wishlist-candidate:hover{background:#fbf8fa}.wishlist-candidate input{margin:0;flex:0 0 auto}.wishlist-candidate-main{display:flex;justify-content:space-between;align-items:center;gap:12px;flex:1;min-width:0}.wishlist-candidate-price{font-weight:800;white-space:nowrap}.wishlist-candidate>a{color:#6b2d5c;font-weight:750;text-decoration:none}.wishlist-candidate>a:hover{text-decoration:underline}

.gift-people-picker{padding:0;grid-column:1/-1}.gift-people-picker .compare-person{min-height:64px}.field input:disabled{background:#f2eef1;color:#978d95;cursor:not-allowed}
.idea-dashboard{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid #e8e0e6;border-radius:14px;padding:14px 16px;margin:14px 0 4px}.idea-main{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;flex:1}.idea-main>div:first-child{min-width:0}.idea-main .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.idea-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.idea-row{align-items:center}.idea-row .btn{white-space:nowrap}@media(max-width:700px){.idea-dashboard{align-items:flex-start}.idea-main{align-items:flex-start;flex-direction:column}.idea-actions{justify-content:flex-start;width:100%;margin-top:4px}.idea-row{align-items:flex-start;flex-direction:column}}

.setup-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px;background:var(--bg,#f6f7f9)}
.setup-card{width:min(620px,100%);background:#fff;border:1px solid var(--border,#e5e7eb);border-radius:18px;padding:28px;box-shadow:0 12px 40px rgba(0,0,0,.08)}
.setup-card-wide{width:min(980px,100%)}
.setup-brand{margin-bottom:18px}
.setup-card h1{margin:0 0 8px;font-size:28px}
.setup-people{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}
.setup-person{position:relative;display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr auto;gap:10px;align-items:end;padding:14px;border:1px solid var(--border,#e5e7eb);border-radius:12px;background:#fafafa}
.setup-remove{margin-bottom:0}
.setup-actions{display:flex;justify-content:flex-end;margin-top:22px;padding-top:18px;border-top:1px solid var(--border,#e5e7eb)}
.setup-error{margin:18px 0;padding:12px;border-radius:10px;background:#fff1f2;border:1px solid #fecdd3;color:#9f1239}
.setup-message{margin-top:12px}
@media(max-width:800px){.setup-person{grid-template-columns:1fr 1fr}.setup-remove{grid-column:1/-1;justify-self:start}}
