:root{--ink:#173d37;--muted:#617970;--green:#1d6a58;--line:#d9e3da;--paper:#f6f5ef;--white:#fffefa;--warn:#fff1d9}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.75 -apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif}button,input,select,textarea{font:inherit}button,.button{display:inline-block;cursor:pointer;border:1px solid var(--line);border-radius:9px;background:var(--white);color:var(--ink);padding:9px 15px;text-decoration:none}button:hover,.button:hover{border-color:var(--green);background:#edf3eb}button:disabled{opacity:.45;cursor:not-allowed}a{color:var(--green);text-underline-offset:3px}h1{font-size:31px;line-height:1.4;margin:10px 0 18px}h2{font-size:22px;line-height:1.5;margin:0 0 14px}h3{line-height:1.5}p{margin:8px 0 16px}small,.muted{color:var(--muted)}[hidden]{display:none!important}.ribbon{padding:9px 28px;display:flex;justify-content:space-between;gap:16px;background:#e5ece3;font-size:12px}.ribbon b{white-space:nowrap}header{max-width:1200px;padding:25px 28px;margin:auto;display:flex;align-items:center;flex-wrap:wrap;gap:25px;border-bottom:1px solid var(--line)}.brand{font-size:22px;font-weight:750;text-decoration:none}nav{display:flex;gap:20px;font-size:14px;flex:1}nav a{text-decoration:none}.session-label{font-size:12px;max-width:270px;overflow-wrap:anywhere}main{max-width:1200px;margin:auto;padding:30px 28px 160px}.narrow{max-width:700px}.panel{background:var(--white);border:1px solid var(--line);border-radius:15px;padding:27px;margin-bottom:23px}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:700;color:var(--green)}label{display:block;margin:14px 0 6px;font-size:14px;font-weight:600}label>span{display:block;margin-bottom:5px}input:not([type=checkbox]),select,textarea{max-width:100%;width:100%;border:1px solid #c6d3c8;border-radius:8px;background:white;padding:10px 12px;color:var(--ink)}input[type=checkbox]{accent-color:var(--green);width:18px;height:18px}.inline{display:inline-flex;align-items:center;gap:8px;margin-right:18px;font-weight:400}.inline>span{margin:0}input:focus,select:focus,textarea:focus{outline:2px solid #89bda9;outline-offset:2px}textarea{resize:vertical}form>.primary{margin-top:20px}.primary,button.selected,.tabs .selected{background:var(--green);color:white;border-color:var(--green)}.notice{border-radius:9px;background:#edf2e9;border:1px solid var(--line);padding:15px 18px;margin:17px 0;font-size:14px;line-height:1.8}.amber{background:var(--warn);border-color:#e5c995}.hero{display:grid;grid-template-columns:1fr 210px;gap:45px;align-items:center;margin:12px 0 27px}.hero aside{border:1px solid var(--line);background:var(--white);border-radius:18px;padding:23px;text-align:center}.hero aside strong{display:block;font-size:57px;font-weight:550;line-height:1.1}.hero aside span{font-size:12px}.hero aside p{margin:16px 0 3px}.routeCards{display:grid;grid-template-columns:1fr 1fr;gap:20px}.route-card{text-align:left;border-radius:15px;padding:24px;background:#e9f0e7}.route-card:nth-child(2){background:#f3ecdf}.route-card small{font-size:11px;letter-spacing:.15em}.route-card h2{margin:10px 0}.route-card p{margin:0;color:var(--muted)}.tabs{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0}.toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:10px;background:#eef1e9;padding:17px;border-radius:12px;margin-top:15px}.toolbar input[type=search]{min-width:180px;flex:1}.toolbar>input{width:auto;max-width:300px}.toolbar label{margin:0;min-width:100px}.toolbar .primary{margin:0}.toolbar input[type=number]{max-width:90px}.results{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:23px 0 12px;font-size:14px}.entry{border:1px solid var(--line);border-radius:14px;background:var(--white);padding:23px 27px;margin:15px 0}.entry .meta{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:14px}.entry .ja{font-size:24px;font-weight:600;line-height:1.7;margin:12px 0 4px;overflow-wrap:anywhere}.entry .zh{font-size:16px}.entry .actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.entry .actions button{font-size:13px;padding:7px 13px}details{margin:13px 0}summary{cursor:pointer;font-size:14px;font-weight:600}details p{margin-top:10px}.entry.locked{background:#eeeee8}.locked .ja{font-size:18px;color:#6d786d}.lockMark{font-size:12px;color:#8b7550}.pager{display:flex;justify-content:center;align-items:center;gap:20px;margin:28px 0}.directory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:15px 0}.sceneGroup{border:1px solid var(--line);padding:11px;border-radius:10px;background:var(--white);margin:0;align-self:start}.sceneGroup summary small{display:block;font-weight:400}.sceneGroup button{width:100%;text-align:left;font-size:12px;margin-top:7px;padding:7px 9px}.player{position:fixed;bottom:0;left:0;right:0;border-top:1px solid var(--line);background:rgba(255,254,250,.98);padding:15px max(20px,calc((100vw - 1160px)/2));display:flex;align-items:center;gap:14px;z-index:20;box-shadow:0 -5px 30px #183c3610}.player>div{min-width:180px;flex:1}.player b{font-size:14px;display:block;line-height:1.5}.player small{font-size:11px;display:block}.player audio{width:280px;height:40px}.player select{padding:7px}.player label{margin:0;font-size:12px}.player button{font-size:12px}.toast{position:fixed;top:25px;left:50%;transform:translateX(-50%);background:#153e35;color:white;padding:16px 25px;border-radius:12px;z-index:100;max-width:min(650px,90vw);box-shadow:0 10px 35px #0003}.toast.error{background:#76392d}.adminHeading{display:flex;align-items:center;justify-content:space-between}.adminLayout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:22px}.sideNav{display:flex;flex-direction:column;gap:9px}.sideNav button{text-align:left;font-size:14px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.stat{border:1px solid var(--line);background:#f0f4ed;border-radius:11px;padding:15px}.stat strong{display:block;font-size:29px}.stat span{font-size:12px}.tableScroll{overflow-x:auto;max-width:100%}table{width:100%;border-collapse:collapse;font-size:12px;margin-top:16px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}th{white-space:nowrap;background:#eef2e9}td button{font-size:11px;padding:5px 8px;margin:3px;white-space:nowrap}td code{white-space:nowrap}pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;background:#edf1e8;border-radius:10px;padding:15px;font-size:13px}code{font-family:ui-monospace,monospace;font-size:.92em}#codeOutput{font:14px/1.9 ui-monospace,monospace;margin-top:12px}.stack{display:flex;flex-direction:column;gap:12px}.guide section{padding:22px;background:var(--white);border:1px solid var(--line);border-radius:14px;margin:20px 0}.guide img{width:100%;border:1px solid var(--line);border-radius:8px}
@media(max-width:850px){header{gap:13px}nav{order:3;flex-basis:100%;gap:15px;font-size:13px}.ribbon{padding:9px 15px;display:block}.ribbon span{display:block}main{padding:20px 15px 230px}.hero{grid-template-columns:1fr 155px;gap:20px}.hero h1{font-size:25px}.routeCards{gap:12px}.route-card{padding:17px}.route-card h2{font-size:18px}.directory-grid{grid-template-columns:repeat(2,1fr)}.adminLayout{grid-template-columns:1fr}.sideNav{flex-direction:row;flex-wrap:wrap;gap:7px}.sideNav button{font-size:12px;padding:7px 10px}.stats{grid-template-columns:repeat(2,1fr)}.player{flex-wrap:wrap;padding:12px 15px;gap:9px}.player>div{flex-basis:100%}.player audio{width:220px;flex:1}.player .inline{margin:0}.panel{padding:21px}.entry{padding:19px}.entry .ja{font-size:21px}h1{font-size:27px}}
@media(max-width:480px){.hero{display:block}.hero aside{display:none}.routeCards{grid-template-columns:1fr}.route-card{padding:17px}.route-card h2{font-size:19px}.toolbar label{flex:1}.toolbar button{font-size:12px}.directory-grid{grid-template-columns:1fr 1fr;gap:7px}.sceneGroup{padding:9px}.results{flex-wrap:wrap}.player .inline{font-size:11px}.player #stop{padding:7px 10px}.session-label{width:100%}}

.entry.preview{background:#f4f0e7;border-style:dashed}.entry.preview .ja{font-size:22px}.entry.preview .button{margin-top:8px}

.entry.preview{background:var(--white);border-style:solid}
.entry.preview .ja{font-size:24px;color:var(--ink)}
.locked-extras{background:#f2f4ed;border:1px solid var(--line);border-radius:12px;padding:17px;margin-top:16px}
.locked-extras p{font-size:14px;color:var(--muted)}
.locked-extras small{display:block;margin-top:9px;font-size:12px}
.lock-tags{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}
.lock-tags span{font-size:12px;border:1px solid var(--line);border-radius:20px;padding:3px 9px;background:#fffefa}
.state-badge{white-space:nowrap}
.progress-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:13px;margin-bottom:18px}
.progress-row>span{flex:1;color:var(--muted)}
.legal-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 15px;font-size:12px;color:var(--muted);margin-top:25px}
.progress-row button{font-size:13px;padding:7px 12px}
.player{padding-bottom:max(12px,env(safe-area-inset-bottom))}
#nowTitle{max-height:3em;overflow:hidden}
@media(max-width:480px){.entry.preview .ja{font-size:21px}.locked-extras{padding:12px}.state-badge{white-space:normal;max-width:100px}.brand{font-size:19px}.toolbar input[type=search]{max-width:100%;min-width:0;flex-basis:100%;width:100%}.ribbon span{overflow-wrap:anywhere}.player audio{min-width:0;width:100%;flex-basis:100%}.player>div{min-width:0}.player{gap:5px}.player small{max-height:2.5em;overflow:hidden}.toolbar{padding:12px}nav{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Device binding panel, responsive from desktop to mobile. */
.device-list{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.device-row{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#f5f6f0;border:1px solid var(--line);border-radius:12px;padding:13px 16px}
.device-detail{display:flex;flex-direction:column;gap:2px;min-width:0}
.device-detail strong{font-size:14px;overflow-wrap:anywhere}
.device-detail small{font-size:12px}
.device-current{display:inline-block;margin-left:7px;padding:1px 7px;border-radius:12px;background:#dcebe4;color:#1d6a58;font-size:11px;font-weight:600}
.device-row button{font-size:12px;flex-shrink:0}
@media(max-width:560px){.device-row{align-items:stretch;flex-direction:column}.device-row button{align-self:start}}
