.voice-panel{padding:24px;margin-bottom:24px;min-width:0}.voice-panel .panel-head{flex-wrap:wrap;gap:12px}.voice-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:20px 0}.voice-controls label{display:flex;align-items:center;gap:8px;color:var(--muted)}.voice-controls input,.voice-controls select{width:auto;max-width:100%;background:var(--canvas);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px;color-scheme:dark}.voice-controls .action-row{flex-wrap:wrap}.voice-scroll{max-height:540px;overflow:auto;border:1px solid var(--line);border-radius:10px;position:relative;scrollbar-color:var(--muted) var(--canvas)}.voice-scroll{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.voice-scroll.is-dragging,.voice-scroll.is-dragging *{cursor:grabbing!important}.voice-chart{position:relative;min-height:120px;background:var(--canvas)}.voice-axis,.voice-row{display:flex;min-height:58px;border-bottom:1px solid var(--line)}.voice-axis{position:sticky;top:0;z-index:5;background:var(--panel);height:64px;min-height:64px}.voice-user{position:sticky;left:0;flex:0 0 180px;width:180px;background:var(--panel);padding:12px;z-index:3;display:flex;align-items:center;gap:7px;border-right:1px solid var(--line);overflow:hidden;font-size:12px}.voice-user b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voice-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;overflow:hidden;background:#8ca8ff26;color:var(--blue);font-weight:700}.voice-avatar img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.voice-list-person{display:inline-flex;align-items:center;gap:10px;vertical-align:middle}.voice-axis .voice-user{z-index:6}.voice-track{position:relative;flex-shrink:0}.voice-tick{position:absolute;top:0;bottom:0;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.voice-tick time{font-size:12px;font-weight:600;color:var(--ink)}.voice-tick small{font-size:10px;line-height:1.2}.voice-tick:after{content:"";position:absolute;bottom:0;left:50%;width:1px;height:7px;background:var(--line)}.voice-tick.day-start time,.voice-tick.day-start small{color:var(--violet);font-weight:700}.voice-tick.day-start:after{width:2px;height:10px;background:var(--violet)}.voice-day-boundary{position:absolute;top:64px;bottom:0;width:2px;background:#a487ff88;pointer-events:none;z-index:2}.voice-grid{background-image:linear-gradient(to right,var(--line) 1px,transparent 1px)}.voice-session{position:absolute;top:10px;height:36px;min-width:3px;border:0;border-radius:5px;overflow:hidden;color:#091020;text-align:left;padding:0;font-size:11px;box-shadow:0 0 0 1px #090e1c}.voice-session span{display:block;padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.voice-session:hover,.voice-session:focus-visible,.voice-session.chosen{outline:2px solid white;outline-offset:1px;z-index:2}.voice-session.ongoing{box-shadow:inset -4px 0 0 var(--green),0 0 8px #59d8a140}.voice-now{position:absolute;top:64px;bottom:0;width:2px;background:#ff7989;pointer-events:none;z-index:2}.voice-now>span{position:absolute;top:0;right:3px;white-space:nowrap;font-size:10px;background:#ff7989;color:#090e1c;padding:3px;border-radius:3px}.voice-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:11px;margin-top:14px}.voice-details{margin-top:18px;padding:18px;background:var(--canvas);border:1px solid var(--line);border-radius:10px;font-size:13px}.voice-details>.text-button{float:right}.voice-details h3{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.voice-active-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.voice-active-card{display:flex;text-align:left;align-items:center;gap:12px;background:var(--canvas);border:1px solid var(--line);color:var(--ink);padding:16px;border-radius:10px}.voice-active-card small{display:block;color:var(--muted);margin-top:4px;font-size:11px}.voice-active-card strong{margin-left:auto;font-size:12px;white-space:nowrap;color:var(--green)}@media (max-width:560px){.voice-panel{padding:14px}.voice-controls{gap:8px}.voice-active-grid{grid-template-columns:1fr}}.public-timeline{--canvas:#0d1020;--panel:#141426;--ink:#f2effb;--blue:#a7b8ff;--violet:#b8a2f4;--green:#72d6af;width:min(1500px,calc(100% - 64px));margin:45px auto 65px}.timeline-links{display:flex;align-items:center;gap:22px;font-size:13px}.timeline-intro{margin:0 0 32px}.timeline-intro h1{font-size:clamp(32px,4vw,48px);margin:14px 0}.timeline-intro p{color:var(--muted);font-size:14px}.timeline-intro .timeline-note{font-size:12px;margin-top:12px;max-width:720px}.public-timeline .panel{border:1px solid var(--line);border-radius:15px;background:var(--panel)}.public-timeline .panel-head{display:flex;justify-content:space-between;align-items:start}.public-timeline h3{font-size:18px;letter-spacing:-.4px}.public-timeline .muted{color:var(--muted);font-size:12px}.public-timeline .badge{display:inline-block;font-size:10px;padding:4px 9px;border-radius:20px;white-space:nowrap;background:#ffffff0a;color:var(--muted)}.public-timeline .green{color:var(--green);background:#72d6af14}.public-timeline .red,.public-timeline .form-error{color:#ffa8b4}.public-timeline .action-row{display:flex;gap:8px;align-items:center}.public-timeline .button.ghost{background:var(--canvas);color:var(--ink);border:1px solid var(--line);padding:10px 14px;font-weight:500;cursor:pointer}.public-timeline .text-button{background:none;border:0;color:var(--purple);cursor:pointer}.public-timeline .voice-active-grid{margin-top:18px}.public-timeline .table-panel{overflow:auto}.public-timeline table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}.public-timeline th,.public-timeline td{padding:15px 20px;text-align:left;border-bottom:1px solid var(--line)}.public-timeline th{font-size:10px;color:var(--muted)}.public-timeline .voice-active-card{cursor:pointer}.public-timeline .active-dot{height:6px;width:6px;background:var(--green);border-radius:50%;flex-shrink:0}.public-timeline .voice-active-card>div{min-width:0;overflow-wrap:anywhere}@media (max-width:640px){.public-timeline{width:calc(100% - 24px);margin-top:30px}.timeline-intro{padding-inline:8px}.timeline-links{gap:12px}.timeline-links .button{padding:10px;font-size:10px}.public-timeline .panel-head{gap:12px}.public-timeline .voice-active-card{padding:12px;gap:8px}}
