:root{--bg: #0f1115;--bg-panel: #171a21;--bg-elevated: #1f242e;--border: #2c3340;--text: #e6e9ef;--text-dim: #8b93a3;--accent: #4f8cff;--accent-strong: #3a76e8;--danger: #e5534b;--ok: #3fb950;--radius: 10px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,sans-serif;background:var(--bg);color:var(--text)}.app{max-width:1200px;margin:0 auto;padding:16px 20px 40px}.app-status{padding:40px;text-align:center;color:var(--text-dim)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.app-header h1{font-size:1.2rem;margin:0}.header-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.account{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-dim)}.badge-admin{background:#3fb9502e;color:var(--ok)}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:360px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:28px 24px;display:flex;flex-direction:column;gap:14px}.login-title{margin:0;font-size:1.15rem;text-align:center}.login-lead{margin:0;text-align:center;font-size:.85rem;color:var(--text-dim)}.login-field{display:flex;flex-direction:column;gap:5px;font-size:.82rem;color:var(--text-dim)}.login-remember{margin-top:2px}.login-submit{margin-top:4px;padding:11px}.login-submit:disabled{opacity:.6;cursor:default}.tabs{display:flex;gap:6px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:4px}.tab{border:none;background:transparent;color:var(--text-dim);padding:8px 16px;border-radius:7px;cursor:pointer;font-size:.9rem}.tab-active{background:var(--accent);color:#fff}.player-view,.marking-view{display:grid;grid-template-columns:320px 1fr;gap:20px;align-items:start}.marking-view{grid-template-columns:1fr 320px}@media (max-width: 900px){.player-view,.marking-view{grid-template-columns:1fr}.marking-view .sidebar{order:2}}.drawer-toggle,.drawer-backdrop,.drawer-head{display:none}@media (max-width: 900px){.drawer-toggle{display:inline-flex;margin-bottom:12px}.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:40}.drawer-backdrop.is-open{opacity:1;pointer-events:auto}.player-view .sidebar{position:fixed;top:0;left:0;bottom:0;width:min(86vw,340px);z-index:50;border-radius:0;border-width:0 1px 0 0;transform:translate(-100%);transition:transform .22s ease;display:flex;flex-direction:column;padding:max(14px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom))}.player-view .sidebar.is-open{transform:translate(0)}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;font-size:.9rem;color:var(--text-dim)}.player-view .drill-list{display:flex;flex-direction:column;flex:1;min-height:0}.player-view .drill-items{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.drill-item{padding:10px}}@media (prefers-reduced-motion: reduce){.player-view .sidebar,.drawer-backdrop{transition:none}}.sidebar{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.sidebar h3{margin:10px 0 8px;font-size:.9rem;color:var(--text-dim)}.main-panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px;min-width:0}@media (min-width: 901px){.player-view .sidebar{position:sticky;top:16px;max-height:calc(100vh - 32px);display:flex;flex-direction:column}.player-view .drill-list{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.player-view .drill-items{flex:1;min-height:0;overflow-y:auto;padding-right:4px}}.input{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 12px;font-size:.9rem;width:100%}.input:focus{outline:none;border-color:var(--accent)}select.input{width:auto}.btn{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 14px;font-size:.85rem;cursor:pointer;white-space:nowrap}.btn:hover{border-color:var(--accent)}.btn-primary{background:var(--accent);border-color:var(--accent-strong);color:#fff}.btn-primary:hover{background:var(--accent-strong)}.btn-sm{padding:5px 9px;font-size:.78rem}.btn-danger-ghost{color:var(--danger)}.btn-danger-ghost:hover{border-color:var(--danger)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.confirm-inline{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;background:#e5534b1f;border:1px solid var(--danger);border-radius:8px;padding:4px 8px}.confirm-label{font-size:.8rem;color:var(--danger)}.chip{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-dim);border-radius:999px;padding:5px 12px;font-size:.8rem;cursor:pointer}.chip-active{background:var(--accent);border-color:var(--accent-strong);color:#fff}.chip-row,.speed-control{display:flex;flex-wrap:wrap;gap:6px}.chip-row{margin:10px 0}.search-input{margin-bottom:4px}.drill-items{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.drill-item{width:100%;text-align:left;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:7px 10px;color:var(--text);cursor:pointer;display:flex;align-items:center;gap:8px}.drill-item:hover{border-color:var(--accent)}.drill-item-active{border-color:var(--accent);background:#4f8cff1f}.drill-item-name{font-weight:600;font-size:.88rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drill-item .badge{flex-shrink:0}.drill-item-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.75rem;color:var(--text-dim)}.badge{background:#4f8cff2e;color:var(--accent);border-radius:999px;padding:2px 8px;font-size:.72rem}.badge-dim{background:var(--bg-elevated);color:var(--text-dim)}.empty-note{color:var(--text-dim);font-size:.85rem;padding:8px 2px}.video-wrap{background:#000;border-radius:var(--radius);overflow:hidden;margin-bottom:12px}.video-wrap video{display:block;width:100%;max-height:60vh}.player-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.btn-play{min-width:90px}.seek-bar{flex:1;min-width:160px;accent-color:var(--accent)}.time-label{font-variant-numeric:tabular-nums;color:var(--text-dim);font-size:.85rem}.loop-toggle{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-dim);cursor:pointer}.mute-toggle{color:var(--text-dim)}.mute-on{border-color:var(--accent);color:var(--accent)}.drill-header h2{margin:0 0 6px;font-size:1.15rem}.drill-header-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;font-size:.82rem}.dim{color:var(--text-dim)}.drill-notes{background:var(--bg-elevated);border-left:3px solid var(--accent);border-radius:6px;padding:10px 12px;font-size:.88rem;white-space:pre-wrap}.error-text{color:var(--danger);font-size:.85rem}.ok-text{color:var(--ok);font-size:.85rem}.video-select-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.video-select-row label{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-dim)}.add-video-form{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;padding:12px;background:var(--bg-elevated);border-radius:var(--radius)}.add-video-form .input{flex:1;min-width:200px}.drill-form{margin-top:16px;border-top:1px solid var(--border);padding-top:14px}.drill-form h3{margin:0 0 12px;font-size:1rem}.mark-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}@media (max-width: 700px){.mark-row{grid-template-columns:1fr}}.mark-box{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.mark-box-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:.85rem;color:var(--text-dim)}.mark-box-body{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.input-time{width:90px;text-align:center}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.form-grid textarea{grid-column:1 / -1;resize:vertical}@media (max-width: 700px){.form-grid{grid-template-columns:1fr}}.form-actions{display:flex;gap:10px;align-items:center}.drill-row{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.drill-row-info{display:flex;flex-direction:column;gap:3px;min-width:0}.drill-row-actions{display:flex;gap:5px;flex-shrink:0}
