:root{--ink:#533b45;--muted:#927783;--rose:#de7597;--rose-dark:#bd5277;--pink:#f9dfe7;--cream:#fffaf8;--line:#efdce3;--green:#70aa8d;--shadow:0 18px 50px rgba(111,65,81,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:15px/1.55 system-ui,-apple-system,Segoe UI,sans-serif;background:#fff8f5 url('/assets/toy-pattern.png') center/760px auto fixed}body:before{content:"";position:fixed;inset:0;background:rgba(255,250,248,.76);z-index:-1}button,input,textarea,select{font:inherit;color:inherit}.hidden{display:none!important}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:800;color:var(--rose);margin:0 0 8px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:28px}.login-card{width:min(430px,100%);text-align:center;background:rgba(255,255,255,.93);border:1px solid rgba(238,202,214,.8);border-radius:32px;padding:40px;box-shadow:var(--shadow);backdrop-filter:blur(12px)}.brand-mark{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;background:linear-gradient(145deg,#f8ccda,#e98dac);color:#fff;font-size:34px;box-shadow:0 10px 26px #ebadc0}.login-card h1,.hero h1,.page-title h1{font-family:Georgia,serif;font-size:42px;line-height:1.08;margin:4px 0}.sub{color:var(--muted);margin:8px auto 28px}.stack{display:grid;gap:16px;text-align:left}label{display:grid;gap:7px;font-weight:700;font-size:13px}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#fff;outline:none;transition:.2s}textarea{min-height:90px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:#df8aa6;box-shadow:0 0 0 4px #fbe7ed}.primary,.secondary,.danger{border:0;border-radius:14px;padding:12px 18px;font-weight:800;cursor:pointer;transition:.2s}.primary{color:#fff;background:linear-gradient(135deg,var(--rose),var(--rose-dark));box-shadow:0 8px 20px #e9b2c3}.primary:hover{transform:translateY(-2px)}.secondary{background:#fae8ee;color:#a94d6e}.danger{background:#fff0f1;color:#bd5261}.error{color:#b94359;margin:0;text-align:center;min-height:20px}.topbar{height:76px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 4vw;position:sticky;top:0;z-index:10;backdrop-filter:blur(10px)}.logo{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);font-family:Georgia;font-size:20px;white-space:nowrap}.logo span{color:#e57c9e;font-size:27px}.topbar nav{display:flex;gap:8px;margin:auto}.topbar nav a{padding:8px 13px;border-radius:11px;text-decoration:none;color:var(--muted);font-weight:700}.topbar nav a.active,.topbar nav a:hover{color:var(--rose-dark);background:#fcebf0}.profile{display:flex;align-items:center;gap:9px}.profile small{display:block;color:var(--muted);font-size:11px}.avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(145deg,#f4afc4,#d76d91);color:white;display:grid;place-items:center;font-weight:800}.icon-btn,.logout{border:0;background:none;cursor:pointer}.icon-btn{font-size:23px;position:relative}.icon-btn i{position:absolute;width:8px;height:8px;border-radius:50%;background:#e25c82;right:3px;top:3px}.logout{color:var(--muted);font-size:12px}.content{max-width:1160px;margin:auto;padding:44px 24px 100px}.page{animation:fade .24s ease}.hero{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:30px;background:linear-gradient(135deg,rgba(255,255,255,.93),rgba(254,237,243,.93));border:1px solid #f0dce3;border-radius:30px;padding:42px;box-shadow:var(--shadow);overflow:hidden;position:relative}.hero:after{content:'✦  ·  ✧  ·  ★';position:absolute;right:5%;top:16px;color:#e9a4ba;font-size:24px;letter-spacing:10px;opacity:.65}.hero h1{font-size:50px}.hero p{color:var(--muted);max-width:560px}.balance-card{text-align:center;padding:30px;border-radius:25px;background:rgba(255,255,255,.8);border:1px solid white;box-shadow:0 12px 30px #efd5dd}.star{font-size:42px;color:#eaa64e;text-shadow:0 3px 10px #efc587}.balance{font:700 58px Georgia;line-height:1}.balance-card small{color:var(--muted)}.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}.card{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 10px 30px rgba(93,59,70,.07)}.card h3{margin:4px 0 7px}.card p{color:var(--muted);margin:0}.section-head,.page-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 0 22px}.page-title h1{font-size:38px}.rule-grid,.wish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.rule-card,.wish-card{background:rgba(255,255,255,.95);border:1px solid var(--line);border-radius:22px;padding:20px;position:relative;box-shadow:0 8px 26px rgba(90,52,67,.06)}.rule-card .reward,.price{color:#c25b7e;font-weight:800}.tag{display:inline-flex;padding:4px 9px;border-radius:99px;background:#f9e7ed;font-size:11px;font-weight:800}.actions{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.actions button{padding:8px 12px;font-size:12px}.wish-card{overflow:hidden;padding:0}.wish-image{height:160px;background:linear-gradient(145deg,#fce4ec,#f8f0f4);display:grid;place-items:center;font-size:42px}.wish-image img{width:100%;height:100%;object-fit:cover}.wish-body{padding:18px}.wish-body h3{margin:0 0 7px}.history-list{display:grid;gap:10px}.history-item{display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;padding:14px 17px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.94)}.history-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fdeaf0}.history-item .amount{font-size:18px;font-weight:800}.amount.plus{color:var(--green)}.amount.minus{color:#cf5f76}.meta{color:var(--muted);font-size:12px}.empty{text-align:center;color:var(--muted);padding:50px 20px;border:1px dashed #e6c9d3;border-radius:20px}.drawer{position:fixed;right:0;top:0;height:100vh;width:min(420px,100%);z-index:30;background:#fffaf9;padding:28px;box-shadow:-20px 0 60px rgba(70,34,47,.15);overflow:auto}.drawer-head{display:flex;justify-content:space-between;align-items:start}.drawer-head h2{margin:0}.note{padding:14px 0;border-bottom:1px solid var(--line)}.note.unread{font-weight:700}.overlay{position:fixed;inset:0;background:rgba(76,43,55,.3);z-index:20;backdrop-filter:blur(2px)}dialog{width:min(520px,calc(100% - 28px));border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:var(--shadow);color:var(--ink)}dialog::backdrop{background:rgba(74,36,50,.35);backdrop-filter:blur(3px)}.dialog-close{float:right;border:0;background:#fae8ee;border-radius:50%;width:34px;height:34px;font-size:20px;cursor:pointer}.modal-title{margin:5px 0 20px;font:700 28px Georgia}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);padding:12px 20px;border-radius:99px;background:#513944;color:#fff;z-index:100;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}.mobile-nav{display:none}
@keyframes fade{from{opacity:0;transform:translateY(5px)}}
@media(max-width:850px){.topbar{padding:0 18px}.topbar nav,.profile>div:not(.avatar),.logout{display:none}.profile{margin-left:auto}.content{padding:25px 15px 92px}.hero{grid-template-columns:1fr;padding:28px 22px}.hero h1{font-size:38px}.quick,.rule-grid,.wish-grid{grid-template-columns:1fr 1fr}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:15;background:rgba(255,255,255,.96);border-top:1px solid var(--line);justify-content:space-around;padding:8px 6px calc(8px + env(safe-area-inset-bottom));backdrop-filter:blur(12px)}.mobile-nav a{display:grid;text-align:center;text-decoration:none;color:var(--muted);font-size:20px}.mobile-nav small{font-size:10px;font-weight:700}.login-card{padding:30px 22px}.login-card h1{font-size:36px}}
@media(max-width:560px){.quick,.rule-grid,.wish-grid{grid-template-columns:1fr}.page-title{align-items:start;flex-direction:column}.page-title h1{font-size:34px}.balance{font-size:50px}.form-row{grid-template-columns:1fr}.history-item{grid-template-columns:42px 1fr}.history-item .amount{grid-column:2}.logo strong{font-size:17px}}
.simple-list{display:grid;gap:10px}.simple-rule{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:center;gap:14px;background:rgba(255,255,255,.95);border:1px solid var(--line);border-radius:17px;padding:14px 16px}.rule-number{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f9e4eb;color:var(--rose-dark);font-weight:800}.rule-copy h3{margin:4px 0 0}.rule-copy p{margin:5px 0 0;color:var(--muted)}.rule-points{font-weight:800;color:#c25b7e;white-space:nowrap}.simple-rule>.actions{margin:0}.task-heading{margin-top:48px}.task-card{border-top:4px solid #edb0c3}
@media(max-width:700px){.simple-rule{grid-template-columns:36px minmax(0,1fr) auto}.simple-rule>.actions{grid-column:2/4}.rule-number{width:30px;height:30px}.task-heading{margin-top:36px}}
.product-link{display:inline-flex;align-items:center;padding:8px 12px;border-radius:11px;background:#f7edf1;color:var(--rose-dark);font-size:12px;font-weight:800;text-decoration:none}.product-link:hover{background:#f1dce4}input[type=file]{padding:9px;background:#fff}label small{color:var(--muted);font-weight:500;margin-left:4px}
.wish-card{display:flex;flex-direction:column;background:#fff}.wish-card .wish-image{position:relative;flex:0 0 auto;width:100%;height:auto;aspect-ratio:4/3;min-height:0;max-height:270px;overflow:hidden;background:#f8e8ee}.wish-card .wish-image img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:100%;object-fit:cover}.wish-card .wish-body{position:relative;z-index:2;display:flex;flex:1;flex-direction:column;padding:19px;background:#fff;color:var(--ink)}.wish-card .wish-body p{color:var(--muted);margin:0 0 10px}.wish-card .price{margin-top:auto;padding-top:5px}.wish-card .actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px;align-items:stretch;gap:8px;width:100%}.wish-card .actions .product-link{grid-column:1/-1;justify-content:center}.wish-card .actions button{width:100%;min-width:0;padding:9px 8px;white-space:nowrap}.wish-card .actions .danger{grid-column:auto}
@media(max-width:560px){.wish-card .wish-image{max-height:none;aspect-ratio:4/3}.wish-card .wish-body{padding:18px}.wish-card .actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px}}
