:root{font-family:Segoe UI,Hiragino Kaku Gothic ProN,Yu Gothic UI,sans-serif;line-height:1.5;color:#0f172a;background:#f1f5f9;--app-bg: #f1f5f9;--app-text: #0f172a;--panel-bg: #ffffff;--panel-border: #cbd5e1;--soft-surface: #f8fafc;--soft-surface-strong: #eef2f6;--button-bg: #ffffff;--button-border: #94a3b8;--button-text: #1e293b;--button-hover-bg: #f1f5f9;--muted-text: #64748b;--placeholder-text: #94a3b8;--grid-border: #d5dde7;--empty-surface: #ffffff;--selected-bg: #e5e7eb;--selected-border: #111827;--selected-text: #111827;--line-color: #111111;--overlay-bg: rgba(15, 23, 42, .45);--shadow-soft: 0 10px 28px rgba(15, 23, 42, .08);--shadow-strong: 0 12px 30px rgba(15, 23, 42, .14);--shadow-floating: 0 8px 18px rgba(15, 23, 42, .12);--dead-bg: #edf1f5;--dead-text: #64748b;--danger: #dc2626;--danger-soft: #fff1f2;--danger-border: #f5b4bd;--brand-grad-start: #2b313b;--brand-grad-end: #111827;--brand-mark: #ffffff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--app-bg);color:var(--app-text);font-size:.8rem}body.dark-mode{--app-bg: #0f172a;--app-text: #e2e8f0;--panel-bg: #111827;--panel-border: #334155;--soft-surface: #1e293b;--soft-surface-strong: #243142;--button-bg: #111827;--button-border: #475569;--button-text: #e2e8f0;--button-hover-bg: #1e293b;--muted-text: #94a3b8;--placeholder-text: #7f8ea3;--grid-border: #334155;--empty-surface: #16202d;--selected-bg: #374151;--selected-border: #e5e7eb;--selected-text: #f8fafc;--line-color: #f8fafc;--overlay-bg: rgba(2, 6, 23, .72);--shadow-soft: 0 10px 28px rgba(2, 6, 23, .28);--shadow-strong: 0 12px 30px rgba(2, 6, 23, .42);--shadow-floating: 0 8px 18px rgba(2, 6, 23, .34);--dead-bg: #202b39;--dead-text: #94a3b8;--danger: #f87171;--danger-soft: rgba(248, 113, 113, .12);--danger-border: rgba(248, 113, 113, .35);--brand-grad-start: #d1d5db;--brand-grad-end: #6b7280;--brand-mark: #111827}button,input,textarea,select{font:inherit}#root{width:100%;padding:1rem}.app{display:grid;gap:1rem;color:var(--app-text)}.app-layout{display:grid;grid-template-columns:210px minmax(0,1fr) 280px;gap:1rem;align-items:start}.app-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.9rem 1rem;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:16px;box-shadow:var(--shadow-soft)}.header-help{position:relative}.header-icon-button,.theme-toggle{width:2.3rem;height:2.3rem;border:1px solid var(--button-border);border-radius:999px;background:var(--button-bg);color:var(--button-text);cursor:pointer;display:grid;place-items:center}.header-icon-button:hover,.theme-toggle:hover{background:var(--button-hover-bg)}.help-popover{position:absolute;top:calc(100% + .55rem);left:0;width:min(22rem,calc(100vw - 2rem));padding:.85rem .95rem;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:14px;box-shadow:var(--shadow-strong);z-index:80}.help-popover h2{margin:0 0 .6rem;font-size:.95rem}.help-popover ul{margin:0;padding-left:1.1rem;display:grid;gap:.45rem}.header-brand{display:flex;align-items:center;justify-content:center;gap:.75rem;min-width:0}.brand-icon{width:2.5rem;height:2.5rem;border-radius:14px;display:grid;place-items:center;flex:0 0 auto;overflow:hidden;background:transparent}.brand-icon img{width:100%;height:100%;object-fit:contain;display:block}.brand-text{display:grid;gap:.05rem;min-width:0;text-align:center}.brand-text strong{font-size:1rem}.brand-text span{color:var(--muted-text);font-size:.76rem}.header-actions{display:flex;justify-content:flex-end;gap:.35rem;flex-wrap:wrap}.mini-action-btn{border:1px solid var(--button-border);border-radius:7px;background:var(--button-bg);color:var(--button-text);font-size:.72rem;padding:.28rem .45rem;cursor:pointer}.mini-action-btn:hover{background:var(--button-hover-bg)}.theme-toggle{position:relative;overflow:hidden}.theme-toggle-icon{position:absolute;inset:0;display:grid;place-items:center;transition:opacity .18s ease;font-size:1rem}.theme-toggle-icon.is-hidden{opacity:0}.hidden-file-input{display:none}.sidebar,.content-column,.side-column,.board,.vote-record,.stream-comment,.free-memo{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:14px;padding:1rem;min-width:0}.content-column,.side-column{display:grid;gap:1rem;align-content:start;background:transparent;border:none;border-radius:0;padding:0}.sidebar h2,.board h1,.vote-record h2,.stream-comment h2,.free-memo h2{margin:0 0 .75rem}.stream-comment textarea{min-height:5.5rem;resize:vertical}.free-memo{align-self:start}.free-memo textarea{min-height:420px;resize:vertical}.board h1{font-size:1.5em}.sidebar-actions{display:grid;gap:.5rem;margin-top:.9rem}.participant-list{margin:0;padding:0;list-style:none;display:grid;gap:.4rem}.name-button{width:100%;text-align:left;border:1px solid var(--panel-border);border-radius:10px;background:var(--soft-surface);color:var(--app-text);padding:.5rem .6rem;cursor:pointer}.name-button.is-dead{text-decoration:line-through;color:var(--dead-text);background:var(--dead-bg)}.board-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.self-role-selector{display:grid;gap:.25rem;justify-items:end;min-width:10rem}.self-role-selector label{font-size:.8rem;color:var(--muted-text)}.self-role-selector select{width:100%}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:980px;background:var(--panel-bg)}th,td{border:1px solid var(--grid-border);padding:.45rem;vertical-align:top}.placeholder-cell{text-align:center;color:var(--placeholder-text)}th{background:var(--soft-surface);text-align:left;white-space:nowrap}.role-header-main{display:flex;align-items:center;justify-content:space-between;gap:.35rem;min-height:2.2rem}.co-add-btn{padding:.18rem .38rem;font-size:.6rem;line-height:1.2;border-radius:7px}.spacer-row th{background:var(--empty-surface);border:none;padding:.3rem}.role-cell,.role-co-cell{display:flex;align-items:center;gap:.45rem}.role-co-cell>select{flex:1;width:auto;min-width:4rem}.co-delete-box{width:1.9rem;height:1.9rem;border:1px solid var(--danger);border-radius:8px;background:var(--panel-bg);color:var(--danger);font-size:1rem;line-height:1;display:grid;place-items:center;cursor:pointer;flex:0 0 auto}.co-delete-box:hover{background:var(--danger-soft)}.role-cell>select{flex:1;width:auto;min-width:4rem}.result-picker{position:relative;flex:0 0 auto}.result-box{width:1.9rem;height:1.9rem;border:1px solid var(--panel-border);border-radius:8px;background:var(--panel-bg);color:var(--app-text);font-size:1rem;line-height:1;font-family:Yu Gothic UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif;display:grid;place-items:center;cursor:pointer}.result-box:hover{background:var(--soft-surface)}.result-menu{position:absolute;top:calc(100% + .25rem);right:0;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:8px;box-shadow:var(--shadow-floating);padding:.25rem;display:grid;gap:.2rem;z-index:20}.result-menu-item{border:1px solid var(--grid-border);background:var(--panel-bg);border-radius:6px;min-width:4.5rem;padding:.25rem .45rem;text-align:center;cursor:pointer;font-size:1.1rem;line-height:1.1;font-family:Yu Gothic UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif}.result-menu-item:hover{background:var(--soft-surface)}.result-menu-item--clear{font-size:1.1rem}select,input,textarea{width:100%;border:1px solid var(--panel-border);border-radius:8px;padding:.4rem .5rem;background:var(--panel-bg);color:var(--app-text)}.board th,.board td,.board select{font-size:.8rem}.board table{min-width:820px}.board th,.board td{padding:.35rem}.board select{padding:.3rem .4rem}.btn{border:1px solid var(--button-border);background:var(--button-bg);color:var(--button-text);border-radius:9px;padding:.45rem .7rem;cursor:pointer}.btn:hover{background:var(--button-hover-bg)}.btn--primary{border-color:var(--selected-border);background:var(--selected-bg);color:var(--selected-text)}.btn--primary:hover{background:var(--soft-surface-strong)}.btn--danger{border-color:var(--danger);color:var(--danger)}.btn--danger:hover{background:var(--danger-soft)}.modal-backdrop{position:fixed;inset:0;background:var(--overlay-bg);display:grid;place-items:center;z-index:40}.modal{width:min(560px,calc(100vw - 1rem));background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:12px;padding:1rem;display:grid;gap:.65rem}.modal h3,.modal p{margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.edit-score-row{display:grid;grid-template-columns:2.2rem 1fr 2.2rem;gap:.4rem;align-items:center}.score-step-btn{height:2.2rem;border:1px solid var(--panel-border);border-radius:8px;background:var(--panel-bg);color:var(--app-text);cursor:pointer;font-size:1.1rem;line-height:1}.score-step-btn:hover{background:var(--soft-surface)}.runoff-modal{width:min(760px,calc(100vw - 1rem))}.export-modal{width:min(460px,calc(100vw - 1rem))}.export-form-row{display:grid;gap:.25rem}.export-form-row label{font-size:.82rem;color:var(--muted-text)}.export-file-preview{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.8rem;color:var(--muted-text);background:var(--soft-surface);border:1px solid var(--panel-border);border-radius:8px;padding:.4rem .5rem;overflow-wrap:anywhere}.runoff-table-wrap{overflow-x:auto}.runoff-round-tabs{display:flex;gap:.35rem;flex-wrap:wrap}.runoff-round-tab{border:1px solid var(--panel-border);border-radius:999px;background:var(--panel-bg);padding:.25rem .7rem;cursor:pointer}.runoff-round-tab.is-active{border-color:var(--selected-border);background:var(--selected-bg);color:var(--selected-text)}.runoff-table{width:100%;min-width:460px}.runoff-table th,.runoff-table td{text-align:center;vertical-align:middle}.runoff-table th:first-child,.runoff-table td:first-child{text-align:left}.runoff-check-cell input{width:1.1rem;height:1.1rem}.vote-record-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.vote-tabs{display:flex;flex-wrap:wrap;gap:.35rem}.vote-tab{border:1px solid var(--panel-border);border-radius:999px;background:var(--panel-bg);color:var(--button-text);padding:.25rem .7rem;cursor:pointer}.vote-tab.is-active{border-color:var(--selected-border);background:var(--selected-bg);color:var(--selected-text)}.vote-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:.8rem}.runoff-launch{margin-top:.8rem;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.runoff-launch-note{color:var(--muted-text);font-size:.9rem}.vote-link-board{position:relative;border:1px solid var(--grid-border);border-radius:10px;background:var(--soft-surface);padding:.6rem;min-height:280px;min-width:0}.vote-link-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.vote-link-line{stroke:var(--line-color);stroke-width:2;stroke-linecap:round}.vote-link-columns{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;z-index:1}.vote-link-column h3{margin:0 0 .45rem;font-size:.9rem;color:var(--muted-text)}.vote-link-column:first-child h3{padding-right:.7rem;text-align:right}.vote-link-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:calc(100% - 3rem);padding:.38rem 0;margin-bottom:.35rem}.vote-link-row.is-from{margin-right:auto}.vote-link-row.is-to{margin-left:auto}.vote-link-row.is-to.is-hover-target{box-shadow:inset 0 0 0 1px var(--selected-border)}.vote-link-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vote-link-row.is-from .vote-link-name-button{flex:1;text-align:right}.vote-link-row.is-to span{flex:1;text-align:left}.vote-link-column:last-child h3{padding-left:.7rem;text-align:left}.vote-link-dot{border:1px solid var(--line-color);width:.9rem;height:.9rem;border-radius:999px;background:var(--panel-bg);color:transparent;padding:0;cursor:pointer;flex:0 0 auto}.vote-link-row.is-from .vote-link-dot{margin-right:-.45rem}.vote-link-row.is-to .vote-link-dot{margin-left:-.45rem}.vote-link-dot.is-active{border-color:var(--line-color);background:var(--line-color)}.vote-link-dot:disabled{cursor:default;opacity:1}.vote-table-wrap{overflow-x:auto}.vote-table{width:100%;min-width:260px}.vote-cancel-btn{width:1.9rem;height:1.9rem;border:1px solid var(--danger);border-radius:8px;color:var(--danger);background:var(--panel-bg);cursor:pointer}.vote-cancel-btn:hover{background:var(--danger-soft)}.vote-link-name-button{border:none;background:transparent;color:inherit;padding:0;cursor:pointer;text-align:left;font:inherit;text-decoration:underline}@media(max-width:1320px){.app-layout{grid-template-columns:210px minmax(0,1fr)}.side-column{grid-column:1 / -1}}@media(max-width:980px){.app-header{grid-template-columns:1fr;justify-items:stretch}.header-help{order:1}.header-brand{order:2;justify-content:flex-start}.brand-text{text-align:left}.header-actions{order:3;justify-content:flex-start}.app-layout{grid-template-columns:1fr}.content-column{order:1}.sidebar{order:2}.side-column{order:3;grid-column:auto}.vote-layout{grid-template-columns:1fr}.content-column,.side-column,.sidebar,.board,.vote-record,.stream-comment,.free-memo{width:100%}.self-role-selector{justify-items:start;width:100%}}.stream-window{min-height:100vh;margin:0;padding:0;background:#fff;color:#111827;font-family:Meiryo,Yu Gothic UI,Hiragino Kaku Gothic ProN,sans-serif;font-weight:700}.stream-strip{min-height:100vh;padding:16px 24px;display:grid;grid-template-rows:auto 1fr;gap:10px}.stream-strip-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;border-bottom:1px solid #d1d5db;padding-bottom:10px}.stream-strip-head h1,.stream-strip-head p,.stream-block h2,.stream-lines p,.stream-block>p{margin:0}.stream-strip-head h1{font-size:15.4px;font-weight:700}.stream-strip-head p{font-size:8.8px;color:#6b7280;font-weight:700}.stream-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:start}.stream-column{display:grid;align-content:start;gap:10px}.stream-block{border:1px solid #d1d5db;padding:10px 14px;display:grid;grid-template-rows:auto;gap:6px;min-height:0;align-content:start}.stream-block h2{font-size:12.1px;font-weight:700;line-height:1.2}.stream-block>p,.stream-lines p{font-size:14.3px;line-height:1.2;white-space:pre-wrap;word-break:break-word;font-weight:700}.stream-lines{display:grid;align-content:start;gap:4px}.stream-lines--empty{min-height:1.5em}@media(max-width:1280px){.stream-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media(max-width:900px){.stream-strip{padding:12px}.stream-strip-head{flex-direction:column;align-items:flex-start}.stream-grid{grid-template-columns:1fr}.stream-block>p,.stream-lines p{font-size:12.1px}}
