/* ПРОЕКТ ЭХО — голый каркас: только то, без чего интерфейс не работает.
   Никаких цветов, шрифтов и декора. Оригинальный визуал: design/styles.original.css */

*{box-sizing:border-box}
body{margin:0;font:16px/1.4 system-ui,sans-serif;background:#fff;color:#000}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.shell{max-width:760px;margin:0 auto;padding:12px}
.hidden{display:none!important}

/* общие блоки */
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.panel{border:1px solid #000;padding:12px;margin:12px 0}
.status{border-left:3px solid #000;padding:6px 8px;margin:8px 0}
.note{font-size:14px}
.label{display:block;margin:12px 0 4px}
.rule{border-top:1px solid #000;margin:16px 0}
.row{display:flex;gap:8px;align-items:center}
.row>*{min-width:0}
.grow{flex:1}

/* поля и кнопки */
input:not([type=checkbox]):not([type=radio]),select{width:100%;padding:8px}
.btn{display:block;width:100%;padding:10px;margin-top:6px}
.row .btn{margin-top:0}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* шаги регистрации */
.steps{display:flex;gap:8px;margin:12px 0;font-size:12px}
.step{flex:1;min-width:0;overflow-wrap:anywhere;font-size:10px}
.step.active{font-weight:700;text-decoration:underline}
.step.done{opacity:.5}

/* экран ввода кода (ввод видимый, поле поверх экрана) */
.access-screen{position:fixed;inset:0;z-index:1000;background:#fff;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px}
.access-center{display:flex;flex-direction:column;align-items:center;gap:12px;transform:translateY(-40px)}
.access-output{min-height:1.5em;font-size:20px;letter-spacing:.2em;white-space:nowrap;max-width:90vw;overflow:hidden}
input.access-hidden-input{position:fixed;z-index:1002;left:50%;top:calc(50% + 40px);transform:translateX(-50%);width:min(82vw,420px);padding:8px;font-size:16px;text-align:center}

/* камера и снимки */
.camera-box{position:relative;aspect-ratio:4/3;border:1px solid #000;display:flex;align-items:center;justify-content:center;overflow:hidden}
.camera-box video,.camera-box img{width:100%;height:100%;object-fit:cover}
.camera-overlay{position:absolute;inset:10%;border:1px solid #000;pointer-events:none}
.capture-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.capture-card{border:1px solid #000;padding:6px;min-width:0}
.thumb{height:100px;border:1px solid #000;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:11px;text-align:center}
.thumb img{width:100%;height:100%;object-fit:cover}

/* вопросы и выбор роли */
.question{padding:8px 0;border-bottom:1px solid #000}
.choice{display:flex;align-items:flex-start;gap:8px;padding:8px;border:1px solid #000;margin:6px 0;cursor:pointer}
.choice input{width:auto;margin:3px 0 0}
.roles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.role{text-align:left;padding:10px;border:1px solid #000;background:#fff}
.role strong,.role small{display:block}
.role.selected{outline:3px solid #000;font-weight:700}
.role:disabled{opacity:.5;cursor:default}

/* позывной / дата рождения (барабаны) */
.wheels{display:grid;grid-template-columns:1fr 1.5fr 1.2fr;gap:8px;margin:12px 0}
.wheel-head{text-align:center;font-size:12px}
.wheel{height:200px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border:1px solid #000}
.wopt{display:block;width:100%;height:40px;border:0;border-bottom:1px solid #000;background:#fff;text-align:center}
.wopt.sel{background:#000;color:#fff;font-weight:700}
.birth-shown{text-align:center;min-height:20px;margin:8px 0}
.code-notice-value{font-size:20px;font-weight:700;letter-spacing:.12em;word-break:break-all}

/* досье: листается кликом, видна только активная страница */
/* обложка (в оригинале — картинка; здесь текстовая кнопка) */
.dossier-cover{display:block;width:100%;padding:28px 12px;border:1px solid #000;background:#fff}
.dossier-cover::after{content:"ОТКРЫТЬ ДОСЬЕ"}
.dossier-cover-hint{text-align:center;font-size:12px;margin:8px 0}
.dossier-book{border:1px solid #000;padding:8px}
.dossier-controls{display:flex;gap:8px;margin-top:8px}
.dossier-controls .btn{flex:1}
#dossier{cursor:pointer;-webkit-user-select:none;user-select:none}
.dossier-page{display:none;border:1px solid #000;padding:12px;min-height:300px}
.dossier-page.active{display:block}
.dossier-grid{display:grid;grid-template-columns:120px 1fr;gap:12px}
.portrait{width:120px;height:150px;border:1px solid #000;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:11px;text-align:center}
.portrait img{width:100%;height:100%;object-fit:cover}
.paper-line{display:flex;gap:8px;font-size:14px;align-items:flex-start}
.paper-line span{flex:0 0 auto;width:110px}
.paper-line strong{flex:1;min-width:0;overflow-wrap:break-word}
.paper-photos{display:flex;gap:8px;margin:8px 0}
.paper-photos figure{flex:1;margin:0;min-width:0}
.paper-photos img{display:block;width:100%;height:150px;object-fit:cover}
.flip-hint{text-align:center;font-size:12px}

/* лобби, команды, админка */
.card{border:1px solid #000;padding:8px;margin:8px 0}
.card.mine{border-width:3px}
.card strong,.card small{display:block}
.mrow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #000}
.mrow .btn{width:auto;margin-top:0}
.mrow small{display:block}
.admin-nav{display:flex;gap:8px;margin-bottom:12px}
.admin-nav button{flex:1}

@media(max-width:430px){
  .dossier-grid{grid-template-columns:96px 1fr}
  .portrait{width:96px;height:128px}
  .thumb{height:82px}
}

/* v0.8: лента чата — без этого длинная переписка растягивает страницу */
.chatlog{max-height:50vh;overflow-y:auto}
