#brushCursor{display:none;position:fixed;z-index:30;width:28px;height:60px;pointer-events:none;filter:drop-shadow(0 2px 2px #4b291855);transform:rotate(32deg);transform-origin:50% 0}#brushCursor:before{content:"";position:absolute;left:8px;bottom:0;width:12px;height:40px;border-radius:4px 4px 8px 8px;background:linear-gradient(90deg,#7c3e1e,#d98a42 45%,#633019)}#brushCursor:after{content:"";position:absolute;left:4px;top:0;width:20px;height:25px;border-radius:60% 60% 45% 45%;background:linear-gradient(90deg,#e9d5a7,#fff3cd 55%,#b98547);clip-path:polygon(0 0,100% 0,80% 100%,20% 100%)}#brushCursor.visible{display:block}.mobile-toolbar{display:none}.studio-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:6px 0}.studio-tab{border:1px solid #dfccaa;background:#fffdf7;border-radius:9px;padding:6px;font:600 11px "Microsoft YaHei";color:#725842}.studio-tab.active{background:#fff0d8;border-color:#e9984d;color:#b56123}.tab-panel{display:none}.tab-panel.active{display:block}#mobileBrushButton,#mobileStampButton,#closeAdvancedButton{display:none}
@media(max-width:1300px){
  html,body{height:100%;overflow:hidden}body{background:#f6ebd9}.app-shell{width:100%;height:100dvh;min-height:100dvh;padding:6px 7px 258px;box-shadow:none;display:flex;flex-direction:column;overflow:hidden}
  .topbar{flex:0 0 32px;margin:0 2px}.portrait{width:28px;height:28px;font-size:17px;border-radius:9px}.customer{gap:5px}.customer strong{font-size:11px}.customer small,.day{font-size:8px}.day{line-height:1.15}
  .brief-card{flex:0 0 62px;padding:4px 7px;border-radius:12px;overflow:hidden}.quote{font-size:9px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.brief-color-goal{margin-top:3px;padding:3px 5px;gap:4px;border-radius:7px;font-size:8px}.brief-color-goal i{width:13px;height:13px}.brief-color-goal b{font-size:9px}.brief-color-goal small,.brief-color-goal em{font-size:7px}.requirements{flex-wrap:nowrap;margin-top:3px;gap:2px;overflow:hidden}.req{font-size:7px;line-height:1;white-space:nowrap;padding:2px 3px}
  /* 创作区第一优先：画布按高度放大，左右多余留白由容器裁掉。 */
  .studio{flex:1 1 auto;min-height:0;margin:4px 0 0;display:flex;flex-direction:column}.canvas-frame{flex:1 1 auto;min-height:0;border-radius:15px;display:flex;align-items:center;justify-content:center}.canvas-frame canvas{width:auto;height:100%;max-width:none;max-height:none;touch-action:none}.selection-tip{top:5px;font-size:9px;padding:3px 7px}.art-caption{padding:2px 5px 0;font-size:9px;flex:0 0 17px}
  /* 单层颜料条：选择颜料、混色、上色全在同一视图完成。 */
  .mobile-toolbar{display:none}.palette-panel{position:fixed;z-index:5;left:0;right:0;bottom:54px;height:204px;margin:0;border-width:1px 0 0;border-radius:18px 18px 0 0;padding:7px 9px;overflow:hidden;box-shadow:0 -5px 16px #60431a18}.palette-panel:before{display:none}.panel-heading{display:none}.studio-tabs,.toolsPanel{display:none}.tab-panel{display:none}.tab-panel.active,#colorPanel{display:block}.palette-panel #toolsPanel{display:none!important}
  /* 颜料始终单行横向滚动；解锁新颜色不会侵占调色盘或底部按钮高度。 */
  .pigments{display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;gap:5px;margin:0 0 5px;padding-bottom:1px;scrollbar-width:none}.pigments::-webkit-scrollbar{display:none}.pigments button{flex:0 0 calc((100% - 15px)/4);scroll-snap-align:start;padding:3px 1px;font-size:8px;border-radius:9px}.pigments button:before{width:14px;height:14px;margin-bottom:1px}.mix-board-wrap{height:128px;border-radius:10px}.mix-board-wrap canvas{height:128px;width:100%}.active-pigment{font-size:8px;top:3px;right:4px;padding:2px 5px}.target-color-card{left:4px;top:3px;gap:3px;padding:2px 5px;font-size:8px}.target-color-card i{width:10px;height:10px}.target-color-card b{font-size:8px}.target-color-card small{font-size:7px}.mix-actions{grid-template-columns:repeat(4,1fr);gap:4px;margin-top:5px}.mix-actions .tool,.mix-actions .primary{padding:5px 2px;font-size:9px;border-radius:8px}.mix-actions #pickColorButton{display:none}#mobileBrushButton,#mobileStampButton{display:block}.recipe-hint,.recipe,.recipe-save,.saved-colors{display:none}
  .actionbar{position:fixed;z-index:6;left:0;right:0;bottom:0;transform:none;width:100%;height:54px;margin:0;padding:8px 10px;background:#fff8e9;border-top:1px solid #e0c99f}.actionbar #status{font-size:10px}.actionbar #deliverButton{padding:9px 11px;font-size:12px}
  .modal{z-index:20;align-items:start;overflow-y:auto;padding:12px}.result-card{width:min(390px,100%);max-height:calc(100dvh - 24px);overflow-y:auto;padding:16px;border-radius:24px}.result-fox{font-size:48px}.result-card h1{font-size:22px}.result-card p{font-size:13px;margin:8px 0}.star-result{font-size:20px}.result-card #resultCanvas{max-height:190px;width:auto;max-width:100%;margin:8px auto}.town-result{font-size:11px;padding:7px 8px;margin-bottom:8px}.result-card #againButton{margin-top:2px}
}
#brushCursor{transform:scaleX(-1) rotate(30deg)}
.tutorial-tip{position:absolute;z-index:3;left:50%;bottom:8px;transform:translateX(-50%);max-width:84%;padding:5px 9px;border-radius:99px;background:#fff9e9e8;color:#8b562c;font-size:9px;line-height:1.2;text-align:center;box-shadow:0 2px 7px #6a431522}.tutorial-tip:empty{display:none}.paint-feedback{position:absolute;z-index:4;left:50%;top:44%;transform:translate(-50%,-50%) scale(.9);padding:7px 12px;border-radius:99px;background:#6d4028df;color:white;font-weight:700;font-size:12px;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.paint-feedback.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
@media(max-width:1300px){
  .mix-actions{grid-template-columns:repeat(4,1fr)}
  .palette-panel.advanced{height:min(330px,48dvh);padding:9px;overflow:auto}
  .palette-panel.advanced .panel-heading{display:flex;gap:6px}.palette-panel.advanced .panel-heading #mixHint{flex:1}.palette-panel.advanced #closeAdvancedButton{display:block;padding:4px 7px;font-size:9px}.palette-panel.advanced .studio-tabs{display:none}
  .palette-panel.advanced #colorPanel{display:none!important}.palette-panel.advanced #toolsPanel.active{display:block!important}
  .palette-panel.advanced .tool-row:not(.utility-row){display:none}.palette-panel.advanced.brush-mode .pattern-options,.palette-panel.advanced.brush-mode .adjustments label:nth-of-type(2),.palette-panel.advanced.brush-mode .stamp-colors{display:none}.palette-panel.advanced.stamp-mode .adjustments label:first-of-type{display:none}
}
.top-actions{display:flex;gap:4px;margin-left:auto}.top-actions button{border:1px solid #dfc69e;border-radius:8px;background:#fff8e9;color:#8b5b33;font:700 10px "Microsoft YaHei";padding:4px 6px}.result-actions{display:flex;gap:8px;align-items:center;justify-content:center}.result-actions .tool,.result-actions .primary{margin:0}.journal-card{position:relative;width:min(520px,94vw);max-height:85vh;overflow:auto;border:2px solid #dfbd80;border-radius:24px;background:#fff8e9;padding:24px 20px 20px;box-shadow:0 12px 35px #321b1688;text-align:center}.journal-card h2{margin:0;color:#68432a;font-size:24px}.journal-card p{margin:6px 0 14px;color:#906d4d;font-size:13px}.modal-close{position:absolute;right:12px;top:8px;border:0;background:transparent;color:#8a6040;font-size:28px;line-height:1}.map-levels{display:grid;gap:9px;text-align:left}.map-level{display:grid;grid-template-columns:46px 1fr auto;gap:10px;align-items:center;border:1px solid #e3ca9d;border-radius:14px;padding:9px;background:#fffdf7}.map-level.locked{opacity:.55}.map-level .level-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#fff0ce;font-size:24px}.map-level strong{display:block;color:#69442c;font-size:14px}.map-level small{display:block;margin-top:2px;color:#957155;font-size:11px}.map-level button{border:0;border-radius:9px;background:#ef9845;color:#fff;padding:7px 9px;font:700 11px "Microsoft YaHei"}.map-level button:disabled{background:#cfc0a9}.device-check{width:100%;margin-top:12px;padding:8px}.journal-card>small{display:block;margin-top:6px;color:#7d624b;font-size:11px}.collection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;text-align:left}.art-card{overflow:hidden;border:1px solid #e3ca9d;border-radius:13px;background:#fffdf7}.art-card img{display:block;width:100%;aspect-ratio:1.36;object-fit:cover;background:#eee0c8}.art-card div{padding:7px}.art-card strong{display:block;color:#69442c;font-size:12px}.art-card small{display:block;color:#957155;font-size:10px;margin-top:2px}.collection-empty{grid-column:1/-1;border:1px dashed #d8bb8b;border-radius:12px;padding:26px 10px;color:#957155;font-size:12px;text-align:center}
@media(max-width:1300px){.top-actions button{padding:3px 4px;font-size:7px;border-radius:6px}.journal-card{width:min(390px,94vw);max-height:calc(100dvh - 28px);padding:20px 14px 14px;border-radius:20px}.journal-card h2{font-size:19px}.journal-card p{font-size:10px;margin:4px 0 9px}.map-level{grid-template-columns:34px 1fr auto;padding:6px;gap:6px;border-radius:10px}.map-level .level-icon{width:32px;height:32px;border-radius:9px;font-size:17px}.map-level strong{font-size:11px}.map-level small{font-size:8px}.map-level button{font-size:9px;padding:5px 7px}.collection-grid{gap:7px}.art-card div{padding:5px}.art-card strong{font-size:10px}.art-card small{font-size:8px}.device-check{font-size:9px;padding:6px}}
.journey-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.journey-actions .tool{padding:9px 4px}.shop-grid,.town-grid{display:grid;gap:9px;text-align:left}.shop-item{display:grid;grid-template-columns:42px 1fr auto;gap:8px;align-items:center;border:1px solid #e3ca9d;border-radius:13px;padding:8px;background:#fffdf7}.shop-item.owned{background:#edf6e9}.shop-item>b{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#fff0ce;font-size:21px}.shop-item strong,.town-card strong{display:block;color:#69442c;font-size:13px}.shop-item small,.town-card small{display:block;margin-top:2px;color:#957155;font-size:10px}.shop-item button{border:0;border-radius:8px;background:#ef9845;color:#fff;padding:6px 7px;font:700 10px "Microsoft YaHei"}.shop-item button:disabled{background:#cfc0a9}.town-card{display:grid;grid-template-columns:108px 1fr;gap:9px;align-items:center;overflow:hidden;border:1px solid #e3ca9d;border-radius:13px;background:#fffdf7}.town-card img{width:108px;height:80px;object-fit:cover}.town-card div{padding-right:8px}
@media(max-width:1300px){.journey-actions{gap:6px;margin-top:7px}.journey-actions .tool{padding:6px 3px;font-size:9px}.shop-item{grid-template-columns:32px 1fr auto;padding:6px;gap:6px}.shop-item>b{width:30px;height:30px;border-radius:8px;font-size:16px}.shop-item strong,.town-card strong{font-size:10px}.shop-item small,.town-card small{font-size:8px}.shop-item button{font-size:8px;padding:5px}.town-card{grid-template-columns:88px 1fr;gap:6px}.town-card img{width:88px;height:65px}.town-card div{padding-right:5px}}

/* 统一工作台：桌面与手机使用同一套“画布优先 + 底部弹层”结构。 */
html,body{height:100%;overflow:hidden}.app-shell{width:min(100%,720px);height:100dvh;min-height:100dvh;margin:auto;padding:7px 9px 116px;display:flex;flex-direction:column;overflow:hidden;box-shadow:none}.topbar{flex:0 0 38px;margin:0 2px}.portrait{width:31px;height:31px;border-radius:10px;font-size:19px}.customer{gap:6px}.customer strong{font-size:12px}.customer small,.day{font-size:9px}.day{line-height:1.2}.top-actions button{font-size:9px;padding:4px 6px}.brief-card{flex:0 0 auto;padding:6px 8px;border-radius:13px}.quote{display:none}.brief-color-goal{margin:0;padding:4px 6px;border-radius:8px}.brief-color-goal small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.requirements{margin-top:5px;gap:4px;flex-wrap:wrap}.req{font-size:10px;padding:3px 6px;white-space:nowrap}#coverageReq,.progress-only{display:none!important}.studio{flex:1 1 auto;min-height:0;margin:5px 0 0;display:flex;flex-direction:column}.canvas-frame{flex:1 1 auto;min-height:0;border-radius:16px;display:flex;align-items:center;justify-content:center}.canvas-frame canvas{width:auto;height:100%;max-width:100%;object-fit:contain}.selection-tip{top:6px;font-size:10px;padding:4px 8px}.art-caption{flex:0 0 20px;padding:3px 5px 0;font-size:10px}.tutorial-tip{font-size:10px;bottom:7px}.palette-panel{position:fixed;z-index:12;left:50%;bottom:112px;transform:translate(-50%,calc(100% + 132px));width:min(100%,720px);height:min(305px,42dvh);margin:0;padding:10px;border-width:1px 0 0;border-radius:20px 20px 0 0;overflow:auto;box-shadow:0 -7px 22px #3c251a22;transition:transform .22s ease}.palette-panel.is-open{transform:translateX(-50%)}.panel-heading{display:flex;font-size:16px}.panel-heading small{font-size:10px}.panel-heading #closeAdvancedButton{display:block;padding:5px 8px;font-size:10px}.studio-tabs{display:none}.palette-panel #colorPanel{display:block}.palette-panel #toolsPanel{display:none}.palette-panel.advanced #colorPanel{display:none}.palette-panel.advanced #toolsPanel{display:block}.pigments{margin:7px 0;gap:6px}.pigments button{padding:6px 2px 5px;font-size:10px}.pigments button:before{width:18px;height:18px;margin-bottom:2px}.mix-board-wrap{height:142px;border-radius:11px}.mix-board-wrap canvas{height:142px;width:100%}.mix-actions{grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}.mix-actions .tool,.mix-actions .primary{padding:7px 3px;font-size:10px}.mix-actions #pickColorButton,.mix-actions #mobileBrushButton,.mix-actions #mobileStampButton{display:none}.recipe-hint,.recipe-save,.saved-colors{display:none}.recipe{font-size:10px;margin-top:6px}.mobile-toolbar{position:fixed;z-index:14;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,720px);height:58px;padding:5px 6px;display:grid;grid-template-columns:repeat(4,1fr);gap:3px;background:#fffaf0;border-top:1px solid #e2cda8}.mobile-toolbar button{border:0;border-radius:10px;background:transparent;color:#80644d;font:600 10px "Microsoft YaHei";display:grid;place-items:center;gap:0;padding:3px}.mobile-toolbar button b{font-size:18px;line-height:18px}.mobile-toolbar button span{font-size:10px}.mobile-toolbar button.active{background:#fff0d4;color:#b46024}.actionbar{z-index:13;left:50%;bottom:58px;transform:translateX(-50%);width:min(100%,720px);height:54px;padding:7px 10px}.actionbar #status{font-size:11px}.actionbar #deliverButton{padding:9px 12px;font-size:12px}.palette-panel.advanced{height:min(330px,48dvh)}.palette-panel.advanced.brush-mode .pattern-options,.palette-panel.advanced.brush-mode .adjustments label:nth-of-type(3),.palette-panel.advanced.brush-mode .stamp-colors{display:none}.palette-panel.advanced.stamp-mode .adjustments label:nth-of-type(1),.palette-panel.advanced.stamp-mode .adjustments label:nth-of-type(2){display:none}@media(max-height:700px){.palette-panel{height:250px}.mix-board-wrap,.mix-board-wrap canvas{height:110px}.brief-color-goal{padding:3px 5px}.topbar{flex-basis:34px}}
