@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700;900&display=swap";:root{font-family:Noto Sans SC,Microsoft YaHei UI,sans-serif;color:#0a0a0a;background:#f4f4f0;font-size:15px}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{border:1px solid #111;background:#fff;padding:8px 13px;font-weight:700;cursor:pointer}button:hover:not(:disabled){background:#111;color:#fff}button:disabled{opacity:.4;cursor:default}input{border:1px solid #111;padding:8px}h1,h2,h3,p{margin-top:0}h2{font-size:21px}small{font-size:11px;color:#777;letter-spacing:.1em;text-transform:uppercase;font-weight:700}.primary{background:#0a0a0a;color:#fff}.primary:hover{background:#004bd6!important}.panel{background:#fff;border:1px solid #111;padding:24px}.logo{display:inline-block;background:#0a0a0a;color:#fff;padding:8px 12px;font-weight:900;letter-spacing:.16em}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.error{color:#c5241c}.notice{padding:10px 14px;background:#edf3fd;border-left:4px solid #004bd6;cursor:pointer}.auth{min-height:100vh;display:grid;place-items:center}.auth form{width:min(390px,94vw);display:grid;gap:14px}.auth label{display:grid;gap:5px}.auth h1{margin:10px 0 0}.home{max-width:1300px;margin:auto;padding:20px}.home>header{display:flex;justify-content:space-between;align-items:center}.home-hero{padding:90px 0 65px;border-bottom:2px solid #111}.home-hero h1{font-size:clamp(36px,6vw,70px);margin:16px 0}.home-hero p{color:#555}.worlds{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px;margin-top:28px}.worlds article h2{margin:18px 0 8px}.worlds article p{color:#888}.toolbar{position:sticky;top:0;z-index:10;background:#fff;border-bottom:2px solid #111;min-height:70px;padding:10px max(18px,calc((100vw - 1400px)/2));display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px}.brand strong{font-size:18px}.save{font-size:12px;color:#666}.workspace{max-width:1400px;margin:auto;padding:28px 18px 70px;display:grid;gap:28px}.settings{display:grid;gap:14px}.settings label{display:flex;gap:12px;align-items:center}.code{letter-spacing:.18em;font-size:22px}.state-row{display:grid;grid-template-columns:minmax(260px,1fr) minmax(360px,2fr);gap:22px}.xp-value{font:900 76px/1.2 ui-monospace,monospace;margin:20px 0}.xp .actions button{min-width:85px}.panel header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.panel header h2{margin:5px 0 0}.clock-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:20px}.clock{padding:15px;border:1px solid #d0d0c8;background:#f8f8f6}.clock-top{display:flex;justify-content:space-between}.clock-slots{display:flex;gap:4px;margin:16px 0}.clock-slots i{height:14px;flex:1;border:1px solid #111}.clock-slots i.filled{background:#111}.clock .actions button{padding:4px 8px}.character-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:14px;margin-top:20px}.character-grid article{border:1px solid #111;padding:18px;cursor:pointer;background:#fafaf8}.character-grid article:hover{box-shadow:5px 5px #111}.character-grid h3{font-size:23px;margin:10px 0 4px}.character-grid p{color:#555}.stats{display:flex;flex-wrap:wrap;gap:5px}.stats span{border:1px solid #ccc;padding:3px 6px;font-size:12px}.muted,.empty,.hint{color:#777;font-size:13px}.map-panel{padding-bottom:18px}.canvas{height:min(65vh,650px);min-height:420px;position:relative;overflow:hidden;border:1px solid #111;touch-action:none;cursor:grab;background:#fafaf6}.canvas:active{cursor:grabbing}.grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,#ddd 1px,transparent 1px),linear-gradient(to bottom,#ddd 1px,transparent 1px)}.edges{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.edges line{pointer-events:stroke;cursor:pointer}.map-node{position:absolute;min-width:155px;max-width:190px;padding:12px 16px;border:2px solid #111;background:#fff;text-align:center;font-weight:900;-webkit-user-select:none;user-select:none;cursor:move;touch-action:none;box-shadow:3px 3px #111}.map-node.selected{border-color:#004bd6;box-shadow:3px 3px #004bd6}.scrim{position:fixed;inset:0;z-index:30;background:#0009;display:flex;justify-content:flex-end}.scrim>div{width:min(570px,95vw);height:100vh;overflow-y:auto;background:#fff}.detail{padding:25px}.detail header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:2px solid #111;margin-bottom:20px}.detail section{border-top:1px solid #ddd;padding:15px 0}.detail h3{font-size:15px}.detail dl{display:grid;grid-template-columns:90px 1fr;gap:8px}.detail dt{font-weight:800;color:#666}.detail dd{margin:0;min-width:0}.detail pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.5 Noto Sans SC,sans-serif;margin:0}.detail details{padding:8px 0;border-top:1px solid #eee}.detail summary{cursor:pointer;font-weight:700}.pips{display:flex;gap:4px;flex-wrap:wrap}.pip{width:30px;height:30px;padding:0;font-size:11px}.pip.full,.pip.active,.pip.filled{background:#111;color:#fff}.pip.damaged{background:#e5a000;color:#fff}.pip.broken,.pip.inactive,.pip.empty{background:#fff;color:#555}.trait{border:1px solid #ddd;padding:8px;margin:6px 0}.resource{margin:2px;font-size:11px;padding:5px}.detail-tools{padding:12px 24px;border-top:1px solid #ddd}.detail-tools input{width:70px}@media(max-width:750px){.state-row{grid-template-columns:1fr}.toolbar{position:static}.workspace{padding:18px 10px}.panel{padding:16px}}.xp-value small{font-size:22px;color:#888}.xp-pips{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;margin:14px 0 18px}.xp-pips i{height:22px;border:1px solid #111}.xp-pips i.filled{background:#111}.character-resources{display:grid;gap:8px}.resource-track{display:grid;grid-template-columns:88px 1fr;gap:8px;align-items:center}.resource-track>div{display:flex;flex-wrap:wrap;align-items:center;gap:3px}.resource-mark{padding:0;width:25px;height:25px;font-size:18px;line-height:1}.resource-mark.filled{background:#111;color:#fff}.resource-mark.ghost{border-style:dashed}.resource-track output{font-weight:900;min-width:30px;text-align:center}.summary-resources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:15px 0}.summary-resources span{font-size:11px;border-bottom:1px solid #ddd;padding:3px 0}
