*{box-sizing:border-box}body{margin:0;background:#ede9df;color:#354a42;font:16px/1.5 system-ui,-apple-system,"PingFang SC",sans-serif}button,input{font:inherit}button{border:1px solid #c9d4c9;border-radius:12px;min-height:44px;background:#fffdf6;color:#354a42;padding:9px 14px;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.45;cursor:default}button.primary,.selected{background:#477863;color:white;border-color:#477863}button:focus,input:focus,select:focus{outline:3px solid #ae86b0;outline-offset:2px}#app{max-width:560px;min-height:100vh;min-height:var(--app-height,100vh);margin:auto;background:#faf7ef;padding-bottom:94px;padding-bottom:calc(94px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)))}header{padding:26px 18px 14px;text-align:center;border-bottom:1px solid #dfdacd;background:#f4ecda}h1{font-size:24px;letter-spacing:2px;margin:0 0 6px}h2{font-size:19px;margin:0 0 12px}h3{font-size:17px;margin:4px 0}p{margin:9px 0}.muted,small{color:#68786e;font-size:13px}.bar{display:flex;justify-content:space-between;align-items:center;margin-top:15px}.bar strong{font-size:19px}.bar button{padding:5px 11px}main{padding:18px}.card{border:1px solid #d9ded1;border-radius:16px;padding:16px;background:#fffdf7;margin-bottom:15px}.grid{display:grid;grid-gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid button{padding:12px 6px}.stats{display:flex;justify-content:space-between;font-size:13px}.stats b{display:block;font-size:18px}.tabs{display:flex;margin-bottom:14px;flex-wrap:wrap}.tabs button{flex:1;white-space:nowrap;font-size:14px;padding:8px}.row{display:flex;align-items:center;border-top:1px solid #e5e6db;padding:12px 0}.row:first-child{border-top:0}.grow{flex:1;min-width:0}.row input{width:62px;min-height:44px;border:1px solid #bdcbbb;border-radius:8px;padding:5px;background:white}.gem{width:36px;height:36px;display:inline-block;border-radius:50%;background:radial-gradient(circle at 30% 24%,rgba(255,255,255,0.8118),var(--gem) 55%,#657565);box-shadow:inset -3px -3px 5px rgba(51,76,67,0.1569);flex-shrink:0}.preview{position:relative;height:220px;width:220px;max-width:100%;margin:6px auto 20px;background:#efe7dc;border-radius:50%;box-shadow:inset 0 0 16px #c4b9a4}.preview .gem{position:absolute;width:28px;height:28px;left:calc(50% + var(--x) - 14px);top:calc(50% + var(--y) - 14px)}nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:560px;background:#f9f7ed;border-top:1px solid #d8dfd1;display:flex;padding:8px 5px;padding-bottom:calc(8px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)));z-index:4}nav button{flex:1;font-size:13px;padding:8px 0;border:0;background:transparent}nav button.selected{background:#e0ecdf;color:#315944}#notice{position:fixed;bottom:95px;left:50%;transform:translateX(-50%);background:#354a42;color:white;border-radius:14px;padding:12px 18px;max-width:90vw;z-index:10;display:none}.warning{background:#f7edd8;border-radius:10px;padding:10px;font-size:13px}.actions{display:flex;flex-wrap:wrap;margin-top:15px}.actions button{flex:1}details{font-size:13px;margin:12px 0}summary{min-height:36px;cursor:pointer}.pan{touch-action:none;-webkit-user-select:none;user-select:none;text-align:center;background:#e4efe6;border-radius:18px;padding:20px;margin:14px 0;min-height:230px}.pan img{width:240px;max-width:100%;pointer-events:none;transition:transform .15s}.pan.active img{animation:sway .7s ease-in-out infinite}.pan.progress1 img{filter:saturate(.8)}.pan.progress2 img{filter:saturate(.5)}@keyframes sway{0%,100%{transform:translateX(-16px) rotate(-6deg)}50%{transform:translateX(16px) rotate(6deg)}}progress{width:100%;height:14px;accent-color:#477863}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(38,59,50,0.4392);display:flex;align-items:center;justify-content:center;z-index:8;padding:20px}.dialog{max-width:440px;width:100%;max-height:85vh;max-height:calc(var(--app-height,100vh) * .85);overflow:auto;background:#fffcf3;padding:22px;border-radius:20px}.tag{font-size:11px;border-radius:6px;background:#ece4d3;padding:3px 6px}.asset{width:88px;height:65px;display:block;margin:0 auto}.placeholder{padding:25px;background:#eff2e8;border-radius:14px} .money{font-size:28px;color:#477863} @media(prefers-reduced-motion:reduce){.pan.active img{animation:none}}
.rock-scene{background:#e6e8dc;border-radius:18px;padding:20px;text-align:center;margin:15px 0}.rock-scene img{width:240px;max-width:100%;display:block;margin:auto}.rock-scene button{margin:4px;font-size:14px}.rock-scene [data-zone="danger"]{border:2px dashed #b45e53;background:#fae6dd;color:#804234}.item-preview{text-align:center;margin:18px}.item-preview .gem{width:100px;height:100px}.stack{display:flex;flex-direction:column;}.veil{background:#d5cbb5;padding:12px;border-radius:10px;margin-top:10px}.pan.active .veil{opacity:.45}.rock-scene>.gem{width:65px;height:65px}.row .stack button{font-size:13px;padding:6px 10px}

.rock-scene{position:relative;min-height:280px;padding:15px 10px 70px}.crystal-drawing{display:block;width:240px;max-width:100%;margin:auto}.rock-scene [data-action="clearRock"]:nth-of-type(1){position:absolute;bottom:16px;left:8px}.rock-scene [data-action="clearRock"]:nth-of-type(2){position:absolute;bottom:16px;right:8px}.rock-scene [data-zone="safe"]{position:absolute;bottom:16px;left:10px}.rock-scene [data-zone="danger"]{position:absolute;top:70px;left:50%;transform:translateX(-50%);background:rgba(249,230,221,0.7804);min-height:64px;max-width:125px;font-size:13px;padding:4px}.rock-scene [data-action="clearRock"]{font-size:12px;padding:6px}

body.has-dialog{overflow:hidden}.result-overlay{z-index:7}.result-dialog{padding:0;display:flex;flex-direction:column;max-height:calc(100vh - 40px);max-height:calc(var(--app-height,100vh) - 40px);overflow:hidden}.result-toolbar{display:flex;justify-content:space-between;align-items:center;padding:10px 18px;background:#f3eedf;border-bottom:1px solid #d9ded1;flex-shrink:0}.result-toolbar span{font-size:13px;color:#667568}.result-toolbar button{padding:4px 12px}.result-body{padding:18px;overflow:auto;overscroll-behavior:contain;min-height:0}.result-body h2{margin-top:0}.result-body .row{align-items:flex-start}.result-body .preview{width:210px;height:210px}.result-body .actions button{flex-basis:95px}

/* 沿轨进料：石料和切线均沿纵向轨道，横向动作不推进。 */
.cut-machine{height:350px;position:relative;background:#e7ece2;border-radius:18px;overflow:hidden;touch-action:none;--cut:0}.cut-rail{position:absolute;left:calc(50% - 20px);top:24px;bottom:20px;width:40px;border-left:5px solid #8b9483;border-right:5px solid #8b9483;background:#cbd3c5}.rail-top{position:absolute;top:12px;left:18px;color:#61715b;font-size:13px}.cut-blade{position:absolute;left:calc(50% - 3px);top:58px;height:168px;width:6px;background:repeating-linear-gradient(0deg,#9aa79b 0 5px,#e9efeb 5px 10px);box-shadow:0 0 0 5px rgba(179,189,177,0.502);z-index:3}.cut-carriage{position:absolute;left:50%;bottom:16px;transform:translate(-50%,calc(var(--cut) * -2px));width:150px;display:grid;justify-items:center;z-index:2}.jade-stone{position:relative;width:148px;height:118px}.jade-stone img{width:100%;height:100%;object-fit:contain}.jade-face{position:absolute;top:22%;bottom:22%;left:18%;right:18%;background:var(--face);clip-path:polygon(0 30%,30% 0,85% 12%,100% 66%,65% 100%,10% 85%);opacity:0;transform:translateX(0);transition:opacity .5s,transform .6s}.opened .jade-face{opacity:1;transform:translateX(25px)}.opened img{transform:translateX(-16px);transition:transform .6s}.jade-crack{position:absolute;left:50%;height:85%;width:3px;background:#758772;transform:rotate(18deg)}.half-stone{display:flex;justify-content:center;padding:28px 0}.half-stone .jade-stone{width:210px;height:170px}#cutHandle{touch-action:none;min-width:140px;background:#496d55;color:white;box-shadow:0 5px 0 #2f4f38;cursor:grab;padding:14px 8px}.cut-water{position:absolute;top:80px;left:calc(50% - 35px);width:70px;height:150px;background:repeating-linear-gradient(90deg,transparent 0 12px,rgba(186,221,231,0.6667) 12px 14px);opacity:0;z-index:4;pointer-events:none}.running .cut-water{opacity:.7;animation:waterFlow .4s linear infinite}.running .cut-blade{animation:bladeFlow .15s linear infinite}@keyframes waterFlow{to{transform:translateY(12px)}}@keyframes bladeFlow{to{background-position:0 10px}}@media(prefers-reduced-motion:reduce){.running .cut-water,.running .cut-blade{animation:none}}

.object-preview{width:220px;height:220px;max-width:100%;margin:6px auto 20px;border-radius:20px;background:#efe7dc}.object-preview svg{display:block;width:100%;height:100%}.recipe-picker,.slot-picker{display:grid;grid-gap:7px;margin:10px 0 16px;min-width:0}select{font:inherit;max-width:100%;width:100%;min-width:0;min-height:46px;padding:8px;border:1px solid #bcc9bb;background:#fffdf6;border-radius:10px;color:#354a42}.craft-summary{border-top:1px solid #d9ded1;padding-top:14px;margin-top:16px}.necklace-preview{border-radius:35%}

.order-guide{background:#edf3e8}.order-guide button{margin-top:12px}

.family-tabs{flex-wrap:wrap}.slot-picker select,select{max-width:100%}.tabs{flex-wrap:wrap}label{display:block;margin:12px 0}select{padding:10px;width:100%;box-sizing:border-box} .dialog small{display:block;margin-bottom:12px}

/* Chrome 61 flex spacing: margin baseline, including wrapped controls. */
.bar>*+*{margin-left:8px}.stats>*+*{margin-left:10px}.row>*+*{margin-left:10px}
.tabs{margin-left:-3.5px;margin-right:-3.5px}.tabs>*{margin:0 3.5px 7px}
.actions{margin-left:-4px;margin-right:-4px}.actions>*{margin:0 4px 8px}
nav>*+*{margin-left:3px}.stack>*+*{margin-top:6px}
.covered{pointer-events:none}.dialog{min-width:0;min-height:0}.pager{display:flex;align-items:center;justify-content:space-between;margin:12px 0}.pager>*+*{margin-left:8px}

/* 0.6.2 — confirmed cream / light wood / jade palette, quiet data surfaces. */
body{background:#eae5d9;color:#344a40;font-size:15px;line-height:1.5}#app{background:#fbf8f0}h1,h2,h3{font-family:"Songti SC","STSong",serif;font-weight:700}h2{font-size:20px}h3{font-size:17px}p{margin:7px 0}small,.muted{font-size:12px;color:#6e786c}button{border-color:#d9d6c6;border-radius:12px;background:#fffdf8;padding:10px 12px;min-width:0;font-weight:500}button.primary{background:#2f7054;border-color:#2f7054;color:#fffdf6;box-shadow:0 2px 3px rgba(38,73,49,.1)}button:focus,input:focus,select:focus,summary:focus{outline:2px solid #9e835a;outline-offset:3px}main{padding:16px}.card{border:1px solid #e0dfd1;border-radius:16px;padding:16px;margin-bottom:16px;background:#fffdf8}.card h2{margin-bottom:8px}.ui-icon{width:22px;height:22px;display:inline-block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.eyebrow{display:block;color:#857558;font-size:11px;letter-spacing:.5px}.section-title{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.section-title h2{margin:0}.section-title>span{font-size:12px;color:#768071;margin-left:10px;text-align:right}.section-title>*{min-width:0}
.shop-header{display:grid;grid-template-columns:minmax(0,1fr) 122px;grid-gap:14px;padding:21px 16px 16px;text-align:left;border-bottom:0;background:#fbf8f0;align-items:center}.shop-sign{position:relative;border:1px solid #d7bea0;border-radius:13px;padding:12px 10px 11px;background:linear-gradient(95deg,#f4e8d5,#fbf1df 55%,#efdfc6);box-shadow:0 3px 0 #e3d0b4;min-width:0}.shop-sign:before,.shop-sign:after{content:"";width:2px;height:17px;background:#b79771;position:absolute;top:-17px}.shop-sign:before{left:26px}.shop-sign:after{right:26px}.shop-sign h1{font-size:23px;letter-spacing:.7px;line-height:1.3;margin:5px 0;color:#3c4b34;overflow-wrap:break-word}.shop-sign small{font-size:11px}.test-label{display:block;font-family:system-ui,sans-serif;font-size:10px;letter-spacing:0;color:#82704d;margin-top:2px}.shop-resources strong{font-size:20px;display:block;color:#395140;line-height:1.2;font-variant-numeric:tabular-nums;word-wrap:break-word}.shop-resources strong small{display:block;margin-bottom:5px;font-size:11px;font-weight:400}.shop-resources strong span{font-size:11px;margin-left:3px;font-weight:400}.shop-resources p{margin:5px 0 7px;font-size:12px;color:#75806e}.shop-resources p b{color:#38634b;font-size:15px;margin-left:4px}.shop-resources button{width:100%;min-height:35px;padding:5px 8px;font-size:12px;background:#eef2e6;border-color:#cad5be}
.asset-strip,.cost-grid,.result-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:0;margin-top:0;font-variant-numeric:tabular-nums}.asset-strip>div+div{border-left:1px solid #e6e1d4;padding-left:12px}.asset-strip dt{font-size:11px;color:#717565}.asset-strip dd{font-size:20px;margin:3px 0;color:#526746;overflow-wrap:break-word}.asset-strip small{font-size:10px}.market-card{background:#f4f5e9}.market-card h2{font-size:18px;margin:3px 0}.market-card p{margin-bottom:0}.pending-card{display:flex;align-items:center;justify-content:space-between}.pending-card>div{min-width:0}.pending-card h2{font-size:17px}.pending-card button{margin-left:10px;font-size:13px;flex-shrink:0}.home-section{margin:20px 0 16px}.home-mines{grid-gap:8px}.home-mines button{display:flex;flex-direction:column;align-items:center;text-align:center;background:#f0f3e9;border-color:#dbe2d0;padding:12px 5px 4px;overflow:hidden}.tile-title{font:700 19px/1.3 "Songti SC","STSong",serif}.tile-note{font-size:10px;color:#6b7e68;margin:5px 0 0;min-height:30px}.home-mines img{width:100%;max-width:110px;height:84px;object-fit:contain;margin-top:3px}.home-destinations{margin-bottom:12px}.home-destinations button{display:flex;align-items:center;text-align:left;padding:14px 10px;background:#fffaf0}.home-destinations .ui-icon{color:#927a55;width:24px;height:24px;margin-right:9px}.home-destinations span{min-width:0;flex:1;font:700 19px/1.3 "Songti SC","STSong",serif}.home-destinations small{display:block;font:11px/1.5 system-ui,sans-serif;margin-top:4px;color:#6c7f65}.home-destinations i{font-size:24px;font-style:normal;color:#b9a88a}.future-row{margin-bottom:14px}.future-row button{background:#f0eee7;border-color:#e4dfd3;min-height:40px;font-size:13px;color:#868476}.future-row small{font-size:10px;margin-left:3px}.close-shop{margin:12px 0 18px}.close-shop button{width:100%;min-height:48px}.quiet-details summary{font-size:12px;min-height:30px;line-height:1.5;cursor:pointer;color:#697965;padding:5px 0}.quiet-details p{font-size:12px;line-height:1.7}.growth-details{padding:10px 14px}.growth-details>summary{font-size:14px}.growth-details>summary small{display:block;margin-top:3px}.save-note{font-size:11px;text-align:center;color:#928873;margin:16px 0 0}
nav{padding-top:6px;padding-bottom:8px;padding-bottom:calc(8px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)));background:#fffdf6;border-top:1px solid #dfdecc}nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:49px;font-size:11px;border-radius:10px;padding:5px 0;color:#8d7858}nav button span{display:block;margin-top:3px}nav .ui-icon{width:20px;height:20px}nav button.selected{background:#356d50;color:#fffdf6;box-shadow:none}#notice{font-size:13px;bottom:90px}
.overlay{background:rgba(34,49,40,.46);padding:16px}.dialog{background:#fffdf5;border:1px solid #d8c4a5;border-radius:19px;box-shadow:0 12px 35px rgba(38,48,35,.15);-webkit-overflow-scrolling:touch}.result-dialog,.operation-dialog{max-height:calc(100vh - 32px);max-height:calc(var(--app-height,100vh) - 32px);display:flex;flex-direction:column;padding:0;overflow:hidden}.result-toolbar{background:#f5edde;border-color:#e0dac8;padding:8px 14px;min-height:45px}.result-toolbar span{font-size:11px}.result-toolbar button{font-size:12px;min-height:32px;padding:5px 10px}.operation-body,.result-body{padding:16px;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch}.operation-heading{text-align:center}.operation-heading h2{font-size:27px;margin:5px 0}.operation-heading p{font-size:14px;color:#647963}.sand-session .pan{background:#edf1e5;border:1px solid #d9dfcc;padding:12px;margin:18px 0 14px;min-height:200px}.sand-session .pan img{width:100%;max-width:240px;height:178px;object-fit:contain}.pan-caption{font-size:12px;color:#6a7e66}.shake-steps{display:flex;align-items:center;justify-content:center;margin:12px 0 14px}.shake-steps>span{width:29px;height:29px;border:1px solid #bcaa85;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fffcf3;color:#9b8562;font-size:12px}.shake-steps>span.done{background:#337454;border-color:#337454;color:white}.shake-steps i{height:2px;width:26px;background:#d5c6a7}.shake-steps b{font-size:20px;font-family:"Songti SC",serif;color:#33604a;margin-left:15px}.sand-session progress{height:9px}.operation-status{text-align:center;font-size:12px}.sand-session .actions{margin:12px 0 5px}.sand-session .actions button{min-height:42px;background:#fffaf0}.sand-session .quiet-details{margin:6px 0 0;border-top:1px solid #e6e1d0}.operation-overlay{z-index:6}
.result-heading{text-align:center;margin:2px 0 16px}.result-heading h2{font-size:26px;margin:5px 0}.result-heading p{font-size:13px}.rare-note{background:#f4edda;border-radius:8px;padding:7px 10px;color:#886c3e;font-size:12px}.found-grid{grid-gap:10px}.found-item{margin:0;border:1px solid #dce2cd;border-radius:13px;background:#f5f6ec;min-width:0;overflow:hidden}.found-item summary{display:block;list-style:none;padding:12px 10px;cursor:pointer}.found-item summary::-webkit-details-marker{display:none}.found-art{display:block;text-align:center;height:51px;margin-bottom:8px}.found-art .gem{width:48px;height:48px;box-shadow:inset -3px -3px 5px rgba(55,69,53,.15),0 4px 6px rgba(61,63,46,.1)}.found-name{display:block;font:700 19px/1.4 "Songti SC","STSong",serif;text-align:center;color:#375642}.found-quantity{display:block;font-size:11px;color:#718268;text-align:center;min-height:28px;margin:3px 0 5px}.found-price{border-top:1px solid #e0e2cf;padding-top:7px;display:block;font-size:11px;color:#718068}.found-price>span{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:3px}.found-price b{color:#5b6345;font-size:13px;margin-left:5px;overflow-wrap:break-word}.details-cue{font-size:10px;color:#87947b;display:block;text-align:center;margin-top:7px}.details-cue i{font-style:normal}.found-detail{padding:0 10px 12px;font-size:12px;border-top:1px solid #e0e2cf}.found-detail small{font-size:10px}.result-totals{grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #e3d9be;background:#f9f2e4;border-radius:12px;margin:14px 0 8px;padding:11px 12px;text-align:center}.result-totals>div+div{border-left:1px solid #e2d8c1}.result-totals dt{font-size:11px;color:#7d7a60}.result-totals dd{font-size:22px;color:#446645;margin:3px 0;overflow-wrap:break-word}.result-note{text-align:center;font-size:11px;margin:8px 0 0}.result-actions{padding:12px 16px 14px;background:#fffdf5;border-top:1px solid #e6dfcc;flex-shrink:0}.result-actions button{width:100%;min-height:42px}.result-actions>div+div{margin-top:8px}.result-actions>small{display:block;font-size:10px;text-align:center;margin-top:7px}.result-body{flex:1 1 auto}.finished-work{padding-top:8px}.finished-work .preview,.result-body .finished-work .preview{width:190px;height:190px;background:#f5eee1;box-shadow:none}.finished-work .object-preview{width:190px;height:190px}.craft-outcome{display:flex;align-items:center;margin:14px 0;padding:10px;background:#eff3e7;border-radius:11px}.craft-outcome>div{min-width:0}.craft-outcome b{font-size:13px}.craft-outcome p{margin:3px 0 0;font-size:11px}.grade-badge{display:flex;align-items:center;justify-content:center;width:35px;height:35px;background:#416f50;border-radius:10px;color:#fff;font-size:22px;font-family:"Songti SC",serif;font-weight:700;margin-right:12px;flex-shrink:0}
.work-surface{background:#f6efdf;border:1px solid #e6d9bf;border-radius:14px;padding:8px 8px 10px;text-align:center;margin-bottom:14px}.work-surface .preview{width:200px;height:200px;margin:6px auto 12px;background:#efe4cf;box-shadow:inset 0 0 0 9px #e1d0b1,inset 0 0 0 11px #f3e8d0}.work-surface .object-preview{width:200px;height:200px;margin:6px auto 12px;background:#f6efdf}.work-surface>p{display:inline-block;margin:0;background:#fffaf0;border-radius:20px;padding:4px 18px;color:#64704d;font:700 14px/1.5 "Songti SC",serif}.recipe-picker{margin:12px 0 16px;font-size:13px;color:#68755e}.control-group{display:flex;align-items:flex-start;margin:10px 0}.control-group>span{font-size:12px;color:#7d846f;width:32px;margin-right:12px;padding-top:9px;flex-shrink:0}.control-group .tabs{flex:1;margin-bottom:0;min-width:0}.control-group .tabs button{font-size:12px;min-height:38px;padding:7px 6px}.family-tabs button{font-size:12px;min-height:38px;padding:7px 5px}.selection-count{font-weight:700;color:#416c4b!important}.material-pick{padding:12px 0;border-top:1px solid #e2e5d7}.material-top{display:flex;align-items:center}.material-top>.gem{margin-right:11px;width:38px;height:38px}.material-top h3{margin:0}.material-top p{margin:3px 0}.unit-cost{font-size:12px;color:#698064}.unit-cost b{color:#355641;font-variant-numeric:tabular-nums}.quantity-control{display:block;font-size:10px;text-align:center;color:#7a8370;margin:0 0 0 10px;flex-shrink:0}.quantity-control input{display:block;width:58px;min-height:44px;background:#fffdf5;border:1px solid #bdcbb1;border-radius:9px;text-align:center;font-size:17px;color:#426542;margin-top:3px;padding:5px}.picked-cost{display:flex;justify-content:space-between;font-size:11px;background:#f1f3e9;border-radius:8px;padding:7px 9px;margin:9px 0 2px;color:#66705b}.picked-cost b{font-size:13px;color:#496646}.is-picked .picked-cost{background:#e5efdc}.material-pick .quiet-details{margin:2px 0 0}.material-pick .quiet-details summary{font-size:10px;padding:4px 0}.selected-stone{display:flex;align-items:center;padding:12px;background:#f3f5ea;border-radius:10px;margin:0 0 12px}.selected-stone>.gem{margin-right:12px}.selected-stone>div{min-width:0}.selected-stone b{font-size:13px}.slot-picker{font-size:13px}.cost-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;margin:12px 0}.cost-grid>div{background:#f6f2e6;border-radius:10px;padding:10px 12px;min-width:0}.cost-grid dt{font-size:11px;color:#7c7d65}.cost-grid dd{font-size:22px;margin:3px 0 0;color:#536646;overflow-wrap:break-word}.payment-note{font-size:12px;color:#47734e;border-left:2px solid #b6caa4;padding-left:9px;margin:14px 0}.craft-confirm>.quiet-details{margin:12px 0}.craft-confirm>button{width:100%;min-height:48px}.empty-state{text-align:center;padding:18px 10px;color:#7c866f}.empty-state p{font-size:12px}.empty-state button{margin-top:8px}select{font-size:13px;min-height:43px}.warning{color:#826440;background:#f7edda;font-size:12px}
@media(max-width:350px){.shop-header{grid-template-columns:minmax(0,1fr) 108px;grid-gap:10px}.shop-sign h1{font-size:20px}.shop-sign small{font-size:10px}.shop-resources strong{font-size:18px}.tile-title{font-size:17px}.tile-note{font-size:9px}.home-mines img{height:72px}.home-destinations span{font-size:17px}.home-destinations .ui-icon{width:20px;margin-right:6px}.home-destinations small{font-size:10px}.asset-strip{padding:12px}.asset-strip>div+div{padding-left:8px}.asset-strip dd{font-size:18px}.result-body,.operation-body{padding:13px}.found-item summary{padding:10px 8px}.found-name{font-size:17px}.found-price{font-size:10px}.found-price b{font-size:12px}.result-heading h2{font-size:23px}.section-title>span{font-size:11px}.material-top>.gem{width:32px;height:32px;margin-right:8px}.picked-cost{font-size:10px}.result-totals dd{font-size:20px}}

.source-picker .tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;margin:12px 0}.source-picker .tabs button{margin:0;white-space:normal;overflow-wrap:break-word;min-height:46px;font-size:12px;padding:8px}.source-picker .tabs small{display:block;font-size:10px;margin-top:2px}.source-picker .tabs button.selected small{color:#e8eddf}

.home-settings{padding:10px 14px}.home-settings>summary{font-size:13px}.home-settings .card{border:0;background:none;padding:8px 0;margin:6px 0}.home-settings h2{font-size:16px}.home-settings p{font-size:12px}.home-settings .growth-details{border-bottom:1px solid #e6e1d0}.asset-strip{padding-top:12px;padding-bottom:12px}.market-card{padding-top:12px;padding-bottom:12px}

.found-grid{margin-top:12px}.found-art{height:40px;margin-bottom:6px}.found-art .gem{width:38px;height:38px}.found-name{font-size:18px;line-height:1.3}.found-quantity{min-height:20px;margin:3px 0}.found-item summary{padding:10px}.details-cue{margin-top:5px}.preview:before{content:"";position:absolute;left:calc(50% - 80px);top:calc(50% - 80px);width:160px;height:160px;border:2px solid #b5a682;border-radius:50%;opacity:.55}.necklace-preview:before{left:calc(50% - 67px);top:calc(50% - 92px);width:134px;height:184px}.preview .gem{z-index:1}

/* 小店行情说明：默认收起，点击标题旁图标查看。 */
.market-heading{position:relative;display:flex;align-items:center;margin-bottom:12px}
.market-heading h2{margin:0}
.market-help{margin-left:8px}
.market-help summary{display:block;list-style:none;width:28px;height:28px;border:1px solid #9ba995;border-radius:50%;text-align:center;line-height:26px;color:#55735d;cursor:pointer;font-size:16px}
.market-help summary::-webkit-details-marker{display:none}
.market-help summary:focus{outline:2px solid #987748;outline-offset:2px}
.market-help[open] summary{background:#edf2e7}
.market-help p{position:absolute;left:0;right:0;top:100%;z-index:3;margin:8px 0 0;padding:12px;background:#fffdf6;border:1px solid #d7d5c6;border-radius:10px;box-shadow:0 4px 12px rgba(50,64,48,.12);font-size:14px;line-height:1.6}

/* 收藏柜：材料格子与系列成就复用轻木色、玉绿色。 */
.atlas-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.atlas-heading h2{margin:0}
.material-atlas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;padding:10px;background:#f1e7d3;border:1px solid #e0d1b7;border-radius:12px}
.atlas-item{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:104px;padding:10px 4px;border:1px solid #e6d9c2;border-radius:8px;background:#fffaf0;text-align:center}
.atlas-item .gem{margin:0 0 8px;width:38px;height:38px;flex-shrink:0}
.atlas-item b{font-size:14px}
.atlas-item.is-locked{color:#91897b;background:#ece5d8}
.atlas-unknown{font-size:30px;line-height:38px;margin-bottom:8px;color:#aea18b}
.achievement-title{margin-top:26px}
.achievement-item{display:flex;align-items:center;padding:16px 0;border-bottom:1px solid #e4e1d5}
.achievement-item:last-child{border-bottom:0}
.achievement-badge{font-size:28px;color:#a79880;margin-right:12px}
.is-complete .achievement-badge{color:#b68b44}
.achievement-item h3{margin:0 0 4px;font-size:17px}
.achievement-item p{margin:0 0 8px;font-size:13px}
.achievement-progress{display:flex;align-items:center}
.achievement-progress progress{width:100%;height:9px;flex:1;min-width:0;border:0;border-radius:6px;overflow:hidden;background:#e5dece}
.achievement-progress progress::-webkit-progress-bar{background:#e5dece;border-radius:6px}
.achievement-progress progress::-webkit-progress-value{background:#558c6e;border-radius:6px}
.achievement-progress progress::-moz-progress-bar{background:#558c6e;border-radius:6px}
.achievement-progress span{margin-left:8px;font-size:13px;white-space:nowrap}
.achievement-status{margin-left:12px;white-space:nowrap;color:#807b6e}
.is-complete .achievement-status{color:#347457}
.atlas-note{margin:16px 0 0;font-size:13px}

/* 手动排列使用独立点击目标；素材尺寸仍按珠径显示。 */
.work-surface .editable-preview{width:220px;height:220px}
.editable-preview:before{left:calc(50% - 86px);top:calc(50% - 86px);width:172px;height:172px}
.editable-preview.necklace-preview:before{left:calc(50% - 74px);top:calc(50% - 88px);width:148px;height:176px}
.preview-bead{position:absolute;left:50%;top:50%;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y)));width:40px;height:40px;min-height:40px;padding:0;border:2px solid transparent;border-radius:50%;background:transparent;z-index:2;display:flex;align-items:center;justify-content:center}
.preview-bead .gem{position:static;transform:none;display:block;margin:0;flex-shrink:0}
.preview-bead.is-active{border-color:#917346;background:#fff8e4;box-shadow:0 0 0 3px rgba(145,115,70,.18)}
.preview-bead:focus{outline:2px solid #477863;outline-offset:1px}
.swap-help{font-size:13px;line-height:1.6;color:#667568;margin:8px 0 16px}

/* 0.6.8 display-only composition; old component styles and SVGs retained. */
.visual-thumb{display:inline-flex;width:48px;height:48px;flex:0 0 48px;align-items:center;justify-content:center;margin-right:8px;vertical-align:middle}.visual-thumb svg{width:100%;height:100%;overflow:visible}.found-art .visual-thumb{width:66px;height:66px;margin:0}.selected-stone .visual-thumb{width:60px;height:60px;flex-basis:60px}.work-surface{position:relative;isolation:isolate;min-height:280px;background:#f6f0e3;overflow:hidden}.work-surface>.work-table{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:fill;z-index:-1;pointer-events:none}.work-surface>.preview,.work-surface>.assembled-jewelry,.work-surface>p{position:relative;z-index:1}.assembled-jewelry{width:100%;max-width:310px;margin:0 auto;padding:12px 8px 8px}.jewelry-piece{width:100%;height:235px;display:block}.carat-caption{margin:4px 0;font-size:13px;color:#506c5a;line-height:1.6}.ear-pair{display:flex;justify-content:center;align-items:flex-start}.ear-pair .ear-piece{width:48%;height:235px}.pan .empty-pan{position:relative;z-index:1;width:100%;height:100%;object-fit:contain}.pan .pan-sand,.pan .pan-water{position:absolute;left:23%;top:38%;width:54%;height:29%;border-radius:50%;pointer-events:none;z-index:2}.pan .pan-sand{background:radial-gradient(circle at 30% 40%,#947349 1px,transparent 2px),radial-gradient(circle at 67% 64%,#b1894e 2px,transparent 3px),#d3b88a;opacity:.9;transition:opacity .25s}.pan.progress1 .pan-sand{opacity:.65}.pan.progress2 .pan-sand{opacity:.35}.pan .pan-water{background:rgba(123,184,178,.2);border:2px solid rgba(202,230,218,.45);transform:rotate(-6deg)}.pan .pan-caption{z-index:3}.ore-assembly{position:relative;width:100%;height:210px}.ore-shell{width:100%;height:100%;object-fit:contain}.revealed-mineral{position:absolute;left:34%;top:28%;width:34%;height:38%;display:flex;align-items:center;justify-content:center}.revealed-mineral .visual-thumb{width:100%;height:100%;margin:0}.ore-damage{position:absolute;left:48%;top:38%;font-size:55px;color:#543f36}.merchant-shell{width:100%;height:100%;object-fit:contain}.jade-stone img{object-fit:contain}.home-mines img,.asset{object-fit:contain}.object-preview,.quote-panel .assembled-jewelry{position:relative}.fine-claw{stroke-linejoin:round}.work-surface .assembled-jewelry{min-height:260px}
@media(max-width:350px){.jewelry-piece,.ear-pair .ear-piece{height:210px}.visual-thumb{width:44px;height:44px;flex-basis:44px}.assembled-jewelry{padding:12px 0 6px}}

.snapshot-bead{position:absolute;left:50%;top:50%;transform:translate(calc(var(--x) - 50%),calc(var(--y) - 50%));display:flex;align-items:center;justify-content:center}.snapshot-bead .visual-thumb,.preview-bead .visual-thumb{width:100%;height:100%;margin:0;flex-basis:100%}.saved-work-thumb{display:inline-block;width:64px;height:64px;flex:0 0 64px;overflow:hidden;margin-right:8px}.saved-work-thumb .assembled-jewelry{padding:0;margin:0;height:64px}.saved-work-thumb .jewelry-piece,.saved-work-thumb .ear-pair .ear-piece{height:64px}.saved-work-thumb .carat-caption{display:none}.saved-work-thumb .preview{width:220px;height:220px;margin:0;transform:scale(.28);transform-origin:top left}.history-arrangement .assembled-jewelry{max-width:260px}.craft-route{margin-top:12px}

.saved-work-thumb .preview{max-width:none}.snapshot-bead>.gem{position:static;width:100%;height:100%;left:auto;top:auto}.preview-bead .visual-thumb{min-width:0;min-height:0}.control-group .tabs small{display:block;line-height:1.5;padding-top:6px}

/* 0.6.12 inventory: 72px slot, 144px artwork; craft/work use full image. */
.inventory-material>.visual-thumb{width:72px;height:72px;flex:0 0 72px}
