:root{--bg:#0a0b0f;--panel:#101218;--panel2:#14171e;--line:#262a34;--line2:#323745;--text:#e8e9ee;--dim:#8d93a3;--rose:#b3184f;--rose2:#7d1238;--rose-soft:#4a1428;--ok:#3fb68b;--warn:#e0a83a;--radius:8px;color:var(--text);background:var(--bg);font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,system-ui,sans-serif;font-size:14px}*{box-sizing:border-box}body{background:var(--bg);margin:0}button,input,select,textarea{font:inherit;color:inherit}.app{grid-template-columns:220px 1fr;height:100vh;display:grid}.side{border-right:1px solid var(--line);background:#08090c;flex-direction:column;gap:8px;padding:14px 10px;display:flex}.logo{padding:4px 8px 14px}.logo b{letter-spacing:2px;font-size:24px}.logo b span{color:#e0245e;font-style:italic}.logo small{color:var(--dim);letter-spacing:1px;margin-top:2px;font-size:10px;display:block}.nav{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);cursor:pointer;text-align:left;align-items:center;gap:8px;height:36px;padding:0 12px;display:flex}.nav:hover{border-color:var(--line2)}.nav.on{background:linear-gradient(90deg, var(--rose), var(--rose2));border-color:#d02a63 #d02a63 #d02a63 #ff5c8a;border-left-style:solid;border-left-width:3px}.nav i{opacity:.8;width:14px;font-size:12px;font-style:normal}.side .grow{flex:1}.side .foot{color:var(--dim);padding:0 4px;font-size:11px;line-height:1.5}.main{flex-direction:column;gap:10px;min-width:0;padding:14px 16px 10px;display:flex;overflow:hidden}.page{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex;overflow:auto}.ptitle h1{margin:0;font-size:20px}.ptitle .proj{margin-bottom:6px;font-size:18px;font-weight:600}.ptitle p{color:var(--dim);margin:4px 0 0;font-size:12px}.status{border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);color:var(--dim);white-space:nowrap;text-overflow:ellipsis;padding:7px 12px;font-size:13px;overflow:hidden}.status.err{color:#ff7b9c;border-color:#6b2034}.btn{border:1px solid var(--line2);background:var(--panel2);cursor:pointer;white-space:nowrap;border-radius:6px;height:32px;padding:0 14px;font-weight:600}.btn:hover:not(:disabled){background:#1a1e27;border-color:#4a5063}.btn.pri{background:linear-gradient(180deg, #c21d58, var(--rose2));border-color:#d62a66}.btn.pri:hover:not(:disabled){background:linear-gradient(#d4246a,#8e1641)}.btn.dark{background:var(--rose-soft);border-color:#6d1c3b}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.block{width:100%}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.lbl{color:var(--text);white-space:nowrap;font-size:13px}.hint{color:var(--dim);font-size:12px}input.inp,select.inp,textarea.inp{border:1px solid var(--line2);background:#0d0f14;border-radius:6px;outline:none;min-width:0;height:32px;padding:6px 10px}textarea.inp{resize:none;height:auto;padding:10px;line-height:1.6}.inp:focus{border-color:#c21d58}select.inp{padding-right:24px}.card{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:12px}.box{border:1px solid var(--line);background:#0c0e13;border-radius:8px}.sec{color:var(--text);margin-bottom:6px;font-size:13px}.banner{background:#0f1430 url(/banner.webp) 100%/cover no-repeat;border-radius:10px;flex:none;height:220px;position:relative;overflow:hidden}.banner:after{content:"";background:linear-gradient(90deg,#080a148c 0%,#080a1426 45%,#0000 70%);position:absolute;inset:0}.banner h2{letter-spacing:4px;z-index:1;text-shadow:0 2px 12px #000;margin:0;font-size:46px;position:absolute;top:54px;left:36px}.banner p{z-index:1;color:#f3dbe6;margin:0;font-size:17px;position:absolute;top:128px;left:38px}.banner .slogan{letter-spacing:3px;z-index:1;font-family:STKaiti,KaiTi,serif;font-size:24px;position:absolute;top:100px;right:40px}.stats{justify-content:space-around;padding:8px 20px;display:flex}.stats span{color:var(--dim);margin-right:8px;font-size:12px}.stats b{font-size:20px}.works{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.work{flex-direction:column;gap:8px;min-height:200px;display:flex}.work .cover{height:80px;color:var(--dim);place-items:center;font-size:13px;display:grid}.work.new{text-align:center;justify-content:center;align-items:center}.work.new .plus{color:#e0245e;font-size:32px}.bar{border:1px solid var(--line2);text-align:center;border-radius:6px;height:12px;font-size:10px;line-height:10px;position:relative;overflow:hidden}.bar i{background:var(--rose);position:absolute;top:0;bottom:0;left:0}.mask{z-index:50;background:#0009;place-items:center;display:grid;position:fixed;inset:0}.dialog{border:1px solid var(--line2);background:#0f1116;border-radius:10px;flex-direction:column;gap:10px;width:min(640px,92vw);max-height:88vh;padding:16px;display:flex;overflow:auto}.dialog h3{margin:0 0 4px;font-size:16px}.cols{flex:1;gap:10px;min-height:0;display:grid}.col{flex-direction:column;gap:8px;min-height:0;display:flex}.list{flex:1;overflow:auto}.item{border-bottom:1px solid var(--line);cursor:pointer;padding:8px 10px;font-size:13px;line-height:1.5}.item:hover{background:#151821}.item.on{background:linear-gradient(90deg,#8e1641,#5a1028)}.item small{color:var(--dim)}.item.on small{color:#f0c4d4}.item .chk{margin-right:6px}.preview{color:var(--dim);text-align:center;flex:1;place-items:center;min-height:160px;display:grid;overflow:hidden}.preview img,.preview video{object-fit:contain;max-width:100%;max-height:100%}.thumbs{flex-wrap:wrap;align-content:flex-start;gap:8px;min-height:90px;padding:8px;display:flex}.thumb{border:1px solid var(--line2);width:76px;height:76px;color:var(--dim);border-radius:6px;place-items:center;font-size:22px;display:grid;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%}.thumb small{text-align:center;color:#fff;background:#000000a6;font-size:10px;position:absolute;bottom:0;left:0;right:0}.grid2{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.tag{vertical-align:middle;border-radius:14px;align-items:center;gap:4px;margin:0 2px;padding:1px 10px 1px 2px;font-size:13px;display:inline-flex}.tag .ph{background:#00000040;border-radius:50%;place-items:center;width:22px;height:22px;font-size:11px;display:grid;overflow:hidden}.tag .ph img{object-fit:cover;width:100%;height:100%}.tag.角色{color:#253e66;background:#c9d9f2}.tag.场景{color:#1e4c33;background:#cfe8d8}.tag.物品{color:#4b2766;background:#e3d0ef}.tag.miss{color:#ffb3b3;background:#4a2a2a}.rich{white-space:pre-wrap;padding:10px;line-height:2;overflow:auto}.tpl-lock{color:var(--dim);font-size:12px}table.tbl{border-collapse:collapse;width:100%;font-size:13px}.tbl th,.tbl td{border-bottom:1px solid var(--line);text-align:left;padding:7px 10px}.tbl th{color:var(--dim);background:var(--panel2);font-weight:500;position:sticky;top:0}.tbl tr.on td{background:#3a1023}a.btn{color:var(--text);display:inline-block}.mobile-only,.tabbar,.topbar{display:none}@media (width<=820px){.desk-only{display:none!important}.mobile-only{display:revert}body{-webkit-text-size-adjust:100%}.app{height:auto;min-height:100vh;display:block}.side{display:none}.topbar{z-index:30;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:10px 14px;padding-top:max(10px, env(safe-area-inset-top));background:#0a0b0ff5;align-items:center;gap:8px;display:flex;position:sticky;top:0}.topbar b{font-size:17px}.topbar .proj{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;text-align:right;flex:1;min-width:0;font-size:12px;overflow:hidden}.tabbar{z-index:30;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);background:#08090cf7;grid-template-columns:repeat(6,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar button{color:var(--dim);background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:8px 0 7px;font-size:11px;display:flex}.tabbar button i{font-size:18px;font-style:normal;line-height:20px}.tabbar button.on{color:#ff5c8a}.main{padding:12px 12px 130px;overflow:visible}.page{overflow:visible}.status{left:8px;right:8px;bottom:calc(58px + env(safe-area-inset-bottom));z-index:29;white-space:normal;max-height:64px;font-size:12px;position:fixed;overflow:auto;box-shadow:0 4px 16px #00000080}.ptitle .proj{display:none}.ptitle h1{font-size:18px}.cols{flex-direction:column;display:flex!important}.col{min-height:auto}.list{max-height:60vh}.row{flex-wrap:wrap}.row>.grow{flex-basis:100%}.grid2{grid-template-columns:1fr 1fr!important}.grid3{grid-template-columns:repeat(3,1fr)!important}.grid2>*,.grid3>*{min-width:0}input.inp,select.inp,textarea.inp{max-width:100%;font-size:16px}select.inp{min-width:0}.btn{white-space:normal;height:40px;font-size:14px;line-height:1.2}.dialog{max-height:86vh;padding:14px;width:96vw!important}.works{grid-template-columns:1fr!important}.banner{background-image:url(/banner-m.webp);background-position:50%;height:120px}.banner h2{letter-spacing:2px;font-size:28px;top:26px;left:18px}.banner p{font-size:13px;top:72px;left:18px;right:18px}.banner .slogan{display:none}.stats{padding:6px 8px}.stats b{font-size:17px}.preview{min-height:200px}.thumb{width:68px;height:68px}.tbl{font-size:12px}.tbl th,.tbl td{padding:6px}textarea.inp{min-height:140px}.toolbar{grid-template-columns:1fr 1fr;gap:8px;display:grid!important}.toolbar>.lbl,.toolbar>span{grid-column:1/-1}.toolbar>.grow{display:none}.toolbar>select,.toolbar>input{width:100%!important}}.board-m{display:contents}@media (width<=820px){.board-m{flex-direction:column;gap:10px;display:flex}.board-m>.cols{order:1}.board-m>.warnbox{max-height:none;box-shadow:none;order:2;position:static}.board-m>.toolbar{order:3}.board-m>.toolbar:first-of-type:before{content:"批量与其他操作";grid-column:1/-1;margin-top:6px;font-weight:600}.toolbar input[type=number]{width:100%!important}}.banner .slogan,.banner h2,.banner p{text-shadow:0 2px 10px #000000d9}
