:root{--ink:#383b31;--muted:#777a68;--paper:#f3eee4;--line:#d9d3c5;--red:#985544;--green:#454f3e;--app-height:100vh}
*{box-sizing:border-box}html{background:#d4cdbd;touch-action:manipulation}body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;border:0;color:inherit}button:focus,input:focus{outline:2px solid #a6754d;outline-offset:3px}button:disabled{cursor:default;opacity:.46}button:active:not(:disabled){transform:translateY(1px)}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}h1,h2,h3,p{margin:0}h1,h2,h3,.serif{font-family:"Songti SC","STSong","SimSun",Georgia,serif;font-weight:500}h2{font-size:27px;letter-spacing:2px}small{font-size:11px}button, a{-webkit-touch-callout:none}.boot{padding:30vh 20px;text-align:center;font:34px "SimSun",serif}.boot small{font:14px sans-serif}
.shell{position:relative;width:100%;max-width:470px;min-height:100vh;min-height:var(--app-height);margin:0 auto;background:var(--paper);box-shadow:0 12px 100px rgba(83,77,60,0.188235);padding-top:12px;padding-top:calc(12px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)));padding-bottom:88px;padding-bottom:calc(88px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)));overflow:hidden;background-image:radial-gradient(rgba(106,89,57,0.031373) .6px,transparent .8px);background-size:5px 5px}.header{display:flex;align-items:center;margin:0 23px 20px;padding-top:8px}.seal{font-family:"SimSun",serif;font-size:18px;line-height:21px;width:31px;border:1px solid var(--red);color:var(--red);padding:4px 5px;transform:rotate(-3deg);margin-right:10px}.brand{flex:1}.brand strong{font-family:"SimSun",serif;font-size:20px;font-weight:500;letter-spacing:3px}.brand small{display:block;margin-top:5px;letter-spacing:2px;color:var(--muted);font-size:9px}.balance{border:1px solid #c9c4b5;border-radius:25px;padding:7px 11px;font-size:15px;white-space:nowrap}.balance small{margin-left:4px;font-size:10px;color:var(--muted)}.icon-btn{background:transparent;min-width:42px;min-height:44px;padding:10px}.header .icon-btn{margin-right:-12px;margin-left:3px}.view{padding:0 23px}.eyebrow{color:var(--muted);font-size:10px;letter-spacing:2px;margin-bottom:8px;text-transform:uppercase}.intro{position:relative;padding:4px 0 0}.intro h1{font-size:28px;letter-spacing:2px;line-height:1.5}.intro .subtitle{font-size:12px;color:var(--muted);line-height:1.8;margin-top:6px}.batch-link{display:inline-flex;align-items:center;background:#e5ded0;border:1px solid #d7cdba;border-radius:3px;padding:7px 10px;font-size:11px;margin-top:15px}.batch-link svg{width:14px;height:14px;margin-left:10px}.stage{position:relative;margin:12px -23px 0;background:#d0c3ac;overflow:hidden}.stage canvas{width:100%;height:auto;display:block;aspect-ratio:400/360}.stage:before{content:"";display:block;padding-top:90%}.stage canvas{position:absolute;top:0;left:0;width:100%;height:100%;touch-action:none}.stage-mark{position:absolute;left:23px;top:16px;font-family:"SimSun",serif;color:#655d4b;font-size:11px;letter-spacing:2px;writing-mode:vertical-rl;pointer-events:none}.stage-corner{position:absolute;right:22px;top:17px;border:1px solid rgba(121,118,91,0.333333);border-radius:50%;width:35px;height:35px;display:flex;align-items:center;justify-content:center;font-size:10px;color:#655d4b;pointer-events:none}.stage-bottom{position:absolute;bottom:12px;left:0;width:100%;text-align:center;font-size:10px;letter-spacing:2px;color:#5b594a;pointer-events:none}.steps{display:flex;justify-content:space-between;padding:17px 4px 13px;border-bottom:1px solid var(--line);font-size:11px;color:#949483}.steps span{display:flex;align-items:center}.steps b{display:inline-flex;justify-content:center;align-items:center;width:19px;height:19px;border-radius:50%;border:1px solid #c5c3b5;font-size:9px;font-weight:400;margin-right:6px}.steps .active{color:var(--red)}.steps .active b{background:var(--red);border-color:var(--red);color:#fff}.action-panel{padding:17px 0 10px}.action-title{font:20px "SimSun",serif;line-height:1.4;letter-spacing:1px}.hint{font-size:12px;line-height:1.7;color:var(--muted);margin-top:7px}.primary,.secondary,.danger{display:block;width:100%;min-height:46px;border-radius:4px;padding:12px 16px;font-size:14px;letter-spacing:1px;text-align:center}.primary{background:var(--green);color:#fbf5e7;box-shadow:0 3px 0 rgba(48,58,48,0.082353)}.secondary{background:#e7e1d5;border:1px solid #d3cabb}.danger{background:#975442;color:#fff}.action-panel .primary,.action-panel .secondary{margin-top:13px}.text-btn{background:transparent;color:#6f7660;text-decoration:underline;text-underline-offset:4px;min-height:40px;padding:9px 4px;font-size:12px}.sub-actions{display:flex;justify-content:space-between;align-items:center}.sub-actions button+button{margin-left:12px}.tap-progress{display:flex;margin-top:12px}.tap-progress i{display:block;flex:1;height:3px;background:#dad4c7;margin-right:6px}.tap-progress i.done{background:#8c624b}.light-control{display:flex;align-items:center;margin-top:12px;font-size:10px;color:var(--muted)}.light-control input{flex:1;margin:0 14px;accent-color:var(--green);min-width:0;height:25px}.chat{margin-top:11px;padding:13px 0;border-top:1px solid var(--line)}.chat .label{font-size:9px;letter-spacing:1px;color:#929180;margin-bottom:8px}.chat p{font-size:11px;line-height:1.8;color:#70725f}.chat p span{color:#9a7864;margin-right:6px}.save-line{font-size:9px;color:#898978;letter-spacing:.5px;padding:6px 0}.nav{position:fixed;z-index:20;bottom:0;width:100%;max-width:470px;background:rgba(239,234,223,0.960784);border-top:1px solid #d9d2c4;display:flex;padding:9px 10px 8px;padding-bottom:calc(8px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)))}.nav button{flex:1;background:transparent;font-size:10px;color:#8a8b79;min-height:45px}.nav svg{display:block;margin:0 auto 6px}.nav .selected{color:var(--red)}.nav .selected:after{content:"";display:block;width:3px;height:3px;background:var(--red);border-radius:50%;margin:4px auto -7px}.page-head{padding:8px 0 22px}.page-head p{margin-top:10px;font-size:12px;color:var(--muted);line-height:1.8}.filters{display:flex;flex-wrap:wrap;margin-bottom:13px}.filter{background:transparent;border:1px solid #d6cebf;border-radius:20px;padding:8px 12px;margin:0 6px 8px 0;font-size:11px;min-height:36px}.filter.active{background:var(--green);color:#f4eee2;border-color:var(--green)}.grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px}.bowl-item{position:relative;min-width:0;background:#e9e2d5;border:1px solid #d8d0c0;border-radius:4px;text-align:left;padding:0 0 12px;overflow:hidden}.bowl-item canvas{width:100%;height:128px;display:block}.bowl-item .item-meta{padding:0 12px}.bowl-item h3{font-size:16px;letter-spacing:1px;line-height:1.5}.bowl-item p{margin-top:6px;font-size:10px;color:#817b69;line-height:1.6}.lock-mark{position:absolute;top:8px;right:8px;color:#6d755e}.lock-mark svg{width:14px;height:14px}.tag{display:inline-block;font:10px sans-serif;color:var(--red);padding:3px 6px;border:1px solid rgba(183,130,105,0.309804);border-radius:2px;letter-spacing:1px;margin-left:6px;vertical-align:middle}.new-label{display:inline-block;font-size:10px;color:var(--red);letter-spacing:2px;margin-left:8px}.empty{padding:48px 10px;text-align:center;border:1px dashed #c8beab;background:#ece5d8}.empty svg{width:55px;height:55px;color:#a49b83;margin-bottom:15px}.empty h3{font-size:21px;margin-bottom:12px}.empty p{color:var(--muted);font-size:12px;line-height:1.9}.empty button{margin-top:24px}.undiscovered{height:128px;display:flex;align-items:center;justify-content:center;color:#b0a896}.undiscovered svg{width:80px;height:60px;stroke-width:.6}.order{position:relative;border-bottom:1px solid #d6cebf;padding:20px 0 22px}.order .person{font-size:11px;color:#8e765c;letter-spacing:2px;margin-bottom:9px}.order h3{font-size:20px;letter-spacing:1px}.order p{font-size:12px;color:var(--muted);line-height:1.7;margin:9px 0}.order .secondary{margin-top:14px}.order .text-btn{float:right;min-height:25px;padding:3px;font-size:10px}.badge-list{margin-top:26px}.badge{padding:13px 0;border-bottom:1px solid var(--line);font-size:12px;color:#9b988a;display:flex;align-items:center}.badge svg{margin-right:12px}.badge.earned{color:#6b7655}.overlay{position:fixed;z-index:50;top:0;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:center;background:rgba(41,44,36,0.501961);padding-top:35px}.sheet{position:relative;width:100%;max-width:470px;max-height:92vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--paper);border-radius:18px 18px 0 0;padding:26px 24px 28px;padding-bottom:calc(28px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)));box-shadow:0 -12px 60px rgba(29,37,28,0.133333)}.sheet .close{position:absolute;right:13px;top:12px;z-index:2}.sheet>h2{padding-right:25px;margin-bottom:10px}.sheet>.hint{margin-bottom:20px}.batch-card{width:100%;text-align:left;border:1px solid #d5ccba;background:#eae3d5;border-radius:5px;padding:17px;margin:9px 0}.batch-card strong{font:19px "SimSun",serif}.batch-card span{float:right;font-size:12px}.batch-card p{font-size:11px;color:#7a7d68;line-height:1.8;margin-top:8px}.batch-card.practice{background:transparent;border-style:dashed}.detail-art{width:100%;height:295px;display:block;background:#d9d1c0;margin:20px 0 0;border-radius:4px}.detail-meta{display:flex;justify-content:space-between;margin:14px 0;font-size:11px;color:#7a7867}.row{display:flex;margin-top:14px}.row>*{flex:1;min-width:0}.row>*+*{margin-left:10px}.sheet .primary+.secondary{margin-top:10px}.settings-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:15px 0;font-size:13px;min-height:60px}.settings-row small{display:block;color:var(--muted);margin-top:6px;line-height:1.6;font-size:10px}.toggle{min-width:55px;min-height:35px;border-radius:20px;background:#d5cfbf;font-size:11px}.toggle.on{background:var(--green);color:#fff}.prose p{font-size:13px;line-height:2;color:#666b59;margin:13px 0}.prose h3{font-size:20px;margin-top:23px}.prose .source{font-size:10px;color:#8b8878;line-height:1.9}.prob-table{border-collapse:collapse;width:100%;margin:20px 0;font-size:12px}.prob-table td,.prob-table th{border-bottom:1px solid #d5cdbd;padding:10px;text-align:left;font-weight:400}.collect-card{text-align:center;background:#e8e1d2;padding:25px 15px 20px;border:1px solid #cbbda4;margin-top:15px}.collect-card .eyebrow{letter-spacing:3px}.collect-card h2{font-size:28px;margin:15px 0 9px}.collect-card canvas{width:100%;height:275px}.collect-card .poem{font:14px "SimSun",serif;line-height:2.2;letter-spacing:2px}.collect-card .card-footer{font-size:9px;letter-spacing:2px;border-top:1px solid #d0c4b0;margin-top:20px;padding-top:16px;color:#827a66}.collection-small{font-size:11px;color:#817c6b;margin-top:10px}.choice-bowl{display:flex;align-items:center;background:#e9e2d4;padding:10px;margin:10px 0;width:100%;border:1px solid #d5cbb9;border-radius:4px;text-align:left}.choice-bowl canvas{width:92px;height:75px}.choice-bowl div{flex:1;padding-left:12px}.choice-bowl h3{font-size:17px}.choice-bowl p{font-size:11px;color:var(--muted);margin-top:7px}#toast{position:fixed;bottom:93px;left:50%;transform:translateX(-50%);z-index:100;max-width:330px;width:max-content;background:rgba(52,62,48,0.929412);color:#f9f1de;padding:12px 18px;border-radius:5px;font-size:12px;line-height:1.7;box-shadow:0 5px 20px rgba(34,34,34,0.133333);opacity:0;pointer-events:none;transition:opacity .18s}#toast.show{opacity:1}.error-panel{background:#e7d1c3;color:#764537;padding:12px;font-size:12px;line-height:1.8;margin-bottom:12px}.help-hit{position:absolute;width:44px;height:44px;border-radius:50%;background:rgba(249,229,181,0.094118);border:1px dashed #b99769;transform:translate(-50%,-50%);color:transparent}.keyboard-points{display:flex;margin-top:12px}.keyboard-points button{background:#e3dccd;padding:8px 10px;border:1px solid #c6bcaa;border-radius:3px;font-size:11px;min-height:38px;flex:1}.keyboard-points button+button{margin-left:7px}.reload-banner{padding:12px;background:#e6dcc9;font-size:11px;line-height:1.8}.hide{display:none!important}.reduced *{scroll-behavior:auto!important;transition:none!important}.primary small{font-size:10px;opacity:.75;margin-left:9px}.modal-note{font-size:11px;line-height:1.8;margin:12px 0;color:#817a69}.milestone{padding:13px;background:#e5dfce;color:#777552;font-size:11px;margin:13px 0}.art-failure{padding:30px;position:absolute;top:30%;font-size:13px;line-height:1.8}
@media(min-width:700px){body{background:radial-gradient(ellipse at 30% 20%,#e7e0d0,#c8c0ae);background-attachment:fixed}.shell{margin:28px auto;min-height:880px;border:1px solid #c7bcaa;border-radius:9px}.nav{border-radius:0 0 8px 8px}.overlay{align-items:center;padding:20px}.sheet{border-radius:14px;max-height:90vh}.stage{margin-top:18px}.intro{padding-top:8px}}
@media(max-width:360px){.header{margin-left:18px;margin-right:18px}.view{padding:0 18px}.stage{margin-left:-18px;margin-right:-18px}.intro h1{font-size:25px}.brand strong{font-size:17px;letter-spacing:2px}.balance{padding:7px 8px;font-size:13px}.header{margin-bottom:12px}.bowl-item h3{font-size:14px}.stage-mark{left:18px}.sheet{padding-left:19px;padding-right:19px}.detail-art{height:240px}.action-title{font-size:19px}.collect-card canvas{height:220px}}
@media(max-height:780px){.header{margin-bottom:12px}.intro h1{font-size:25px}.stage{margin-top:10px}.batch-link{margin-top:10px}.steps{padding-top:12px;padding-bottom:10px}.action-panel{padding-top:12px}.chat{margin-top:4px}.intro .subtitle{margin-top:3px}}
/* Keep the active operation comfortably above the bottom navigation. */
.shell{padding-top:8px;padding-top:calc(8px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)))}
.header{padding-top:4px;margin-bottom:10px}.intro .eyebrow{margin-bottom:4px}.intro h1{font-size:26px;line-height:1.3}.intro .subtitle{margin-top:4px;line-height:1.6}.batch-link{margin-top:9px;padding:5px 10px}.stage{margin-top:10px}.steps{padding-top:12px;padding-bottom:10px}.action-panel{padding-top:13px}.stage-mark{left:12px;top:70px;max-height:150px;font-size:9px;letter-spacing:2px}.stage-corner{right:14px;top:13px}.collect-card .card-footer{line-height:1.9}.sheet .close:focus{outline:1px solid #aaa18b;outline-offset:-5px}
#toast{top:78px;bottom:auto;max-width:330px;background:rgba(52,62,48,.96);box-shadow:0 5px 20px rgba(34,34,34,.13)}
.nav{background:#efeadf}.result-choices .primary,.result-choices .secondary{margin-top:0;font-size:12px;padding:12px 8px;letter-spacing:.5px}.result-choices~.text-btn{margin-right:12px}
@media(min-width:700px){.header{margin-bottom:16px}.intro{padding-top:5px}.intro h1{font-size:27px}.stage{margin-top:14px}#toast{top:110px}}
@media(max-width:360px){.intro h1{font-size:24px}.header{margin-bottom:8px}.stage-mark{left:9px;font-size:8px}.intro .subtitle{font-size:11px}.batch-link{font-size:10px}.steps{font-size:10px}.action-title{font-size:18px}}
/* V0.2: a continuous paper shell, readable text, and live operation feedback. */
html{font-size:14px}body{font-size:1rem;line-height:1.5}button,input,select{font:inherit}button{min-height:44px;min-width:44px}button:disabled{opacity:.55}select{max-width:100%;min-height:44px;background:#e9e2d5;color:#383b31;border:1px solid #c9beac;border-radius:5px;padding:7px}
.shell{display:flex;flex-direction:column;max-width:490px;min-height:100vh;min-height:100dvh;padding:12px 0 0;margin:0 auto;overflow:visible;border-radius:0}
.header{flex:none;margin:0 20px 10px;gap:5px}.brand strong{font-size:1.35rem;letter-spacing:2px}.brand small{font-size:.86rem;letter-spacing:1px}.balance{font-size:1.14rem}.balance small{font-size:.86rem}.view{flex:1;padding:0 22px 20px;min-width:0}.nav{position:sticky;bottom:0;left:auto;flex:none;width:100%;max-width:none;margin-top:0;border-radius:0;padding:7px 8px calc(7px + env(safe-area-inset-bottom,0px));z-index:20;box-shadow:0 -3px 18px #4e473808}.nav button{font-size:.86rem;min-height:55px}.nav svg{margin-bottom:3px}
.notice{flex:none;min-height:46px;margin:0 20px 12px;padding:9px 12px;border:1px solid #dbd1bf;background:#ebe5d9;color:#696754;font-size:.86rem;line-height:1.6;border-radius:4px}.notice.receipt{background:#dfe7d9;border-color:#a4b493;color:#344b30;font-weight:600}.intro .eyebrow,.eyebrow{font-size:.86rem;letter-spacing:1.3px}.intro h1{font-size:1.85rem;line-height:1.4;letter-spacing:1.5px}.intro .subtitle{font-size:1rem;line-height:1.7;margin-top:5px;color:#6c6b5b}.batch-link{font-size:.93rem;min-height:44px;padding:8px 12px}.stage{margin:12px -22px 0}.stage-bottom{font-size:.86rem;bottom:7px;letter-spacing:1px}.stage-corner{font-size:.86rem}.steps{font-size:.93rem;gap:6px;line-height:1.6;padding:13px 0}.steps span{flex-wrap:wrap}.steps b{flex:none;font-size:.86rem;width:24px;height:24px}
.action-title{font-size:1.43rem;line-height:1.6}.action-panel{padding-top:16px;padding-bottom:9px}.hint,.page-head p,.prose p{font-size:1rem;line-height:1.8;color:#696b5b}.text-btn{font-size:.93rem;min-height:44px;padding:10px 7px}.primary,.secondary,.danger{font-size:1rem;min-height:46px;letter-spacing:.5px}.tool-pick{width:auto;max-width:56%;font-size:.93rem;padding:9px 10px}.tap-progress{margin-top:14px}.tap-progress i{height:5px;border-radius:4px}.keyboard-points{gap:5px;flex-wrap:wrap}.keyboard-points button{min-height:44px;font-size:.93rem;margin:0!important}.light-control{font-size:.86rem}.light-control input{min-height:44px}.sub-actions{gap:8px;flex-wrap:wrap}.sub-actions .hint{flex:1;min-width:110px}.chat{padding:15px 0}.chat .label,.save-line{font-size:.86rem;color:#7b7967}.chat p{font-size:1rem;color:#666c58}.save-line{line-height:1.7}.page-head{padding:8px 0 20px}.page-head h2,h2{font-size:1.85rem;line-height:1.55;letter-spacing:1px}.tag{font-size:.86rem}.grid{gap:12px}.bowl-item{border-color:#cec3b0}.bowl-item canvas{height:145px}.bowl-item h3{font-size:1.18rem;letter-spacing:.5px}.bowl-item p{font-size:.86rem;color:#6d6d5d;line-height:1.8}.bowl-item .item-meta{padding:0 11px}.lock-mark svg{width:19px;height:19px}.undiscovered{height:145px}.filter-panel{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}.filter-panel label{font-size:.86rem;color:#666856;flex:1;min-width:94px}.filter-panel select{display:block;width:100%;margin-top:5px}.grade-evidence{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.grade-evidence span{font-size:.86rem;color:#898371;padding:2px 3px;border:1px solid #d9cfbd;border-radius:3px}.grade-evidence .seen{color:#526648;border-color:#a7b09a;background:#e1e4d5}.badge{font-size:1rem}.badge small{font-size:.86rem}.result-status{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border-bottom:1px solid transparent;padding:0 0 11px;}.result-status strong{font:1.5rem "SimSun",serif;border:1px solid transparent;padding:4px 12px;}.result-status span{font-size:1rem;font-weight:500}.result-choices .primary,.result-choices .secondary{font-size:1rem;padding:12px 7px}.result-choices{flex-wrap:wrap;gap:8px}.result-choices>*+*{margin-left:0}.result-choices>*{min-width:135px}
.guest-list{display:grid;gap:19px}.order{background:linear-gradient(115deg,#f6f0e3,#e9e2d3);border:1px solid #cbbda5;border-radius:7px;padding:19px 18px;box-shadow:0 5px 15px #7564430a}.guest-head{display:flex;align-items:center;gap:13px}.guest-portrait{width:50px;height:50px;flex:none;display:flex;align-items:center;justify-content:center;border:1px solid #b8b397;border-radius:50%;color:#667255;background:#e1e3d1}.guest-portrait svg{width:29px;height:29px;stroke-width:1.1}.guest-head>div{flex:1}.guest-number{align-self:flex-start;color:#ab997c;font:1.5rem Georgia,serif}.order .person{font-size:.86rem;margin-bottom:3px;letter-spacing:1px}.order h3{font-size:1.45rem;line-height:1.5}.order p{font-size:1rem;line-height:1.9;margin:13px 0}.guest-foot{display:flex;align-items:center;gap:10px;margin-top:12px}.match-count{flex:1;font-size:.93rem;color:#6a7159}.guest-foot .secondary{width:auto;min-width:130px;margin:0}.order .text-btn{float:none;font-size:.86rem;min-height:44px;padding:9px 0;display:block;margin-left:auto}.order-receipt{background:#dce6d1;border:1px solid #b3bfa5;padding:10px;font-size:.93rem;color:#46613b;margin-bottom:15px}.order-receipt strong{display:block;font-size:1.2rem}.order-receipt span{display:block;font-size:.86rem}
.overlay{padding-top:18px}.sheet{max-width:490px;padding:28px 23px;max-height:94vh;max-height:94dvh}.sheet .close{background:#f3eee4;right:8px;top:8px;border-radius:50%}.sheet .page-head{padding-right:22px}.sheet>h2{padding-right:30px}.batch-card{display:flex;align-items:center;padding:8px;margin:0 0 11px;gap:10px;border:1px solid #c9bea9;background:#e9e1d2}.batch-card>div{flex:1;min-width:0}.batch-card canvas{width:82px;height:85px;flex:none}.batch-card strong{font-size:1.25rem;display:block;line-height:1.6}.batch-card .batch-price{float:none;font-size:1rem;color:#6c5239}.batch-card p{font-size:.86rem;color:#6e6c5b;line-height:1.7;margin-top:3px}.batch-card.chosen{outline:2px solid #758068;background:#e1e6d8;border-color:#758068}.batch-card .batch-status{color:#775e43}.milestone{font-size:.93rem;line-height:1.8}.detail-art{height:305px;touch-action:none;margin-top:8px}.viewer-status{font-size:.86rem;color:#676f59;margin:7px 0;min-height:24px}.viewer-controls{display:flex;gap:6px;flex-wrap:wrap}.viewer-controls button{background:#e7dfd0;border:1px solid #c8bda7;border-radius:4px;padding:7px 10px;font-size:.93rem;flex:1;white-space:nowrap}.viewer-controls button.active{background:#4e5c46;color:#fff}.detail-meta{font-size:.86rem;flex-wrap:wrap;gap:5px}.choice-bowl canvas{flex:none;width:90px;height:83px}.choice-bowl h3{font-size:1.2rem}.choice-bowl p{font-size:.93rem;line-height:1.8}.choice-bowl div{padding-left:9px}.settings-row{font-size:1rem;gap:10px}.settings-row small,.modal-note,.collection-small,.collect-card .card-footer{font-size:.86rem;line-height:1.9}.toggle{min-height:44px;flex:none;font-size:.93rem}.prose .source{font-size:.86rem;color:#7a7563}.prob-table{font-size:.86rem}.prob-table td,.prob-table th{padding:9px 5px}.table-scroll{overflow:auto}.empty p{font-size:1rem}.storage-error{padding-top:80px}.storage-error p{margin:18px 0;line-height:1.9}.storage-error button{margin-bottom:50px}.collect-card .poem{font-size:1rem}.error-panel{font-size:1rem}#toast{display:none}
@media(min-width:700px){.shell{margin:24px auto;min-height:calc(100vh - 48px);min-height:calc(100dvh - 48px);border:1px solid #c7bcaa;border-radius:9px}.nav{border-radius:0 0 8px 8px}.overlay{align-items:center;padding:20px}.sheet{max-height:90vh;max-height:90dvh}}
@media(max-width:360px){.header{margin-left:14px;margin-right:14px}.brand strong{font-size:1.2rem}.brand small{font-size:.86rem}.header .icon-btn{margin-left:0}.seal{margin-right:3px}.balance{padding:6px 8px}.view{padding-left:17px;padding-right:17px}.stage{margin-left:-17px;margin-right:-17px}.notice{margin-left:14px;margin-right:14px}.intro h1{font-size:1.65rem}.intro .subtitle{font-size:1rem}.batch-link{font-size:.93rem}.steps{font-size:.86rem}.steps b{margin-right:3px}.action-title{font-size:1.35rem}.sheet{padding-left:18px;padding-right:18px}.detail-art{height:255px}.bowl-item canvas{height:115px}.bowl-item h3{font-size:1.1rem}.batch-card canvas{width:62px;height:76px}.order{padding:16px 13px}.guest-foot .secondary{min-width:110px}.stage-bottom{font-size:.86rem;letter-spacing:0}.brand{min-width:0}}
.viewer-controls button{color:var(--ink)}.viewer-controls button.active{color:#fff}
.viewer-controls button{width:auto;flex:1 0 auto;min-width:64px}.modal-error{margin-top:30px}.grade-counts{font-size:.86rem;line-height:1.8;color:#6d6d5d}
/* v0.3: one physical kiln shelf; clay vessels share a stage and leave an empty place. */
.yard-intro{padding:0 0 12px}.yard-intro h1{font-size:1.7rem;line-height:1.5;letter-spacing:1px}.yard-intro .hint{font-size:.93rem;margin-top:4px}.yard-intro .eyebrow{font-size:.78rem;margin-bottom:5px}.day-stripe{display:flex;align-items:center;justify-content:space-between;gap:6px;border-top:1px solid #c9b99b;border-bottom:1px solid #c9b99b;padding:10px 0;font-size:.86rem}.day-stripe>strong{color:#86573c;font-size:1.15rem;font-weight:500}.day-stripe b{font-weight:500;color:#494e3d}.kiln-shelves{position:relative;margin:13px -10px 0;padding:18px 8px 13px;border-radius:58px 58px 4px 4px;background:radial-gradient(ellipse at 50% 0,#82725b22,transparent 60%),repeating-linear-gradient(0deg,transparent 0,transparent 46px,#7962450b 47px,#7962450b 49px),linear-gradient(110deg,#cfc1a9,#e1d5be 50%,#c6b69b);border:1px solid #b2a184;box-shadow:inset 0 8px 35px #66503224,inset 0 -2px 6px #6c53331f;isolation:isolate}.kiln-wall-mark{position:absolute;right:17px;top:8px;font-family:"SimSun",serif;font-size:.78rem;color:#6e5a3f;letter-spacing:4px;opacity:.62}.kiln-row{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:0 3px 8px}.yard-object{position:relative;display:block;padding:0 1px 2px;background:transparent;border:1px solid transparent;border-radius:50% 50% 3px 3px;min-width:0;min-height:0;z-index:2;touch-action:manipulation}.yard-object canvas{width:100%;height:auto;aspect-ratio:180/150;display:block;filter:drop-shadow(0 4px 3px #59442a22);pointer-events:none}.yard-object.chosen{background:radial-gradient(ellipse at center,#fff5c877,transparent 74%);border-bottom-color:#8d6844;box-shadow:0 2px 0 #8d6844}.yard-object:focus-visible{outline-offset:-2px}.yard-object.taken canvas{filter:none}.yard-object.taken .slot-caption{color:#7c725e}.slot-caption{display:block;text-align:center;font-size:.76rem;color:#574b37;white-space:nowrap;line-height:1.6;letter-spacing:0}.slot-caption b{font-family:Georgia,serif;font-size:.86rem;font-weight:400;margin-right:3px}.shelf-beam{position:absolute;bottom:3px;left:-8px;right:-8px;height:8px;background:linear-gradient(#b7a180,#887358);border-top:1px solid #c9b595;box-shadow:0 5px 7px #58452d3b;z-index:1;border-radius:1px}.yard-selection{padding:14px 0 12px;border-bottom:1px solid var(--line);min-height:74px}.selection-invitation{font-family:"SimSun",serif;font-size:1.07rem;line-height:1.8;text-align:center;color:#756951;padding:5px 0}.selected-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.selected-heading h2{font-size:1.45rem}.selected-heading span{font-size:.93rem;color:#746448}.yard-selection .primary{margin-top:12px}.yard-selection .text-btn{display:block;margin:0 auto}.yard-links{display:flex;align-items:center;gap:12px;padding-top:15px;flex-wrap:wrap}.yard-links .secondary{flex:1;min-width:155px}.yard-links .text-btn{flex:1;white-space:nowrap}.progress-note{padding:15px 0;margin-top:10px;border-top:1px solid var(--line);font-size:.93rem;color:#6b644f}.progress-note>span{display:block}.progress-note small{display:block;margin-top:8px;font-size:.86rem;line-height:1.8;color:#7c7866}.progress-note .text-btn{display:block}.legacy-welcome{padding:26px 20px;border:1px solid #c9b99c;background:#e9e0ce;border-radius:5px;text-align:center}.legacy-welcome>svg{width:60px;height:60px;margin-bottom:18px;color:#8a7456}.legacy-welcome h2{font-size:1.5rem}.legacy-welcome button{margin-top:14px}.intro>.text-btn{padding:5px 0;min-height:36px;font-size:.86rem}.tool-state{font-size:.86rem;color:#7a715d;display:block;padding-top:6px}.accessible-tools{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.accessible-tools summary{min-height:44px;cursor:pointer;line-height:44px;color:#6d715c}.result-status .new-shape{font-size:.93rem;}.matching-art{height:190px}.matching-guest{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#e5ddcd;border:1px solid #c6b69b;border-radius:5px;text-align:left;width:100%;padding:16px 12px;margin:12px 0}.matching-guest>span:first-child{font-family:"SimSun",serif;font-size:1.25rem}.matching-guest small,.choice-bowl small,.quote-breakdown small{display:block;font:.86rem/1.8 -apple-system,BlinkMacSystemFont,"Microsoft YaHei",sans-serif;color:#716b58;margin-top:4px}.matching-guest strong{font-size:1rem}.quote-breakdown{background:#e1e5d5;border:1px solid #bbc4aa;border-radius:4px;padding:15px;margin:14px 0;color:#4a5c3f}.quote-breakdown strong{font-size:1.5rem}.departed{margin-top:25px;border-top:1px solid #cabda6;padding-top:18px}.departed>h3{font-size:1.3rem;color:#747059;margin-bottom:10px}.departed article{border-bottom:1px solid #d5ccb9;padding:14px 0}.departed article>span{display:inline-block;color:#647359}.departed article strong{float:right;font-size:.93rem;font-weight:500;color:#526347}.departed .hint{clear:both}.departed svg{width:18px;height:18px}.tea-complete{text-align:center;padding:30px 12px;background:#e5e5d4;border:1px solid #c0c7ac}.tea-complete>svg{width:44px;height:44px;color:#758363;margin-bottom:18px}.tea-complete>h2{font-size:1.6rem}.tea-complete button{margin-top:20px}.day-ledger{margin:16px 0;border-top:1px solid #c9bba1}.day-ledger>div{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #d9cfbd}.day-ledger dt{font-size:.93rem;color:#756d58}.day-ledger dd{margin:0;font-size:1rem;color:#4d573f;text-align:right}.day-transition{position:fixed;z-index:45;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 90%,#ad6d3c,#473b2e 70%);color:#f1e1c4;pointer-events:auto}.day-transition h2{font-size:2.8rem;margin:16px}.day-transition p{font:1.15rem "SimSun",serif;letter-spacing:2px}.day-transition .eyebrow{color:#dec198}.day-transition .secondary{margin-top:40px;width:150px;background:#c8b08c22;border-color:#c0a27a;color:#eee0c5}.kiln-glow{width:90px;height:32px;border-radius:100% 100% 20% 20%;background:#e5ae60;box-shadow:0 0 50px 30px #e5903040;animation:kiln-breath 1.8s ease-out}@keyframes kiln-breath{from{opacity:.4;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.transport-saggar{position:fixed;z-index:44;pointer-events:none;filter:drop-shadow(0 12px 6px #4e392e40)}.empty.compact{padding:25px 12px}.journal>div>.bowl-item{width:100%;height:100%}.discovery-history{border-top:1px solid #d4c7b0;margin-top:9px}.discovery-history .hint{font-size:.86rem}.prob-table th:first-child{min-width:92px}.prob-table td{white-space:nowrap}.reduced .kiln-glow{animation:none}
@media(max-width:360px){.yard-intro h1{font-size:1.5rem}.day-stripe{font-size:.8rem;gap:3px}.day-stripe>strong{font-size:1.05rem}.kiln-shelves{margin-left:-7px;margin-right:-7px;padding-left:4px;padding-right:4px}.slot-caption{font-size:.69rem}.kiln-row{padding-left:0;padding-right:0;gap:0}.selected-heading{flex-wrap:wrap}.matching-guest{padding:12px 9px}.matching-guest>span:first-child{font-size:1.15rem}.matching-guest strong{font-size:.93rem}.brand strong{white-space:nowrap}.header{gap:2px}.header .balance{margin-left:auto}.choice-bowl canvas{width:74px}}
.slot-caption{white-space:normal;overflow-wrap:break-word;min-height:1.6em}.yard-links .text-btn{white-space:normal;min-width:0}.brand{min-width:0}.summary-events{margin:18px 0}.summary-events h3{font-size:1.2rem;margin:12px 0 6px}.summary-events p{font-size:.93rem;line-height:1.8;color:#726954;border-bottom:1px solid #ded4c1;padding:7px 0}.summary-events strong{font-weight:500;color:#536344}.summary-events small{display:block;font-size:.86rem;color:#7d7561}
@media(prefers-reduced-motion:reduce){.kiln-glow{animation:none}}
/* Chrome 61 does not implement inset; retain the same positioned bounds. */
.day-transition{top:0;right:0;bottom:0;left:0}
/* Five equal destinations. Labels remain full names at enlarged text sizes. */
.nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding-left:5px;padding-right:5px}
.nav .nav-item{position:relative;min-width:0;min-height:54px;margin:0;padding:4px 0;border:1px solid transparent;border-radius:4px;white-space:nowrap;font-size:.6875rem;line-height:1.4;letter-spacing:0}
.nav .nav-item span{display:block}
.nav .nav-item.selected{background:#e7ddcb;border-color:#c9b390}
.nav .selected:after{display:none}
.nav .pending-dot{position:absolute;top:5px;right:22%;width:5px;height:5px;background:#8b634a;border-radius:50%}
.nav button:focus-visible{outline:2px solid #72553e;outline-offset:1px}
@media(max-width:340px){.nav .nav-item{font-size:.625rem}}

/* v0.4 collection and business: one kiln/workbench tab, actual portraits. */
.school-badge{display:inline-block;color:#806348;background:#e5ddca;border:1px solid #cabc9e;border-radius:3px;font-size:.75rem;line-height:1.7;padding:1px 6px;letter-spacing:.05em}
.journal{align-items:stretch;row-gap:16px}.journal>div{min-width:0;display:flex;align-items:stretch}.journal>div>.journal-card{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;padding:0;text-align:left;vertical-align:top;overflow:hidden;border:1px solid #d0c2aa;background:#e8dfce;border-radius:4px;height:100%}
.journal-card>canvas,.journal-card>.undiscovered{display:block;position:static;flex:0 0 auto;width:100%;height:138px;margin:0;box-sizing:border-box;background:#d6cbb6;object-fit:contain}.journal-card .undiscovered{display:flex;align-items:center;justify-content:center}.journal-card .undiscovered svg{width:54px;height:54px;}
.journal-card .item-meta{padding:11px 10px 14px;display:block;margin:0;flex:1}.journal-card .item-meta h3{line-height:1.55;margin:6px 0 4px;font-size:1.05rem;min-height:1.55em}.journal-card .item-meta p{margin:4px 0 0;font-size:.84rem;line-height:1.6}.journal-card .grade-counts{color:#786d57;font-size:.72rem;display:flex;flex-wrap:wrap;gap:2px}.journal-card .grade-counts span{white-space:nowrap}
.grade-switch,.supply-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}.grade-switch button,.supply-tabs button{min-height:44px;padding:8px 12px;border:1px solid #c3b497;background:#e5dcc9;color:#6e644e;border-radius:4px;font-size:.88rem}.grade-switch button{flex:1}.supply-tabs .active{background:#596451;color:#fcf5e7;border-color:#596451}.record-detail{border-top:1px solid #cbbda2;margin-top:22px;padding-top:12px}.record-detail summary{min-height:44px;line-height:1.6;padding:12px 0;cursor:pointer}
.risk-bar{padding:13px 14px;border:1px solid #bfaf8e;background:#e6e3d2;border-radius:4px;margin-bottom:16px;color:#566146}.risk-bar strong,.risk-bar span,.risk-bar small{display:block;line-height:1.6}.risk-bar span{font-size:.9rem;margin:4px 0}.risk-bar small{font-size:.8rem;color:#74684f}.risk-bar.warn{background:#eddbc6;color:#884731;border:2px solid #a66742}.broken-result{background:#e6dace;border:1px solid #b49c84;border-radius:5px;padding:18px}.broken-result h2{font-size:1.5rem}
.order{padding:19px 18px}.special-section{margin:26px 0 12px;padding-top:18px;border-top:1px solid #c5b597}.guest-head>div{min-width:0}.guest-head h3{line-height:1.5}.guest-foot{gap:8px}.guest-foot .secondary{width:auto;min-width:120px}.match-count{line-height:1.7}.departed article{min-height:46px}
.pair-box{display:flex;gap:12px;padding:18px 12px;background:#d4c1a0;border:1px solid #b39b71;border-radius:7px;box-shadow:inset 0 0 0 5px #e8d8b7;margin:18px 0}.pair-box.reserved{border-color:#657252;box-shadow:inset 0 0 0 5px #b8c2a6}.pair-slot{flex:1;min-width:0;min-height:170px;border:1px dashed #a58e6f;border-radius:5px;background:#e8dfcc;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;overflow:hidden;padding:0 0 9px}.pair-slot>canvas{width:100%;height:115px;display:block;margin:0}.pair-slot>span{display:block;margin:25px 0 10px}.pair-slot svg{width:48px;height:48px;color:#9a8b70}.pair-slot strong{font:1rem/1.5 "SimSun",serif;padding:5px}.pair-slot .hint{font-size:.76rem;margin:0;padding:0 6px}.pair-slot .text-btn{padding:3px 8px}.pair-candidates{margin-top:20px}.pair-candidates .choice-bowl:disabled{opacity:.4}.pair-candidates .choice-bowl{cursor:grab}
.supply-card{margin:15px 0;padding:18px;border:1px solid #c5b79b;background:#e7dfcf;border-radius:5px}.supply-card h3{margin:9px 0;font-size:1.15rem}.supply-card button{margin-top:12px}.business-links{margin-top:18px;padding-top:16px;border-top:1px solid #d0c3ab}.visitor-progress{padding:14px 0}.decor-swatch{height:74px;border:1px solid #ac9a7d;border-radius:5px}.decor-linen_mat .decor-swatch{background-color:#d2c4a5;background-image:repeating-linear-gradient(0deg,transparent 0,transparent 3px,#9f896b30 4px),repeating-linear-gradient(90deg,transparent 0,transparent 3px,#8c796230 4px)}.decor-darkwood_display .decor-swatch{background:repeating-linear-gradient(3deg,#553d2a,#59432e 7px,#493321 8px,#634a30 10px);box-shadow:inset 0 -12px 0 #352c20,inset 0 -15px 0 #836a47}.collection-shelf.darkwood .grid{padding:12px 9px 20px;background:#684e35;box-shadow:inset 0 -12px 0 #30271c;border:6px solid #473522;border-radius:5px;gap:14px 10px}.collection-shelf.darkwood .bowl-item{border-bottom:8px solid #392b1d;box-shadow:0 4px 0 #947149}.sheet .detail-art[data-portrait]{display:block;height:250px;width:100%;margin:16px 0;object-fit:contain;}.sheet .grade-switch{margin-top:20px}
@media(max-width:360px){.journal-card>canvas,.journal-card>.undiscovered{height:120px}.journal-card .item-meta{padding:8px 7px}.journal-card .item-meta h3{font-size:.95rem}.journal-card .grade-counts{font-size:.68rem}.pair-box{gap:7px;padding:12px 8px}.pair-slot>canvas{height:95px}.pair-slot strong{font-size:.92rem}.supply-tabs button{font-size:.82rem;padding:8px 9px}.order{padding:19px 14px}.guest-foot .secondary{min-width:106px;padding:10px}}
/* Margin spacing also works on the historical browser baseline without flex gap. */
.journal{grid-gap:16px 12px}.grade-switch,.supply-tabs,.pair-box,.guest-foot{gap:0}.grade-switch>button,.supply-tabs>button{margin-right:7px;margin-bottom:7px}.grade-switch>button:last-child{margin-right:0}.pair-slot+.pair-slot{margin-left:12px}.guest-foot>button{margin-left:8px}.journal-card .grade-counts{display:block}.journal-card .grade-counts>span{display:inline-block}.collection-shelf.darkwood .grid{grid-gap:14px 10px}
@media(max-width:360px){.pair-slot+.pair-slot{margin-left:7px}}

/* v0.5: distinct owned shelf / evidence journal; four qualities use labels and color. */
.stage-bottom{display:none}
.header{flex-wrap:wrap}.header .brand{flex:1 1 10.5rem;min-width:0;max-width:100%}.header .brand strong{white-space:nowrap}.header .brand small{letter-spacing:.08em;line-height:1.5}.header .balance{margin-top:5px;margin-bottom:5px}.header .icon-btn{margin-top:5px;margin-bottom:5px}
.collection-book{color:#354f54}.collection-book .page-head{border-top:3px solid #607d83;padding-top:14px}.collection-book .eyebrow,.collection-book .collection-key{color:#526d74}.collection-key{font-size:.86rem;line-height:1.7;margin:0 0 18px}.collection-shelf>.page-head{border-top:3px solid #91714d;padding-top:14px}.collection-shelf .eyebrow{color:#8b643f}.collection-shelf .grid .bowl-item{background:#e9dfc9;border-color:#bfa882}
.journal{align-items:stretch;grid-gap:18px 12px}.journal>.journal-card{display:flex;flex-direction:column;justify-content:flex-start;min-width:0;padding:0;border:1px solid transparent;border-radius:6px;overflow:visible;}.journal-card .portrait-link{display:block;width:100%;margin:0;padding:0;min-height:0;border:0;border-radius:5px 5px 0 0;overflow:hidden;}.journal-card .portrait-link>canvas,.journal-card .portrait-link>.undiscovered{display:block;width:100%;height:148px;margin:0;position:static;}.journal-card .portrait-link>.undiscovered{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:12px;}.journal-card .undiscovered svg{width:38px;height:38px;flex:none;}.journal-card .undiscovered span{font-size:.78rem;line-height:1.6;margin-top:10px;max-width:100%}.journal-card .item-meta{padding:11px 10px 8px;flex:none;min-width:0}.journal-card .school-badge{background:#dce5df;border-color:#b4c7c0;color:#48675e;letter-spacing:0}.journal-card .recipe-title{display:block;border:0;text-align:left;padding:2px 0;margin:0;min-height:44px;width:100%;}.journal-card .recipe-title h3{margin:4px 0;font-size:1.06rem;line-height:1.5;letter-spacing:0}.journal-card .portrait-caption{min-height:3.2em;font-size:.8rem;line-height:1.6;}.journal-card .total-record{font-size:.8rem;color:#5c6d68;margin-top:5px}.card-grade-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:7px;margin:auto 10px 0;padding-top:5px}.grade-chip{border:1px solid transparent;border-radius:4px;min-height:48px;min-width:0;padding:5px 4px;font-size:.86rem;line-height:1.55;letter-spacing:0;}.grade-chip span,.grade-chip strong{display:block}.grade-chip strong{font-size:.8rem;font-weight:400;overflow-wrap:break-word}.grade-chip.selected,.grade-chip.active{outline:2px solid currentColor;outline-offset:-3px;box-shadow:inset 0 -3px 0 currentColor}.counts-note{display:block;min-height:3em;margin:8px 10px 10px;font-size:.72rem;line-height:1.5;color:#657975}.journal-card button:focus-visible{outline:3px solid #2c6073;outline-offset:1px}.portrait-shape-filter{display:block;font-size:.9rem;margin-top:16px}.portrait-shape-filter select{display:block;margin-top:6px;width:100%}.sheet .detail-art[data-portrait]{;}.advanced-record{font-size:.82rem;color:#7b7b6a}.advanced-record p{overflow-wrap:anywhere;word-break:break-all;font-size:.82rem}
.supply-region{margin:10px 0 2px;min-width:0}.supply-toolbar{display:flex;align-items:center;justify-content:space-between;min-height:44px;font-size:.84rem;color:#736247}.new-supply{background:transparent;border:1px solid #af9777;color:#6c5134;min-height:44px;padding:8px 12px;border-radius:4px;font-size:.86rem;white-space:nowrap}.supply-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;margin:8px 0;padding:3px 2px 8px;width:100%;scrollbar-width:thin}.supply-tabs>.school-chip{flex:0 0 6.2em;width:6.2em;height:48px;min-height:48px;box-sizing:border-box;white-space:nowrap;padding:8px 4px;margin:0 7px 0 0;font-size:.88rem;font-weight:400;letter-spacing:0;line-height:1.3;background:#e5dcc9;border:1px solid #b9a88b;color:#6a593f;border-radius:4px}.supply-tabs>.school-chip.active{background:#655740;color:#fff8e7;border-color:#655740;font-weight:400}.tier-summary{padding:5px 0 0}.tier-summary .hint{font-size:.8rem;line-height:1.7;margin:3px 0}.tier-summary .hint:first-child{color:#584b35}.tier-label{display:inline-block;padding:0 4px;color:#667057;border:1px solid #a8ac94;background:#e3e6d7;border-radius:3px;font-size:.72rem;line-height:1.6;white-space:nowrap}.tier-label.premium{color:#825729;border-color:#c1a173;background:#f1e0b8}.yard-object canvas{filter:none}.slot-caption{white-space:normal;line-height:1.5;min-height:3em;font-size:.72rem;padding:0 3px;overflow-wrap:break-word}.slot-price{display:block;font-size:.73rem;line-height:1.7;padding:2px 0 3px;color:#5c4930;white-space:normal}.slot-price .tier-label{font-size:.68rem}.kiln-row{padding-bottom:12px}.yard-object.taken{opacity:.62}.workbench-todo{margin-top:12px;padding:10px 12px;background:#e6e5d5;border:1px solid #b9c0a6;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}.workbench-todo .hint{font-size:.85rem;flex:1;margin-right:10px;min-width:130px}.workbench-todo .secondary{width:auto;margin:4px 0}.business-links{margin-top:8px;padding-top:7px}.visitor-progress{padding:7px 0}.visitor-progress .hint,.progress-note small{font-size:.8rem}.tier-probability{padding:14px;background:#e4e8d8;border:1px solid #b1bea2;border-radius:5px}.tier-probability.premium{background:#eee2c7;border-color:#b99a69}.tier-probability>strong{font:1.5rem/1.7 "SimSun",serif}.tier-probability .prob-table{width:100%}
.intro{padding-bottom:8px}.intro h1{font-size:1.65rem;line-height:1.5;margin-bottom:3px}.intro .subtitle:empty{display:none}.result-status{border-radius:5px;padding:12px 10px;border:1px solid transparent;}.result-status strong{border:1px solid currentColor;font-size:1.35rem;}.result-status .new-shape{;}.result-choices{margin-top:12px}.action-panel{padding-top:10px}.empty-workbench{padding:10px 0 20px;text-align:center}.empty-workbench .hint{margin:12px auto}.empty-workbench canvas{display:block;width:100%;height:auto}.empty-workbench button{margin-top:12px}
.guest-rank{font-size:.73rem;letter-spacing:.14em;margin-bottom:6px;}.pair-slot .reserved-label{font-size:.75rem;line-height:1.6;margin:6px 0 0;padding:1px 7px;border:1px solid #8da681;color:#557149;background:#d9e5cf}.guest-head>div{overflow-wrap:break-word}.guest-head .person{font-weight:500}
@media(max-width:360px){.journal{grid-template-columns:minmax(0,1fr)}.journal-card .portrait-link>canvas,.journal-card .portrait-link>.undiscovered{height:190px;}.journal-card .portrait-caption{min-height:1.6em;}.journal-card .recipe-title h3{font-size:1.1rem}.counts-note{min-height:1.5em}.card-grade-switch{grid-template-columns:repeat(2,minmax(0,1fr))}.slot-caption{font-size:.71rem}.slot-price{font-size:.69rem}.grade-switch .grade-chip{padding:7px 3px}.pair-box{padding:12px 8px}.pair-slot strong{font-size:.86rem}.pair-slot .hint{font-size:.72rem}.selected-heading{align-items:flex-start;flex-wrap:wrap}.guest-foot{flex-wrap:wrap}.guest-foot .secondary{margin:8px 0 0;width:100%}}

.notice:empty,.save-line:empty,.hint:empty{display:none}
#notice{position:fixed;top:12px;top:calc(12px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);z-index:90;width:calc(100% - 36px);max-width:424px;box-sizing:border-box;margin:0;padding:10px 14px;pointer-events:none;background:#f6f2e6;color:#394c3e;border:1px solid #afbaa8;border-radius:5px;box-shadow:0 5px 18px rgba(48,44,36,.15);font-size:12px;line-height:1.65}
#tool-hint{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.header{flex-wrap:wrap}.header .brand-icon{flex:0 0 40px;width:40px;height:40px;border-radius:9px;margin-right:6px}.header .brand strong{display:block;font-family:'Songti SC','SimSun',serif;font-size:21px;letter-spacing:2px;white-space:normal}.header .brand{min-width:0;flex:1 1 112px}.header .brand small{display:block;font-size:10px;line-height:1.6;white-space:normal;letter-spacing:.1px}.header .balance{margin-left:auto;flex-shrink:0}.header>.icon-btn{flex-shrink:0}.header .balance small{white-space:nowrap}
.journal-search{grid-column:1/-1}.journal-search input{font:inherit;min-width:0;width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid #aeb8af;background:#faf7ef;border-radius:6px;color:#35483d}
.collection-key{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap}.collection-key details{max-width:100%}.collection-key summary{cursor:pointer}.collection-key .hint{max-width:38em}
.journal-card .item-meta{min-height:106px;box-sizing:border-box}.journal-card .portrait-caption{min-height:2.5em}.journal-card .card-grade-switch{margin-top:auto}.journal-card .undiscovered{height:100%;min-height:0;box-sizing:border-box;padding:14px;text-align:center}.journal-card .undiscovered span{font-size:12px;line-height:1.6}
.journal-card .portrait-link{height:180px}.journal-card .portrait-link canvas{height:180px}.journal-card .grade-chip strong{font-variant-numeric:tabular-nums}.journal-card .grade-chip:disabled{opacity:.66}.grade-chip:focus-visible,.recipe-title:focus-visible,.portrait-link:focus-visible{outline:3px solid #263c36;outline-offset:2px}
.journal-card .portrait-link>canvas,.journal-card .portrait-link>.undiscovered{height:100%}.journal-card .recipe-title{background:transparent}.journal-card .card-grade-switch{margin-bottom:10px}
.recipe-detail .grade-switch{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:5px;gap:5px}.recipe-detail .grade-switch strong{display:block}.recipe-detail .detail-art{border-radius:8px}.early-portraits .choice-bowl canvas{width:100px;height:85px}.advanced-record{font-size:12px;margin-top:18px}
.risk-strip{display:flex;align-items:center;justify-content:space-between;min-height:30px;font-size:12px;line-height:1.5;margin:0 0 6px}.risk-strip .text-btn{padding:5px;min-height:30px;margin:0;white-space:nowrap}.risk-strip.warn{color:#8f433a;background:#f7ebe4;border-left:3px solid #8f433a;padding:5px 8px}.risk-first{font-size:13px;line-height:1.6;background:#f7ebe4;color:#8f433a;padding:10px 12px;margin:0 0 8px;border-radius:5px}.risk-first .text-btn{margin:0;padding:4px 8px}.risk-rules p{line-height:1.7}.pair-slot canvas{border-radius:8px}.sheet .collect-card{border:2px solid var(--quality-border,#aabb9f)}
@media(max-width:360px){.journal-card .portrait-link,.journal-card .portrait-link canvas{height:150px}.journal-card .item-meta{padding:10px;min-height:112px}.journal-card .card-grade-switch{padding:7px;gap:4px}.risk-strip{flex-wrap:wrap}.brand strong{font-size:16px}}
@media(prefers-reduced-motion:reduce){.reveal-accent,.stage.reveal-rare,.stage.reveal-legendary{animation:none!important}}

.collection-key>*{margin-right:12px}.risk-strip>button{margin-left:8px}
#save-indicator:empty{display:none}#save-indicator{position:fixed;right:12px;top:4px;z-index:101;max-width:calc(100% - 24px);box-sizing:border-box;padding:4px 9px;border:1px solid #aabb9f;border-radius:4px;font-size:11px;line-height:1.6;pointer-events:none;background:#f6f2e6;color:#48643e}
.guest-condition{display:inline-block;border:1px solid currentColor;border-radius:4px;padding:2px 7px;margin:0 0 6px;font-size:11px;font-weight:600}
.recipe-detail>.eyebrow{padding-right:32px;overflow-wrap:break-word}
.risk-alert{display:inline-block;min-width:1.25em;text-align:center;border:1px solid currentColor;border-radius:50%;font:700 12px/1.3 sans-serif}

/* Generated from scripts/quality-theme.json; source SHA256 a0ed5f9ec590e7c51f3aa7355266cad341cea3169d518ab8ba9c18afb407a8ac. No ceramic filters or material colors. */

.grade-chip{background:#F2EEE4;border-color:#E9E5DC;color:#5A564D;}

.journal-card.quality-common,
.bowl-item.quality-common,
.collection-shelf .grid .bowl-item[data-quality="common"],
.pair-slot.quality-common,
.choice-bowl.quality-common,
.collect-card.quality-common,
.quality-surface.quality-common{color:#48643E;background:#EDF2E7;border-color:#AABB9F;}

.collection-shelf .grid .bowl-item[data-quality="common"],
.bowl-item.quality-common{border-top:4px solid #64795E;}

.journal-card.quality-common{border:1px solid #AABB9F;box-shadow:inset 0 3px 0 #64795E;}

.journal-card.quality-common .portrait-link,
.journal-card.quality-common .portrait-link>canvas,
.journal-card.quality-common .portrait-link>.undiscovered,
.quality-common.quality-portrait,
canvas.quality-common,
.quality-frame.quality-common{background:#E3E9D9;}

.quality-frame.quality-common{border:1px solid #AABB9F;}

.journal-card.quality-common .recipe-title,
.journal-card.quality-common .portrait-caption,
.journal-card.quality-common .quality-title,
.bowl-item.quality-common .item-meta h3,
.collection-shelf .grid .bowl-item[data-quality="common"] .item-meta h3,
.quality-label.quality-common{color:#48643E;}

.grade-chip.quality-common,
.grade-switch .grade-chip.quality-common{color:#48643E;background:#EDF2E7;border-color:#AABB9F;}

.grade-chip.quality-common.selected,
.grade-chip.quality-common.active,
.grade-switch .grade-chip.quality-common[aria-pressed="true"]{color:#48643E;background:#E3E9D9;border-color:#64795E;}

.result-status.grade-common,
.result-status.quality-common{color:#48643E;background:#EDF2E7;border-color:#AABB9F;}

.stage.quality-common{border-bottom:3px solid #64795E;}

.order.guest-quality-common{background:#EDF2E7;border-color:#AABB9F;box-shadow:inset 3px 0 0 #64795E;}

.order.guest-quality-common .guest-rank,
.order.guest-quality-common .person,
.order.guest-quality-common .guest-condition{color:#48643E;}

.order.guest-quality-common .guest-portrait{background:#E3E9D9;color:#48643E;border-color:#AABB9F;}

.journal-card.quality-fine,
.bowl-item.quality-fine,
.collection-shelf .grid .bowl-item[data-quality="fine"],
.pair-slot.quality-fine,
.choice-bowl.quality-fine,
.collect-card.quality-fine,
.quality-surface.quality-fine{color:#34577F;background:#EAF0F8;border-color:#89A3C4;}

.collection-shelf .grid .bowl-item[data-quality="fine"],
.bowl-item.quality-fine{border-top:4px solid #597BA8;}

.journal-card.quality-fine{border:1px solid #89A3C4;box-shadow:inset 0 3px 0 #597BA8;}

.journal-card.quality-fine .portrait-link,
.journal-card.quality-fine .portrait-link>canvas,
.journal-card.quality-fine .portrait-link>.undiscovered,
.quality-fine.quality-portrait,
canvas.quality-fine,
.quality-frame.quality-fine{background:#DCE7F3;}

.quality-frame.quality-fine{border:1px solid #89A3C4;}

.journal-card.quality-fine .recipe-title,
.journal-card.quality-fine .portrait-caption,
.journal-card.quality-fine .quality-title,
.bowl-item.quality-fine .item-meta h3,
.collection-shelf .grid .bowl-item[data-quality="fine"] .item-meta h3,
.quality-label.quality-fine{color:#34577F;}

.grade-chip.quality-fine,
.grade-switch .grade-chip.quality-fine{color:#34577F;background:#EAF0F8;border-color:#89A3C4;}

.grade-chip.quality-fine.selected,
.grade-chip.quality-fine.active,
.grade-switch .grade-chip.quality-fine[aria-pressed="true"]{color:#34577F;background:#DCE7F3;border-color:#597BA8;}

.result-status.grade-fine,
.result-status.quality-fine{color:#34577F;background:#EAF0F8;border-color:#89A3C4;}

.stage.quality-fine{border-bottom:3px solid #597BA8;}

.order.guest-quality-fine{background:#EAF0F8;border-color:#89A3C4;box-shadow:inset 3px 0 0 #597BA8;}

.order.guest-quality-fine .guest-rank,
.order.guest-quality-fine .person,
.order.guest-quality-fine .guest-condition{color:#34577F;}

.order.guest-quality-fine .guest-portrait{background:#DCE7F3;color:#34577F;border-color:#89A3C4;}

.journal-card.quality-rare,
.bowl-item.quality-rare,
.collection-shelf .grid .bowl-item[data-quality="rare"],
.pair-slot.quality-rare,
.choice-bowl.quality-rare,
.collect-card.quality-rare,
.quality-surface.quality-rare{color:#67477F;background:#F0E9F6;border-color:#A889BC;}

.collection-shelf .grid .bowl-item[data-quality="rare"],
.bowl-item.quality-rare{border-top:4px solid #8C6AA5;}

.journal-card.quality-rare{border:1px solid #A889BC;box-shadow:inset 0 3px 0 #8C6AA5;}

.journal-card.quality-rare .portrait-link,
.journal-card.quality-rare .portrait-link>canvas,
.journal-card.quality-rare .portrait-link>.undiscovered,
.quality-rare.quality-portrait,
canvas.quality-rare,
.quality-frame.quality-rare{background:#E8DFF0;}

.quality-frame.quality-rare{border:1px solid #A889BC;}

.journal-card.quality-rare .recipe-title,
.journal-card.quality-rare .portrait-caption,
.journal-card.quality-rare .quality-title,
.bowl-item.quality-rare .item-meta h3,
.collection-shelf .grid .bowl-item[data-quality="rare"] .item-meta h3,
.quality-label.quality-rare{color:#67477F;}

.grade-chip.quality-rare,
.grade-switch .grade-chip.quality-rare{color:#67477F;background:#F0E9F6;border-color:#A889BC;}

.grade-chip.quality-rare.selected,
.grade-chip.quality-rare.active,
.grade-switch .grade-chip.quality-rare[aria-pressed="true"]{color:#67477F;background:#E8DFF0;border-color:#8C6AA5;}

.result-status.grade-rare,
.result-status.quality-rare{color:#67477F;background:#F0E9F6;border-color:#A889BC;}

.stage.quality-rare{border-bottom:3px solid #8C6AA5;}

.order.guest-quality-rare{background:#F0E9F6;border-color:#A889BC;box-shadow:inset 3px 0 0 #8C6AA5;}

.order.guest-quality-rare .guest-rank,
.order.guest-quality-rare .person,
.order.guest-quality-rare .guest-condition{color:#67477F;}

.order.guest-quality-rare .guest-portrait{background:#E8DFF0;color:#67477F;border-color:#A889BC;}

.journal-card.quality-legendary,
.bowl-item.quality-legendary,
.collection-shelf .grid .bowl-item[data-quality="legendary"],
.pair-slot.quality-legendary,
.choice-bowl.quality-legendary,
.collect-card.quality-legendary,
.quality-surface.quality-legendary{color:#82532E;background:#F7EAD6;border-color:#BF9C72;}

.collection-shelf .grid .bowl-item[data-quality="legendary"],
.bowl-item.quality-legendary{border-top:4px solid #AC7446;}

.journal-card.quality-legendary{border:1px solid #BF9C72;box-shadow:inset 0 3px 0 #AC7446;}

.journal-card.quality-legendary .portrait-link,
.journal-card.quality-legendary .portrait-link>canvas,
.journal-card.quality-legendary .portrait-link>.undiscovered,
.quality-legendary.quality-portrait,
canvas.quality-legendary,
.quality-frame.quality-legendary{background:#F0E1C8;}

.quality-frame.quality-legendary{border:1px solid #BF9C72;}

.journal-card.quality-legendary .recipe-title,
.journal-card.quality-legendary .portrait-caption,
.journal-card.quality-legendary .quality-title,
.bowl-item.quality-legendary .item-meta h3,
.collection-shelf .grid .bowl-item[data-quality="legendary"] .item-meta h3,
.quality-label.quality-legendary{color:#82532E;}

.grade-chip.quality-legendary,
.grade-switch .grade-chip.quality-legendary{color:#82532E;background:#F7EAD6;border-color:#BF9C72;}

.grade-chip.quality-legendary.selected,
.grade-chip.quality-legendary.active,
.grade-switch .grade-chip.quality-legendary[aria-pressed="true"]{color:#82532E;background:#F0E1C8;border-color:#AC7446;}

.result-status.grade-legendary,
.result-status.quality-legendary{color:#82532E;background:#F7EAD6;border-color:#BF9C72;}

.stage.quality-legendary{border-bottom:3px solid #AC7446;}

.order.guest-quality-legendary{background:#F7EAD6;border-color:#BF9C72;box-shadow:inset 3px 0 0 #AC7446;}

.order.guest-quality-legendary .guest-rank,
.order.guest-quality-legendary .person,
.order.guest-quality-legendary .guest-condition{color:#82532E;}

.order.guest-quality-legendary .guest-portrait{background:#F0E1C8;color:#82532E;border-color:#BF9C72;}

.journal-card.quality-neutral,
.bowl-item.quality-neutral,
.collection-shelf .grid .bowl-item[data-quality="neutral"],
.pair-slot.quality-neutral,
.choice-bowl.quality-neutral,
.collect-card.quality-neutral,
.quality-surface.quality-neutral{color:#5A564D;background:#F2EEE4;border-color:#E9E5DC;}

.collection-shelf .grid .bowl-item[data-quality="neutral"],
.bowl-item.quality-neutral{border-top:4px solid #5A564D;}

.journal-card.quality-neutral{border:1px solid #E9E5DC;box-shadow:inset 0 3px 0 #5A564D;}

.journal-card.quality-neutral .portrait-link,
.journal-card.quality-neutral .portrait-link>canvas,
.journal-card.quality-neutral .portrait-link>.undiscovered,
.quality-neutral.quality-portrait,
canvas.quality-neutral,
.quality-frame.quality-neutral{background:#E9E5DC;}

.quality-frame.quality-neutral{border:1px solid #E9E5DC;}

.journal-card.quality-neutral .recipe-title,
.journal-card.quality-neutral .portrait-caption,
.journal-card.quality-neutral .quality-title,
.bowl-item.quality-neutral .item-meta h3,
.collection-shelf .grid .bowl-item[data-quality="neutral"] .item-meta h3,
.quality-label.quality-neutral{color:#5A564D;}

.grade-chip.quality-neutral,
.grade-switch .grade-chip.quality-neutral{color:#5A564D;background:#F2EEE4;border-color:#E9E5DC;}

.grade-chip.quality-neutral.selected,
.grade-chip.quality-neutral.active,
.grade-switch .grade-chip.quality-neutral[aria-pressed="true"]{color:#5A564D;background:#E9E5DC;border-color:#5A564D;}

.result-status.grade-neutral,
.result-status.quality-neutral{color:#5A564D;background:#F2EEE4;border-color:#E9E5DC;}

.stage.quality-neutral{border-bottom:3px solid #5A564D;}

.result-status strong{color:inherit;border-color:currentColor;background:rgba(255,255,255,.24);}

.result-status .new-shape{color:inherit;}

.journal-card .undiscovered,
.journal-card .undiscovered svg{color:#5A564D;}

.order.pair-guest{background:#F2EEE4;border-color:#E9E5DC;box-shadow:inset 3px 0 0 #5A564D;}

.order.pair-guest .guest-portrait{background:#E9E5DC;color:#5A564D;border-color:#E9E5DC;}

.order.pair-guest .guest-rank,
.order.pair-guest .person,
.order.pair-guest .guest-condition{color:#5A564D;}

.order.special-guest{background:#F7EAD6;border-color:#BF9C72;box-shadow:inset 4px 0 0 #AC7446;}

.order.special-guest .guest-rank,
.order.special-guest .person{color:#82532E;}

.order.special-guest .guest-portrait{background:#F0E1C8;border-color:#BF9C72;color:#82532E;}

.quality-risk{color:#8F433A;background:#F7EBE4;border-color:#8F433A;}

.result-status.reveal-accent{animation:quality-badge-enter .65s ease-out both;}

.result-status.grade-rare.reveal-accent,
.result-status.grade-legendary.reveal-accent{animation-duration:1.1s;}

@keyframes quality-badge-enter{0%{box-shadow:inset 0 0 0 2px currentColor}100%{box-shadow:inset 0 0 0 0 transparent}}

.stage.reveal-rare:after{content:"";position:absolute;pointer-events:none;top:5px;right:5px;bottom:5px;left:5px;border:2px solid #8C6AA5;border-radius:4px;background:transparent;animation:quality-edge-enter 1.1s ease-out both;}

.stage.reveal-legendary:after{content:"";position:absolute;pointer-events:none;top:5px;right:5px;bottom:5px;left:5px;border:2px solid #AC7446;border-radius:4px;background:transparent;animation:quality-edge-enter 1.1s ease-out both;}

@keyframes quality-edge-enter{0%{opacity:0}22%{opacity:.9}100%{opacity:0}}

.reduced .result-status.reveal-accent,
.reduced .stage.reveal-rare:after,
.reduced .stage.reveal-legendary:after{animation:none;}

.reduced .stage.reveal-rare:after,
.reduced .stage.reveal-legendary:after{content:none;}

@media(prefers-reduced-motion:reduce){.result-status.reveal-accent,.stage.reveal-rare:after,.stage.reveal-legendary:after{animation:none}.stage.reveal-rare:after,.stage.reveal-legendary:after{content:none}}

.object-note{margin:22px 0 8px;padding:20px 0;border-top:1px solid #cec4b0;color:#443b30;text-align:left;overflow-wrap:anywhere}
.object-note h3{font-size:1rem;margin:.7em 0 .35em}.object-note p{font-size:.96rem;line-height:1.8;margin:.6em 0}.object-note .observation{font-size:1.04rem;line-height:1.85}.object-note details{border-top:1px solid #ded5c5;margin-top:10px;padding-top:10px}.object-note summary{cursor:pointer;font-weight:600;padding:6px 0}.object-note .culture-source small{display:block;color:#746754;font-size:.8rem}.object-note a{color:#455f50;text-underline-offset:3px}.observation-presets,.presentation-switch{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.presentation-switch button{flex:1;min-width:100px}.presentation-switch .active{border-color:#576b54;background:#e0e5d9}.catalog-grid{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px;margin-top:20px}.catalog-card{display:flex;flex-direction:column;align-items:center;border:1px solid var(--quality-border,#b5b1a2);border-radius:14px;padding:8px 8px 16px;gap:6px;background:var(--quality-bg,#f1eadb);color:#40382d;max-width:100%;overflow:hidden}.catalog-card canvas{width:100%;height:210px}.catalog-card span,.catalog-card small{font-size:.84rem}.catalog-card small{color:#726451}.catalog-card strong{font-size:1.05rem}.catalog-sheet .hint{line-height:1.7}.supply-preview{margin-top:8px}.object-note button{white-space:normal;line-height:1.4;min-height:40px}.catalog-sheet h2{margin-top:6px}
@media(min-width:640px){.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-card canvas{height:155px}}
@media(max-width:350px){.object-note{padding-top:14px}.presentation-switch button{font-size:.87rem;padding:10px 7px}.catalog-card canvas{height:190px}}
.appreciation-sheet>.close{position:sticky;top:0;float:right;z-index:4;margin-top:-4px;background:#f3eddf}.source-address{user-select:text;overflow-wrap:anywhere}
.supply-toolbar{flex-wrap:wrap;align-items:center}.supply-toolbar .new-supply{flex:0 1 auto;max-width:100%;white-space:normal;overflow-wrap:break-word}.supply-toolbar .text-btn{min-width:0;white-space:normal}

body.modal-open{overflow:hidden}
.sheet{position:relative}
.modal-toolbar{position:sticky;top:-24px;z-index:4;display:flex;align-items:center;justify-content:space-between;min-height:48px;margin:-12px -4px 16px;padding:6px 0;background:#f7f2e8;border-bottom:1px solid #ded5c4}
.modal-toolbar .close{position:static;margin:0;flex:0 0 40px}
.modal-toolbar .modal-back{min-height:40px;padding:8px 14px;background:transparent;color:#365349;border:1px solid #cfc4ae;border-radius:12px}
.modal-return-notice{padding:12px;border:1px solid #bbaa8c;border-radius:10px;color:#694e31;background:#f2ead9}
.catalog-card{cursor:default}
.catalog-card:hover{transform:none;box-shadow:none}
.pair-search-label{display:block;margin:16px 0 8px;color:#365349;font-size:13px}
.pair-search-label input{display:block;width:100%;min-height:44px;margin-top:6px;padding:10px 12px;border:1px solid #c9c1b0;border-radius:10px;background:#fffdf8;color:#203c34}
.pair-first{border-style:solid;box-shadow:inset 0 0 0 1px #557565}
.pair-picker h3{font-size:16px;line-height:1.65}
.pair-picker .choice-bowl{min-width:0}
.pair-picker .choice-bowl canvas{flex:0 0 90px;max-width:90px}
.pair-selecting .modal-toolbar{margin-bottom:10px}
.pair-selecting h2{margin-top:6px;margin-bottom:8px;font-size:1.4rem}
.pair-selecting>.hint{margin-top:6px;margin-bottom:8px}
.pair-selecting .pair-box{padding:10px 8px;margin:12px 0}
.pair-selecting .pair-slot{min-height:150px}
.pair-selecting .pair-slot>canvas{height:76px}
.pair-selecting .pair-slot>span{margin-top:14px}
.pair-selecting .pair-slot svg{width:34px;height:34px}
.pair-selecting .pair-slot .hint{font-size:.7rem;line-height:1.5}
.pair-selecting .pair-search-label{margin-top:10px}
.pair-selecting .pair-candidates{margin-top:12px}
.culture-role{display:inline-block;margin:3px 4px 3px 0;padding:3px 8px;border:1px solid #d5c9b2;border-radius:8px;font-size:11px;color:#5b5544;background:#f3eddf}
.culture-section h4{margin:14px 0 4px;font-size:14px;color:#3c5748}
@media(max-width:380px){.pair-slot+.pair-slot{margin-left:8px}.pair-slot{padding:10px 7px}.pair-slot strong{font-size:14px}.pair-picker .choice-bowl canvas{flex-basis:72px;max-width:72px}.modal-toolbar{top:-18px}}

/* v0.9 journal only. Existing grade tokens and cream detail surfaces remain authoritative. */
.journal-v9 .journal-grid-v9{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:start;grid-gap:12px;gap:12px}
.journal-v9 .journal-section-heading{grid-column:1/-1;margin:10px 0 0;font-size:1.1rem;line-height:1.5;color:#455c50}
.journal-v9 .journal-card-v9{height:auto;min-height:0;align-self:start}
.journal-v9 .journal-card-v9 .portrait-link{height:154px;min-height:154px}
.journal-v9 .journal-card-v9 .portrait-link>canvas,.journal-v9 .journal-card-v9 .portrait-link>.undiscovered{height:100%;min-height:0}
.journal-v9 .journal-card-v9 .item-meta{padding:8px 10px 10px;min-height:0;flex:none}
.journal-v9 .journal-card-v9 .recipe-title{padding:0;min-height:44px;height:auto;background:transparent}
.journal-v9 .journal-card-v9 .recipe-title h3{margin:0;font-size:1rem;line-height:1.45;min-height:0;word-wrap:break-word;overflow-wrap:anywhere;word-break:normal}
.journal-card-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:5px 0 0}
.journal-card-meta>*{margin-right:4px;margin-bottom:4px}
.journal-grade-badge{display:inline-block;padding:2px 7px;border:1px solid currentColor;border-radius:4px;font-size:.82rem;line-height:1.5;font-weight:600;white-space:normal}
.journal-count{font-size:.9rem;line-height:1.5;font-weight:600;font-variant-numeric:tabular-nums}
.journal-v9 .journal-school{display:block;font-size:.78rem;line-height:1.5;color:#5b6b60;word-wrap:break-word;overflow-wrap:anywhere}
.journal-v9 .journal-filters-v9{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}
.journal-v9 .journal-filters-v9 label{min-width:0;font-size:.88rem;line-height:1.5}
.journal-v9 .journal-filters-v9 select,.journal-v9 .journal-filters-v9 input{font:inherit;min-width:0;max-width:100%;min-height:44px;box-sizing:border-box}
.journal-v9 .journal-search{grid-column:1/-1}
.journal-v9 .journal-empty{padding:14px 0}
.journal-detail-v9 .journal-detail-meta{display:flex;align-items:center;flex-wrap:wrap;margin:12px 0 2px}
.journal-detail-v9 .journal-detail-meta>*{margin-right:10px;margin-bottom:10px}
.journal-detail-v9 .journal-detail-meta>span,.journal-detail-v9 .journal-detail-meta>strong{font-size:1rem;line-height:1.6}
.journal-detail-v9 h2{word-wrap:break-word;overflow-wrap:anywhere}
.journal-detail-v9 .detail-art{width:100%;height:260px}
.journal-detail-v9 .object-note{margin:22px 0}
/* Tracks follow this container, including a narrow game shell on a wide window.
   auto-fit/minmax is the baseline; no modern container-query dependency. */
.journal-v9 .journal-card-v9 .portrait-link>canvas{display:block;width:100%;max-width:100%;box-sizing:border-box}
.journal-v9 .journal-filters-v9{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}
@media(max-width:340px){.journal-v9 .journal-card-v9 .portrait-link{height:180px;min-height:180px}}

/* RC02 compact collection cards. Count records and cream detail scope unchanged. */
.journal-more-filters{margin:0 0 12px;border-bottom:1px solid #d6ceba}
.journal-more-filters>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:#4e6355;font-size:.88rem}
.journal-more-filters .journal-more-open{display:none}
.journal-more-filters[open] .journal-more-open{display:inline}
.journal-more-filters[open] .journal-more-closed{display:none}
.journal-hidden-status{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:5px 0;color:#747767;font-size:.8rem;overflow-wrap:anywhere}
.journal-hidden-status .text-btn{min-height:44px;margin:0;padding:3px 0;font-size:inherit}
.journal-more-filters>summary:focus-visible{outline:2px solid #426e60;outline-offset:2px}
.journal-v9 .journal-grid-v9{gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.journal-v9 .journal-card-v9{border-radius:7px;overflow:hidden}
.journal-v9 .journal-card-v9 .portrait-link{height:160px;min-height:160px;padding:0}
.journal-v9 .journal-card-v9 .item-meta{padding:6px 9px 7px}
.journal-v9 .journal-card-v9 .recipe-title{min-height:0;min-width:0;width:100%;text-align:left;display:block}
.journal-v9 .journal-card-v9 .recipe-title h3{font-size:16px;line-height:22px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.journal-v9 .journal-card-subtitle{font-size:11px;line-height:16px;margin-top:1px;color:#6c7265;white-space:normal}
.journal-v9 .journal-card-subtitle .journal-school{display:inline;font-size:inherit;line-height:inherit;color:inherit}
.journal-v9 .journal-card-v9 .journal-card-meta{margin:2px 0 0;min-height:21px;align-items:center}
.journal-v9 .journal-card-v9 .journal-card-meta>*{margin:0}
.journal-v9 .journal-card-v9 .journal-grade-badge{padding:1px 6px;font-size:11px;line-height:16px;border-radius:3px}
@media(max-width:340px){.journal-v9 .journal-card-v9 .portrait-link{height:180px;min-height:180px}.journal-v9 .journal-card-v9 .item-meta{padding:10px 9px 11px}}

/* Input modality fallback also works in engines without :focus-visible. */
html[data-input-modality="pointer"] button:focus,
html[data-input-modality="pointer"] input:focus,
html[data-input-modality="pointer"] select:focus,
html[data-input-modality="pointer"] canvas:focus { outline:none; }
html[data-input-modality="keyboard"] button:focus,
html[data-input-modality="keyboard"] input:focus,
html[data-input-modality="keyboard"] select:focus,
html[data-input-modality="keyboard"] canvas:focus { outline:2px solid #566a62; outline-offset:3px; }
.shelf-selection { display:flex; flex-wrap:wrap; align-items:center; margin:0 0 16px; font-size:12px; color:var(--green); }
.shelf-selection>* { margin-right:8px; margin-bottom:8px; }
.shelf-selection>span { flex-basis:100%; }
.shelf-selection .filter-chip { background:#e8e5da; border:1px solid #adb4a3; border-radius:4px; padding:7px 10px; min-height:36px; max-width:100%; overflow-wrap:break-word; text-align:left; font-size:11px; }
.collection-shelf .filter-panel select { width:100%; min-width:0; text-overflow:ellipsis; }

.yard-object[data-tier="selected"] .tier-label,.yard-object[data-tier="premium"] .tier-label{color:#305c88;background:#e5edf5;border:1px solid #a6bfd5}
.yard-object[data-tier="artisan"] .tier-label{color:#695187;background:#eee8f4;border:1px solid #bcabd0}
.yard-object[data-tier="treasure"] .tier-label{color:#8b5225;background:#f8ead8;border:1px solid #d8b487}
.yard-object[data-tier="standard"] .tier-label{color:#4d6b4b;background:#e8eee2;border:1px solid #b3c2a5}
.yard-object.supply-blocked{opacity:.58}.tier-summary b{font-weight:600;letter-spacing:.06em}.tier-summary .hint{line-height:1.75}
.music-settings{border-top:1px solid #d9cfbe;margin-top:20px;padding:16px 0}.music-settings h3{font-size:18px}.music-settings label{display:block;margin:15px 0;color:#574b3e}.music-settings select{display:block;width:100%;margin-top:8px;padding:10px;border:1px solid #c5b69d;border-radius:8px;background:#faf5e9;color:#473e32;font:inherit}
.music-volume span{float:right;font-variant-numeric:tabular-nums}.music-volume input{display:block;width:100%;margin-top:13px;accent-color:#6d7359}.music-audition{display:flex;align-items:center}.music-audition>*+*{margin-left:10px}.music-audition .secondary{flex:1}

.reveal-skip-v110{position:absolute;right:12px;top:12px;z-index:3;background:rgba(247,240,223,.85);border:1px solid #b9a67f;border-radius:5px;padding:7px 12px;font-size:.8rem;min-height:36px}.reveal-toggle-v110{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.reveal-toggle-v110 input{width:22px;height:22px;margin-left:12px}

/* UX03: original header typography; UX02 claim overlay and shelves retained. */
.shell.yard-page .header{margin-bottom:8px;padding-bottom:0}
.shell.yard-page main{padding-left:14px;padding-right:14px}
.yard-ux01 .yard-intro{display:block;padding:0 0 8px}
.yard-ux01 .yard-heading-meta{display:flex;align-items:center;justify-content:space-between;min-width:0}
.yard-ux01 .yard-heading-meta .eyebrow{margin:0}
.yard-ux01 .yard-intro h1{margin:0}
.yard-ux01 .yard-intro .hint{margin-top:3px}
.yard-ux01 .yard-intro .text-btn{font-size:.78rem;min-height:36px;padding:4px 0 4px 6px;white-space:nowrap}
.yard-ux01 .day-stripe{padding:5px 0;flex-wrap:wrap}
.yard-ux01 .supply-region{margin:4px 0 0}
.yard-ux01 .supply-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);min-height:44px;align-items:center}
.yard-ux01 .supply-toolbar>*{min-width:0}.yard-ux01 .supply-toolbar>.text-btn{min-height:44px;padding:4px 8px;white-space:normal;margin:0;justify-self:center}
.yard-ux01 .new-supply{min-height:44px;padding:4px 9px;white-space:normal;background:rgba(246,240,227,.35);border:1px solid #c6b79f;border-radius:4px;width:auto;justify-self:end}
.yard-ux01 .kiln-chooser{position:relative;z-index:21;justify-self:start;max-width:100%}.kiln-chooser summary{padding:8px 4px;min-height:44px;cursor:pointer;list-style:none;overflow-wrap:break-word}
.yard-ux01 .supply-tabs{position:absolute;top:100%;left:0;z-index:21;background:#f4eee1;border:1px solid #b9a88b;border-radius:5px;box-shadow:0 5px 12px #473e3226;display:flex;flex-wrap:wrap;width:275px;max-width:80vw;max-height:240px;overflow:auto;margin:0;padding:6px}
.yard-ux01 .supply-tabs>.school-chip{margin:3px;flex:0 0 7em}
.yard-ux01 .tier-summary{padding:0}.yard-ux01 .tier-summary .hint{margin:0}
.yard-ux01 .kiln-shelves{margin:5px -3px 0;padding:12px 4px 7px;border-radius:38px 38px 4px 4px}
.yard-ux01 .kiln-wall-mark{top:2px;font-size:.65rem}.yard-ux01 .kiln-row{grid-gap:3px;padding:0 0 7px}
.yard-ux01 .yard-object{border-radius:10px 10px 3px 3px;padding:0;min-width:0;cursor:pointer}
.yard-ux01 .saggar-picture{position:relative}
.yard-ux01 .saggar-pick{display:block;width:100%;min-height:44px;background:transparent;padding:0;border:0;border-radius:10px}
.yard-ux01 .saggar-pick canvas{display:block;width:100%;height:auto;aspect-ratio:auto;filter:none}
.yard-ux01 .saggar-metadata{position:relative;text-align:center}
.yard-ux01 .metadata-covered>.slot-caption,.yard-ux01 .metadata-covered>.slot-price{visibility:hidden}
.yard-ux01 .yard-claim,.yard-ux01 .claim-unavailable{position:absolute;top:0;bottom:0;left:1px;right:1px;width:calc(100% - 2px);min-height:0;height:auto;margin:0;padding:0 2px;background:rgba(245,235,215,.92);color:#63513d;border:1px solid #b8a386;border-radius:4px;font:inherit;font-size:.8rem;line-height:1.6;box-shadow:none;z-index:3;display:flex;flex-direction:column;justify-content:center;text-align:center}
.yard-ux01 .yard-claim span,.yard-ux01 .claim-unavailable span{display:block}.yard-ux01 .yard-claim small,.yard-ux01 .claim-unavailable small{font:inherit;font-size:.75rem}
.yard-ux01 .yard-claim:disabled{background:rgba(237,229,213,.94);color:#75654f;opacity:1}
.yard-ux01 .slot-caption{min-height:0;font-size:.8rem;line-height:1.8;padding:2px 0 0}.yard-ux01 .slot-caption b{font-size:.85rem;margin-right:2px}
.yard-ux01 .slot-price{padding:1px 0 2px;font-size:.8rem;line-height:1.8}.yard-ux01 .slot-price .tier-label{font-size:.72rem;padding:0 2px}
.yard-ux01 .shelf-beam{left:0;right:0;bottom:0;width:auto;height:7px;transform:none;box-shadow:inset 0 1px 0 #dac8a8,inset 0 -2px 3px #75604555;background:linear-gradient(#b7a180,#887358);border-radius:1px}
.yard-ux01 .yard-selection{padding:5px 0;min-height:48px}.yard-ux01 .selection-invitation{margin:0;padding:3px;font:inherit;font-size:.86rem;line-height:1.6}
.yard-ux01 .yard-links{padding-top:8px}.yard-ux01 .yard-links .secondary{min-width:0}
.settings-status-ux01{position:static;overflow-wrap:break-word;word-break:break-word;margin:4px 0 16px!important}
.kaiyao-host-controls .shell{padding-top:var(--kaiyao-content-top,96px)}
.kaiyao-host-controls .overlay{padding-top:var(--kaiyao-content-top,96px)}
.kaiyao-host-controls .sheet{max-height:calc(100vh - var(--kaiyao-content-top,96px));max-height:calc(100dvh - var(--kaiyao-content-top,96px))}
@media(max-width:360px){.shell.yard-page .header{margin-left:12px;margin-right:12px}.shell.yard-page main{padding-left:10px;padding-right:10px}.yard-ux01 .kiln-row{grid-gap:2px}}

/* Workbench only: retain typography, touch targets, and the surrounding pages. */
main[data-page="workbench"] #desk-intro{padding-bottom:0}
main[data-page="workbench"] #desk-intro h1{margin-bottom:0}
main[data-page="workbench"]>.stage{margin-top:4px}
main[data-page="workbench"] #steps{padding-top:6px;padding-bottom:6px}
main[data-page="workbench"] #desk-actions{padding-top:6px}
main[data-page="workbench"] #desk-actions .light-control{margin-top:4px}
main[data-page="workbench"] #desk-actions .row{margin-top:4px}
main[data-page="workbench"] #desk-actions .row>.primary,
main[data-page="workbench"] #desk-actions .row>.secondary{margin-top:0}
main[data-page="workbench"] #desk-actions>.primary{margin-top:8px}
main[data-page="workbench"] #desk-actions .result-status{padding-top:6px;padding-bottom:6px}
main[data-page="workbench"] #desk-actions>.hint{margin-top:4px}
/* Measured spacing-only deficit: 43px at 390x844 before bottom inset.
   Keep the same pixels per logical unit; reclaim only 88 empty units at top.
   Tapping and lid controls keep their original full coordinate space. */
main[data-page="workbench"][data-phase="INSPECTING"][data-stage-motion="rest"]>.stage:before,
main[data-page="workbench"][data-phase="REVEALED"]>.stage:before{padding-top:68%}
