:root{--tg-bg: #131416;--tg-bg-secondary: #18191b;--tg-section-sep: rgba(255, 255, 255, .06);--tg-text: #ffffff;--tg-hint: #a1a3a9;--tg-accent: #905ecc;--tg-button-text: #ffffff;--tg-destructive: #ff453a;--surface-1: var(--tg-bg);--surface-2: var(--tg-bg-secondary);--surface-3: #1f2023;--accent-soft: color-mix(in srgb, var(--tg-accent) 16%, transparent);--accent-soft-strong: color-mix(in srgb, var(--tg-accent) 24%, transparent);--status-success: #3ec78f;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--fs-caption: 11px;--fs-body-sm: 12.5px;--fs-body: 14px;--fs-body-lg: 15px;--fs-h3: 16px;--fs-h2: 18px;--fs-h1: 22px;--r-xs: 6px;--r-sm: 10px;--r-md: 12px;--r-lg: 14px;--r-xl: 18px;--r-cover: 8px;--r-control: 16px;--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow-md: 0 2px 8px rgba(0,0,0,.32);--shadow-lg: 0 6px 18px rgba(0,0,0,.4);--dur-fast: .12s;--ease: cubic-bezier(.4,0,.2,1);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--tg-bg);color:var(--tg-text);font:var(--fs-body)/1.45 -apple-system,system-ui,"Inter","Segoe UI",Roboto,sans-serif;letter-spacing:-.1px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h2{font-size:var(--fs-h1);font-weight:800;letter-spacing:-.3px}h3{font-size:var(--fs-h3);font-weight:700;margin:0 0 var(--space-4);letter-spacing:-.2px}button,.btnlink,.filebtn-inline{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-4);border-radius:var(--r-control);font:600 var(--fs-body)/1 inherit;font-family:inherit;border:1px solid var(--tg-section-sep);cursor:pointer;background:var(--surface-2);color:var(--tg-text);white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease)}button:hover,.btnlink:hover,.filebtn-inline:hover{border-color:var(--tg-accent)}.filebtn-inline.disabled{opacity:.5;pointer-events:none}.chap-acts button{min-width:108px}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--tg-accent);border-color:transparent;color:var(--tg-button-text);font-weight:700}button.primary:hover{filter:brightness(1.08)}button.danger{background:transparent;border-color:color-mix(in srgb,var(--tg-destructive) 45%,transparent);color:var(--tg-destructive)}button.danger:hover{background:color-mix(in srgb,var(--tg-destructive) 14%,transparent);border-color:var(--tg-destructive)}button.ghost{background:transparent;border-color:transparent}button.sm{min-height:34px;padding:0 var(--space-3);font-size:var(--fs-body-sm)}input,textarea,select{font:var(--fs-body)/1.4 inherit;font-family:inherit;width:100%;background:var(--surface-3);color:var(--tg-text);border:1px solid var(--tg-section-sep);border-radius:var(--r-md);padding:10px 12px;transition:border-color var(--dur-fast) var(--ease)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--tg-accent)}input::placeholder,textarea::placeholder{color:var(--tg-hint)}textarea{resize:vertical;min-height:90px;line-height:1.5}label{display:block;margin:var(--space-4) 0 var(--space-2);color:var(--tg-hint);font-size:var(--fs-body-sm);font-weight:600}.topbar{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--tg-bg) 86%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--tg-section-sep)}.topbar-inner{max-width:1080px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:9px var(--space-5)}.brand{font-weight:800;letter-spacing:-.3px}.who{display:flex;align-items:center;gap:var(--space-3);color:var(--tg-hint);font-size:var(--fs-body-sm)}.content{max-width:1080px;margin:0 auto;padding:var(--space-6) var(--space-5) 80px}@media(max-width:640px){.topbar .topbar-inner{gap:var(--space-3);padding:8px var(--space-3)}.topbar .topbar-left{gap:var(--space-3);min-width:0}.topbar .brand-sep,.topbar .team-name,.topbar .user-chip{display:none}.content{padding:var(--space-4) var(--space-3) 56px}.spread{margin-bottom:var(--space-4)}}.navlink{display:inline-flex;align-items:center;height:34px;padding:0 var(--space-3);border-radius:var(--r-control);color:var(--tg-hint);font-size:var(--fs-body-sm);font-weight:600}.navlink:hover{color:var(--tg-text)}.navlink.active{background:var(--accent-soft);color:var(--tg-accent)}.section{background:var(--surface-2);border:1px solid var(--tg-section-sep);border-radius:var(--r-xl);padding:var(--space-5);margin-bottom:var(--space-4)}.center{min-height:100dvh;display:grid;place-items:center;padding:var(--space-4)}.card{background:var(--surface-2);border:1px solid var(--tg-section-sep);border-radius:var(--r-xl);padding:var(--space-6);box-shadow:var(--shadow-lg)}.card.login{width:360px;max-width:100%}.muted{color:var(--tg-hint)}.err{color:var(--tg-destructive);font-size:var(--fs-body-sm)}.ok-msg{color:var(--status-success);font-size:var(--fs-body-sm)}.row{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}@media(min-width:600px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:900px){.grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(min-width:1280px){.grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.tcard{display:block}.tcard-cover{position:relative;aspect-ratio:9/16;border-radius:var(--r-cover);overflow:hidden;background:var(--surface-3);border:1px solid var(--tg-section-sep);transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.tcard:hover .tcard-cover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.tcard-cover img{width:100%;height:100%;object-fit:cover;display:block}.tcard-overlay{position:absolute;left:0;right:0;bottom:0;padding:32px 8px 8px;text-align:center;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.4) 28%,rgba(0,0,0,.78) 64%,rgba(0,0,0,.94) 100%);pointer-events:none}.tname{font-size:13px;font-weight:700;line-height:1.2;letter-spacing:-.2px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tsub{font-size:11px;color:#ffffffd1;margin-top:3px;text-shadow:0 1px 2px rgba(0,0,0,.6)}.chap{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--r-md);background:var(--surface-3)}.chap+.chap{margin-top:var(--space-2)}.chap-edit{align-items:flex-end}.tag{font-size:var(--fs-caption);padding:2px 9px;border-radius:var(--r-control);background:var(--surface-3);border:1px solid var(--tg-section-sep);color:var(--tg-hint);font-weight:600}.tag.sched{color:var(--tg-accent);border-color:transparent;background:var(--accent-soft)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 4px 0 12px;border-radius:var(--r-control);background:var(--surface-3);border:1px solid var(--tg-section-sep);font-size:var(--fs-body-sm);font-weight:600}.chip button{min-height:22px;width:22px;padding:0;border:none;background:transparent;color:var(--tg-hint);font-size:16px;line-height:1;border-radius:var(--r-full)}.chip button:hover{color:var(--tg-destructive)}.filepick{display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer;border:1px dashed var(--tg-section-sep);border-radius:var(--r-md);padding:6px;background:var(--surface-3);max-width:100%}.filepick:hover{border-color:var(--tg-accent)}.filepick.disabled{opacity:.5;cursor:default}.filepick-btn{background:var(--tg-accent);color:#fff;border-radius:var(--r-sm);padding:8px 14px;font-size:var(--fs-body-sm);font-weight:700;white-space:nowrap}.filepick-name{color:var(--tg-hint);font-size:var(--fs-body-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-row{display:flex;gap:var(--space-5);align-items:flex-start;flex-wrap:wrap}.cover-preview{width:150px;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r-cover);border:1px solid var(--tg-section-sep);background:var(--surface-3)}.banner-preview{width:100%;aspect-ratio:16/6;object-fit:cover;border-radius:var(--r-lg);border:1px solid var(--tg-section-sep);background:var(--surface-3);display:block}.cover-preview.empty,.banner-preview.empty{display:flex;align-items:center;justify-content:center;color:var(--tg-hint);font-size:var(--fs-body-sm)}.media-col{display:flex;flex-direction:column;gap:var(--space-3);align-items:flex-start}.banner-sm{width:100%;max-width:360px;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-lg);border:1px solid var(--tg-section-sep);background:var(--surface-3);display:block}.banner-sm.empty{display:flex;align-items:center;justify-content:center;color:var(--tg-hint);font-size:var(--fs-body-sm)}.brand-row{display:flex;align-items:center;gap:10px;min-width:0}.logo-link{display:inline-flex}.logo{height:22px;width:auto;display:block}.brand-sep{width:1px;height:20px;background:var(--tg-section-sep)}.team-ava{width:28px;height:28px;border-radius:50%;object-fit:cover;border:1px solid var(--tg-section-sep);flex:none}.team-ava.ph{display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--tg-accent);font-weight:800;font-size:13px}.team-name{font-weight:700;letter-spacing:-.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-left{display:flex;align-items:center;gap:var(--space-5);min-width:0}.tabs{display:flex;gap:4px}.cover-gallery{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-4)}.cover-item{width:140px}.cover-item.main .cover-thumb{border-color:var(--tg-accent);box-shadow:0 0 0 2px var(--accent-soft-strong)}.cover-thumb{position:relative;aspect-ratio:3/5;border-radius:var(--r-cover);overflow:hidden;border:1px solid var(--tg-section-sep);background:var(--surface-3)}.cover-thumb img{width:100%;height:100%;object-fit:cover;display:block}.cover-badge{position:absolute;top:6px;left:6px;background:var(--tg-accent);color:#fff;font-size:var(--fs-caption);font-weight:700;padding:2px 8px;border-radius:var(--r-control)}.cover-label{font-size:var(--fs-body-sm);margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cover-acts{display:flex;gap:6px;margin-top:6px}.cover-acts button{flex:1;min-height:30px;padding:0 8px;font-size:var(--fs-caption)}.cover-add{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.cover-add .filepick,.cover-add>input,.cover-add>button{height:42px;min-height:42px}.cover-add .filepick{padding:0 5px}.cover-add .filepick-btn{height:30px;padding:0 12px;display:inline-flex;align-items:center}.banner-wide{width:100%;max-width:640px;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-lg);border:1px solid var(--tg-section-sep);background:var(--surface-3);display:block}.banner-wide.empty{display:flex;align-items:center;justify-content:center;color:var(--tg-hint);font-size:var(--fs-body-sm)}.user-chip{display:inline-flex;flex-direction:column;align-items:flex-end;line-height:1.25}.user-chip b{font-size:var(--fs-body-sm)}.user-chip .muted{font-size:var(--fs-caption)}.datepick{position:relative}.datepick-field{justify-content:space-between;gap:var(--space-2);min-width:240px;font-weight:500}.datepick-x{color:var(--tg-hint);font-size:17px;line-height:1;padding:0 2px}.datepick-x:hover{color:var(--tg-destructive)}.datepick-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:280px;background:var(--surface-2);border:1px solid var(--tg-section-sep);border-radius:var(--r-lg);box-shadow:var(--shadow-xl, 0 12px 32px rgba(0,0,0,.5));padding:var(--space-4)}.datepick-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3);font-weight:700}.datepick-head button{min-height:30px;min-width:30px;padding:0}.datepick-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.datepick-wd{text-align:center;font-size:var(--fs-caption);color:var(--tg-hint);padding:4px 0}.datepick-day{min-height:32px;padding:0;border:none;background:transparent;border-radius:var(--r-sm);font-size:var(--fs-body-sm);font-weight:600}.datepick-day:hover{background:var(--surface-3)}.datepick-day.on{background:var(--tg-accent);color:#fff}.datepick-time{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4)}.datepick-time select{width:auto;padding:6px 8px}
