:root{--bg: #0f172a;--surface: #1e293b;--surface-2: #273449;--border: #334155;--text: #e2e8f0;--muted: #94a3b8;--primary: #22c55e;--primary-dark: #16a34a;--danger: #ef4444;--amber: #f59e0b;--radius: 12px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.5}.app{max-width:900px;margin:0 auto;padding:1.5rem 1rem 3rem}.app__header{display:flex;align-items:center;gap:.6rem;margin-bottom:1.5rem}.app__header h1{font-size:1.4rem;margin:0}.app__logo{font-size:1.8rem}.app__main{display:flex;flex-direction:column;gap:1.25rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}@media (max-width: 640px){.grid{grid-template-columns:1fr}}h1,h2{margin-top:0}h2{font-size:1.05rem}.muted{color:var(--muted)}.error{color:var(--danger);font-size:.9rem}.right{text-align:right}.row{display:flex;gap:.5rem}.goal__head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.goal__head h1{font-size:1.5rem}.goal__stats{margin-bottom:0}.goal__mine{margin-top:.35rem;margin-bottom:0}.progress__labels{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.progress__saved{font-size:1.5rem;font-weight:700;color:var(--primary)}.progress__track{height:16px;background:var(--surface-2);border-radius:999px;overflow:hidden}.progress__fill{height:100%;background:linear-gradient(90deg,var(--primary-dark),var(--primary));border-radius:999px;transition:width .4s ease}.progress__pct{margin-top:.4rem;font-size:.9rem;color:var(--muted)}.form{display:flex;flex-direction:column;gap:.75rem}.option-row{flex-direction:row;align-items:center;gap:.5rem;color:var(--text);cursor:pointer}.option-row input[type=radio]{width:auto}label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:var(--muted)}input,select{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:.55rem .7rem;color:var(--text);font-size:1rem}input:focus,select:focus{outline:2px solid var(--primary);outline-offset:0}button{background:var(--primary);color:#06210f;border:none;border-radius:8px;padding:.55rem 1rem;font-size:.95rem;font-weight:600;cursor:pointer}button:hover{background:var(--primary-dark)}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.icon-btn{background:transparent;color:var(--muted);padding:.2rem .45rem;font-size:.9rem}.icon-btn:hover{background:transparent;color:var(--danger)}.members{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.4rem}.members__row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.75rem;padding:.4rem .6rem;background:var(--surface-2);border-radius:8px}.members__amount{font-variant-numeric:tabular-nums;font-weight:600}.members__add{display:flex;gap:.5rem;align-items:stretch}.members__add input{flex:1}.import__hint{font-size:.85rem;margin-top:0}.import__ok{color:var(--primary);font-size:.9rem}.import__actions{display:flex;gap:.5rem;margin-top:1rem}.history{width:100%;border-collapse:collapse;font-size:.9rem}.history th,.history td{padding:.5rem .4rem;border-bottom:1px solid var(--border);text-align:left}.history th{color:var(--muted);font-weight:600}.history td.right,.history th.right{text-align:right;font-variant-numeric:tabular-nums}.app__footer{margin-top:2rem;text-align:center;font-size:.85rem}.nav{display:flex;gap:.4rem;margin-bottom:1.5rem;flex-wrap:wrap}.nav__link{text-decoration:none;color:var(--muted);padding:.45rem .9rem;border-radius:999px;border:1px solid transparent;font-size:.92rem;font-weight:500}.nav__link:hover{color:var(--text);background:var(--surface)}.nav__link--active{color:var(--text);background:var(--surface);border-color:var(--border)}.stack{display:flex;flex-direction:column;gap:1.25rem}.countdown__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.countdown__unit{background:var(--surface-2);border-radius:10px;padding:.6rem .2rem;text-align:center}.countdown__num{display:block;font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--primary)}.countdown__lbl{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.forecast__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin-bottom:.8rem}.stat{background:var(--surface-2);border-radius:10px;padding:.6rem .7rem;display:flex;flex-direction:column;gap:.15rem}.stat__label{font-size:.75rem;color:var(--muted)}.stat__value{font-size:1.15rem;font-weight:600;font-variant-numeric:tabular-nums}.forecast__verdict{font-size:.9rem;margin:0}.forecast__verdict.ok,.budget__total.ok{color:var(--primary)}.forecast__verdict.warn,.budget__total.warn{color:var(--amber)}.chart{width:100%;height:auto;display:block}.chart__area{fill:#22c55e26}.chart__line{fill:none;stroke:var(--primary);stroke-width:2;stroke-linejoin:round}.chart__proj{stroke:var(--amber);stroke-width:2;stroke-dasharray:4 3}.chart__target{stroke:var(--muted);stroke-width:1;stroke-dasharray:2 3}.chart__target-lbl{fill:var(--muted);font-size:9px}.chart__dot{fill:var(--primary)}.chart__dot-proj{fill:var(--amber)}.chart__legend{display:flex;gap:1rem;margin-top:.5rem;font-size:.8rem;color:var(--muted)}.dot{display:inline-block;width:10px;height:10px;border-radius:999px;margin-right:4px;vertical-align:middle}.dot--line{background:var(--primary)}.dot--proj{background:var(--amber)}.dot--target{background:var(--muted)}.funfact__head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.funfact__text{font-size:1.05rem;margin-bottom:0}.samap{background:#081019;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.samap__iframe{width:100%;height:440px;border:none;display:block}@media (max-width: 640px){.samap__iframe{height:320px}}.samap--message{height:440px;display:flex;align-items:center;justify-content:center;padding:1.5rem;text-align:center;color:var(--muted)}@media (max-width: 640px){.samap--message{height:320px}}.maproute{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.maproute li{display:flex;align-items:center;gap:.7rem}.maproute__emoji{font-size:1.3rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.actcard{display:flex;flex-direction:column;gap:.4rem}.actcard__emoji{font-size:2rem}.actcard h2{margin:0;font-size:1.05rem}.actcard__meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.82rem;margin:0}.actcard__desc{font-size:.9rem;margin:.2rem 0;flex:1}.actcard__price{font-weight:600;color:var(--primary);margin:0}.actcard__votes{display:flex;flex-direction:column;gap:.35rem;margin-top:.3rem;padding-top:.6rem;border-top:1px solid var(--border)}.actcard__voteCount{font-size:.8rem}.tag{background:var(--surface-2);border-radius:999px;padding:2px 9px;font-size:.75rem;color:var(--text)}.chips{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.8rem}.chip-btn{background:var(--surface-2);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.3rem .8rem;font-size:.85rem;cursor:pointer}.chip-btn--active{background:var(--primary);color:#06210f;border-color:var(--primary)}.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.9rem}.timeline__item{display:flex;gap:.8rem}.timeline__marker{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-size:1.2rem}.timeline__head{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.2rem}.timeline__highlights{margin:0;padding-left:1.1rem;font-size:.9rem;color:var(--muted)}.budget{display:flex;flex-direction:column;gap:.5rem}.budget__row{display:grid;grid-template-columns:1.3fr 1fr auto;align-items:center;gap:.6rem}.budget__label{font-size:.88rem}.budget__bar{height:6px;background:var(--surface-2);border-radius:999px;overflow:hidden}.budget__bar>i{display:block;height:100%;background:var(--primary)}.budget__input{width:84px;padding:.35rem .4rem;font-size:.85rem}.budget__total{margin:.8rem 0 0;font-weight:600}.conv{display:flex;align-items:flex-end;gap:.6rem}.conv label{flex:1}.conv__eq{font-size:1.3rem;color:var(--muted);padding-bottom:.5rem}.conv__result{flex:1;display:flex;flex-direction:column}.conv__sol{font-size:1.3rem;font-weight:700;color:var(--primary)}.conv__rate{margin-top:.7rem}.flight__total{font-size:1rem}.linkbtn{display:inline-block;text-decoration:none;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.5rem .9rem;font-size:.9rem;font-weight:600}.linkbtn:hover{border-color:var(--primary)}.app--center{display:flex;justify-content:center;padding-top:4rem;color:var(--muted)}.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth__card{width:100%;max-width:380px}.auth__head{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem}.auth__head h1{font-size:1.4rem;margin:0}.auth__toggle{margin:1rem 0 0;font-size:.9rem;color:var(--muted)}.linklike{background:none;border:none;color:var(--primary);padding:0;font:inherit;font-weight:600;cursor:pointer}.linklike:hover{background:none;text-decoration:underline}.app__user{margin-left:auto;display:flex;align-items:center;gap:.6rem}.app__account{color:var(--text);text-decoration:none;font-weight:500;padding:.3rem .6rem;border-radius:8px;border:1px solid var(--border)}.app__account:hover{border-color:var(--primary)}.invite{margin:.5rem 0;padding-left:1.2rem}.invite code{background:var(--surface-2);padding:1px 5px;border-radius:5px;font-size:.85em}.invites{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-direction:column;gap:.5rem}.invites__row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;background:var(--surface-2);border-radius:8px;padding:.6rem .8rem}.invites__info{display:flex;flex-direction:column;gap:.2rem;min-width:0}.invites__code{font-size:.78rem;color:var(--muted);word-break:break-all}.invites__actions{display:flex;align-items:center;gap:.4rem;flex:0 0 auto}.invites__subhead{font-size:.9rem;margin:1.2rem 0 .3rem;color:var(--muted)}.invites__row--used{opacity:.7}textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:.55rem .7rem;color:var(--text);font-size:1rem;font-family:inherit;resize:vertical}textarea:focus{outline:2px solid var(--primary);outline-offset:0}.sep{border:none;border-top:1px solid var(--border);margin:1rem 0}.notif__result{background:var(--surface-2);border-radius:8px;padding:.6rem .8rem;margin:.7rem 0;font-size:.9rem}
