:root{--tg-blue: #517da2;--tg-blue-dark: #3f6b90;--tg-accent: #3f8fd6;--tg-accent-dark: #2f79ba;--ink: #17212b;--muted: #8b98a5;--muted-soft: #a3adb8;--list-bg: #ffffff;--chat-bg: #e3ebf2;--separator: rgba(16, 42, 66, .07);--green: #4dcd5e;--danger: #d9534f}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:#0f151b;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.app{display:flex;align-items:stretch;justify-content:center;min-height:100vh;min-height:100dvh}.phone{position:relative;display:flex;flex-direction:column;width:100%;max-width:430px;height:100vh;height:100dvh;overflow:hidden;background:var(--list-bg)}@media (min-width: 560px) and (min-height: 640px){.app{align-items:center;padding:24px 0;background:radial-gradient(circle at 50% 0%,#1b2733,#0b1015 70%)}.phone{height:min(880px,calc(100dvh - 48px));border-radius:28px;box-shadow:0 30px 70px #0000008c,0 0 0 1px #ffffff12}}.screen{position:relative;display:flex;flex-direction:column;height:100%;min-height:0;background:var(--list-bg)}.header{display:flex;flex:0 0 auto;align-items:center;gap:10px;padding:calc(env(safe-area-inset-top) + 10px) 10px 10px;background:var(--tg-blue);color:#fff}.header-titles{flex:1;min-width:0}.header-title{margin:0;font-size:17px;font-weight:600;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-title.small{font-size:16px}.header-subtitle{margin:1px 0 0;font-size:12.5px;opacity:.82;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-button{display:grid;flex:0 0 auto;place-items:center;width:34px;height:34px;padding:0 0 4px;border:0;border-radius:50%;background:transparent;color:#fff;font-size:26px;line-height:1;cursor:pointer}.icon-button:active{background:#ffffff29}.avatar{display:grid;flex:0 0 auto;place-items:center;border-radius:50%;color:#fff;font-weight:600;-webkit-user-select:none;user-select:none}.list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;background:var(--list-bg)}.row{display:flex;align-items:center;gap:12px;width:100%;padding:9px 12px;border:0;border-bottom:1px solid var(--separator);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.row:active{background:#f1f5f9}.row.locked{opacity:.55;cursor:default}.row.locked:active{background:transparent}.row-body{flex:1;min-width:0}.row-top{display:flex;align-items:baseline;gap:8px}.row-title{flex:1;min-width:0;overflow:hidden;font-size:16px;font-weight:600;color:var(--ink);text-overflow:ellipsis;white-space:nowrap}.row-time{flex:0 0 auto;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.row-bottom{display:flex;align-items:center;gap:6px;margin-top:2px}.row-preview{flex:1;min-width:0;overflow:hidden;font-size:14px;color:#7b8794;text-overflow:ellipsis;white-space:nowrap}.row-preview.accent{color:var(--tg-accent)}.row-meta{margin-top:2px;font-size:12px;color:var(--muted-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-progress{height:3px;margin-top:6px;overflow:hidden;border-radius:2px;background:#3f8fd629}.row-progress span{display:block;height:100%;border-radius:2px;background:var(--tg-accent);transition:width .3s ease}.ticks{flex:0 0 auto;color:var(--tg-accent);font-size:13px;letter-spacing:-2px}.unread{display:grid;flex:0 0 auto;place-items:center;min-width:22px;height:22px;padding:0 7px;border-radius:11px;background:var(--green);color:#fff;font-size:12px;font-weight:600}.list-footnote{padding:18px 24px 30px;margin:0;color:var(--muted-soft);font-size:13px;line-height:1.45;text-align:center}.strip{display:block;margin:10px;padding:10px 12px;border:1px solid rgba(63,143,214,.16);border-radius:12px;background:#f2f7fb}.strip.action{display:flex;gap:10px;align-items:center;width:calc(100% - 20px);color:inherit;font:inherit;text-align:left;cursor:pointer;background:#eaf3fb;border-color:#3f8fd652}.strip.action:active{background:#dfeefa}.strip.done{background:#f4f8f4;border-color:#4dcd5e47}.strip-icon{color:var(--tg-accent);font-size:15px}.strip-title{display:block;font-size:15px;font-weight:600;color:var(--ink)}.strip-text{display:block;margin-top:2px;color:#6b7885;font-size:13px}.messages{display:flex;flex:1;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain;background-color:var(--chat-bg);background-image:radial-gradient(rgba(255,255,255,.55) 1.2px,transparent 1.2px);background-size:18px 18px}.messages-inner{display:flex;flex-direction:column;gap:2px;margin-top:auto;padding:12px 8px 14px}.chat-hint{align-self:center;max-width:82%;margin:auto;padding:12px 16px;border-radius:12px;background:#ffffffc7;color:#6b7885;font-size:14px;line-height:1.4;text-align:center}.msg{display:flex;align-items:flex-end;gap:6px}.msg-avatar{display:flex;flex:0 0 30px;align-items:flex-end;justify-content:center}.bubble-wrap{display:flex;flex-direction:column;align-items:flex-start;max-width:78%}.msg-author{margin:6px 0 2px 8px;font-size:12.5px;font-weight:600}.bubble{position:relative;padding:6px 10px;border-radius:12px;background:#fff;box-shadow:0 1px 2px #102a421f;color:var(--ink);font-size:15px;line-height:1.36;word-break:break-word}.bubble.group-first{border-bottom-left-radius:4px}.msg-time{float:right;margin:5px -2px -2px 8px;color:#98a4b0;font-size:11px;font-variant-numeric:tabular-nums}.stage{color:#8b98a5}.remark{align-self:center;max-width:86%;margin:8px 0;padding:4px 12px;border-radius:12px;background:#59718838;color:#4a5c6b;font-size:13px;line-height:1.35;text-align:center}.bubble.typing{display:flex;gap:4px;align-items:center;padding:11px 13px}.dot{width:7px;height:7px;border-radius:50%;background:#9aa7b3;animation:dot-blink 1.2s infinite ease-in-out}.dot:nth-child(2){animation-delay:.18s}.dot:nth-child(3){animation-delay:.36s}@keyframes dot-blink{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}.scroll-down{position:absolute;right:14px;bottom:96px;z-index:5;padding:8px 14px;border:0;border-radius:18px;background:#fff;box-shadow:0 4px 14px #102a4238;color:var(--tg-accent);font-size:13px;font-weight:600;cursor:pointer}.controls{flex:0 0 auto;padding:0 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--separator);background:#fff}.controls-progress{height:3px;margin:0 -12px 10px;background:#3f8fd629}.controls-progress span{display:block;height:100%;background:var(--tg-accent);transition:width .3s ease}.controls-row{display:flex;gap:10px;align-items:center;justify-content:space-between}.controls-note{margin:0 0 9px;color:#8b98a5;font-size:12.5px;line-height:1.35}.controls-meta{display:flex;flex-direction:column;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.controls-count{color:#59697a;font-weight:600}.controls-buttons{display:flex;gap:8px}.btn{padding:10px 18px;border:0;border-radius:20px;font-size:15px;font-weight:600;cursor:pointer}.btn.primary{background:var(--tg-accent);color:#fff}.btn.primary:active{background:var(--tg-accent-dark)}.btn.secondary{background:#3f8fd624;color:#2c6da3}.btn.secondary:active{background:#3f8fd63d}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:flex-end;background:#0c141c73}.sheet{display:flex;flex-direction:column;gap:6px;width:100%;padding:8px 8px calc(10px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;background:#fff;animation:sheet-up .18s ease-out}@keyframes sheet-up{0%{opacity:.5;transform:translateY(18px)}to{opacity:1;transform:none}}.sheet-title{padding:6px 0 2px;color:var(--muted);font-size:12.5px;text-align:center}.sheet-action{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:0;border-radius:12px;background:#f3f6f9;color:var(--ink);font:inherit;font-size:15px;font-weight:600;text-align:left;cursor:pointer}.sheet-action.danger{color:var(--danger)}.sheet-hint{color:var(--muted);font-size:12.5px;font-weight:400}.sheet-cancel{padding:12px;border:0;background:transparent;color:var(--tg-accent);font:inherit;font-size:15px;font-weight:600;cursor:pointer}.header-center{display:flex;flex:1;align-items:center;gap:10px;min-width:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.header-center:active{opacity:.82}img.avatar{object-fit:cover;background:#dfe7ee}.profile{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 12px calc(24px + env(safe-area-inset-bottom));background:#eef2f6}.profile-head{display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 12px 18px;text-align:center}.profile-name{margin:0;color:var(--ink);font-size:20px;font-weight:600;line-height:1.25}.profile-status{margin:0;color:#6b7885;font-size:13.5px}.profile-summary{margin:0 4px 4px;color:#5b6a78;font-size:14px;line-height:1.45}.profile-footnote{margin:16px 4px 0;color:var(--muted-soft);font-size:13px;text-align:center}.wide-button{display:block;width:100%;margin-bottom:12px;padding:13px;border:0;border-radius:12px;background:#fff;box-shadow:0 1px 2px #102a4214;color:var(--tg-accent);font:inherit;font-size:15px;font-weight:600;cursor:pointer}.wide-button:active{background:#f1f5f9}.info-card{margin-bottom:12px;overflow:hidden;border-radius:12px;background:#fff;box-shadow:0 1px 2px #102a4214}.info-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--separator);font-size:15px}.info-row:last-child{border-bottom:0}.info-label{color:var(--ink)}.info-value{color:var(--muted);text-align:right}.section-title{margin:16px 4px 8px;color:#6b7885;font-size:13px;font-weight:600}.member-row{display:flex;align-items:center;gap:12px;width:100%;padding:9px 14px;border:0;border-bottom:1px solid var(--separator);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.member-row:last-child{border-bottom:0}.member-row:active{background:#f1f5f9}.member-body{display:flex;flex:1;flex-direction:column;min-width:0}.member-name{overflow:hidden;color:var(--ink);font-size:15.5px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.member-role{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:13px;line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:2}.member-hint{flex:0 0 auto;color:var(--muted-soft);font-size:12px}.quote{margin:0 0 12px;padding:14px 16px;border-left:3px solid var(--tg-accent);border-radius:12px;background:#fff;box-shadow:0 1px 2px #102a4214;color:var(--ink);font-size:15px;line-height:1.45}.list.flat{flex:0 0 auto;overflow:hidden;border-radius:12px;background:#fff;box-shadow:0 1px 2px #102a4214}.list.flat .row{padding:9px 14px}.list.flat .row:last-child{border-bottom:0}.account-button{flex:0 0 auto;padding:0;border:0;background:transparent;color:#fff;cursor:pointer}.account-initial,.account-avatar{display:grid;place-items:center;border-radius:50%;background:#ffffff38;color:#fff;font-weight:600}.account-initial{width:34px;height:34px;font-size:15px}.account-avatar{width:96px;height:96px;font-size:38px}.account-label{display:inline-block;padding:7px 14px;border-radius:18px;background:#ffffff2e;font-size:14px;font-weight:600}.notice{display:flex;flex-direction:column;gap:6px;align-items:flex-start;margin:12px;padding:14px 16px;border:1px solid rgba(63,143,214,.2);border-radius:12px;background:#f2f7fb;color:var(--ink)}.notice.error{border-color:#d9534f4d;background:#fdf3f3}.notice-title{font-size:15px;font-weight:600}.notice-text{color:#6b7885;font-size:13.5px;line-height:1.4}.error-list{margin:0;padding-left:18px;color:#8a3b39;font-size:13px;line-height:1.5}.form-card{display:flex;flex-direction:column;gap:12px;margin-bottom:12px;padding:14px;border-radius:12px;background:#fff;box-shadow:0 1px 2px #102a4214}.field{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.field-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.field-label{color:#6b7885;font-size:12.5px}.field-input{width:100%;min-width:0;padding:9px 11px;border:1px solid rgba(16,42,66,.14);border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:14.5px}.field-input:focus{border-color:var(--tg-accent);outline:none}.field-input.short{width:110px;flex:0 0 auto}.field-input.json{min-height:360px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.45;white-space:pre}.field.checkbox{flex:0 0 auto;flex-direction:row;gap:6px;align-items:center;padding-bottom:9px}.color-field{display:flex;gap:6px;align-items:center}.color-field input[type=color]{width:38px;height:36px;padding:2px;border:1px solid rgba(16,42,66,.14);border-radius:9px;background:#fff}.form-error{margin:0;color:var(--danger);font-size:13.5px}.btn.wide{width:100%}.btn.small{padding:6px 11px;font-size:13px}.btn.danger,.btn.secondary.danger{color:var(--danger)}.btn:disabled{opacity:.5;cursor:default}.link-button{align-self:center;padding:10px;border:0;background:transparent;color:var(--tg-accent);font:inherit;font-size:14px;cursor:pointer}.info-hint{display:block;margin-top:2px;color:var(--muted-soft);font-size:12px}.wide-button.danger{color:var(--danger)}.admin{min-height:100vh;min-height:100dvh;background:#eef2f6;color:var(--ink)}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;background:var(--tg-blue);color:#fff}.admin-header h1{margin:0;font-size:17px;font-weight:600}.admin-header a{color:#fff;font-size:14px;text-decoration:none;opacity:.85}.admin-header a:hover{opacity:1}.admin-body{max-width:1000px;margin:0 auto;padding:16px 20px 60px}.admin-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.admin-toggle{display:flex;gap:6px;align-items:center;color:#59697a;font-size:13.5px}.admin-stats,.admin-status,.admin-hint{margin:0 0 12px;color:#6b7885;font-size:13px}.admin-status{color:#2c8a4a}.admin-section{display:flex;gap:10px;align-items:center;margin:20px 0 10px;color:#33414f;font-size:15px;font-weight:600}.admin-row-actions{display:flex;flex:0 0 auto;gap:6px}.beat-row{display:flex;gap:8px;align-items:flex-start;padding:6px 0;border-top:1px solid var(--separator)}.beat-spacer{width:110px;flex:0 0 auto}.beat-actions{display:flex;flex:0 0 auto;gap:4px}.scene-card{display:block}.scene-summary{cursor:pointer;color:#33414f;font-size:14.5px;font-weight:600;list-style:none}.scene-summary::marker,.scene-summary::-webkit-details-marker{display:none}.scene-summary:before{content:"▸ ";color:var(--muted)}.scene-card[open]>.scene-summary:before{content:"▾ "}.scene-card[open]>.scene-summary{margin-bottom:12px}
