:root{--bg: #0a0c12;--surface: #14171f;--surface-2: #1a1e28;--surface-3: #232838;--border: #262b38;--border-strong: #343b4d;--text: #f5f7fa;--text-dim: #949db3;--text-faint: #6b7386;--accent: #7c6bf6;--accent-hover: #8d7dff;--accent-soft: rgba(124, 107, 246, .16);--accent-text: #ffffff;--success: #2dd4a7;--success-soft: rgba(45, 212, 167, .14);--warning: #f5a623;--warning-soft: rgba(245, 166, 35, .13);--danger: #f5495c;--danger-hover: #ff6274;--danger-soft: rgba(245, 73, 92, .14);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--shadow-md: 0 6px 20px rgba(0, 0, 0, .4);--shadow-up: 0 -4px 16px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body{margin:0;height:100%;overscroll-behavior:none;background:radial-gradient(circle at 12% -8%,rgba(124,107,246,.22),transparent 42%),radial-gradient(circle at 90% 4%,rgba(45,212,167,.16),transparent 40%),var(--bg);background-attachment:fixed;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;letter-spacing:-.01em}#app{height:100%}.start-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:calc(24px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom))}.start-screen h1{font-size:1.6rem;font-weight:800;letter-spacing:-.03em;margin:0 0 8px;background:linear-gradient(135deg,var(--text) 30%,var(--accent-hover));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.topic-input{width:100%;max-width:420px;font-size:1.1rem;padding:15px 18px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}.topic-input::placeholder{color:var(--text-faint)}.topic-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.start-btn{width:100%;max-width:420px;font-size:1.15rem;padding:16px;border-radius:var(--radius-md);border:none;background:linear-gradient(135deg,var(--accent),#5f4fd6);color:var(--accent-text);font-weight:700;box-shadow:var(--shadow-md);transition:transform .1s ease,opacity .15s ease}.start-btn:active{transform:scale(.98)}.start-btn:disabled{opacity:.4;box-shadow:none}.error-text{color:var(--danger);font-size:.9rem}.success-text{color:var(--success);font-size:.9rem}.link-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);font-size:.85rem;font-weight:600;text-decoration:none;padding:9px 16px;border-radius:var(--radius-full)}.start-links{display:flex;gap:10px;margin-top:12px}.setup-screen{height:100%;display:flex;flex-direction:column}.setup-header{display:flex;align-items:center;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;border-bottom:1px solid var(--border);background:var(--surface)}.setup-header h1{font-size:1.05rem;font-weight:700;margin:0}.back-btn{background:none;border:none;color:var(--accent-hover);font-size:1rem;font-weight:600;padding:4px 0}.setup-body{flex:1;overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:14px}.setup-hint{color:var(--text-dim);font-size:.9rem;margin:0;line-height:1.5}.setup-hint code{background:var(--surface-3);color:var(--text);padding:2px 6px;border-radius:5px;font-size:.85em}.file-input-label{position:relative;display:block;text-align:center;padding:20px;border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text);font-size:1rem;font-weight:600;overflow:hidden}.file-input-label input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.preview-count{font-size:.9rem;color:var(--text-dim);margin:0}.preview-table{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}.preview-row{display:flex;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);font-size:.9rem}.preview-row:last-child{border-bottom:none}.preview-roll{color:var(--text-dim);width:40px;flex-shrink:0;font-variant-numeric:tabular-nums}.preview-more{color:var(--text-faint);font-style:italic}.preview-reg{color:var(--text-faint);font-size:.8rem;flex-shrink:0;font-variant-numeric:tabular-nums}.replace-btn{padding:16px;border-radius:var(--radius-md);border:none;background:linear-gradient(135deg,var(--danger),#c22f40);color:#fff;font-weight:700;font-size:1.05rem;box-shadow:var(--shadow-md)}.replace-btn:disabled{opacity:.4;box-shadow:none}.reports-screen{height:100%;display:flex;flex-direction:column}.reports-body{flex:1;overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:16px}.range-tabs{display:flex;gap:8px;align-items:center}.range-tab{padding:9px 15px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);font-size:.85rem;font-weight:600}.range-tab-active{background:linear-gradient(135deg,var(--accent),#5f4fd6);color:#fff;border-color:var(--accent);box-shadow:0 2px 10px #7c6bf659}.export-btn{margin-left:auto;padding:9px 15px;border-radius:var(--radius-full);background:var(--surface-3);border:1px solid var(--border-strong);color:var(--text);font-size:.85rem;font-weight:600;text-decoration:none}.report-table{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--surface);border-radius:var(--radius-md);overflow:hidden}.report-table th{text-align:left;color:var(--text-dim);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;padding:10px 8px;border-bottom:1px solid var(--border-strong);cursor:pointer;white-space:nowrap}.report-table td{padding:9px 8px;border-bottom:1px solid var(--border)}.report-table tbody tr:nth-child(2n) td{background:#ffffff04}.report-table tr.row-zero td{color:var(--warning)}.never-spoke-title{font-size:1rem;font-weight:700;margin:4px 0 0}.never-spoke-list{margin:0;padding-left:18px;color:var(--warning);font-size:.9rem;display:flex;flex-direction:column;gap:4px}.session-list{display:flex;flex-direction:column;gap:8px}.session-row{display:flex;align-items:center;gap:10px;padding:12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface)}.session-row-info{flex:1;display:flex;flex-direction:column;overflow:hidden}.session-row-topic{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-row-meta{font-size:.8rem;color:var(--text-dim)}.session-row-locked{font-size:.75rem;color:var(--text-faint);flex-shrink:0;text-transform:uppercase;letter-spacing:.03em}.session-delete-btn{flex-shrink:0;padding:9px 14px;border-radius:var(--radius-sm);border:none;background:var(--danger-soft);color:var(--danger);font-size:.85rem;font-weight:700}.session-delete-btn.session-delete-confirm{background:linear-gradient(135deg,var(--danger),#ff7a59);color:#fff}.session-screen{height:100%;display:flex;flex-direction:column}.topic-header{padding:calc(10px + env(safe-area-inset-top)) 16px 10px;font-size:.9rem;font-weight:700;color:var(--text);border-bottom:2px solid transparent;border-image:linear-gradient(90deg,var(--accent),var(--success)) 1;background:linear-gradient(90deg,#7c6bf624,#2dd4a714);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile-grid{flex:1;overflow-y:auto;overflow-x:hidden;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:72px;gap:7px;padding:7px;align-content:start}@media (min-width: 420px){.tile-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.tile{position:relative;min-width:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:4px;overflow:hidden;touch-action:none;transition:background-color .12s ease,transform .1s ease,border-color .12s ease}.tile-zero{background:var(--surface-2);border-color:var(--border)}.tile-zero:after{content:"";position:absolute;left:10%;right:10%;bottom:0;height:3px;border-radius:2px 2px 0 0;background:var(--warning);opacity:.55}.tile:not(.tile-zero){background:linear-gradient(155deg,#2dd4a747,#7c6bf638);border-color:#2dd4a780;box-shadow:0 2px 10px #2dd4a71f}.tile:not(.tile-zero) .tile-score{color:var(--success)}.tile:not(.tile-zero) .tile-name{color:var(--text)}.tile-flash{background:linear-gradient(135deg,var(--accent),#c23fd8)!important;border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important;transform:scale(.94)}.tile-flash .tile-score,.tile-flash .tile-roll,.tile-flash .tile-name{color:#fff}.tile-roll{font-size:.65rem;color:var(--text-faint);font-variant-numeric:tabular-nums}.tile-name{font-size:.62rem;font-weight:600;text-align:center;line-height:1.1;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-dim)}.tile-score{font-size:1.05rem;font-weight:800}.tile-pending-dot{position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:var(--warning);box-shadow:0 0 0 3px var(--warning-soft)}.tile-undo-btn{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;border:none;background:var(--surface-3);color:var(--text-dim);font-size:.75rem;line-height:1;display:flex;align-items:center;justify-content:center;touch-action:manipulation}.bottom-bar{position:sticky;bottom:0;display:flex;align-items:center;gap:8px;padding:10px 10px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);box-shadow:var(--shadow-up)}.undo-btn,.end-btn{padding:12px 16px;border-radius:var(--radius-md);border:none;font-weight:700;font-size:.95rem}.undo-btn{background:var(--surface-3);color:var(--text)}.end-btn{background:linear-gradient(135deg,var(--danger),#ff7a59);color:#fff;box-shadow:0 2px 10px #f5495c4d}.session-total{flex:1;display:flex;flex-direction:column;align-items:center;font-size:1.05rem;font-weight:800;background:none;border:none;color:var(--text);padding:4px}.sync-dot{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--success)}.sync-dot.sync-pending{color:var(--warning)}.activity-log{max-height:220px;overflow-y:auto;background:var(--surface);border-top:1px solid var(--border);padding:6px 12px}.activity-empty{color:var(--text-dim);font-size:.85rem;text-align:center;margin:10px 0}.activity-row{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--border);font-size:.85rem}.activity-row:last-child{border-bottom:none}.activity-row.activity-undone{opacity:.4}.activity-time{color:var(--text-faint);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.8rem}.activity-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-points{font-weight:800;color:var(--success);flex-shrink:0}.activity-undone-label{color:var(--text-faint);font-size:.75rem;flex-shrink:0;text-transform:uppercase;letter-spacing:.03em}.activity-undo-btn{flex-shrink:0;width:26px;height:26px;border-radius:50%;border:none;background:var(--surface-3);color:var(--text-dim);font-size:.85rem}
