:root{--accent:#4a9ec9;--accent-soft:#e2f3fb;--coral:#ff9fb2;--coral-soft:#ffe7ee;--mint:#8fd9c4;--mint-soft:#e2f7f1;--sky:#a9ddf2;--sky-soft:#e6f6fd;--sand:#ffe8c7;--cream:#f2fbfe;--ink:#17384c;--ink-soft:#5a7a8c;--line:#d7ecf4;--white:#fff;--danger:#e57373;--success:#4db6ac;--radius:20px;--radius-sm:12px;--shadow:0 10px 30px -18px #17384c66;--shadow-hover:0 18px 40px -20px #17384c80}*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:var(--ink);background:radial-gradient(circle at 12% 8%, var(--coral-soft) 0, transparent 42%), radial-gradient(circle at 88% 4%, var(--sky-soft) 0, transparent 40%), radial-gradient(circle at 50% 100%, var(--mint-soft) 0, transparent 45%), var(--cream);-webkit-font-smoothing:antialiased;background-attachment:fixed;min-height:100vh;font-family:Nunito,Quicksand,ui-rounded,Segoe UI,system-ui,-apple-system,Helvetica Neue,sans-serif;line-height:1.55}h1,h2,h3{margin:0;line-height:1.2}a{color:color-mix(in srgb, var(--accent) 65%, #0d3a52)}button{font:inherit}.app{flex-direction:column;min-height:100vh;display:flex}.container{width:100%;max-width:1120px;margin:0 auto;padding:0 20px}.topbar{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#ffffffc7;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.brand{color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.brand-emoji{filter:drop-shadow(0 3px 6px #4a9ec980);font-size:1.6rem}.brand-text{flex-direction:column;display:flex}.brand-name{letter-spacing:-.01em;font-size:1.02rem;font-weight:800}.brand-sub{color:var(--ink-soft);font-size:.72rem}.nav{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.nav-link{color:var(--ink-soft);white-space:nowrap;border-radius:999px;padding:8px 12px;font-size:.9rem;font-weight:700;text-decoration:none;transition:background .18s,color .18s}.nav-link:hover{background:var(--accent-soft);color:var(--ink)}.nav-link.active{background:var(--accent);color:#fff}.btn{cursor:pointer;background:var(--accent-soft);color:var(--ink);border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:11px 20px;font-size:.92rem;font-weight:800;text-decoration:none;transition:transform .12s,box-shadow .18s,background .18s;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--accent), var(--mint));color:#fff;box-shadow:0 10px 22px -12px color-mix(in srgb, var(--accent) 80%, #000)}.btn-ghost{border:1.5px solid var(--line);color:var(--ink-soft);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--accent);color:var(--ink)}.btn-danger{color:#b23b3b;background:#fdecea}.btn-sm{padding:7px 14px;font-size:.83rem}.btn-block{width:100%}.hero{border-radius:calc(var(--radius) + 8px);box-shadow:var(--shadow);background:linear-gradient(135deg,#e2f3fb 0%,#e6f6fd 50%,#e2f7f1 100%);margin:26px 0 20px;padding:34px 30px;position:relative;overflow:hidden}.hero:after{content:"🐳";opacity:.16;pointer-events:none;font-size:8rem;position:absolute;bottom:-18px;right:-6px;transform:rotate(-8deg)}.hero:before{content:"🐬";opacity:.14;pointer-events:none;font-size:5.5rem;position:absolute;bottom:-14px;left:-10px;transform:rotate(6deg)scaleX(-1)}.hero-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb, var(--accent) 65%, #0d3a52);font-size:.72rem;font-weight:800}.hero-title{letter-spacing:-.02em;margin:8px 0 6px;font-size:clamp(1.7rem,4vw,2.6rem);font-weight:900}.hero-sub{max-width:60ch;color:var(--ink-soft);white-space:pre-line;font-weight:600}.hero-meta{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.countdown{box-shadow:var(--shadow);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-size:.9rem;font-weight:800;display:inline-flex}.countdown.past{background:var(--mint-soft)}.filters{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#ffffffd9;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:22px;padding:16px;display:grid}.filters .field{margin:0}.filter-check{color:var(--ink-soft);white-space:nowrap;align-self:end;align-items:center;gap:8px;padding-bottom:10px;font-size:.85rem;font-weight:700;display:flex}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.label{color:var(--ink-soft);font-size:.82rem;font-weight:800}.hint{color:var(--ink-soft);font-size:.76rem}.input,.textarea,.select{border:1.5px solid var(--line);border-radius:var(--radius-sm);width:100%;font:inherit;color:var(--ink);background:#fff;padding:10px 13px;transition:border-color .15s,box-shadow .15s}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}.textarea{resize:vertical;min-height:84px}.row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.row-3{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.check{cursor:pointer;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:#fff;align-items:center;gap:9px;padding:10px 12px;font-size:.88rem;font-weight:700;display:flex}.check input{width:18px;height:18px;accent-color:var(--accent)}.grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;margin-bottom:48px;display:grid}.card{border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line);background:#fff;flex-direction:column;transition:transform .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden}.card:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}.card:has(.card-open:focus-visible){outline:3px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:2px}.card-open{appearance:none;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;margin:0;padding:0;font-weight:900}.card-open:after{content:"";cursor:pointer;position:absolute;inset:0}.card:hover .card-open{text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 60%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 60%, transparent);text-underline-offset:3px}.card-media{aspect-ratio:4/3;background:linear-gradient(135deg, var(--accent-soft), var(--sky-soft));justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.card-media img{object-fit:cover;width:100%;height:100%;display:block}.card-emoji{filter:drop-shadow(0 6px 10px #17384c2e);font-size:3.8rem}.card-heart{background:#ffffffe6;border-radius:999px;padding:4px 9px;font-size:.78rem;font-weight:800;position:absolute;top:10px;right:10px}.card-body{flex-direction:column;flex:1;gap:10px;padding:18px;display:flex}.card-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.card-title{flex:1;min-width:0;margin:0;font-size:1.18rem;font-weight:900}.card-desc{color:var(--ink-soft);-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:.9rem;font-weight:600;display:-webkit-box;overflow:hidden}.card-price{color:color-mix(in srgb, var(--accent) 55%, #0d3a52);font-size:1.08rem;font-weight:900}.card-price.small{color:var(--ink-soft);font-size:.85rem}.card-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.condition-banner{letter-spacing:.01em;background:var(--accent-soft);color:color-mix(in srgb, var(--accent) 60%, #0d3a52);border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:8px 16px;font-size:1rem;font-weight:900;display:inline-flex}.condition-banner.cond-new{color:#2f8f6f;background:#e6f6ef}.condition-banner.cond-used{color:#b07b3a;background:#fdf0e3}.badges{flex-wrap:wrap;gap:6px;display:flex}.badge{background:var(--accent-soft);color:color-mix(in srgb, var(--accent) 60%, #0d3a52);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:.72rem;font-weight:800;display:inline-flex}.badge-success{color:#2f8f6f;background:#e6f6ef}.badge-pending{color:#b07b3a;background:#fff5e0}.status-pill{white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:4px 10px;font-size:.74rem;font-weight:800;display:inline-flex}.status-to_buy{color:#c07a2d;background:#fff3e0}.status-ordered{background:var(--sky-soft);color:#3a7fa6}.status-bought,.status-received{color:#2f8f6f;background:#e6f6ef}.status-reserved{color:#6d5bb5;background:#efe8fb}.progress.status-ordered>span{background:linear-gradient(90deg, var(--sky), #8ec8ea)}.progress.status-bought>span,.progress.status-received>span{background:linear-gradient(90deg, var(--success), var(--mint))}.select-sm{border-radius:999px;width:auto;padding:6px 10px;font-size:.8rem}.progress{background:var(--accent-soft);border-radius:999px;height:9px;overflow:hidden}.progress>span{background:linear-gradient(90deg, var(--accent), var(--coral));border-radius:999px;height:100%;transition:width .4s;display:block}.progress.done>span{background:linear-gradient(90deg, var(--success), var(--mint))}.progress-label{color:var(--ink-soft);justify-content:space-between;font-size:.78rem;font-weight:800;display:flex}.reservers{color:var(--ink-soft);font-size:.78rem;font-weight:700}.card-actions{z-index:1;flex-wrap:wrap;gap:8px;margin-top:auto;display:flex;position:relative}.card-actions .btn-primary{flex:1}.card-cancel{color:#b23b3b;border-color:#b23b3b4d;justify-content:center;width:100%}.card-cancel:hover:not(:disabled){background:#fdecea;border-color:#b23b3b73}.empty{text-align:center;color:var(--ink-soft);padding:60px 20px;font-weight:700}.empty-emoji{margin-bottom:10px;font-size:3rem;display:block}.footer{text-align:center;color:var(--ink-soft);margin-top:auto;padding:26px 0 34px;font-size:.82rem;font-weight:700}.modal-backdrop{z-index:50;background:#3c2f4d6b;justify-content:center;align-items:center;padding:18px;animation:.16s fade-in;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--cream);border-radius:var(--radius);flex-direction:column;width:100%;max-width:520px;max-height:calc(100vh - 36px);animation:.2s pop-in;display:flex;box-shadow:0 30px 60px -25px #3c2f4d99}.modal.wide{max-width:720px}.modal-header{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 8px;display:flex}.modal-header h2{font-size:1.2rem;font-weight:900}.modal-close{background:var(--accent-soft);cursor:pointer;width:34px;height:34px;color:var(--ink);border:none;border-radius:999px;flex-shrink:0;font-size:1rem}.modal-body{padding:8px 20px 4px;overflow-y:auto}.modal-footer{flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:14px 20px 20px;display:flex}.item-view{flex-direction:column;gap:14px;display:flex}.item-view-media{aspect-ratio:16/10;border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--accent-soft), var(--sky-soft));justify-content:center;align-items:center;display:flex;overflow:hidden}.item-view-media img{object-fit:cover;width:100%;height:100%;display:block}.item-view-media .card-emoji{font-size:4.6rem}.item-view-flags{flex-wrap:wrap;gap:6px;display:flex}.item-view-desc{color:var(--ink);white-space:pre-line;margin:0;font-weight:600}.price-compare{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:8px;padding:12px 16px;display:flex}.price-compare-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.price-compare-label{color:var(--ink-soft);font-size:.88rem;font-weight:800}.alert{border-radius:var(--radius-sm);margin-bottom:12px;padding:11px 14px;font-size:.86rem;font-weight:700}.alert-error{color:#b23b3b;background:#fdecea}.alert-success{color:#2f8f6f;background:#e6f6ef}.alert-info{background:var(--sky-soft);color:#3a7fa6}.reservation-message{white-space:pre-line;line-height:1.55}.tabs{flex-wrap:wrap;gap:6px;margin:18px 0;display:flex}.tab{cursor:pointer;color:var(--ink-soft);box-shadow:var(--shadow);background:#fff;border:none;border-radius:999px;padding:9px 16px;font-size:.86rem;font-weight:800}.tab.active{background:var(--accent);color:#fff}.panel{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;margin-bottom:20px;padding:18px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.panel-head h2{font-size:1.15rem;font-weight:900}.list{flex-direction:column;gap:10px;display:flex}.list-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--cream);flex-wrap:wrap;align-items:center;gap:12px;padding:12px;display:flex}.list-thumb{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--accent-soft), var(--sky-soft));flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.5rem;display:flex;overflow:hidden}.list-thumb img{object-fit:cover;width:100%;height:100%}.list-main{flex:1;min-width:160px}.list-title{font-size:.95rem;font-weight:900}.list-sub{color:var(--ink-soft);font-size:.8rem;font-weight:600}.list-actions{flex-wrap:wrap;gap:8px;display:flex}.login-card{text-align:center;max-width:400px;margin:60px auto}.login-card .field{text-align:left}.confetti{pointer-events:none;z-index:60;position:fixed;inset:0;overflow:hidden}.confetti span{font-size:1.1rem;animation:linear forwards fall;position:absolute;top:-12px}.toast{background:var(--ink);color:#fff;box-shadow:var(--shadow-hover);z-index:70;text-align:center;border-radius:999px;max-width:calc(100vw - 32px);padding:12px 22px;font-weight:800;animation:.2s pop-in;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.muted{color:var(--ink-soft)}.mt-0{margin-top:0}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mb-0{margin-bottom:0}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.stack{flex-direction:column;gap:12px;display:flex}.inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}.center{text-align:center}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fall{to{opacity:.9;transform:translateY(105vh)rotate(520deg)}}@media (width<=760px){.filters{grid-template-columns:1fr 1fr}.hero{padding:26px 20px}.row,.row-3{grid-template-columns:1fr}.brand-sub{display:none}.nav-link{padding:7px 10px;font-size:.83rem}.grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.card-emoji{font-size:2.9rem}}@media (width<=460px){.filters,.grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}
