:root{--bg:#0a0a0f;--surface:#141420;--card:#1c1c2e;--elevated:#242436;--primary:#7c4dff;--primary-dim:#7c4dff2e;--primary-glow:#7c4dff73;--accent:#ff4081;--accent-dim:#ff40812e;--text:#eeeef4;--text-muted:#eeeef48c;--text-hint:#eeeef44d;--success:#00e676;--warning:#ffd740;--error:#ff5252;--border:#eeeef414;--border-strong:#eeeef42e;--radius-s:6px;--radius-m:10px;--radius-l:16px;--radius-xl:24px;--radius-full:9999px;--shadow-card:0 4px 24px #0000008c, 0 1px 4px #0000004d;--shadow-glow:0 0 24px var(--primary-glow), 0 4px 16px #0006;--transition:.15s ease;--transition-spring:.3s cubic-bezier(.34, 1.56, .64, 1);--cat-friendly:#4fc3f7;--cat-party:#ffb74d;--cat-couples:#f06292;--cat-dirty:#ff5252;--cat-custom:#a5d6a7;--av0:#7c4dff;--av1:#ff4081;--av2:#00bcd4;--av3:#ff6d00;--av4:#00e676;--av5:#ffd740;--av6:#e040fb;--av7:#40c4ff}.btn-primary{background:var(--primary);color:#fff;letter-spacing:.3px;height:52px;box-shadow:var(--shadow-glow);cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform var(--transition-spring), box-shadow var(--transition), background var(--transition);-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:0 28px;font-size:16px;font-weight:600;display:inline-flex}.btn-primary:active{box-shadow:0 0 12px var(--primary-glow);background:color-mix(in srgb, var(--primary) 85%, #000);transform:scale(.94)}.btn-primary:disabled{opacity:.4;box-shadow:none;cursor:not-allowed}.btn-outline{height:52px;color:var(--text);letter-spacing:.3px;border:1.5px solid var(--border-strong);cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform var(--transition-spring), border-color var(--transition), background var(--transition);-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:0 28px;font-size:16px;font-weight:600;display:inline-flex}.btn-outline:active{border-color:var(--primary);background:var(--primary-dim);transform:scale(.94)}.btn-outline:disabled{opacity:.4;cursor:not-allowed}.card-surface{background:var(--card);border-radius:var(--radius-l);border:1px solid var(--border);box-shadow:var(--shadow-card)}.chip{border-radius:var(--radius-full);background:var(--elevated);height:34px;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition-spring);-webkit-tap-highlight-color:transparent;touch-action:manipulation;justify-content:center;align-items:center;padding:0 14px;font-size:13px;font-weight:500;display:inline-flex}.chip:active{transform:scale(.93)}.chip.chip-active{background:var(--primary-dim);color:var(--primary);border-color:var(--primary)}.result-done{color:var(--success);border-radius:var(--radius-full);background:#00e67626;border:1px solid #00e6764d;padding:2px 10px;font-size:12px;font-weight:600}.result-skipped{color:var(--error);border-radius:var(--radius-full);background:#ff52521f;border:1px solid #ff525247;padding:2px 10px;font-size:12px;font-weight:600}.result-pending{color:var(--warning);border-radius:var(--radius-full);background:#ffd7401f;border:1px solid #ffd74047;padding:2px 10px;font-size:12px;font-weight:600}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}button,a,[role=button],[tabindex],input,select,textarea,label{touch-action:manipulation}button,[role=button]{min-width:48px;min-height:48px}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;height:100%}body{letter-spacing:.15px;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overscroll-behavior:none;min-height:100dvh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5;overflow-x:hidden}*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{display:none}a{color:inherit;text-decoration:none}img,video,svg{max-width:100%;display:block}ul,ol{list-style:none}input,button,textarea,select{font:inherit;color:inherit;background:0 0;border:none;outline:none}button{cursor:pointer}:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:4px}::selection{background:var(--primary-dim);color:var(--text)}#landscape-warning{z-index:10000;background:var(--bg);color:var(--text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;font-size:16px;display:none;position:fixed;top:0;bottom:0;left:0;right:0}#landscape-warning svg,#landscape-warning .landscape-icon{opacity:.6;width:48px;height:48px}@media (orientation:landscape) and (max-height:500px){#landscape-warning{display:flex}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}.skeleton{background:linear-gradient(90deg, var(--surface) 25%, var(--elevated) 50%, var(--surface) 75%);border-radius:var(--radius-m);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer}.hidden{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.w-full{width:100%}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-hint{color:var(--text-hint)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-20px)rotate(0)}80%{opacity:1}to{opacity:0;transform:translateY(110vh)rotate(720deg)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}@keyframes bounce-in{0%{opacity:0;transform:scale(.4)}55%{opacity:1;transform:scale(1.08)}75%{transform:scale(.96)}90%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 12px var(--primary-glow);opacity:1}50%{box-shadow:0 0 32px var(--primary-glow), 0 0 64px #7c4dff40;opacity:.85}}.card-scene{perspective:900px;width:100%;height:100%}.card-inner{width:100%;height:100%;transform-style:preserve-3d;will-change:transform;transition:transform .48s cubic-bezier(.4,0,.2,1);position:relative}.card-inner.flipped{transform:rotateY(180deg)}.card-face{-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:var(--radius-l);position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.card-back{transform:rotateY(180deg)}.animate-fade-in{animation:.28s both fade-in}.animate-slide-up{animation:.32s cubic-bezier(.22,1,.36,1) both slide-in-up}.animate-slide-right{animation:.32s cubic-bezier(.22,1,.36,1) both slide-in-right}.animate-scale-in{animation:.28s cubic-bezier(.34,1.56,.64,1) both scale-in}.animate-bounce-in{animation:.52s cubic-bezier(.34,1.56,.64,1) both bounce-in}.animate-pulse-glow{animation:2s ease-in-out infinite pulse-glow}.stagger-1{animation-delay:60ms}.stagger-2{animation-delay:.12s}.stagger-3{animation-delay:.18s}.stagger-4{animation-delay:.24s}.stagger-5{animation-delay:.3s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.card-inner{transition:none}}.bottom-nav{z-index:100;height:64px;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(12px);grid-template-columns:repeat(4,1fr);align-items:center;display:grid;position:fixed;bottom:0;left:0;right:0}.nav-item{height:100%;min-height:48px;color:var(--text-hint);letter-spacing:.2px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:color var(--transition), transform var(--transition-spring);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0;font-size:11px;font-weight:500;text-decoration:none;display:flex}.nav-item svg,.nav-item .nav-icon{width:24px;height:24px;transition:color var(--transition);flex-shrink:0}.nav-item:active{transform:scale(.88)}.nav-item.active,.nav-item.active svg,.nav-item.active .nav-icon{color:var(--primary)}.toast-container{z-index:9000;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(360px,100vw - 32px);display:flex;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}.toast{background:var(--elevated);color:var(--text);border-radius:var(--radius-full);border:1px solid var(--border-strong);box-shadow:var(--shadow-card);pointer-events:auto;align-items:center;gap:10px;max-width:100%;padding:12px 20px;font-size:14px;font-weight:500;animation:.28s cubic-bezier(.22,1,.36,1) both slide-in-up;display:inline-flex}.toast-success{color:var(--success);background:#00e6761f;border-color:#00e67659}.toast-error{color:var(--error);background:#ff52521f;border-color:#ff525259}.toast-warning{color:var(--warning);background:#ffd7401f;border-color:#ffd74059}.avatar{color:#fff;letter-spacing:.5px;-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:17px;font-weight:700;display:grid}.avatar-sm{width:32px;height:32px;font-size:13px}.avatar-md{width:44px;height:44px;font-size:17px}.avatar-lg{width:56px;height:56px;font-size:22px}.avatar-xl{width:72px;height:72px;font-size:28px}.av0{background:var(--av0)}.av1{background:var(--av1)}.av2{background:var(--av2)}.av3{background:var(--av3)}.av4{background:var(--av4)}.av5{background:var(--av5)}.av6{background:var(--av6)}.av7{background:var(--av7)}.chip.cat-friendly,.chip.chip-active.cat-friendly{color:var(--cat-friendly);background:#4fc3f726;border-color:#4fc3f766}.chip.cat-party,.chip.chip-active.cat-party{color:var(--cat-party);background:#ffb74d26;border-color:#ffb74d66}.chip.cat-couples,.chip.chip-active.cat-couples{color:var(--cat-couples);background:#f0629226;border-color:#f0629266}.chip.cat-dirty,.chip.chip-active.cat-dirty{color:var(--cat-dirty);background:#ff525226;border-color:#ff525266}.chip.cat-custom,.chip.chip-active.cat-custom{color:var(--cat-custom);background:#a5d6a726;border-color:#a5d6a766}.divider{background:var(--border);border:none;width:100%;height:1px;margin:0}.page{min-height:100dvh;padding-bottom:calc(64px + env(safe-area-inset-bottom,0px));flex-direction:column;display:flex;overflow-x:hidden}.modal-overlay{z-index:500;background:#000000a6;align-items:flex-end;animation:.2s both fade-in;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal-sheet{background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;border-top:1px solid var(--border-strong);width:100%;padding:24px 20px calc(24px + env(safe-area-inset-bottom,0px));max-height:90dvh;animation:.3s cubic-bezier(.22,1,.36,1) both slide-in-up;overflow-y:auto}.modal-handle{background:var(--border-strong);border-radius:var(--radius-full);width:40px;height:4px;margin:0 auto 20px}
