:root{--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;--bg: #f6f6f8;--surface: #ffffff;--surface-2: #f3f4f6;--surface-3: #eef2f7;--text: #111827;--text-2: #374151;--muted: #6b7280;--border: #e5e7eb;--border-2: #d1d5db;--shadow: 0 6px 18px rgba(17, 24, 39, .08);--shadow-soft: 0 2px 10px rgba(17, 24, 39, .06);--primary: #dc2626;--primary-hover: #b91c1c;--primary-press: #991b1b;--primary-weak: rgba(220, 38, 38, .1);--primary-weak-2: rgba(220, 38, 38, .16);--success: #16a34a;--warning: #f59e0b;--danger: #dc2626;--r-1: 10px;--r-2: 14px;--r-3: 18px;--pad-1: 10px;--pad-2: 14px;--pad-3: 18px;--control-h: 46px;--control-px: 14px;--h1: 1.28rem;--h2: 1.06rem;--h3: .98rem;--p: .95rem;--container-max: 980px}@media (prefers-reduced-motion: reduce){*{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);color:var(--text);line-height:1.55;background:var(--bg);overflow-x:hidden}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}p{margin:.35rem 0;font-size:var(--p);color:var(--text-2)}h1,h2,h3{margin:0;line-height:1.25;letter-spacing:.2px;color:var(--text)}h1{font-size:var(--h1)}h2{font-size:var(--h2)}h3{font-size:var(--h3)}small{color:var(--muted)}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}pre{margin:10px 0 0;padding:12px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);overflow:auto}:focus{outline:none}:focus-visible{outline:3px solid rgba(220,38,38,.35);outline-offset:2px;border-radius:10px}.page-container{width:min(var(--container-max),100%);margin:0 auto;padding:14px 14px calc(18px + env(safe-area-inset-bottom));min-height:100svh;display:flex;flex-direction:column;gap:12px}.page-container.vote-page,.page-container.janken-page,.page-container.cracker-page{width:min(760px,100%)}.page-container.vote-page,.page-container.cracker-page{background-color:var(--primary)}.page-container>header{border-radius:var(--r-3);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-soft);padding:14px 14px 12px;position:relative}.page-container>header:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--primary);border-top-left-radius:var(--r-3);border-top-right-radius:var(--r-3)}.page-container>header p{margin-top:6px;color:var(--muted)}.section{border-radius:var(--r-3);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-soft);padding:var(--pad-3)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.section h2{margin-bottom:6px}.section+.section{margin-top:2px}.page-container.vote-page .section,.page-container.cracker-page .section{background:transparent;border:none;box-shadow:none;color:#fff}.page-container.vote-page .section h2,.page-container.cracker-page .section h2,.page-container.vote-page .section p,.page-container.cracker-page .section p,.page-container.vote-page .status-title,.page-container.cracker-page .status-title,.page-container.vote-page .status-time,.page-container.cracker-page .status-time{color:#fff}.page-container.vote-page .status-label,.page-container.cracker-page .status-label{background:#fff;color:var(--danger);border-color:#ffffff80}.status-label{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid var(--border);font-weight:800;letter-spacing:.2px;margin:6px 0 10px;-webkit-user-select:none;user-select:none;background:var(--surface-2);color:var(--text)}.status-label:before{content:"";width:10px;height:10px;border-radius:999px;background:var(--muted)}.status-before{background:#f59e0b1f;border-color:#f59e0b40}.status-before:before{background:var(--warning)}.status-open{background:#16a34a1f;border-color:#16a34a40}.status-open:before{background:var(--success)}.status-closed{background:#dc26261a;border-color:#dc262640}.status-closed:before{background:var(--danger)}.section.section-status{padding:10px 12px;max-width:1000px;margin:0 auto}.status-title{margin:0;line-height:1.1}.status-row{display:flex;align-items:stretch;gap:10px}.status-left{flex:1 1 auto;min-width:0}.status-timer{margin-top:6px}.status-time{margin:0;line-height:1.2}.status-right{flex:0 0 auto;display:flex;align-items:stretch}.section-status .status-label{margin:0}.status-label-big{min-width:120px;justify-content:center;padding:10px 14px;font-size:1.02rem;font-weight:900;border-radius:16px;height:100%}.status-label-big:before{width:16px;height:16px}input,select,textarea,button{font:inherit}input[type=text],input[type=number],input[type=password],select,textarea{width:100%;min-height:var(--control-h);padding:10px var(--control-px);border-radius:12px;border:1px solid var(--border-2);background:var(--surface);color:var(--text);box-shadow:none}textarea{min-height:110px;resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:#dc26268c;box-shadow:0 0 0 4px #dc26261f}.auth-form{display:flex;gap:10px;align-items:center;margin-top:10px}.auth-form input{flex:1 1 auto}.vote-submit-btn,.admin-button-primary,.admin-button-secondary,.section-toggle-btn{min-height:var(--control-h);padding:0 16px;border-radius:12px;border:1px solid var(--border);cursor:pointer;font-weight:800;letter-spacing:.2px;-webkit-user-select:none;user-select:none;transition:transform .12s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease,filter .12s ease}.vote-submit-btn,.admin-button-primary{background:var(--primary);border-color:#b91c1c59;color:#fff;box-shadow:0 10px 18px #dc26262e}.vote-submit-btn:hover,.admin-button-primary:hover{background:var(--primary-hover);transform:translateY(-1px)}.vote-submit-btn:active,.admin-button-primary:active{background:var(--primary-press);transform:translateY(0)}.admin-button-secondary,.section-toggle-btn,.auth-form button{background:var(--surface);border-color:var(--border-2);color:var(--text);box-shadow:none}.admin-button-secondary:hover,.section-toggle-btn:hover,.auth-form button:hover{border-color:#dc262659;box-shadow:0 0 0 4px #dc26261a;transform:translateY(-1px)}.admin-button-secondary:active,.section-toggle-btn:active,.auth-form button:active{transform:translateY(0)}.auth-form button{flex:0 0 auto;min-height:var(--control-h);padding:0 16px;border-radius:12px;font-weight:800}button:disabled,.vote-submit-btn:disabled,.admin-button-primary:disabled,.admin-button-secondary:disabled,.section-toggle-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.block-section{margin-top:12px;padding:12px;border-radius:var(--r-2);border:1px solid rgba(220,38,38,.18);background:#dc26260f}.block-section h3{margin-bottom:8px;color:var(--text)}.vote-page input[type=text]{font-size:1.03rem;padding:12px 14px;border-radius:12px}.janken-page select{font-size:1rem;padding-top:10px;padding-bottom:10px}.participant-card{border-radius:var(--r-2);border:1px solid var(--border);background:var(--surface);overflow:hidden;box-shadow:var(--shadow-soft)}.participant-card-header{padding:10px 12px;font-weight:900;letter-spacing:.2px;color:#fff;background:var(--primary)}.participant-name{padding:12px 12px 14px;font-size:1.02rem;color:var(--text)}.field-row{display:grid;grid-template-columns:170px 1fr;gap:10px;align-items:center;margin-top:10px}.field-row label{color:var(--text);font-weight:800;font-size:.92rem}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.message{margin-top:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.message.danger{border-color:#dc26264d;background:#dc26260f}.table-wrapper{width:100%;overflow:auto;border-radius:12px;border:1px solid var(--border);background:var(--surface)}table{width:100%;border-collapse:collapse;color:var(--text)}th,td{padding:10px;border-bottom:1px solid var(--border);vertical-align:top;font-size:.92rem}thead th{background:var(--surface-2);color:var(--text);font-weight:900;border-bottom:1px solid var(--border)}tbody tr:hover td{background:#dc26260a}b{color:var(--text)}.confirm-backdrop,.confirm-dialog-overlay,.ten-count-overlay,.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#11182785;display:grid;place-items:center;padding:14px;padding-bottom:calc(14px + env(safe-area-inset-bottom));overscroll-behavior:contain;animation:modalFadeIn .14s ease-out}.confirm-dialog,.ten-count,.modal{width:min(560px,100%);max-height:calc(100svh - 28px - env(safe-area-inset-bottom));overflow:auto;border-radius:var(--r-3);border:1px solid var(--border);background:var(--surface);box-shadow:0 26px 60px #11182738;padding:16px;color:var(--text);position:relative;animation:modalPopIn .16s cubic-bezier(.2,.8,.2,1)}.confirm-dialog:before,.modal:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--primary);border-top-left-radius:var(--r-3);border-top-right-radius:var(--r-3)}.confirm-dialog-title,.confirm-dialog h2,.modal h2{font-size:1.08rem;margin:0 0 10px;color:var(--text)}.confirm-dialog-message,.confirm-dialog p,.modal p{color:var(--text-2);margin:0;line-height:1.6}.confirm-dialog-buttons,.confirm-dialog-actions,.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}.confirm-dialog-button{min-height:var(--control-h);padding:0 16px;border-radius:12px;border:1px solid var(--border);cursor:pointer;font-weight:800;letter-spacing:.2px;-webkit-user-select:none;user-select:none;transition:transform .12s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease,filter .12s ease}.confirm-dialog-button.cancel{background:var(--surface);border-color:var(--border-2);color:var(--text);box-shadow:none}.confirm-dialog-button.cancel:hover{border-color:#dc262659;box-shadow:0 0 0 4px #dc26261a;transform:translateY(-1px)}.confirm-dialog-button.cancel:active{transform:translateY(0)}.confirm-dialog-button.confirm{background:var(--primary);border-color:#b91c1c59;color:#fff;box-shadow:0 10px 18px #dc26262e}.confirm-dialog-button.confirm:hover{background:var(--primary-hover);transform:translateY(-1px)}.confirm-dialog-button.confirm:active{background:var(--primary-press);transform:translateY(0)}.confirm-dialog-button:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalPopIn{0%{transform:translateY(8px) scale(.98);opacity:.92}to{transform:translateY(0) scale(1);opacity:1}}@media (max-width: 520px){.confirm-dialog,.ten-count,.modal{width:100%;padding:14px;border-radius:16px}.confirm-dialog-buttons,.confirm-dialog-actions,.modal-actions{flex-direction:column-reverse;align-items:stretch}.confirm-dialog-button{width:100%}}dialog{border:none;padding:0;background:transparent}dialog::backdrop{background:#11182773}@media (max-width: 520px){:root{--h1: 1.22rem;--h2: 1.02rem;--h3: .96rem;--p: .94rem;--control-h: 48px}.page-container{padding:12px 12px calc(16px + env(safe-area-inset-bottom));gap:10px}.page-container>header{padding:12px 12px 10px}.section{padding:14px}.admin-grid,.field-row{grid-template-columns:1fr}.field-row label{margin-bottom:4px}.auth-form{flex-direction:column;align-items:stretch}.auth-form button{width:100%}.block-section{padding:12px}}@media (max-width: 360px){.vote-submit-btn,.admin-button-primary,.admin-button-secondary,.section-toggle-btn{padding:0 12px}.participant-name{font-size:1rem}}.page-container.admin-dashboard-page,.page-container.master-page{max-width:none;width:100%}@media (min-width: 1024px){.page-container.admin-dashboard-page,.page-container.master-page{padding-left:24px;padding-right:24px}}
