:root{--color-bg: #0a0a0f;--color-surface: #141418;--color-surface-alt: #1c1c22;--color-border: #2a2a35;--color-border-light: #3a3a48;--color-text: #e4e4e8;--color-text-muted: #8a8a96;--color-text-dim: #5a5a66;--color-accent: #eab308;--color-accent-hover: #facc15;--color-accent-dim: rgba(234, 179, 8, .15);--stage-norte: #ef4444;--stage-sur: #3b82f6;--stage-montana: #10b981;--stage-boomerang: #f59e0b;--stage-paraguay: #a855f7;--stage-casita: #06b6d4;--stage-plaza: #ec4899;--stage-sorpresa: #f97316;--grid-px-per-min: 2;--grid-col-width: 180px;--grid-time-width: 56px;--grid-header-height: 80px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;--font-heading: "Impact", "Arial Black", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;background:var(--color-bg)}.app-container{max-width:1400px;margin:0 auto;padding:0 1rem;min-height:100vh;display:flex;flex-direction:column}main{flex:1;width:100%}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.header{display:flex;flex-direction:column;align-items:center;padding:2rem 0 1.5rem;gap:.75rem}.header-logo-link{display:inline-block;cursor:pointer;transition:transform .2s ease,filter .2s ease;text-decoration:none}.header-logo-link:hover{transform:scale(1.02);filter:brightness(1.1)}.header-logo-link:active{transform:scale(.98)}.header-logo{height:90px;width:auto;object-fit:contain;filter:drop-shadow(0 0 20px rgba(234,179,8,.2))}.header-subtitle{font-size:.8rem;color:var(--color-text-muted);text-align:center;letter-spacing:.15em;text-transform:uppercase;font-weight:600}.header-disclaimer{font-size:.75rem;color:var(--color-text-dim);text-align:center}.header-disclaimer a{color:var(--color-accent);text-decoration:none;font-weight:600;transition:color .15s}.header-disclaimer a:hover{color:var(--color-accent-hover);text-decoration:underline}@media(max-width:640px){.header-logo{height:60px}}.day-tabs{display:flex;justify-content:center;gap:.5rem;margin-bottom:1.5rem;background:var(--color-surface);padding:.5rem;border-radius:1rem;border:1px solid var(--color-border);width:fit-content;margin-left:auto;margin-right:auto}.day-tab{padding:.75rem 1.5rem;border-radius:.75rem;border:1px solid transparent;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .2s ease;background:transparent;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.day-tab:hover{color:var(--color-text);background:var(--color-surface-alt)}.day-tab[aria-selected=true]{background:var(--color-surface-alt);color:var(--color-accent);border-color:var(--color-border-light);box-shadow:0 2px 8px #0003}@media(max-width:640px){.day-tabs{justify-content:center}.day-tab{font-size:.8rem;padding:.5rem 1rem}}.action-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:var(--color-surface);border-radius:1rem;border:1px solid var(--color-border);margin-bottom:1.5rem;box-shadow:0 4px 20px #0003;flex-wrap:wrap}@media(max-width:640px){.action-panel{flex-direction:column;align-items:stretch}}.action-status{display:flex;align-items:center;gap:.75rem}.status-indicator{width:8px;height:8px;border-radius:50%;background-color:var(--color-text-dim)}.status-indicator.active{background-color:var(--color-accent);box-shadow:0 0 10px var(--color-accent)}.action-panel-text{font-size:.9rem;color:var(--color-text);font-weight:500}.action-panel-hint{padding:1.5rem;background:var(--color-surface);border-radius:1rem;border:1px dashed var(--color-border-light);margin-bottom:2rem;text-align:center}.action-panel-hint p{font-size:1rem;color:var(--color-text-muted)}.action-panel-hint-link{display:inline-block;margin-top:.75rem;color:var(--color-accent);font-size:.875rem;font-weight:600;text-decoration:none;transition:color .15s ease}.action-panel-hint-link:hover{color:var(--color-accent-hover);text-decoration:underline}.filter-toggle-group{display:inline-flex;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:2rem;padding:4px;margin-left:auto}.filter-toggle-option{position:relative;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--color-text-muted);font-size:.8rem;font-weight:600;padding:.375rem 1rem;border-radius:1.5rem;cursor:pointer;transition:all .2s ease;white-space:nowrap}.filter-toggle-option:hover{color:var(--color-text)}.filter-toggle-option--active{background:var(--color-surface);color:var(--color-accent);box-shadow:0 1px 3px #0000004d;font-weight:700}@media(max-width:640px){.action-status{flex-wrap:wrap;justify-content:space-between;width:100%}.filter-toggle-group{margin-left:0;margin-top:.5rem;width:100%;display:flex}.filter-toggle-option{flex:1;padding:.5rem}}.menu-container{position:relative}@media(max-width:640px){.menu-container,.menu-container button{width:100%}}.action-menus{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}@media(max-width:640px){.action-menus{flex-direction:column;width:100%;gap:.75rem}.action-menus>.btn-primary{width:100%}}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--color-accent);color:var(--color-bg);padding:.625rem 1.25rem;border-radius:.75rem;font-weight:700;font-size:.9rem;border:none;cursor:pointer;transition:all .15s ease;text-transform:uppercase;letter-spacing:.05em}@media(max-width:640px){.btn-primary{padding:.75rem 1rem;font-size:.85rem}}.btn-primary:hover{background:var(--color-accent-hover);transform:translateY(-1px)}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--color-surface-alt);color:var(--color-text);padding:.625rem 1rem;border-radius:.75rem;font-weight:600;font-size:.85rem;border:1px solid var(--color-border-light);cursor:pointer;transition:all .15s ease}@media(max-width:640px){.btn-secondary{padding:.75rem 1rem;font-size:.85rem}}.btn-secondary:hover{background:var(--color-border);border-color:var(--color-text-muted)}.dropdown-menu{position:absolute;top:calc(100% + .5rem);right:0;width:220px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;box-shadow:0 10px 30px #00000080;padding:.5rem;z-index:100;transform-origin:top right;animation:scaleIn .15s ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.menu-item{display:flex;align-items:center;width:100%;gap:.75rem;padding:.75rem 1rem;background:transparent;border:none;color:var(--color-text);font-size:.85rem;font-weight:500;text-align:left;cursor:pointer;border-radius:.5rem;transition:all .1s ease}.menu-item:hover{background:var(--color-surface-alt)}.menu-item svg{opacity:.7}.menu-item:hover svg{opacity:1}.menu-divider{height:1px;background:var(--color-border-light);margin:.5rem 0}.empty-filtered-state{display:flex;align-items:center;justify-content:center;min-height:300px;padding:2rem;background:var(--color-surface);border-radius:1rem;border:1px dashed var(--color-border-light)}.empty-filtered-state__content{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;max-width:300px}.empty-filtered-state__content svg{color:var(--color-text-dim);opacity:.5}.empty-filtered-state__content h3{font-size:1.1rem;font-weight:700;color:var(--color-text);margin:0}.empty-filtered-state__content p{font-size:.9rem;color:var(--color-text-muted);margin:0}.timetable-wrapper{position:relative;overflow:auto;border-radius:1rem;border:1px solid var(--color-border);background:var(--color-bg);max-height:75vh;box-shadow:inset 0 0 12px #00000059;-webkit-overflow-scrolling:touch}.timetable-inner{position:relative;display:flex;min-width:max-content}.time-column{position:sticky;left:0;z-index:30;background:var(--color-surface);border-right:1px solid var(--color-border);width:var(--grid-time-width);min-width:var(--grid-time-width);flex-shrink:0}.time-corner{position:sticky;top:0;z-index:40;background:var(--color-surface);border-bottom:1px solid var(--color-border);height:var(--grid-header-height)}.time-body{position:relative;background:var(--color-surface)}.time-label{position:absolute;font-size:.75rem;font-weight:600;color:var(--color-text-muted);right:.75rem;transform:translateY(-50%);font-family:var(--font-heading);letter-spacing:.05em;opacity:.7}.stage-column{position:relative;border-right:1px solid var(--color-border);width:var(--grid-col-width);min-width:var(--grid-col-width);flex-shrink:0;background:#ffffff03}.stage-header{position:sticky;top:0;z-index:20;height:var(--grid-header-height);padding:0;border-bottom:1px solid rgba(255,255,255,.1);overflow:hidden}.stage-header-inner{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0 .5rem;background:var(--color-surface);position:relative}.stage-header-inner:after{content:"";position:absolute;bottom:0;left:16px;right:16px;height:2px;border-radius:999px;background:var(--color-border-light);opacity:.7}.stage-header-inner[data-stage=Norte]:after{background:var(--stage-norte)}.stage-header-inner[data-stage=Sur]:after{background:var(--stage-sur)}.stage-header-inner[data-stage=Montaña]:after{background:var(--stage-montana)}.stage-header-inner[data-stage=Boomerang]:after{background:var(--stage-boomerang)}.stage-header-inner[data-stage=Paraguay]:after{background:var(--stage-paraguay)}.stage-header-inner[data-stage="La Casita del Blues"]:after{background:var(--stage-casita)}.stage-header-inner[data-stage="La Plaza Electronic Stage"]:after{background:var(--stage-plaza)}.stage-header-inner[data-stage=Sorpresa]:after{background:var(--stage-sorpresa)}.stage-label-small{font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:#ffffffb3;margin-bottom:2px;font-weight:600}.stage-label-large{font-family:var(--font-heading);font-size:1.1rem;text-transform:uppercase;color:#fff;line-height:.9;text-shadow:0 2px 4px rgba(0,0,0,.5);letter-spacing:.02em}.stage-events{position:relative}.grid-line{position:absolute;left:0;right:0;border-top:1px dashed var(--color-border);opacity:.5}.event-block{position:absolute;left:3px;right:4px;border-radius:.375rem;border-left:4px solid;padding:.25rem .5rem;text-align:left;transition:all .15s ease;cursor:pointer;overflow:hidden;border-top:none;border-right:none;border-bottom:none;font-family:inherit;outline:none;display:block;width:calc(100% - 8px)}.event-block:hover:not(:disabled){filter:brightness(1.25);transform:scale(1.01)}.event-block:active:not(:disabled){transform:scale(.99)}.event-block:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.event-block[aria-pressed=true]{box-shadow:0 0 0 2px var(--color-accent),0 4px 12px #eab30826;background-color:var(--color-accent-dim)!important;transform:scale(1.02);z-index:10}.event-block:disabled{cursor:default}.event-artist{display:block;font-size:.75rem;font-weight:700;line-height:1.2;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-block[aria-pressed=true] .event-artist{color:#fde68a}.event-time{display:block;font-size:.625rem;line-height:1.2;margin-top:2px;color:var(--color-text-dim)}.event-block[aria-pressed=true] .event-time{color:#fde68ab3}.event-block[data-stage=Norte]{border-color:var(--stage-norte);background:#ef444426}.event-block[data-stage=Sur]{border-color:var(--stage-sur);background:#3b82f626}.event-block[data-stage=Montaña]{border-color:var(--stage-montana);background:#10b98126}.event-block[data-stage=Boomerang]{border-color:var(--stage-boomerang);background:#f59e0b26}.event-block[data-stage=Paraguay]{border-color:var(--stage-paraguay);background:#a855f726}.event-block[data-stage="La Casita del Blues"]{border-color:var(--stage-casita);background:#06b6d426}.event-block[data-stage="La Plaza Electronic Stage"]{border-color:var(--stage-plaza);background:#ec489926}.event-block[data-stage=Sorpresa]{border-color:var(--stage-sorpresa);background:#f9731626}.stage-header-text[data-stage=Norte]{color:var(--stage-norte)}.stage-header-text[data-stage=Sur]{color:var(--stage-sur)}.stage-header-text[data-stage=Montaña]{color:var(--stage-montana)}.stage-header-text[data-stage=Boomerang]{color:var(--stage-boomerang)}.stage-header-text[data-stage=Paraguay]{color:var(--stage-paraguay)}.stage-header-text[data-stage="La Casita del Blues"]{color:var(--stage-casita)}.stage-header-text[data-stage="La Plaza Electronic Stage"]{color:var(--stage-plaza)}.stage-header-text[data-stage=Sorpresa]{color:var(--stage-sorpresa)}.selected-summary{margin-top:1rem;padding:.75rem;background:var(--color-surface);border-radius:.75rem;border:1px solid var(--color-border)}.selected-title{font-size:.875rem;font-weight:700;color:var(--color-accent);margin-bottom:.5rem}.selected-tags{display:flex;flex-wrap:wrap;gap:.375rem}.selected-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:.375rem;font-size:.75rem;font-weight:500;color:#fff;border:1px solid}.selected-tag[data-stage=Norte]{border-color:var(--stage-norte);background:#ef444426}.selected-tag[data-stage=Sur]{border-color:var(--stage-sur);background:#3b82f626}.selected-tag[data-stage=Montaña]{border-color:var(--stage-montana);background:#10b98126}.selected-tag[data-stage=Boomerang]{border-color:var(--stage-boomerang);background:#f59e0b26}.selected-tag[data-stage=Paraguay]{border-color:var(--stage-paraguay);background:#a855f726}.selected-tag[data-stage="La Casita del Blues"]{border-color:var(--stage-casita);background:#06b6d426}.selected-tag[data-stage="La Plaza Electronic Stage"]{border-color:var(--stage-plaza);background:#ec489926}.selected-tag[data-stage=Sorpresa]{border-color:var(--stage-sorpresa);background:#f9731626}.selected-tag-remove{background:none;border:none;color:var(--color-text-dim);cursor:pointer;padding:0;font-size:.75rem;line-height:1;margin-left:.25rem;transition:color .15s}.selected-tag-remove:hover{color:#f87171}@media(max-width:640px){:root{--grid-col-width: 140px;--grid-time-width: 48px}.timetable-wrapper{max-height:70vh}.event-artist{font-size:.6875rem}.event-time{font-size:.5625rem}}.timetable-wrapper::-webkit-scrollbar{width:8px;height:8px}.timetable-wrapper::-webkit-scrollbar-track{background:var(--color-surface)}.timetable-wrapper::-webkit-scrollbar-thumb{background:var(--color-border-light);border-radius:4px}.timetable-wrapper::-webkit-scrollbar-thumb:hover{background:var(--color-text-dim)}.timetable-wrapper::-webkit-scrollbar-corner{background:var(--color-surface)}.mobile-view-toggle{display:flex;justify-content:flex-end;margin-bottom:.75rem}.mobile-view-toggle__btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;color:var(--color-text-muted);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease}.mobile-view-toggle__btn:active{transform:scale(.97)}.mobile-view-toggle__btn--active{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-dim)}.mobile-stage-filter{margin-bottom:1rem}.mobile-stage-filter__header{display:flex;align-items:center;gap:.375rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-dim);margin-bottom:.5rem;padding-left:.25rem}.mobile-stage-filter__chips{display:flex;gap:.375rem;overflow-x:auto;padding-bottom:.5rem;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.mobile-stage-filter__chips::-webkit-scrollbar{display:none}.mobile-stage-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;border-radius:2rem;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0;min-height:36px}.mobile-stage-chip:active{transform:scale(.95)}.mobile-stage-chip--active{color:var(--color-bg);background:var(--color-accent);border-color:var(--color-accent);box-shadow:0 2px 8px #eab3084d}.mobile-stage-chip__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--color-text-dim)}.mobile-stage-chip__dot[data-stage=Norte]{background:var(--stage-norte)}.mobile-stage-chip__dot[data-stage=Sur]{background:var(--stage-sur)}.mobile-stage-chip__dot[data-stage=Montaña]{background:var(--stage-montana)}.mobile-stage-chip__dot[data-stage=Boomerang]{background:var(--stage-boomerang)}.mobile-stage-chip__dot[data-stage=Paraguay]{background:var(--stage-paraguay)}.mobile-stage-chip__dot[data-stage="La Casita del Blues"]{background:var(--stage-casita)}.mobile-stage-chip__dot[data-stage="La Plaza Electronic Stage"]{background:var(--stage-plaza)}.mobile-stage-chip__dot[data-stage=Sorpresa]{background:var(--stage-sorpresa)}.mobile-timeline{padding-bottom:1rem}.mobile-timeline__stats{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;margin-bottom:1rem;background:var(--color-accent-dim);border:1px solid rgba(234,179,8,.25);border-radius:.75rem;color:var(--color-accent);font-size:.8rem;font-weight:600}.mobile-timeline__list{display:flex;flex-direction:column;gap:.25rem}.mobile-timeline__empty{text-align:center;padding:3rem 1rem;color:var(--color-text-dim);font-size:.9rem}.mobile-empty-filtered-state{padding:2.5rem 1.25rem;margin:1rem 0;background:var(--color-surface);border-radius:1rem;border:1px dashed var(--color-border-light)}.mobile-empty-filtered-state__content{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;max-width:280px;margin:0 auto}.mobile-empty-filtered-state__content svg{color:var(--color-text-dim);opacity:.5}.mobile-empty-filtered-state__content h3{font-size:1rem;font-weight:700;color:var(--color-text);margin:0;line-height:1.3}.mobile-empty-filtered-state__content p{font-size:.875rem;color:var(--color-text-muted);margin:0;line-height:1.4}.mobile-btn-next-day{display:inline-flex;align-items:center;justify-content:center;padding:.675rem 1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;color:var(--color-text);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:.25rem;min-height:44px}.mobile-btn-next-day:active{transform:scale(.97);background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.mobile-time-group{margin-bottom:.5rem}.mobile-time-group__header{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;position:sticky;top:0;z-index:10;background:var(--color-bg)}.mobile-time-group__line{flex:1;height:1px;background:var(--color-border)}.mobile-time-group__label{font-family:var(--font-heading);font-size:.9rem;font-weight:700;color:var(--color-text-muted);letter-spacing:.05em;white-space:nowrap;padding:.25rem .75rem;background:var(--color-surface);border-radius:2rem;border:1px solid var(--color-border)}.mobile-time-group__events{display:flex;flex-direction:column;gap:.5rem;padding:.25rem 0}.mobile-event-card{display:flex;align-items:stretch;width:100%;min-height:60px;border-radius:.75rem;border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;transition:all .15s ease;overflow:hidden;text-align:left;font-family:inherit;padding:0;outline:none;-webkit-tap-highlight-color:transparent}.mobile-event-card:active:not(:disabled){transform:scale(.98)}.mobile-event-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.mobile-event-card:disabled{cursor:default}.mobile-event-card--selected{border-color:var(--color-accent);background:var(--color-accent-dim);box-shadow:0 0 0 1px var(--color-accent),0 4px 16px #eab3081a}.mobile-event-card__accent{width:5px;flex-shrink:0;background:var(--color-border)}.mobile-event-card__accent[data-stage=Norte]{background:var(--stage-norte)}.mobile-event-card__accent[data-stage=Sur]{background:var(--stage-sur)}.mobile-event-card__accent[data-stage=Montaña]{background:var(--stage-montana)}.mobile-event-card__accent[data-stage=Boomerang]{background:var(--stage-boomerang)}.mobile-event-card__accent[data-stage=Paraguay]{background:var(--stage-paraguay)}.mobile-event-card__accent[data-stage="La Casita del Blues"]{background:var(--stage-casita)}.mobile-event-card__accent[data-stage="La Plaza Electronic Stage"]{background:var(--stage-plaza)}.mobile-event-card__accent[data-stage=Sorpresa]{background:var(--stage-sorpresa)}.mobile-event-card__body{flex:1;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.375rem;min-width:0}.mobile-event-card__top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.mobile-event-card__artist{font-size:.9375rem;font-weight:700;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-event-card--selected .mobile-event-card__artist{color:#fde68a}.mobile-event-card__check{flex-shrink:0;color:var(--color-accent);display:flex;align-items:center}.mobile-event-card__meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.mobile-event-card__time{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--color-text-dim);font-weight:500}.mobile-event-card--selected .mobile-event-card__time{color:#fde68ab3}.mobile-event-card__stage{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:600;color:var(--color-text-muted)}.mobile-event-card__stage[data-stage=Norte]{color:var(--stage-norte)}.mobile-event-card__stage[data-stage=Sur]{color:var(--stage-sur)}.mobile-event-card__stage[data-stage=Montaña]{color:var(--stage-montana)}.mobile-event-card__stage[data-stage=Boomerang]{color:var(--stage-boomerang)}.mobile-event-card__stage[data-stage=Paraguay]{color:var(--stage-paraguay)}.mobile-event-card__stage[data-stage="La Casita del Blues"]{color:var(--stage-casita)}.mobile-event-card__stage[data-stage="La Plaza Electronic Stage"]{color:var(--stage-plaza)}.mobile-event-card__stage[data-stage=Sorpresa]{color:var(--stage-sorpresa)}.site-footer{margin-top:auto;padding:4rem 1rem 3rem;border-top:1px solid var(--color-border);background:linear-gradient(to bottom,transparent,rgba(20,20,24,.5));width:100%}.footer-content{max-width:800px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:2rem;text-align:center}.footer-main{display:flex;flex-direction:column;align-items:center;gap:1rem}.footer-attribution{font-size:.95rem;color:var(--color-text);font-weight:500;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem}.footer-attribution span{display:flex;align-items:center;justify-content:center;gap:.5rem}@media(min-width:641px){.footer-attribution{flex-direction:row;gap:.5rem}.footer-attribution span{display:inline}}.heart-pulse{display:inline-block;animation:pulse 2s infinite;filter:drop-shadow(0 0 8px rgba(239,68,68,.4))}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.footer-nav{display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap}.footer-link{color:var(--color-text-muted);text-decoration:none;font-size:.85rem;font-weight:500;transition:all .2s ease;padding:.5rem .75rem;border-radius:.5rem;background:transparent}.footer-link:hover{color:var(--color-accent);background:var(--color-surface-alt);transform:translateY(-1px)}.separator{color:var(--color-border-light);font-size:.7rem;opacity:.5}.footer-disclaimer{padding-top:1.5rem;border-top:1px solid var(--color-border-light);width:100%;max-width:500px}.footer-disclaimer p{font-size:.75rem;color:var(--color-text-dim);line-height:1.6}.footer-disclaimer a{color:var(--color-text-muted);text-decoration:none;border-bottom:1px dashed var(--color-text-dim);transition:all .15s}.footer-disclaimer a:hover{color:var(--color-text);border-bottom-color:var(--color-text)}@media(max-width:640px){.site-footer{padding:3rem 1rem 2rem}.footer-nav{flex-direction:column;gap:.25rem}.separator{display:none}.footer-link{width:100%;padding:.5rem}}.toast{position:fixed;bottom:2rem;right:2rem;max-width:420px;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:1rem;padding:1rem 1.25rem;box-shadow:0 10px 40px #00000080;display:flex;align-items:flex-start;gap:1rem;z-index:1000;transition:all .3s cubic-bezier(.4,0,.2,1)}.toast-visible{opacity:1;transform:translateY(0)}.toast-hidden{opacity:0;transform:translateY(1rem);pointer-events:none}.toast-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-accent-dim);border-radius:.5rem;color:var(--color-accent)}.toast-icon--warning{background:#eab30826;color:#eab308}.toast-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.toast-message{font-size:.875rem;color:var(--color-text);line-height:1.4;margin:0}.toast-link{font-size:.8125rem;color:var(--color-accent);text-decoration:none;font-weight:600;transition:color .15s;display:inline-flex;align-items:center;gap:.25rem}.toast-link:hover{color:var(--color-accent-hover);text-decoration:underline}.toast-close{flex-shrink:0;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:.375rem;transition:all .15s}.toast-close:hover{background:var(--color-surface-alt);color:var(--color-text)}@media(max-width:640px){.toast{bottom:1rem;right:1rem;left:1rem;max-width:none}}.faq-content{max-width:800px;margin:0 auto;padding:0 1rem 2rem}.faq-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:1rem;padding:1.5rem 2rem;margin-bottom:1.5rem;box-shadow:0 4px 20px #0003}.faq-heading{font-size:1.25rem;font-weight:600;color:var(--color-text);margin-bottom:1rem;letter-spacing:.01em}.faq-answer{color:var(--color-text);line-height:1.7}.faq-answer p{margin-bottom:1rem;font-size:.9375rem}.faq-answer h3{font-size:1rem;font-weight:500;color:var(--color-text-muted);margin:1.5rem 0 .75rem}.faq-answer ul,.faq-answer ol{margin-left:1.5rem;margin-bottom:1rem;color:var(--color-text-muted)}.faq-answer li{margin-bottom:.5rem;font-size:.9375rem;line-height:1.6}.faq-answer a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px;font-weight:500;transition:color .15s}.faq-answer a:hover{color:var(--color-accent-hover)}.faq-answer strong{color:var(--color-text);font-weight:600}.faq-answer code{background:var(--color-surface-alt);color:var(--color-accent);padding:.125rem .375rem;border-radius:.25rem;font-size:.875em;font-family:Consolas,Monaco,Courier New,monospace}.faq-steps{display:flex;flex-direction:column;gap:1.5rem;margin:1.5rem 0}.faq-step{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:.75rem;padding:1.25rem}.faq-step h3{font-size:1rem;margin:0 0 1rem!important;color:var(--color-accent)}.faq-step ol{margin-left:1.25rem}.faq-note,.faq-warning{background:var(--color-surface-alt);border-left:3px solid;border-radius:.5rem;padding:1rem 1.25rem;margin:1.5rem 0}.faq-note{border-color:var(--color-accent);background:var(--color-accent-dim)}.faq-warning{border-color:#f59e0b;background:#f59e0b1a}.faq-calculation{background:var(--color-bg);border:1px solid var(--color-border);border-radius:.75rem;padding:1.25rem;margin:1rem 0}.faq-formula{background:var(--color-surface-alt);border:1px dashed var(--color-border-light);border-radius:.5rem;padding:1rem;margin:1rem 0;text-align:center}.faq-formula code{font-size:.9375rem;color:var(--color-accent)}@media(max-width:640px){.faq-section{padding:1.25rem 1.5rem}.faq-heading{font-size:1.125rem}.faq-answer p,.faq-answer li{font-size:.875rem}.faq-step{padding:1rem}}
