:root{--brand: #6571ff;--brand-dark: #4c58e6;--brand-ink: #000865;--brand-tint: #e0e3ff;--danger: #ff3366;--danger-dark: #e62e5c;--success: #05a34a;--warning: #fbbc06;--bg: #f9fafb;--surface: #ffffff;--border: #e9ecef;--card-border: #f2f4f9;--shadow: rgba(183, 192, 206, .2);--text: #000000;--muted: #7987a1;--radius: .25rem}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Roboto,Helvetica,sans-serif;font-size:.875rem;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-weight:500}a{color:var(--brand)}.muted{color:var(--muted);font-size:.9em}.btn{display:inline-flex;align-items:center;gap:6px;padding:.469rem .8rem;border:1px solid var(--brand);border-radius:var(--radius);background:var(--brand);color:#fff;font:inherit;font-weight:400;line-height:1.5;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.btn:hover:not(:disabled){background:var(--brand-dark);border-color:var(--brand-dark)}.btn:disabled{opacity:.6;cursor:default}.btn--secondary{background:transparent;color:var(--brand);border-color:var(--brand)}.btn--secondary:hover:not(:disabled){background:var(--brand);border-color:var(--brand);color:#fff}.btn--danger{background:var(--danger);border-color:var(--danger)}.btn--danger:hover:not(:disabled){background:var(--danger-dark);border-color:var(--danger-dark)}.btn--small{padding:.25rem .5rem;font-size:.75rem}.page-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:24px}.page-header__title{margin:0;font-size:1.25rem;font-weight:500}.page-header__sub{margin:4px 0 0;color:var(--muted)}.card,.table-wrap{background:var(--surface);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:0 0 10px 0 var(--shadow)}.card-title{margin:0 0 1rem;font-size:.875rem;font-weight:500;text-transform:uppercase}.table-wrap{overflow-x:auto;padding:.5rem 1.5rem}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:.85rem .9375rem;text-align:start;vertical-align:middle;border-bottom:1px solid var(--border)}.table th{font-size:12px;font-weight:500;text-transform:uppercase;color:var(--muted)}.table [dir]{text-align:left}.table tbody tr:hover{background:var(--bg)}.table tbody tr:last-child td{border-bottom:none}.table__actions{white-space:nowrap;text-align:end!important}.table__actions .btn+.btn{margin-inline-start:8px}.empty{padding:48px;text-align:center;background:var(--surface);border:1px dashed var(--muted);border-radius:var(--radius);color:var(--muted)}.form{display:flex;flex-direction:column;gap:14px}.form__field{display:flex;flex-direction:column;gap:6px;font-weight:400;font-size:.875rem}.form__field input,.form__field select{padding:.469rem .8rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-weight:400}.form__field input:focus,.form__field select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 .2rem #6571ff26}.form__preview{max-width:160px;max-height:120px;border-radius:var(--radius);border:1px solid var(--border);object-fit:cover}.form__error{margin:0;color:var(--danger)}.form__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.modal{position:fixed;inset:0;display:grid;place-items:center;padding:16px;background:#00000080;z-index:1050}.modal__box{width:100%;max-width:480px;max-height:calc(100vh - 32px);overflow-y:auto;padding:0 1.5rem 1.5rem;background:var(--surface);border-radius:.3rem;box-shadow:0 0 10px 0 var(--shadow)}.modal__title{margin:0 -1.5rem 1.5rem;padding:1rem 1.5rem;border-bottom:1px solid var(--border);font-size:1rem;font-weight:500}.gate{min-height:100vh;display:grid;place-items:center;padding:16px}.gate__card{padding:32px;text-align:center;background:var(--surface);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:0 0 10px 0 var(--shadow)}.gate__title{margin:0 0 8px}.gate__text{margin:0 0 20px;color:var(--muted)}.page-header__actions{display:flex;flex-wrap:wrap;gap:8px}a.btn{text-decoration:none}.form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.form__fieldset{margin:0;padding:0;border:none}.form__fieldset legend{padding:0;margin-bottom:6px}.form__check{display:flex;align-items:center;gap:8px;font-size:.9em;font-weight:500;cursor:pointer}.form__check input{width:16px;height:16px;accent-color:var(--brand)}.roles{display:flex;flex-wrap:wrap;gap:6px}.role{padding:.25rem .65rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--muted);font:inherit;font-size:.75rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.role:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.role--active{background:var(--brand);border-color:var(--brand);color:#fff}.role--active:hover:not(:disabled){background:var(--brand-dark);color:#fff}.role:disabled{opacity:.55;cursor:default}.layout{min-height:100vh}.layout__page{display:flex;flex-direction:column;min-height:100vh;margin-inline-start:240px}.layout__content{flex:1;min-width:0;margin-top:60px;padding:25px}.layout__backdrop{display:none}.sidebar{position:fixed;inset-block:0;inset-inline-start:0;z-index:999;display:flex;flex-direction:column;width:240px;background:var(--surface);border-inline-end:1px solid var(--border);box-shadow:0 8px 10px 0 var(--shadow)}.sidebar__header{display:flex;align-items:center;flex:none;height:60px;padding:0 25px;border-bottom:1px solid var(--border)}.sidebar__brand{direction:ltr;color:var(--brand-ink);font-size:25px;font-weight:700;text-decoration:none}.sidebar__brand span{color:var(--brand);font-weight:300}.sidebar__body{flex:1;overflow-y:auto;padding:25px 25px 50px}.sidebar__section+.sidebar__section{margin-top:20px}.sidebar__category{margin-bottom:5px;color:var(--muted);font-size:11px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.sidebar__link{position:relative;display:flex;align-items:center;gap:14px;height:32px;color:var(--muted);font-size:14px;text-decoration:none;white-space:nowrap;transition:color .1s ease}.sidebar__link span{transition:transform .1s ease}.sidebar__link:hover,.sidebar__link.active{color:var(--brand)}.sidebar__link:hover .sidebar__icon,.sidebar__link.active .sidebar__icon{fill:#6571ff1a}.sidebar__link:hover span{transform:translate(1px)}.sidebar__link.active:before{content:"";position:absolute;inset-inline-start:-25px;width:3px;height:26px;background:var(--brand)}.sidebar__icon{flex:none;fill:#7987a10d}.navbar{position:fixed;top:0;inset-inline:240px 0;z-index:978;display:flex;align-items:center;gap:16px;height:60px;padding:0 25px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:-3px 0 10px 0 var(--shadow)}.navbar__toggler{display:none;place-items:center;width:34px;height:34px;padding:0;border:none;border-radius:var(--radius);background:transparent;color:var(--muted);cursor:pointer}.navbar__toggler:hover{color:var(--brand)}.navbar__title{color:var(--muted);font-size:13px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.navbar__user{margin-inline-start:auto;color:var(--muted)}@media(max-width:991px){.layout__page{margin-inline-start:0}.navbar{inset-inline-start:0}.navbar__toggler{display:grid}.sidebar{visibility:hidden;transform:translate(-100%);transition:transform .15s ease,visibility .15s}.layout--sidebar-open .sidebar{visibility:visible;transform:none}.layout--sidebar-open .layout__backdrop{position:fixed;inset:0;z-index:998;display:block;background:#0000004d}}@media(max-width:767px){.layout__content{padding:25px 15px}.navbar{padding:0 15px}}.games__poster{display:block;width:64px;height:48px;border-radius:var(--radius);object-fit:cover;background:var(--brand-tint)}.games__poster--empty{display:grid;place-items:center;color:var(--muted)}.games__title{display:flex;align-items:center;gap:8px;font-weight:500}.games__url{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.games__badge{padding:.35em .65em;border-radius:var(--radius);background:var(--warning);color:#000;font-size:.75em;font-weight:500;vertical-align:middle}.games__meta{white-space:nowrap}.grade-badge{display:inline-block;min-width:2.5rem;padding:.2rem .6rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.8125rem;font-weight:600;text-align:center;white-space:nowrap}.grade-preview{display:flex;align-items:center;gap:8px;font-size:.875rem}.users__search{width:280px;max-width:100%;padding:.469rem .8rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font:inherit}.users__search:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 .2rem #6571ff26}.users__name{display:flex;align-items:center;gap:8px;font-weight:500}.users__you{padding:.35em .65em;border-radius:var(--radius);background:var(--brand);color:#fff;font-size:.75em;font-weight:500}.users__date{white-space:nowrap}@media(max-width:720px){.page-header{flex-wrap:wrap}}.drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:150px;padding:16px;border:2px dashed var(--border);border-radius:var(--radius);background:var(--bg);text-align:center;font-weight:400;cursor:pointer}.drop input[type=file]{position:absolute;width:1px;height:1px;opacity:0}.drop:hover,.drop:focus-within,.drop--over{border-color:var(--brand);background:var(--brand-tint)}.drop--filled{border-style:solid}.drop__preview{max-width:100%;max-height:110px;margin-bottom:6px;border-radius:var(--radius);object-fit:contain}.drop__name{max-width:100%;overflow-wrap:anywhere}.upload{max-width:720px}.upload__card{padding:1.5rem;background:var(--surface);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:0 0 10px 0 var(--shadow)}.upload__files{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.upload__status{margin:0;color:var(--brand);font-weight:500}.upload code{padding:1px 5px;border-radius:var(--radius);background:var(--brand-tint);font-size:.9em}.upload-audio{max-width:720px}.upload-audio__card{padding:1.5rem;background:var(--surface);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:0 0 10px 0 var(--shadow)}.upload-audio__player{width:100%}.upload-audio__status{margin:0;color:var(--brand);font-weight:500}.audio-list{margin-top:32px}.audio-list__heading{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:1.1rem}.audio-list__total{padding:.35em .65em;border-radius:var(--radius);background:var(--brand);color:#fff;font-size:.75rem;font-weight:500}.audio-list__items{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}.audio-item{background:var(--surface);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:0 0 10px 0 var(--shadow);transition:border-color .15s,box-shadow .15s}.audio-item:hover{border-color:var(--brand-tint)}.audio-item:has(details[open]){border-color:var(--brand);box-shadow:0 4px 16px #6571ff1f}.audio-item__head{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;list-style:none}.audio-item__head::-webkit-details-marker{display:none}.audio-item__icon{display:grid;flex:none;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--brand-tint);color:var(--brand)}.audio-item__main{display:flex;flex:1;flex-direction:column;min-width:0}.audio-item__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-item__meta{color:var(--muted);font-size:.82rem}.audio-item__count{flex:none;padding:.35em .65em;border-radius:var(--radius);background:var(--bg);color:var(--muted);font-size:.8rem;font-weight:500}.audio-item__count--words{background:#fbbc0626;color:#8a6700}.audio-item__chevron{flex:none;color:var(--muted);transition:transform .15s}details[open] .audio-item__chevron{transform:rotate(90deg);color:var(--brand)}.audio-item__body{display:flex;flex-direction:column;gap:14px;padding:14px 16px 16px;border-top:1px solid var(--border)}.timeline{display:flex;flex-direction:column;gap:6px}.timeline__row{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:8px}.timeline__label{color:var(--muted);font-size:.75rem;font-weight:500}.timeline__track{position:relative;height:30px;border-radius:var(--radius);background:var(--bg);overflow:hidden}.timeline__seg{position:absolute;top:4px;bottom:4px;display:grid;place-items:center;padding:0;overflow:hidden;border:none;border-right:2px solid var(--surface);border-radius:4px;font:inherit;font-size:.72rem;font-weight:600;white-space:nowrap;cursor:pointer;transition:background .1s,color .1s}.timeline__track--syllable .timeline__seg{background:#d3d7ff;color:var(--brand-ink)}.timeline__track--syllable .timeline__seg:nth-child(2n){background:#bcc2ff}.timeline__track--word .timeline__seg{background:#ffe7a8;color:#7a5c00}.timeline__track--word .timeline__seg:nth-child(2n){background:#ffd876}.timeline__track .timeline__seg--active,.timeline__track .timeline__seg--active:nth-child(2n){background:var(--brand);color:#fff}.audio-section{display:flex;flex-direction:column;gap:10px}.audio-section__title{margin:0;color:var(--muted);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.words{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.words__actions{display:flex;flex-wrap:wrap;gap:8px}.words__spacer{flex:1}.word{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--border);border-inline-start:4px solid #ffd876;border-radius:var(--radius);background:var(--surface);transition:border-color .1s,background .1s}.word--active{border-color:var(--brand);background:var(--brand-tint)}.word--invalid{border-inline-start-color:var(--danger)}.word__index{width:20px;color:var(--muted);font-size:.75rem;text-align:end}.word__text{flex:1;min-width:120px}.word input{padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font:inherit;font-variant-numeric:tabular-nums}.word input:focus{outline:none;border-color:var(--brand)}.word__error{flex-basis:100%;padding-inline-start:28px;color:var(--danger);font-size:.8rem}.time-field{display:inline-flex;align-items:center;gap:2px}.time-field input{width:76px}.icon-btn{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--muted);font-size:.85rem;cursor:pointer}.icon-btn:hover:not(:disabled){border-color:var(--border);background:var(--bg);color:var(--brand)}.icon-btn--danger:hover:not(:disabled){color:var(--danger)}.icon-btn:disabled{opacity:.4;cursor:default}.syllables{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin:0;padding:0;list-style:none}.syllable{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color .1s,background .1s}.syllable--active{border-color:var(--brand);background:var(--brand-tint)}.syllable__index{position:absolute;top:4px;inset-inline-start:6px;color:var(--muted);font-size:.68rem}.syllable__text{font-size:1.15rem;font-weight:500;color:var(--brand-ink)}.syllable__ipa{color:var(--muted);font-size:.8rem}.syllable__time{color:var(--muted);font-size:.72rem}
