@font-face{font-family:MahjongTitle;src:url('/assets/fonts/PFanHuTuTi-0.680.ttf');font-display:swap}*{box-sizing:border-box}body{margin:0;background:#FBF6EA;color:#173F73;font-family:'Yuanti SC',STYuanti,'PingFang SC',sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible{outline:3px solid #B53E37;outline-offset:3px}[hidden]{display:none!important}#source{display:none}#opening{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#FBF6EA}#opening p{max-width:500px;text-align:center}.zl-editor[data-editor=mahjong]{--zl-accent:#F6DDD5;--zl-paper:#FBF6EA!important;--zl-blue:#173F73}.zl-editor[data-editor=mahjong] .zl-title{font-family:MahjongTitle,sans-serif!important}.zl-editor[data-editor=mahjong] .zl-tool[aria-selected=true]{background:#F6DDD5!important;color:#B53E37!important}.zl-editor[data-editor=mahjong] .ze-primary-button{background:#B53E37!important;color:#fffdf5!important}.zl-editor[data-editor=mahjong] .zl-panel-title{color:#B53E37}.zl-editor[data-editor=mahjong] .zl-panel{font-size:13px}.zl-editor[data-editor=mahjong] .zl-inspector{background:#fffaf3}.lead{font-size:14px;line-height:1.8;margin:6px 0 16px}.hint,.local-note{font-size:12px;line-height:1.8;color:#61748b}.local-note{padding:12px;border-radius:10px;background:#F6DDD577}label{display:block;font-size:13px;margin:14px 0}label input:not([type=color]),label select{display:block;width:100%;margin-top:8px;padding:10px;border:1px solid #dcd7cc;border-radius:9px;background:#fffdf8}label input[type=range]{padding:5px 0;accent-color:#B53E37}label output{float:right}button,.file-button{border:1px solid #ddd6ca;background:#fffdf6;border-radius:10px;padding:10px 12px;min-height:42px}.preset-row{display:flex;gap:8px;margin-bottom:14px}.preset-row button{flex:1}.slot{display:flex;align-items:center;gap:10px;width:100%;margin:10px 0;text-align:left;padding:10px;background:#fffdf7;min-height:76px}.slot-art{display:block;flex:0 0 46px;height:48px}.slot-art svg{width:100%;height:100%}.slot-copy{flex:1;min-width:0}.slot-copy strong{display:block;font-size:14px;font-weight:600}.slot-copy small{display:block;font-size:11px;color:#718198;margin-top:6px}.slot .change{font-size:11px;color:#B53E37}details{border-top:1px solid #e7dfd3;padding-top:16px;margin-top:20px}summary{cursor:pointer;font-size:13px;font-weight:600}.color-field{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;padding:10px;border:1px solid #e6ded3;border-radius:12px;margin:10px 0;background:#fffdf7}.color-field input{width:38px;height:38px;border:0;padding:0;cursor:pointer;background:transparent}.color-field strong{font-size:13px}.color-field small{display:block;font-size:11px;margin-top:4px}.palette-row{display:flex;gap:6px;margin-top:16px}.palette-row button{flex:1;font-size:12px;border-bottom:5px solid var(--a)}.size-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}input[type=file]{display:none!important}.file-button,.upload-button{display:block;cursor:pointer;text-align:center}.upload-button{background:#F6DDD5;padding:13px;border-radius:10px}#canvasArea{position:relative;display:flex;flex-direction:column;height:100%;min-height:0;background:#FBF6EA!important;padding:20px 24px 68px}.canvas-top{display:flex;justify-content:space-between;align-items:center}.canvas-top h2{font:26px MahjongTitle,sans-serif;margin:0}.canvas-top p{font-size:12px;color:#60758d;margin:8px 0 0}.sample-badge{font-size:11px;color:#B53E37;background:#F6DDD5;padding:7px 11px;border-radius:20px}.selection-row{display:flex;gap:12px;align-items:center;margin:12px 0;font-size:12px;min-height:38px}.selection-row strong{font-size:15px}.selection-row span{color:#718198;flex:1}.selection-row button{min-height:34px;padding:6px 12px}#gallery{overflow:auto;flex:1;min-height:0;padding:0 10px 18px 0;scrollbar-width:thin}.suit-head{display:flex;gap:12px;align-items:baseline;margin:13px 0 10px;font-size:14px;font-weight:600}.suit-head small{font-size:11px;font-weight:400;color:#718198}.tile-row{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:10px}.tile-card{background:none;border:0;padding:6px 4px;min-width:0;display:flex;flex-direction:column;align-items:center;gap:9px;position:relative;border-radius:12px}.tile-card[aria-pressed=true]{background:#F6DDD5;outline:1px solid #D9524955}.tile-card .tile-face{width:100%;max-width:78px;aspect-ratio:3/4;border-radius:9px;box-shadow:2px 4px 0 var(--tile-back),3px 6px 6px #173f7315;border:1px solid #c4beb22e;overflow:hidden}.tile-face svg{display:block;width:100%;height:100%}.tile-card small{font-size:10px;white-space:nowrap}.tile-card:hover{background:#f4e9dd}.tile-card[aria-pressed=true]:hover{background:#F6DDD5}#threeArea{position:relative;flex:1;min-height:240px;display:flex;flex-direction:column}#threeHost{flex:1;min-height:240px;width:100%;cursor:grab}#threeHost canvas{display:block}.rotate-hint{text-align:center;font-size:12px;color:#718198;margin:3px 0 10px}#tileStrip{display:flex;gap:8px;overflow-x:auto;padding:8px;min-height:94px}#tileStrip .tile-card{width:46px;flex:none;padding:4px}#tileStrip .tile-face{width:34px}.ze-history{bottom:13px!important}#operationState{font-size:12px;line-height:1.7;padding:5px 0;color:#916921;max-height:52px;overflow:auto}.error{color:#b13d35!important}dialog{border:1px solid #ded5c8;border-radius:22px;padding:24px;background:#FBF6EA;color:#173F73;width:min(650px,calc(100vw - 28px));max-height:88vh;overflow:auto;box-shadow:0 22px 90px #173f7330}dialog::backdrop{background:#18304c55;backdrop-filter:blur(3px)}dialog header{display:flex;align-items:center;justify-content:space-between}dialog h2{font:26px MahjongTitle,sans-serif;margin:0}#pickerGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}.motif{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px;font-size:12px}.motif svg{width:58px;height:58px}#textEntry{display:flex;align-items:end;gap:10px}#textEntry label{flex:1}#textEntry button{margin:14px 0}#pickerError{font-size:13px;color:#B53E37}#exportPreview{width:75px;margin:18px auto;box-shadow:3px 5px 0 #D95249;border-radius:8px;overflow:hidden}#exportPreview svg{display:block}#exportDialog p{font-size:13px;line-height:1.8}#exportDialog footer{display:flex;justify-content:flex-end;gap:10px}.primary{background:#B53E37;color:#fff}.warning{color:#986711}#busy{position:fixed;inset:0;z-index:150;background:#173f7333;display:grid;place-items:center;backdrop-filter:blur(2px)}.busy-card{background:#FBF6EA;border:1px solid #e1d7c8;border-radius:24px;min-width:280px;display:flex;align-items:center;flex-direction:column;padding:14px 25px 24px}.busy-card p{font-size:14px;margin:0}#saveState{font-size:11px;color:#61748b}
@media(max-width:1100px){#canvasArea{padding:16px 16px 65px}.tile-row{gap:5px}.tile-card .tile-face{max-width:62px}.slot{gap:7px}.canvas-top h2{font-size:23px}}
@media(max-width:760px){#canvasArea{padding:12px 12px 62px}.canvas-top h2{font-size:22px}.canvas-top p{font-size:10px}.sample-badge{display:none}.tile-row{min-width:510px}.tile-card .tile-face{max-width:46px}#gallery{min-height:180px}.suit-head{font-size:13px}.selection-row{gap:5px;margin:6px 0}.selection-row span{font-size:10px}.ze-view-modes{margin-top:8px!important}.zl-editor[data-editor=mahjong] .zl-title{font-size:20px!important}#download{font-size:11px!important}.zl-editor[data-editor=mahjong] .zl-logo{width:32px;height:32px}.sample-badge{font-size:10px}.zl-editor[data-editor=mahjong] .ze-save-status{font-size:10px}.zl-editor[data-editor=mahjong] .zl-panel{padding-bottom:22px}#pickerGrid{grid-template-columns:repeat(3,1fr)}#textEntry{align-items:stretch;flex-direction:column;gap:0}#textEntry button{margin:0 0 12px}.ze-history button{min-width:70px!important}.zl-editor[data-editor=mahjong] .ze-view-modes button{font-size:12px;padding:6px 9px}.zl-editor[data-editor=mahjong] .zl-commands{gap:0}}
html body .zl-editor[data-editor=mahjong] #download{background:#B53E37!important;border-color:#B53E37!important;color:#fffdf5!important}
html body .zl-editor[data-editor=mahjong] .ze-view-modes button[aria-pressed=true]{background:#B53E37}
.suit-tabs{display:flex;gap:7px;margin-bottom:12px}.suit-tabs button{flex:1;font-weight:600}.suit-tabs button[aria-pressed=true]{color:#B53E37;background:#F6DDD5;border-color:#D9524977}.slot-card{background:#fffdf7;border:1px solid #e6ded3;border-radius:14px;margin:12px 0;padding:12px}.slot-card .slot{border:0;padding:0;margin:0 0 12px;gap:12px}.slot-card .slot-art{height:65px;flex-basis:42px}.slot-copy .current-motif{display:block;font-size:12px;color:#B53E37;margin-top:5px}.slot-copy small{line-height:1.6}.slot-actions{display:flex;gap:7px}.slot-actions button{flex:1;font-size:12px;padding:8px 4px}.slot-actions button[data-upload]{background:#F6DDD5;border-color:#ecc3b8;color:#94352f}.section-title{font-size:13px;margin:20px 0 10px;color:#B53E37}.color-field{padding:8px 10px;margin:7px 0}.spec-card{background:#F6DDD577;padding:16px;border:1px solid #e9d4c9;border-radius:14px;margin-top:8px}.spec-card small,.spec-card span{display:block;font-size:12px}.spec-card strong{display:block;font-size:22px;letter-spacing:.5px;margin:13px 0 7px;white-space:nowrap}.spec-card em{font-style:normal;font-size:12px}.spec-card p{margin-bottom:0}.effect-options label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #ded6cc;border-radius:12px;background:#fffdf7;margin:8px 0;cursor:pointer}.effect-options label:has(input:checked){border-color:#D95249;background:#F6DDD555}.effect-options label input[type=radio]{width:17px;margin:0;accent-color:#B53E37}.effect-options label strong,.effect-options label small{display:block}.effect-options label small{font-size:11px;color:#61748b;line-height:1.6;margin-top:5px}.zl-panel a{color:#B53E37;font-size:12px}#legacyNotice button{font-size:11px;margin-top:8px}.selection-row span{line-height:1.6}.tile-card .tile-face{aspect-ratio:31/40}
@media(max-width:760px){.selection-row{flex-wrap:wrap}.selection-row span{font-size:10px;min-width:0}.spec-card strong{font-size:21px}}
.upload-format{font-size:10px;line-height:1.6;color:#788493;margin:-5px 0 10px}#operationState:not(:empty){background:#fff4df;border-radius:8px;padding:8px 10px;max-height:72px;margin-top:6px}
.scope-row{display:flex;align-items:center;gap:12px;margin:12px 0 4px;padding:11px 14px;background:#F6DDD555;border:1px solid #ead5c8;border-radius:12px}.scope-row>div{flex:1;min-width:0}.scope-row strong{display:block;font-size:14px;color:#B53E37}.scope-row small{display:block;font-size:11px;line-height:1.6;margin-top:4px;color:#61748b}.scope-row button{font-size:12px;flex:none;color:#B53E37;border-color:#dca89b}#copyTabs{display:flex;gap:8px;justify-content:center;margin-top:12px}#copyTabs button{font-size:12px;min-height:36px;padding:6px 14px}#copyTabs button[aria-pressed=true]{background:#F6DDD5;border-color:#D95249;color:#B53E37}#singleArea{flex:1;min-height:0;overflow:auto;display:flex;align-items:center;flex-direction:column;justify-content:center;padding:20px 10px;gap:14px}#largeTile{width:min(218px,45%);flex:none;aspect-ratio:31/40;border-radius:18px;box-shadow:5px 7px 0 var(--tile-back),7px 10px 12px #173f731a}#largeTile svg{width:100%;height:100%;display:block;border-radius:18px}#singleHint{font-size:12px;color:#61748b;text-align:center;line-height:1.7;margin:12px 0 0}#resetTile{font-size:12px}#backFields{border:0;padding:0;margin:0;min-width:0}#backFields:disabled{opacity:.45}#backFields:disabled button{cursor:not-allowed}.tile-card small{font-size:9px}
@media(max-width:760px){.scope-row{padding:8px 10px;margin-top:8px}.scope-row small{font-size:10px}.scope-row strong{font-size:12px}.scope-row button{padding:6px 9px;min-height:35px}.selection-row{margin:5px 0}#singleArea{padding:14px 8px;justify-content:flex-start}#largeTile{width:125px}#copyTabs{margin-top:8px;gap:5px}#copyTabs button{padding:5px 10px;min-height:32px}#singleHint{font-size:11px;margin:5px 0 0}}
@media(max-width:760px){html body .zl-editor[data-editor=mahjong][data-edit-scope=single].ze-standard-surface:not(.zl-panel-collapsed){grid-template-rows:106px auto minmax(180px,1fr) minmax(100px,26dvh) calc(66px + env(safe-area-inset-bottom))!important}.zl-editor[data-edit-scope=single] .canvas-top{display:none}.zl-editor[data-edit-scope=single] #largeTile{width:110px}.zl-editor[data-edit-scope=single].zl-panel-collapsed #largeTile{width:180px}.zl-editor[data-edit-scope=single] #singleArea{gap:8px;padding-top:10px}.zl-editor[data-edit-scope=single] #singleHint{font-size:10px}.zl-editor[data-edit-scope=single] #resetTile{padding:6px 10px;min-height:32px;font-size:11px}}
