:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#050915;color:#f7f8fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--page: #050915;--panel: #101827;--panel-2: #1d2839;--panel-3: #263245;--ink: #f7f8fb;--muted: #a9b1bf;--rule: #273449;--rule-strong: #556276;--pink: #a41349;--pink-2: #c0255e;--gold: #fff07c;--orange: #ff6a22;--green: #4eb66d;--focus: #f8f4dc;--shadow: 0 16px 38px rgba(0, 0, 0, .34)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 50% -180px,rgba(100,128,179,.18),transparent 420px),linear-gradient(180deg,#040814,#060b16 54%,#050814)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}.app-shell{width:min(1880px,100%);margin:0 auto;padding:18px 26px 30px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 0 16px}.brand{display:flex;align-items:center;gap:14px;min-width:0}.brand-mark{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--rule-strong);border-radius:8px;background:var(--pink);color:var(--ink);flex:0 0 auto}.brand h1,.villager-card h2{margin:0;letter-spacing:0}.brand h1{font-size:2rem;line-height:1}.brand p,.data-note{color:var(--muted)}.brand p{margin:5px 0 0;font-size:.95rem}.summary-strip,.toolbar,.data-note{display:flex;align-items:center}.summary-strip{gap:10px;flex-wrap:wrap;justify-content:flex-end}.summary-stat{min-width:108px;border:1px solid var(--rule);border-radius:8px;background:#101827db;padding:10px 12px}.summary-stat span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase}.summary-stat strong{display:block;margin-top:3px;font-size:1.25rem}.toolbar{position:sticky;top:0;z-index:10;gap:10px;flex-wrap:wrap;padding:10px 0;background:#050915d1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.search-field{display:flex;align-items:center;gap:10px;min-width:min(100%,420px);flex:1;height:44px;border:1px solid var(--rule);border-radius:8px;background:var(--panel);padding:0 12px;color:var(--muted)}.search-field input,.gift-input-wrap input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink)}.gift-input-wrap input::placeholder,.search-field input::placeholder{color:#d1d5dd;opacity:1}.segmented-button,.secondary-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid var(--rule-strong);border-radius:8px;background:var(--panel);color:var(--ink);padding:0 12px}.segmented-button.active{border-color:var(--pink-2);background:var(--pink)}.secondary-button:hover,.segmented-button:hover,.icon-button:hover{border-color:var(--focus)}.icon-button{width:32px;height:32px;min-height:32px;padding:0;flex:0 0 auto}.data-note{gap:8px;width:fit-content;max-width:100%;margin:4px 0 18px;border:1px solid var(--rule);border-radius:8px;background:#101827b8;padding:10px 12px;font-size:.9rem}.villager-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(520px,1fr));gap:30px;align-items:start}.villager-card{position:relative;min-height:486px;border:1px solid var(--rule);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);overflow:visible}.villager-card-header{position:relative;display:grid;grid-template-columns:82px minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:18px;min-height:146px;padding:28px 26px 20px;border-bottom:1px solid var(--rule);background:linear-gradient(180deg,#101827,#0e1726)}.avatar-wrap{position:relative;grid-row:1 / span 2;width:112px;height:112px;margin-left:-34px;margin-top:-20px}.avatar{display:grid;width:112px;height:112px;place-items:center;border:3px solid #f3f5f8;border-radius:999px;overflow:hidden;background:#1b2536;color:var(--ink);font-size:2rem;font-weight:800}.avatar img{width:100%;height:100%;object-fit:cover}.weekly-badge{position:absolute;top:-8px;right:-8px;display:grid;width:34px;height:34px;place-items:center;border-radius:999px;background:var(--gold);color:#14120b;font-weight:900;box-shadow:0 3px 10px #00000059}.villager-title{min-width:0}.villager-card h2{color:var(--ink);font-size:2.05rem;line-height:1.08}.villager-title span{display:block;margin-top:8px;color:var(--muted);font-size:.92rem;font-weight:700}.location-pill{position:absolute;top:-20px;right:22px;display:inline-flex;align-items:center;gap:9px;max-width:calc(100% - 190px);min-height:46px;border-radius:999px;background:var(--pink);color:var(--ink);padding:0 18px;font-size:1.02rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-actions{grid-column:3;grid-row:2;display:inline-flex;align-items:end;gap:10px;align-self:end;justify-self:end}.progress-icon,.state-button,.item-link-button,.clear-slot{display:grid;place-items:center;border:1px solid var(--rule-strong);border-radius:8px;color:var(--ink)}.progress-icon{width:54px;height:54px;color:#8590a1;background:#131d2d}.progress-icon.active{color:var(--ink);border-color:#dce2ec}.gift-section{padding:14px 34px 0}.daily-section{padding-top:18px;padding-bottom:12px}.weekly-section{border-top:1px solid var(--rule);padding-top:12px;padding-bottom:28px}.section-title{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:var(--ink);font-weight:850}.gift-list{display:grid;gap:10px}.gift-row{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) 36px 46px 46px;align-items:center;gap:10px;width:100%;min-height:58px;border:1px solid transparent;border-radius:8px;background:var(--panel-2);padding:7px 12px 7px 14px}.gift-row.is-gathered{border-color:#4eb66d73}.gift-row.is-gifted .gift-input-wrap input{text-decoration:line-through;color:#d7dbe5}.gift-row:hover{border-color:var(--rule-strong)}.gift-input-wrap{min-width:0}.gift-input-wrap input{min-height:38px;overflow:hidden;font-size:1.02rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.item-icon{width:32px;height:32px;object-fit:contain;border-radius:6px}.item-icon.empty{display:inline-block;background:var(--panel-3)}.item-link-button{width:36px;height:36px;color:#8792a4;background:transparent}.item-link-button:not(.disabled):hover{color:var(--ink);border-color:var(--focus)}.item-link-button.disabled{opacity:.42}.state-button{position:relative;width:46px;height:46px;background:#172235}.state-button:hover:not(:disabled){border-color:var(--focus)}.state-button:disabled{opacity:.45}.state-button.active{border-color:#dce2ec;background:#243044}.state-check{position:absolute;right:-5px;bottom:-5px;display:grid;width:24px;height:24px;place-items:center;border-radius:999px;background:var(--orange);color:var(--ink)}.clear-slot{position:absolute;right:-10px;top:-10px;width:28px;height:28px;border-color:var(--rule);background:#0d1522;color:#c8cfda;opacity:0;transition:opacity .14s ease}.gift-row:hover .clear-slot,.clear-slot:focus-visible{opacity:1}.search-field:focus-within,.gift-input-wrap:focus-within,.segmented-button:focus-visible,.secondary-button:focus-visible,.icon-button:focus-visible,.state-button:focus-visible,.item-link-button:focus-visible,.clear-slot:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1180px){.villager-grid{grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}}@media(max-width:760px){.app-shell{padding:14px}.topbar{align-items:flex-start;flex-direction:column}.summary-strip{width:100%;justify-content:stretch}.summary-stat{flex:1}.toolbar{position:static}.villager-grid{grid-template-columns:1fr;gap:22px}.villager-card-header{grid-template-columns:68px minmax(0,1fr);padding:26px 18px 18px}.avatar-wrap{width:88px;height:88px;margin-left:-24px}.avatar{width:88px;height:88px}.villager-card h2{font-size:1.65rem}.location-pill{right:12px;max-width:calc(100% - 130px)}.card-actions{grid-column:2;justify-self:start;margin-top:16px}.gift-section{padding-left:16px;padding-right:16px}.gift-row{grid-template-columns:32px minmax(0,1fr) 34px 42px 42px;gap:7px;padding-left:10px;padding-right:8px}.gift-input-wrap input{font-size:.98rem}.state-button{width:42px;height:42px}}
