:root{--ink:#102c33;--ink2:#1f4648;--paper:#eef1df;--paper2:#f8f3df;--jade:#4d8678;--jade2:#75aa91;--gold:#e2bb63;--gold2:#f3d890;--red:#ba5942;--muted:#70827a;--line:rgba(16,44,51,.16);--shadow:0 18px 50px rgba(23,47,43,.18);--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:var(--ink);background:#dfe8d9}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.hidden{display:none!important}
body:before{content:"";position:fixed;inset:0;z-index:-2;background:radial-gradient(circle at 12% 9%,#fff9dd 0 9%,transparent 25%),radial-gradient(circle at 88% 10%,#beded2 0 8%,transparent 27%),linear-gradient(145deg,#f3efd9,#d5e5d9 55%,#b9d6ce)}
body:after{content:"";position:fixed;inset:0;z-index:-1;opacity:.2;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E")}
.game-panel{position:relative;border:1px solid rgba(247,240,203,.42);background:linear-gradient(145deg,rgba(251,248,225,.92),rgba(224,235,214,.88));box-shadow:var(--shadow),inset 0 0 0 1px rgba(27,73,65,.08);border-radius:22px;overflow:hidden}.game-panel:after{content:"";position:absolute;inset:8px;pointer-events:none;border:1px solid rgba(38,81,72,.13);border-radius:16px}
.eyebrow,.panel-kicker{margin:0;color:#91742d;font-size:11px;font-weight:800;letter-spacing:.22em;text-transform:uppercase}.toast{position:fixed;left:50%;top:24px;z-index:1000;transform:translate(-50%,-20px);background:var(--ink);color:#fff;padding:11px 18px;border:1px solid var(--gold);border-radius:999px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}
/* Login */
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:30px 18px;overflow:hidden;position:relative;background:linear-gradient(rgba(13,43,47,.22),rgba(12,39,42,.15)),url('/assets/world-map.png') center 64%/cover}.auth-screen:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,transparent 15%,rgba(15,45,47,.36) 100%)}.auth-card{z-index:2;width:min(440px,100%);padding:38px 36px 34px;text-align:center;backdrop-filter:blur(12px)}.auth-card h1{margin:5px 0;font-family:serif;font-size:42px;letter-spacing:.16em;text-indent:.16em}.auth-lead{margin:4px 0 24px;color:var(--muted);font-size:14px}.brand-seal{width:72px;height:72px;display:grid;place-items:center;margin:-10px auto 12px;border:2px solid var(--gold);border-radius:50%;background:var(--ink);box-shadow:0 0 0 6px rgba(226,187,99,.18)}
.cat-face{width:40px;height:35px;display:block;position:relative;background:#f0d78c;border-radius:40% 40% 50% 50%}.cat-face:before,.cat-face:after{content:"";position:absolute;top:-8px;border-style:solid;border-width:0 9px 14px}.cat-face:before{left:2px;border-color:transparent transparent #f0d78c}.cat-face:after{right:2px;border-color:transparent transparent #f0d78c}.cat-face i:before,.cat-face i:after{content:"";position:absolute;top:13px;width:5px;height:7px;background:var(--ink);border-radius:50%}.cat-face i:before{left:9px}.cat-face i:after{right:9px}.cat-face.mini{width:24px;height:21px}.cat-face.mini:before,.cat-face.mini:after{top:-5px;border-width:0 6px 9px}.cat-face.mini i:before,.cat-face.mini i:after{top:8px;width:3px;height:4px}.cat-face.mini i:before{left:5px}.cat-face.mini i:after{right:5px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:18px;padding:4px;border:1px solid var(--line);background:rgba(255,255,255,.35);border-radius:12px}.auth-tab{border:0;padding:9px;background:transparent;color:var(--muted);border-radius:9px}.auth-tab.active{background:var(--ink);color:var(--gold2);box-shadow:0 3px 8px rgba(16,44,51,.22)}.auth-form{display:grid;gap:13px;text-align:left}.auth-form label,.auth-form legend{font-size:12px;color:var(--ink2);font-weight:700}.auth-form input,.auth-form select{display:block;width:100%;margin-top:5px;padding:12px 13px;border:1px solid var(--line);outline:0;border-radius:11px;background:rgba(255,255,255,.58);color:var(--ink)}.auth-form input:focus,.auth-form select:focus{border-color:var(--jade);box-shadow:0 0 0 3px rgba(77,134,120,.12)}fieldset{border:0;padding:0;margin:0}.avatar-picker{display:flex;gap:9px;margin-top:6px}.avatar-choice{width:48px;height:48px;padding:0;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.5);display:grid;place-items:center}.avatar-choice.selected{border:2px solid var(--gold);background:var(--ink);transform:translateY(-2px)}.primary-btn{border:0;margin-top:3px;padding:13px 15px;border-radius:12px;background:linear-gradient(90deg,var(--ink),#2f5f5a);color:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:0 10px 22px rgba(16,44,51,.2)}.primary-btn b{font-size:23px;color:var(--gold2)}.form-tip{font-size:11px;color:var(--muted);text-align:center;margin:2px 0}
/* Avatars */
.avatar{width:54px;height:54px;position:relative;flex:none;border:2px solid var(--gold);border-radius:50%;background:#e3d9ac;box-shadow:0 0 0 4px rgba(226,187,99,.16);overflow:hidden}.avatar:before{content:"";position:absolute;left:10px;top:14px;width:30px;height:27px;border-radius:40% 40% 48% 48%;background:var(--ink)}.avatar:after{content:"••";position:absolute;top:18px;left:17px;color:#f2d583;font-size:15px;letter-spacing:6px}.avatar-leaf{background:#b8d98e}.avatar-leaf:before{background:#446d4c}.avatar-fox{background:#eccb85}.avatar-fox:before{background:#b7613f;clip-path:polygon(0 0,25% 18%,50% 0,75% 18%,100% 0,90% 100%,10% 100%)}.avatar-bird{background:#a8d8d3}.avatar-bird:before{background:#3e7376;clip-path:polygon(0 12%,100% 12%,75% 65%,50% 100%,25% 65%)}
/* Shell / battle */
.app-shell{min-height:100vh;padding:16px 18px 94px}.battle-header{height:86px;max-width:1460px;margin:0 auto 14px;display:grid;grid-template-columns:minmax(190px,1fr) minmax(320px,2.2fr) minmax(190px,1fr);align-items:center;gap:22px;padding:9px 18px;color:#eff5e9;background:linear-gradient(90deg,#0c282e,#183e3e 52%,#291f2c);border:1px solid rgba(226,187,99,.45);border-radius:22px;box-shadow:0 14px 35px rgba(16,44,51,.28);position:relative;overflow:hidden}.battle-header:before{content:"";position:absolute;inset:0;opacity:.25;background:repeating-linear-gradient(120deg,transparent 0 18px,rgba(255,255,255,.03) 19px 20px)}.fighter{z-index:1;display:flex;align-items:center;gap:10px}.fighter strong,.fighter span{display:block}.fighter strong{font-family:serif;font-size:16px;color:var(--gold2)}.fighter span{font-size:11px;opacity:.7}.enemy-fighter{justify-content:flex-end;text-align:right}.enemy-avatar{width:54px;height:54px;border:2px solid #c88b61;border-radius:50%;background:radial-gradient(circle,#69444d,#251b27);position:relative}.enemy-avatar:before,.enemy-avatar:after{content:"";position:absolute;top:13px;width:13px;height:5px;background:#f0a668;box-shadow:0 0 8px #f45;transform:rotate(15deg)}.enemy-avatar:before{left:9px}.enemy-avatar:after{right:9px;transform:rotate(-15deg)}.enemy-avatar i{position:absolute;left:21px;bottom:12px;width:14px;height:10px;border-bottom:3px solid #d89266;border-radius:50%}.enemy-avatar b:before,.enemy-avatar b:after{content:"";position:absolute;top:-6px;border-style:solid}.enemy-avatar b:before{left:1px;border-width:0 5px 18px 10px;border-color:transparent transparent #4c303d}.enemy-avatar b:after{right:1px;border-width:0 10px 18px 5px;border-color:transparent transparent #4c303d}.battle-copy{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#c8d9cc}.battle-copy strong{color:var(--gold2)}.battle-track{height:15px;margin-top:5px;border:1px solid #c49e50;border-radius:999px;background:#0a1d22;position:relative}.track-fill{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#75b48b,#e7c765);box-shadow:0 0 12px #e5c15e;transition:.55s}.track-start{position:absolute;left:6px;top:-2px;color:#e9d189;font-size:9px;z-index:1}.hero-token{position:absolute;left:0;top:50%;transform:translate(-50%,-50%);width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#18383a;border:2px solid var(--gold);transition:.55s;z-index:2}.track-spark{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff3bd;animation:blink 1.6s infinite}.s1{left:34%;top:5px}.s2{left:63%;top:2px;animation-delay:.4s}.s3{left:83%;top:7px;animation-delay:.8s}@keyframes blink{50%{opacity:.15;transform:scale(2)}}
.desktop-grid{max-width:1460px;margin:auto;display:grid;grid-template-columns:260px minmax(430px,1fr) 260px;gap:14px;align-items:start}.side-column{display:grid;gap:14px}.side-column .game-panel{padding:20px}.user-card{min-height:160px}.currency-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px dashed var(--line);font-size:13px}.currency-row strong{color:#9b7623}.currency-row b{font-size:18px}.level-line{display:flex;justify-content:space-between;align-items:end;margin-top:12px}.level-line span{font-family:serif;font-weight:bold}.level-line small{font-size:10px;color:var(--muted)}.panel-title{display:flex;justify-content:space-between;align-items:start;margin-bottom:12px}.panel-title span{display:block;font-family:serif;font-weight:800;font-size:17px}.panel-title small{font-size:10px;color:var(--muted)}.panel-title b{color:#a17b2d}.panel-title button{border:0;background:transparent;color:var(--jade);font-size:11px;z-index:1}.ring-row{display:flex;gap:12px;align-items:center}.ring-row p{font-size:11px;line-height:1.7;color:var(--muted);margin:0;flex:1}.progress-ring{--p:0;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--jade) calc(var(--p)*1%),rgba(27,72,63,.12) 0);position:relative}.progress-ring:before{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--paper2)}.progress-ring span{z-index:1;font-size:11px;font-weight:bold}.mini-task-list{margin-top:13px}.mini-task{position:relative;z-index:1;display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px dashed var(--line);font-size:11px}.mini-task i{width:16px;height:16px;border:1px solid var(--jade);border-radius:50%;font-style:normal;text-align:center;line-height:14px;color:#fff}.mini-task.done i{background:var(--jade)}.mini-task span{flex:1}.side-rank-list{display:grid;gap:8px}.side-rank{z-index:1;display:grid;grid-template-columns:22px 32px 1fr auto;align-items:center;gap:6px;font-size:11px}.side-rank .avatar{width:30px;height:30px;box-shadow:none;border-width:1px}.side-rank .avatar:before{left:6px;top:8px;width:17px;height:16px}.side-rank .avatar:after{top:9px;left:9px;font-size:9px;letter-spacing:2px}.side-rank em{font-style:normal;color:var(--muted)}.side-rank strong{font-size:12px}.side-rank small{display:block;color:var(--muted)}.news-card{min-height:160px}.activity{position:relative;z-index:1;padding:9px 0;border-bottom:1px dashed var(--line);font-size:10px;color:var(--muted)}.activity strong{color:var(--ink)}
/* Views */
.main-stage{height:calc(100vh - 126px);min-height:660px;padding:20px;display:flex;flex-direction:column}.view-head{height:52px;z-index:2;display:flex;justify-content:space-between;align-items:start;padding:0 5px}.view-head h2{font-family:serif;margin:1px 0;font-size:24px;letter-spacing:.08em}.ghost-btn{border:1px solid var(--jade);background:rgba(255,255,255,.45);color:var(--jade);padding:8px 12px;border-radius:999px;font-size:11px}.view{display:none;z-index:1;flex:1;min-height:0;overflow:auto}.view.active{display:block}.map-wrap{height:100%;min-height:570px;position:relative;border-radius:15px;overflow:hidden;background:#78c8ca url('/assets/world-map.png') center/cover no-repeat;box-shadow:inset 0 0 45px rgba(12,47,48,.25)}.map-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 30px rgba(249,244,214,.65)}.map-node{position:absolute;z-index:3;transform:translate(-50%,-50%);border:0;background:transparent;color:#fff;text-shadow:0 2px 3px #102c33;display:flex;align-items:center;gap:7px}.map-node .node-orb{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;background:#163f43;border:3px solid var(--gold2);box-shadow:0 0 0 5px rgba(16,44,51,.35),0 6px 15px rgba(0,0,0,.35);font-family:serif;font-size:15px}.map-node .node-label{padding:7px 16px 7px 11px;min-width:112px;border:1px solid var(--gold);border-radius:5px 18px 18px 5px;background:rgba(12,40,42,.88);text-align:left}.map-node strong,.map-node small{display:block}.map-node strong{font-family:serif;font-size:14px}.map-node small{font-size:9px;color:#dbead9}.map-node.locked{filter:grayscale(.9);opacity:.68}.map-node.current .node-orb{animation:pulse 1.7s infinite}@keyframes pulse{50%{box-shadow:0 0 0 10px rgba(243,216,144,.15),0 6px 15px rgba(0,0,0,.35)}}.n1{left:52%;top:82%}.n2{left:34%;top:62%}.n3{left:68%;top:47%}.n4{left:37%;top:30%}.n5{left:57%;top:13%}.map-legend{position:absolute;z-index:3;left:16px;top:15px;padding:9px 12px;border-radius:10px;background:rgba(248,243,223,.88);box-shadow:0 6px 16px rgba(16,44,51,.2);font-size:10px;color:var(--ink)}
.content-pad{padding:8px 5px 20px}.section-intro{display:flex;align-items:center;justify-content:space-between;margin:6px 0 14px}.section-intro p{margin:0;color:var(--muted);font-size:12px}.task-list{display:grid;gap:10px}.task-card{display:grid;grid-template-columns:44px 1fr auto;gap:11px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.45);transition:.2s}.task-card.done{opacity:.72;background:rgba(106,156,125,.12)}.subject-rune{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;color:#fff;background:var(--jade);font-family:serif;font-weight:bold}.task-card:nth-child(2n) .subject-rune{background:#4c7290}.task-card:nth-child(3n) .subject-rune{background:#a86b53}.task-card h3{font-size:13px;margin:0 0 3px}.task-card p{font-size:10px;color:var(--muted);margin:0}.task-card button{border:1px solid var(--jade);background:transparent;color:var(--jade);border-radius:999px;padding:7px 10px;font-size:10px}.task-card.done button{background:var(--jade);color:#fff}.rank-list{display:grid;gap:8px}.rank-row{display:grid;grid-template-columns:38px 42px 1fr 130px 70px;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.42)}.rank-row.me{border-color:var(--gold);background:rgba(242,212,132,.17)}.rank-no{font-family:serif;font-size:20px;text-align:center}.rank-no.top{color:#ad7821}.rank-row .avatar{width:38px;height:38px;box-shadow:none}.rank-row .avatar:before{left:7px;top:10px;width:22px;height:20px}.rank-row .avatar:after{top:11px;left:11px;font-size:11px;letter-spacing:3px}.rank-name strong,.rank-name small{display:block}.rank-name strong{font-size:13px}.rank-name small{font-size:10px;color:var(--muted)}.rank-progress{height:7px;border-radius:9px;background:rgba(16,44,51,.1);overflow:hidden}.rank-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--jade),var(--gold));border-radius:inherit}.rank-points{text-align:right;font-size:11px;color:#967329}.reward-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reward-card{padding:17px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.47);position:relative;overflow:hidden}.reward-icon{font-size:31px}.reward-card h3{margin:6px 0 3px;font-size:14px}.reward-card p{margin:0 0 14px;font-size:10px;color:var(--muted);min-height:31px}.reward-foot{display:flex;justify-content:space-between;align-items:center}.reward-foot strong{color:#9e7524;font-size:13px}.reward-foot button{border:0;border-radius:999px;background:var(--ink);color:#fff;padding:7px 12px;font-size:10px}.history{margin-top:18px}.history h3{font-family:serif;font-size:15px}.history-item{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px dashed var(--line);font-size:11px}.history-item small{color:var(--muted)}
.profile-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}.profile-card{padding:18px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.42)}.profile-card h3{font-family:serif;margin:0 0 14px}.profile-form{display:grid;gap:12px}.profile-form label{font-size:11px;font-weight:bold}.profile-form input,.profile-form select{display:block;width:100%;margin-top:4px;padding:10px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.55)}.secondary-btn,.danger-btn{border:0;padding:10px 13px;border-radius:10px}.secondary-btn{background:var(--ink);color:#fff}.danger-btn{margin-top:10px;background:rgba(186,89,66,.1);color:var(--red);border:1px solid rgba(186,89,66,.25)}.achievement{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:10px;background:rgba(255,255,255,.45);border-radius:12px}.achievement i{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#ead18d;font-style:normal}.achievement strong,.achievement small{display:block}.achievement strong{font-size:12px}.achievement small{font-size:9px;color:var(--muted)}
.bottom-nav{position:fixed;z-index:50;left:50%;bottom:14px;transform:translateX(-50%);width:min(600px,calc(100% - 30px));height:65px;display:flex;align-items:center;padding:5px 12px calc(5px + var(--safe-bottom));border:1px solid rgba(226,187,99,.6);border-radius:22px;background:rgba(12,40,43,.95);box-shadow:0 15px 40px rgba(13,42,44,.35);backdrop-filter:blur(10px)}.bottom-nav button{flex:1;border:0;background:transparent;color:#94aaa1;display:grid;place-items:center;gap:1px}.bottom-nav span{width:28px;height:28px;display:grid;place-items:center;border:1px solid rgba(226,187,99,.2);border-radius:50%;font-family:serif}.bottom-nav b{font-size:9px}.bottom-nav button.active{color:var(--gold2)}.bottom-nav button.active span{background:var(--gold);color:var(--ink);border-color:#fff0b9;box-shadow:0 0 14px rgba(226,187,99,.5)}.bottom-nav .map-nav{transform:translateY(-9px)}.bottom-nav .map-nav span{width:42px;height:42px;border-width:2px;font-size:17px}
.inline-btn{border:1px solid var(--jade);background:rgba(255,255,255,.48);color:var(--jade);border-radius:999px;padding:8px 13px;font-size:11px;font-weight:700}.custom-task-form{display:grid;grid-template-columns:110px 1fr auto;gap:8px;padding:12px;margin-bottom:12px;border:1px dashed var(--jade);border-radius:14px;background:rgba(255,255,255,.38)}.custom-task-form input,.custom-task-form select{min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.7);color:var(--ink)}.custom-task-form button{border:0;border-radius:9px;padding:8px 14px;background:var(--ink);color:#fff}.custom-badge{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:6px;background:rgba(226,187,99,.25);color:#8e6a1f;font-size:8px}
.rank-row{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer}.rank-row:hover,.side-rank-button:hover{border-color:var(--jade);transform:translateY(-1px)}.side-rank-button{width:100%;padding:2px;border:1px solid transparent;border-radius:8px;background:transparent;color:inherit;text-align:left;cursor:pointer;transition:.2s}
.modal-overlay{position:fixed;z-index:900;inset:0;display:grid;place-items:center;padding:20px;background:rgba(5,24,27,.64);backdrop-filter:blur(6px)}.modal-card{width:min(520px,100%);max-height:min(720px,88vh);overflow:auto;padding:28px}.modal-close{position:absolute;right:17px;top:14px;z-index:3;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.58);color:var(--ink);font-size:23px;line-height:28px}.modal-hero{display:flex;align-items:center;gap:13px;margin-bottom:17px;padding-right:36px}.modal-hero .avatar{width:48px;height:48px}.modal-hero h3{margin:0;font-family:serif;font-size:21px}.modal-hero p{margin:3px 0 0;color:var(--muted);font-size:11px}.modal-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.modal-stat{padding:11px 8px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.42);text-align:center}.modal-stat strong,.modal-stat small{display:block}.modal-stat strong{font-size:18px;color:#917022}.modal-stat small{font-size:9px;color:var(--muted)}.member-task-list{display:grid;gap:7px}.member-task{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;padding:10px;border-radius:10px;background:rgba(255,255,255,.45);font-size:11px}.member-task i{width:20px;height:20px;display:grid;place-items:center;border:1px solid var(--jade);border-radius:50%;font-style:normal;color:var(--jade)}.member-task.done i{background:var(--jade);color:#fff}.member-task small{color:var(--muted)}.zone-lore{margin:0 0 15px;padding:14px;border-left:3px solid var(--gold);background:rgba(255,255,255,.4);color:var(--muted);font-size:12px;line-height:1.8}.subject-chips{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 18px}.subject-chip{padding:7px 10px;border-radius:999px;background:rgba(77,134,120,.12);color:var(--ink2);font-size:10px}.modal-action{width:100%;border:0;padding:11px;border-radius:10px;background:linear-gradient(90deg,var(--ink),var(--ink2));color:#fff}
.modal-hero>.node-orb{width:48px;height:48px;flex:none;display:grid;place-items:center;border:2px solid var(--gold);border-radius:50%;background:var(--ink);color:var(--gold2);font-family:serif;font-size:18px}
@media(max-width:1100px){.desktop-grid{grid-template-columns:220px 1fr}.right-column{display:none}}
@media(max-width:780px){.app-shell{padding:0 0 90px}.battle-header{margin:0;border-radius:0;height:78px;padding:8px 10px;grid-template-columns:80px 1fr 65px;gap:7px}.fighter{gap:5px}.fighter .avatar,.enemy-avatar{width:39px;height:39px}.fighter .avatar:before{left:7px;top:10px;width:22px;height:20px}.fighter .avatar:after{top:11px;left:11px;font-size:11px;letter-spacing:3px}.fighter strong{font-size:11px}.fighter span{font-size:8px}.enemy-fighter>div:first-child{display:none}.battle-copy{font-size:9px}.desktop-grid{display:block}.left-column{display:none}.main-stage{height:calc(100vh - 78px - 83px);min-height:520px;border-radius:0;padding:12px;border:0;background:linear-gradient(145deg,rgba(251,248,225,.96),rgba(224,235,214,.93));box-shadow:none}.main-stage:after{display:none}.view-head{height:48px}.view-head h2{font-size:19px}.view-head .eyebrow{font-size:8px}.map-wrap{min-height:440px}.map-node .node-orb{width:36px;height:36px;font-size:12px}.map-node .node-label{padding:5px 10px 5px 7px;min-width:90px}.map-node strong{font-size:11px}.map-node small{font-size:7px}.n1{left:57%}.n2{left:31%}.n3{left:65%}.n4{left:35%}.rank-row{grid-template-columns:28px 35px 1fr 72px}.rank-progress{display:none}.reward-grid{grid-template-columns:1fr}.profile-layout{grid-template-columns:1fr}.bottom-nav{bottom:8px}.auth-card{padding:32px 22px 27px}.auth-card h1{font-size:35px}.brand-seal{width:62px;height:62px}}
@media(max-width:780px){.custom-task-form{grid-template-columns:1fr}.modal-card{padding:24px 18px}.modal-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:380px){.battle-header{grid-template-columns:70px 1fr 42px}.enemy-avatar{width:36px;height:36px}.task-card{grid-template-columns:38px 1fr auto;padding:10px}.subject-rune{width:36px;height:36px}.map-node .node-label{min-width:80px}}

/* Private Luo Xiaohei / The Gate of All Beings fan theme */
:root{--ink:#202320;--ink2:#343833;--paper:#edf0e9;--paper2:#f5f6f1;--jade:#b6c832;--jade2:#d5df51;--gold:#cbd63b;--gold2:#eff477;--red:#cb604d;--muted:#747a73;--line:rgba(40,45,40,.18);--shadow:0 16px 42px rgba(18,22,19,.22)}
body:before{background:radial-gradient(ellipse at 50% 0,rgba(255,255,255,.94),rgba(223,229,222,.76) 40%,rgba(177,190,181,.66)),url('/assets/world-map.png') center/cover;filter:grayscale(.26) saturate(.65)}
.game-panel{border-color:rgba(142,154,60,.42);background:linear-gradient(145deg,rgba(246,248,242,.96),rgba(221,226,219,.94));box-shadow:var(--shadow),inset 0 0 0 1px rgba(255,255,255,.5)}.game-panel:after{border-color:rgba(56,62,54,.16)}
.auth-screen{background:linear-gradient(rgba(26,30,28,.25),rgba(26,30,28,.46)),url('/assets/world-map.png') center 62%/cover}.auth-screen:after{background:radial-gradient(circle at center,transparent 10%,rgba(20,23,21,.55) 100%)}.auth-card{background:linear-gradient(150deg,rgba(32,35,32,.96),rgba(16,18,17,.93));border:1px solid rgba(206,218,62,.65);color:#f2f4e9}.auth-card:after{border-color:rgba(210,222,65,.22)}.auth-card .eyebrow{color:#d9e455}.auth-card .auth-lead,.auth-card label,.auth-card legend{color:#c6cbc1}.auth-card h1{font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-weight:900;letter-spacing:.12em}.auth-tabs{border-color:rgba(207,218,65,.35);background:rgba(0,0,0,.24)}.auth-tab{color:#aeb4aa}.auth-tab.active{background:#c8d53a;color:#191c19}.auth-form input,.auth-form select{background:rgba(241,243,236,.96);border-color:#62685e;color:#222}.primary-btn{background:linear-gradient(90deg,#879626,#c6d43a);color:#111;font-weight:800}.primary-btn b{color:#111}
.xiaohei-seal{background-image:url('/assets/luoxiaohei-avatar-sprite.png');background-size:200% 200%;background-position:0 0;background-repeat:no-repeat;border-color:#dbe64d;box-shadow:0 0 0 5px rgba(199,214,58,.16),0 0 22px rgba(199,214,58,.32)}
.avatar{background-image:url('/assets/luoxiaohei-avatar-sprite.png');background-size:200% 200%;background-repeat:no-repeat;background-color:#1c211d;border-color:#d6e343;box-shadow:0 0 0 4px rgba(205,219,60,.18)}.avatar:before,.avatar:after{display:none}.avatar-cat{background-position:0 0}.avatar-leaf{background-position:100% 0}.avatar-fox{background-position:0 100%}.avatar-bird{background-position:100% 100%}.mini-xiaohei{display:block;width:100%;height:100%;border-radius:50%;background:url('/assets/luoxiaohei-avatar-sprite.png') 0 0/200% 200% no-repeat}
.battle-header{background:linear-gradient(100deg,rgba(24,27,25,.98),rgba(44,48,44,.97) 54%,rgba(28,30,28,.98));border-color:rgba(211,224,61,.72);border-radius:12px;box-shadow:0 10px 28px rgba(17,20,18,.34),inset 0 0 22px rgba(0,0,0,.28)}.battle-header:before{opacity:.5;background:linear-gradient(115deg,transparent 0 18%,rgba(211,224,61,.08) 18% 19%,transparent 19% 82%,rgba(211,224,61,.08) 82% 83%,transparent 83%)}.fighter strong{color:#e5ec68}.fighter span{color:#d5d9cf}.battle-track{height:13px;border-color:#d3df3d;background:#080a08;box-shadow:inset 0 0 7px #000}.track-fill{background:linear-gradient(90deg,#86951d,#dce750 68%,#f1f67c);box-shadow:0 0 12px rgba(218,231,67,.72)}.hero-token{border-color:#e4ec68;background:#111}.enemy-avatar{background:url('/assets/fengxi-avatar.png') center/cover no-repeat;border-color:#d1dd3e;box-shadow:0 0 0 4px rgba(205,218,58,.14),0 0 18px rgba(91,148,50,.35)}.enemy-avatar:before,.enemy-avatar:after,.enemy-avatar i,.enemy-avatar b{display:none}
.side-column .game-panel{background:linear-gradient(150deg,rgba(38,42,39,.96),rgba(22,25,23,.95));border-color:rgba(198,211,55,.48);color:#f1f3e9}.side-column .game-panel:after{border-color:rgba(210,222,63,.14)}.side-column .panel-kicker,.side-column .panel-title small,.side-column .ring-row p,.side-column .level-line small,.side-column .side-rank small,.side-column .activity{color:#aeb5aa}.side-column .panel-title b,.side-column .currency-row strong,.side-column .activity b{color:#dbe64e}.side-column .progress-ring{background:conic-gradient(#c7d63b calc(var(--p)*1%),rgba(255,255,255,.12) 0)}.side-column .progress-ring:before{background:#252925}.side-column .mini-task{border-color:rgba(255,255,255,.12)}.side-column .mini-task i{border-color:#cbd83e}.side-column .mini-task.done i{background:#aebe2c;color:#141714}.side-rank-button{color:#f1f3e9}
.main-stage{background:linear-gradient(145deg,rgba(244,246,240,.97),rgba(222,228,220,.96));border-color:rgba(159,174,55,.55)}.view-head .eyebrow,.panel-kicker{color:#8b9824}.view-head h2{font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-weight:900;letter-spacing:.04em}.ghost-btn,.inline-btn{border-color:#8d9b26;color:#6e7a17}.task-card,.rank-row,.reward-card,.profile-card,.member-task,.modal-stat{background:rgba(248,249,245,.72);border-color:rgba(61,68,58,.18)}.subject-rune{background:#7d8b24;color:#f4f7dd}.task-card:nth-child(2n) .subject-rune{background:#30372f}.task-card:nth-child(3n) .subject-rune{background:#a2b12e}.task-card button{border-color:#879526;color:#6a7616}.task-card.done button{background:#a7b72e;color:#161916}.custom-task-form{border-color:#9caa2a}.custom-task-form button,.secondary-btn,.modal-action{background:linear-gradient(90deg,#252925,#59611e);color:#eff475}.rank-row.me{border-color:#b6c72f;background:rgba(211,224,66,.16)}.rank-points,.modal-stat strong,.reward-foot strong{color:#78851b}
.map-wrap{filter:saturate(.78) contrast(.98);border:1px solid rgba(77,84,72,.38);box-shadow:inset 0 0 55px rgba(255,255,255,.58)}.map-wrap:before{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;background:radial-gradient(ellipse at 8% 16%,rgba(255,255,255,.72),transparent 22%),radial-gradient(ellipse at 92% 38%,rgba(255,255,255,.7),transparent 25%),linear-gradient(90deg,rgba(255,255,255,.18),transparent 20% 80%,rgba(255,255,255,.22))}.map-node .node-orb{background:#222522;border-color:#d7e147;box-shadow:0 0 0 4px rgba(19,22,19,.46),0 0 16px rgba(213,225,68,.35)}.map-node .node-label{border-color:#cbd63c;background:rgba(24,27,25,.9);border-radius:3px 14px 14px 3px}.map-node small{color:#d9ded2}.map-legend{background:rgba(31,34,32,.9);border:1px solid #c8d53b;color:#e7ecb5}.bottom-nav{background:rgba(26,29,27,.97);border-color:rgba(205,218,57,.7);border-radius:14px}.bottom-nav button{color:#92998f}.bottom-nav button.active{color:#e2e960}.bottom-nav button.active span{background:#c7d43a;color:#171a17;border-color:#eef587}.modal-card{background:linear-gradient(145deg,rgba(243,245,239,.99),rgba(215,221,214,.98));border-color:#aab735}.modal-close{border-color:#8c9827}.modal-hero>.node-orb{border-color:#d4df43;background:#222622;color:#edf374}
@media(max-width:780px){.battle-header{border-radius:0;border-width:0 0 1px}.main-stage{background:linear-gradient(145deg,rgba(244,246,240,.98),rgba(222,228,220,.97))}.enemy-avatar{border-width:1px}.auth-card{border-radius:16px}}

@media(max-width:780px){.battle-header{grid-template-columns:96px minmax(0,1fr) 50px}.user-title{min-width:0}.user-title strong,.user-title span{white-space:nowrap}.user-title strong{font-size:10px}.enemy-fighter{min-width:0}}
@media(max-width:380px){.battle-header{grid-template-columns:92px minmax(0,1fr) 42px}}

/* V2 functional layout */
.vitality-header{grid-template-columns:minmax(185px,1fr) minmax(320px,2.4fr) minmax(190px,1fr)}
.header-resources{z-index:1;display:flex;justify-content:flex-end;gap:10px}.header-resources>div{min-width:78px;padding:7px 10px;border:1px solid rgba(211,224,61,.26);border-radius:9px;background:rgba(0,0,0,.2)}.header-resources span,.header-resources strong{display:block}.header-resources span{font-size:8px;color:#aeb6ab}.header-resources strong{color:#e6ee66;font-size:12px}.header-resources b{font:inherit}.track-fill[data-tone="danger"]{background:linear-gradient(90deg,#9d342b,#e4654e)}.track-fill[data-tone="warning"]{background:linear-gradient(90deg,#9c7c25,#e0c948)}.track-fill[data-tone="healthy"]{background:linear-gradient(90deg,#7f9224,#dce750 68%,#f1f67c)}
.main-stage{overflow:hidden}.view{scrollbar-width:thin;scrollbar-color:#9fad38 transparent}.content-pad h3,.home-content h3{margin:0}.section-intro>div>h3{font-size:15px}.section-intro>div>p{margin-top:3px}
.home-content{display:grid;gap:12px;padding:4px 4px 24px}.realm-scene{position:relative;min-height:310px;aspect-ratio:16/8.5;overflow:hidden;border:1px solid rgba(80,95,67,.3);border-radius:16px;background:url('/assets/home-realm-v2.png') center/cover no-repeat;box-shadow:inset 0 -40px 60px rgba(22,42,28,.13)}.scene-status{position:absolute;z-index:4;left:14px;top:14px;display:flex;gap:8px}.scene-status span,.scene-status strong{padding:7px 11px;border:1px solid rgba(224,235,93,.75);border-radius:999px;background:rgba(25,29,25,.82);color:#eff49a;font-size:10px;backdrop-filter:blur(5px)}.tree-layer{position:absolute;inset:0}.planted-tree{position:absolute;z-index:3;width:72px;height:88px;border:0;background:transparent;filter:drop-shadow(0 7px 5px rgba(22,43,26,.28));transition:.2s}.planted-tree:hover,.planted-tree.selected{transform:translateY(-5px) scale(1.05)}.planted-tree.selected:after{content:"";position:absolute;left:50%;bottom:2px;width:54px;height:16px;transform:translateX(-50%);border:2px solid #e9f15f;border-radius:50%;box-shadow:0 0 15px rgba(223,237,65,.8)}.planted-tree span{position:relative;z-index:2;display:block;font-size:56px;line-height:1}.planted-tree b{position:relative;z-index:3;display:inline-block;margin-top:-3px;padding:2px 6px;border-radius:999px;background:#252925;color:#e9ef72;font-size:8px}.tree-slot-1{left:51%;top:44%}.tree-slot-2{left:65%;top:52%}.tree-slot-3{left:78%;top:41%}.tree-slot-4{left:88%;top:56%}.empty-garden{position:absolute;left:60%;top:52%;transform:translate(-50%,-50%);display:grid;gap:4px;padding:14px 18px;border:1px dashed rgba(43,61,37,.35);border-radius:14px;background:rgba(245,249,232,.7);color:#3c5037;text-align:center;backdrop-filter:blur(4px)}.empty-garden strong{font-size:13px}.empty-garden span{font-size:9px}.garden-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(249,250,246,.78)}.garden-toolbar strong,.garden-toolbar small{display:block}.garden-toolbar strong{font-size:13px}.garden-toolbar small{margin-top:3px;color:var(--muted);font-size:9px}.garden-actions{display:flex;gap:7px}.garden-actions button{border:1px solid #91a02b;border-radius:999px;padding:8px 11px;background:#f8faef;color:#616d17;font-size:10px;font-weight:700}.garden-actions button:not(:disabled):hover{background:#d9e54e;color:#242820}.home-tasks{padding:15px;border:1px solid var(--line);border-radius:16px;background:rgba(249,250,246,.68)}.growth-divider{display:flex;align-items:center;justify-content:space-between;margin:18px 0 9px;padding-top:13px;border-top:1px dashed var(--line)}.growth-divider span{font-weight:800;font-size:12px}.growth-divider small{color:var(--muted);font-size:9px}.custom-badge.wellbeing{background:rgba(99,165,89,.18);color:#4b7541}.task-card.compact{padding:10px 13px}.task-card.compact .subject-rune{width:36px;height:36px}.task-card.compact h3{font-size:12px}
.friends-layout{display:grid;grid-template-columns:minmax(310px,.85fr) minmax(330px,1.15fr);gap:13px;min-height:100%}.friend-list-panel,.friend-detail{padding:15px;border:1px solid var(--line);border-radius:16px;background:rgba(250,251,247,.65)}.friend-search{display:flex;align-items:center;gap:8px;margin-bottom:10px}.friend-search input{flex:1;min-width:0;padding:9px 11px;border:1px solid var(--line);border-radius:999px;background:#fff}.friend-search span{color:var(--muted);font-size:9px}.friends-layout .rank-row{grid-template-columns:28px 36px 1fr 64px;padding:9px}.friends-layout .rank-progress{display:none}.friends-layout .rank-points{font-weight:800}.friend-detail{overflow:auto}.friend-placeholder{min-height:280px;display:grid;place-content:center;gap:5px;color:var(--muted);text-align:center}.friend-placeholder strong{color:var(--ink);font-size:16px}.friend-detail-head{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;margin-bottom:14px}.friend-detail-head h3,.friend-detail-head p{margin:0}.friend-detail-head p{color:var(--muted);font-size:10px}.friend-detail-head>strong{font-size:22px;color:#8b9824;text-align:right}.friend-detail-head>strong small{display:block;color:var(--muted);font-size:8px}.friend-progress{height:8px;margin:-4px 0 14px;border-radius:99px;background:rgba(40,50,39,.1);overflow:hidden}.friend-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8c9d27,#dce750)}
.island-task{margin:14px 0}.island-task .task-card{grid-template-columns:42px 1fr auto}.deadline-note{display:block;margin-top:12px;color:var(--muted);line-height:1.7}.store-wallet{display:grid;grid-template-columns:auto auto 1fr;gap:10px;align-items:center;padding:13px 15px;margin-bottom:17px;border:1px solid rgba(155,169,52,.4);border-radius:14px;background:linear-gradient(100deg,rgba(211,226,65,.16),rgba(249,250,246,.8))}.store-wallet>div{padding-right:15px;border-right:1px solid var(--line)}.store-wallet span,.store-wallet strong{display:block}.store-wallet span{color:var(--muted);font-size:9px}.store-wallet strong{margin-top:2px;color:#77831c;font-size:18px}.store-wallet strong.danger{color:#c24e42}.store-wallet p{margin:0;color:var(--muted);font-size:10px}.store-section{margin-bottom:20px}.store-section>h3{margin:0 0 9px;padding-left:8px;border-left:3px solid #a7b72e;font-size:14px}
.profile-dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.profile-dashboard>.profile-card{min-width:0}.profile-summary{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between}.profile-identity{display:flex;align-items:center;gap:12px}.profile-identity h3,.profile-identity p{margin:0}.profile-identity p{margin-top:3px;color:var(--muted);font-size:10px}.profile-stats{display:grid;grid-template-columns:repeat(4,auto);gap:8px}.profile-stats>div{min-width:74px;padding:8px 10px;border-radius:11px;background:rgba(204,217,58,.12);text-align:center}.profile-stats strong,.profile-stats small{display:block}.profile-stats strong{font-size:14px}.profile-stats small{margin-top:2px;color:var(--muted);font-size:8px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-day{min-width:0;padding:7px 2px;border:1px solid var(--line);border-radius:8px;text-align:center;background:rgba(255,255,255,.5)}.calendar-day span,.calendar-day b{display:block}.calendar-day span{font-size:7px;color:var(--muted)}.calendar-day b{margin-top:3px;font-size:10px}.calendar-day.done{background:rgba(166,187,42,.2);border-color:#9bac2c}.calendar-day.partial{background:rgba(235,199,73,.16)}.calendar-day.missed{background:rgba(196,76,61,.1);color:#b4473c}.card-note{margin:10px 0 0;color:var(--muted);font-size:9px}.inventory-list,.makeup-list{display:grid;gap:7px}.inventory-item,.makeup-item{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:9px;border-radius:10px;background:rgba(255,255,255,.52)}.inventory-item>i{width:34px;font-size:24px;text-align:center;font-style:normal}.inventory-item strong,.inventory-item small,.makeup-item strong,.makeup-item small{display:block}.inventory-item strong,.makeup-item strong{font-size:11px}.inventory-item small,.makeup-item small{color:var(--muted);font-size:8px}.inventory-item button,.makeup-item button,.friend-form button,.friend-manage-row button{border:0;border-radius:999px;padding:6px 9px;background:#30362e;color:#e9ef72;font-size:9px}.friend-form{display:grid;grid-template-columns:1fr auto;gap:7px;margin-bottom:10px}.friend-form input{min-width:0;padding:9px;border:1px solid var(--line);border-radius:9px;background:#fff}.friend-manage-row{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:7px 0;border-bottom:1px dashed var(--line)}.friend-manage-row .avatar{width:34px;height:34px;box-shadow:none}.friend-manage-row span,.friend-manage-row small{display:block}.friend-manage-row span{font-size:11px}.friend-manage-row small,.friend-manage-row em{color:var(--muted);font-size:8px;font-style:normal}.record-card{grid-column:1/-1}.record-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px}.record-list>div{display:grid;grid-template-columns:1fr auto;gap:2px 7px;padding:8px 0;border-bottom:1px dashed var(--line)}.record-list span{font-size:10px}.record-list b{font-size:9px}.record-list b.positive{color:#75831c}.record-list b.negative{color:#bd4d42}.record-list small{grid-column:1/-1;color:var(--muted);font-size:8px}.empty-list{padding:16px;color:var(--muted);text-align:center;font-size:10px}
@media(max-width:1000px){.friends-layout{grid-template-columns:1fr}.friend-detail{min-height:330px}.profile-dashboard{grid-template-columns:1fr}.profile-summary,.record-card{grid-column:auto}.profile-summary{align-items:flex-start}.profile-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.vitality-header{grid-template-columns:92px minmax(0,1fr) 72px}.header-resources{gap:3px}.header-resources>div{min-width:0;padding:5px;border:0;background:transparent;text-align:right}.header-resources span{font-size:7px}.header-resources strong{font-size:9px}.realm-scene{min-height:300px;aspect-ratio:auto;background-position:43% center}.tree-slot-1{left:48%;top:48%}.tree-slot-2{left:65%;top:55%}.tree-slot-3{left:75%;top:38%}.tree-slot-4{left:82%;top:62%}.planted-tree{width:62px}.planted-tree span{font-size:46px}.empty-garden{left:62%;width:160px}.garden-toolbar{align-items:flex-start;flex-direction:column}.garden-actions{width:100%}.garden-actions button{flex:1}.home-tasks{padding:12px}.task-card{grid-template-columns:38px 1fr auto;gap:8px;padding:10px}.task-card h3{font-size:11px}.task-card p{font-size:8px}.task-card button{padding:6px 8px}.profile-dashboard{display:grid;grid-template-columns:1fr}.profile-summary{display:grid;gap:12px}.profile-stats{width:100%;grid-template-columns:repeat(4,1fr);gap:4px}.profile-stats>div{min-width:0;padding:7px 3px}.record-list{grid-template-columns:1fr}.friends-layout{display:block}.friend-list-panel{border:0;padding:0;background:transparent}.friend-detail{margin-top:12px}.store-wallet{grid-template-columns:1fr 1fr}.store-wallet p{grid-column:1/-1}.scene-status{left:8px;top:8px}.scene-status span,.scene-status strong{padding:6px 8px;font-size:8px}.main-stage{overflow:hidden}.view{padding-bottom:8px}}
@media(max-width:420px){.vitality-header{grid-template-columns:88px minmax(0,1fr) 62px}.profile-stats{grid-template-columns:repeat(2,1fr)}.garden-actions{flex-wrap:wrap}.garden-actions button{min-width:92px}.friend-detail{padding:11px}.modal-summary{gap:5px}.calendar-day{padding:6px 1px}}

/* V3: tasks live on the map; the home view is a quiet garden dashboard. */
.home-garden-only .realm-scene{min-height:390px}.map-entry-card{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid rgba(145,160,43,.55);border-radius:14px;background:linear-gradient(100deg,rgba(210,225,62,.2),rgba(249,250,246,.88));color:var(--ink);text-align:left}.map-entry-card span,.map-entry-card strong,.map-entry-card small{display:block}.map-entry-card strong{font-size:14px}.map-entry-card small{margin-top:3px;color:var(--muted);font-size:9px}.map-entry-card b{color:#74821b;font-size:11px;white-space:nowrap}.map-entry-card:hover{border-color:#859424;background:linear-gradient(100deg,rgba(210,225,62,.34),rgba(249,250,246,.95))}
.map-screen{display:grid;gap:12px;padding:4px 4px 24px}.map-guide{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid rgba(145,160,43,.45);border-radius:13px;background:rgba(249,250,246,.82)}.map-guide strong,.map-guide small{display:block}.map-guide strong{font-size:13px}.map-guide small{margin-top:3px;color:var(--muted);font-size:9px}.map-screen .map-wrap{height:auto;min-height:570px}.map-extra-tasks{padding:0 14px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(249,250,246,.72)}.map-extra-tasks .growth-divider{margin-top:0;border-top:0}.map-progress-card .ring-row{margin-bottom:0}
@media(max-width:780px){.home-garden-only .realm-scene{min-height:390px}.map-guide{align-items:flex-start}.map-guide .inline-btn{flex:0 0 auto}.map-screen .map-wrap{min-height:460px}.map-entry-card{padding:12px}.map-extra-tasks{padding:0 10px 10px}}

/* V4: multi-task islands and evidence submission. */
.task-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.task-actions button{white-space:nowrap}.task-actions .task-edit-btn,.task-actions .task-evidence-btn{border-color:#8e958a;color:#596056;background:rgba(255,255,255,.45)}.evidence-state{display:block;margin-top:5px;color:#6f7f1d;font-size:9px}.island-task-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 10px}.island-task-head strong,.island-task-head small{display:block}.island-task-head strong{font-size:14px}.island-task-head small{margin-top:3px;color:var(--muted);font-size:9px}.island-task-head button{border:1px solid #879526;border-radius:999px;padding:8px 12px;background:#f8faef;color:#667219;font-size:10px;font-weight:700}.island-task-list{display:grid;gap:9px}.island-task-list .task-card{padding:11px}.island-task-editor,.evidence-form{display:grid;gap:13px}.island-task-editor label{font-size:10px;font-weight:700}.island-task-editor input,.island-task-editor select{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.75);color:var(--ink)}.task-delete-btn{border:1px solid rgba(190,71,59,.35);border-radius:9px;padding:9px;background:rgba(190,71,59,.08);color:#a84237}.submission-reward{display:grid;gap:4px;margin-bottom:14px;padding:12px 14px;border:1px solid rgba(151,168,42,.4);border-radius:12px;background:rgba(213,226,64,.13)}.submission-reward strong{font-size:12px;color:#657217}.submission-reward span{font-size:9px;color:var(--muted)}.file-drop{display:grid;gap:7px;padding:18px;border:1px dashed #8d9b28;border-radius:13px;background:rgba(255,255,255,.5);text-align:center}.file-drop input{width:100%;font-size:10px}.file-drop b{font-size:14px}.file-drop small,.evidence-filename{color:var(--muted);font-size:9px}.evidence-photo{display:block;width:100%;max-height:480px;object-fit:contain;border-radius:12px;background:#1f231f}.evidence-audio{display:block;width:100%;margin:18px 0}.evidence-filename{text-align:center}.modal-stat strong{overflow-wrap:anywhere}
@media(max-width:780px){.island-task-head{align-items:flex-start}.island-task-list .task-card{grid-template-columns:38px 1fr}.island-task-list .task-actions{grid-column:1/-1;justify-content:flex-end}.island-task-list .task-actions button{flex:1}.submission-reward{padding:10px}.file-drop{padding:14px}}
.store-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 0 10px}.store-section-head h3{margin:0}.store-add-btn{border:1px solid #879526;border-radius:999px;padding:6px 11px;background:#f8faef;color:#667219;font-size:10px;font-weight:700}.reward-card{padding:10px}.reward-icon{display:grid;place-items:center;aspect-ratio:1;border-radius:12px;background:linear-gradient(145deg,rgba(215,225,153,.55),rgba(247,244,220,.8));font-size:42px}.reward-card h3{margin:8px 0 3px}.reward-card p{min-height:38px;margin-bottom:10px}.reward-foot button{padding:6px 8px;font-size:9px}
@media(max-width:780px){.reward-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reward-card h3{font-size:12px}.reward-card p{font-size:9px;min-height:46px}.reward-foot{display:grid;gap:5px}.reward-foot button{width:100%}}
.profile-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.profile-stats>div{min-width:0;padding-left:4px;padding-right:4px}
.auth-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.parent-dashboard{display:grid;gap:13px}.parent-welcome h3{margin:5px 0}.parent-welcome p{color:var(--muted);font-size:11px;line-height:1.7}.parent-child-list{display:grid;gap:8px}.parent-child-row{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:9px;border-radius:11px;background:rgba(255,255,255,.5)}.parent-child-row .avatar{width:34px;height:34px;box-shadow:none}.parent-child-row strong,.parent-child-row small{display:block}.parent-child-row strong{font-size:12px}.parent-child-row small{font-size:9px;color:var(--muted)}.parent-child-row b{color:#78851b;font-size:13px}
.evidence-video{display:block;width:100%;max-height:480px;object-fit:contain;border-radius:12px;background:#1f231f}
.reward-icon-picker{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;margin-top:6px}.reward-icon-choice{display:grid;place-items:center;min-height:36px;padding:5px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.65);font-size:21px}.reward-icon-choice.selected{border:2px solid var(--gold);background:var(--ink);transform:translateY(-1px)}
@media(max-width:420px){.reward-icon-picker{grid-template-columns:repeat(6,minmax(0,1fr))}}
.parent-auth-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:0 0 14px;padding:4px;border:1px solid rgba(174,194,33,.45);border-radius:11px;background:rgba(255,255,255,.28)}.parent-auth-mode{border:0;border-radius:8px;padding:8px 6px;background:transparent;color:var(--muted);font-size:11px;font-weight:700}.parent-auth-mode.active{background:var(--ink);color:var(--gold)}
.auth-link-btn{display:flex;align-items:center;justify-content:space-between;text-decoration:none}.nested-auth-form{display:grid;gap:13px}.wechat-mark{width:54px;height:54px;margin:0 auto 12px;display:grid;place-items:center;border-radius:16px;background:#07c160;color:#fff;font-size:27px;font-weight:900;box-shadow:0 8px 22px rgba(7,193,96,.22)}#wechat-entry{text-align:center}#wechat-entry h2,.auth-result h2{margin:0 0 8px;font-size:18px}#wechat-entry .form-tip{margin-bottom:18px}.wechat-welcome{margin:0;padding:9px 11px;border:1px solid rgba(7,193,96,.3);border-radius:10px;background:rgba(7,193,96,.09);color:#dce9dc;font-size:11px}.auth-result{padding:14px 0;text-align:center}.auth-result p{margin:0 0 16px;color:#c6cbc1;font-size:12px;line-height:1.7}.auth-result.pending .wechat-mark{background:#879626}.auth-result.rejected .wechat-mark{background:#9d584d}.admin-entry-link{display:block;margin-top:16px;color:#aeb4aa;text-align:center;font-size:10px;text-decoration:none}.admin-entry-link:hover{color:#e2e960}
.role-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:4px 0 14px}.role-choice{display:grid;place-items:center;gap:7px;min-height:112px;padding:13px 8px;border:1px solid rgba(207,218,65,.5);border-radius:14px;background:rgba(0,0,0,.18);color:#e8eed9;text-align:center}.role-choice:hover,.role-choice.selected{border-color:#dce94f;background:rgba(200,216,60,.16);box-shadow:0 0 0 2px rgba(220,233,79,.12)}.role-choice-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#c8d83c;color:#151a13;font-size:24px;font-weight:900}.role-choice strong{font-size:13px}.role-choice small{min-height:24px;color:#aeb7aa;font-size:9px;line-height:1.4}.auth-rule-note{margin:10px 0 0;color:#aeb6a9}.auth-result{border:1px solid rgba(207,218,65,.3);border-radius:13px;background:rgba(0,0,0,.16)}.auth-result .secondary-btn{margin-top:3px}.profile-avatar-note{display:block;margin-top:7px;color:var(--muted);font-size:9px;line-height:1.5}.application-avatar{width:24px;height:24px;margin-right:5px;border:1px solid #b8cb37;border-radius:50%;vertical-align:middle;object-fit:cover}.application-card .wechat-name{display:flex;align-items:center;width:max-content;max-width:100%}@media(max-width:420px){.role-choice-grid{gap:7px}.role-choice{min-height:102px;padding:10px 5px}.role-choice strong{font-size:12px}}
