:root{
  --black:#111;
  --gold:#c9a96e;
  --gold-dark:#9c763a;
  --paper:#f7f4ed;
  --white:#fff;
  --text:#1d1d1d;
  --muted:#6a665f;
  --danger:#a93535;
  --ok:#18734c;
  --border:#ded7ca;
}

*,*::before,*::after{box-sizing:border-box}
html{width:100%;max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{width:100%;max-width:100%;margin:0;overflow-x:hidden;font-family:Tahoma,Arial,sans-serif;background:var(--paper);color:var(--text);line-height:1.85}
img,svg,video,canvas{display:block;max-width:100%;height:auto}
a{color:inherit;overflow-wrap:anywhere}
button,input,textarea,select{font:inherit;max-width:100%}
input,textarea,select{min-width:0}

.topbar{width:100%;max-width:100%;background:var(--black);color:#fff;border-bottom:3px solid var(--gold);overflow:hidden}
.topbar-inner{width:100%;max-width:1160px;margin:auto;padding:22px 24px;display:flex;align-items:center;gap:18px;min-width:0}
.logo{width:78px;height:78px;object-fit:contain;flex:0 0 auto}
.brand{min-width:0;max-width:100%;flex:1}
.brand h1{margin:0;font-size:28px;line-height:1.45;overflow-wrap:anywhere;word-break:normal}
.brand p{margin:2px 0 0;color:#ddd;overflow-wrap:anywhere}
.version{font-size:12px;color:var(--gold);overflow-wrap:anywhere}

.container{width:100%;max-width:1040px;margin:30px auto;padding:0 18px;min-width:0}
.card{width:100%;max-width:100%;min-width:0;background:#fff;border:1px solid var(--border);border-radius:18px;padding:28px;box-shadow:0 12px 35px rgba(0,0,0,.06);margin-bottom:20px;overflow-wrap:anywhere}
.hero{text-align:right}
.hero h2{font-size:34px;line-height:1.45;margin:0 0 8px;overflow-wrap:anywhere}

.notice{width:100%;max-width:100%;padding:14px 16px;border-radius:12px;margin:14px 0;background:#fff7e6;border-right:4px solid var(--gold-dark);overflow-wrap:anywhere}
.notice.danger{background:#fff0f0;border-color:var(--danger);color:#7b2222}
.notice.ok{background:#edf9f2;border-color:var(--ok);color:#115b3c}

.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-width:0}
.field,.question{min-width:0;max-width:100%}
.field label,.question label{display:block;font-weight:700;margin-bottom:7px;overflow-wrap:anywhere}
.field input,.field textarea,.question textarea,.select{display:block;width:100%;max-width:100%;min-width:0;border:1px solid #cfc7ba;border-radius:10px;padding:12px 14px;font:inherit;background:#fff}
.field textarea,.question textarea{min-height:125px;resize:vertical}
.field input[type="file"]{padding:10px;overflow:hidden;white-space:normal}
.field input[type="file"]::file-selector-button{max-width:100%;margin-left:10px;border:0;border-radius:8px;padding:9px 12px;background:#f2ede4;color:#111;cursor:pointer}
.question{padding:20px;border:1px solid var(--border);border-radius:14px;background:#fff;margin-bottom:14px}
.q-number{display:inline-flex;width:34px;height:34px;border-radius:50%;background:var(--black);color:var(--gold);align-items:center;justify-content:center;margin-left:8px;font-weight:700;flex:0 0 auto;vertical-align:middle}

.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;min-width:0}
.btn{display:inline-block;max-width:100%;border:0;border-radius:10px;padding:12px 20px;background:var(--black);color:#fff;font-weight:700;cursor:pointer;text-decoration:none;text-align:center;white-space:normal;overflow-wrap:anywhere}
.btn.secondary{background:#fff;color:#111;border:1px solid var(--border)}
.btn.gold{background:var(--gold-dark)}
.muted{color:var(--muted);font-size:14px;overflow-wrap:anywhere}
.footer{width:100%;max-width:100%;text-align:center;background:#111;color:#ddd;padding:22px 16px;margin-top:35px;overflow-wrap:anywhere}
.progress{height:7px;background:#e8e1d5;border-radius:20px;overflow:hidden;margin:12px 0}
.progress>span{display:block;height:100%;background:var(--gold);width:0}

.admin-nav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px;min-width:0}
.table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table{width:100%;border-collapse:collapse;min-width:760px}
.table th,.table td{padding:11px;border-bottom:1px solid var(--border);text-align:right;vertical-align:top;overflow-wrap:anywhere}
.table th{background:#f3ede2}
.badge{display:inline-block;max-width:100%;padding:3px 9px;border-radius:20px;background:#eee;font-size:12px;overflow-wrap:anywhere}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;min-width:0}
.stat{min-width:0;background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px;overflow-wrap:anywhere}
.stat b{font-size:28px;display:block}
.honeypot{
  position:fixed!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  border:0!important;
  top:0!important;
  left:0!important;
}
.login{width:calc(100% - 24px);max-width:480px;margin:60px auto}
.file-note{font-size:13px;color:var(--muted);overflow-wrap:anywhere}

@media(max-width:760px){
  body{line-height:1.75}
  .topbar-inner{padding:16px 14px;gap:12px;align-items:center}
  .logo{width:54px;height:54px}
  .brand h1{font-size:21px;line-height:1.4}
  .brand p{font-size:13px;line-height:1.65}
  .version{font-size:11px}
  .container{margin:16px auto;padding:0 10px}
  .card{padding:18px 14px;border-radius:14px;margin-bottom:14px}
  .hero h2{font-size:25px}
  .grid,.stat-grid{grid-template-columns:minmax(0,1fr);gap:12px}
  .question{padding:15px 12px;border-radius:12px}
  .question label{line-height:1.7}
  .q-number{width:30px;height:30px;margin-left:6px}
  .field input,.field textarea,.question textarea,.select{padding:11px 12px;font-size:16px}
  .field textarea,.question textarea{min-height:112px}
  .notice{padding:12px 13px}
  .actions{align-items:stretch}
  .actions .btn{width:100%}
  .actions .muted{width:100%}
  .admin-nav .btn{flex:1 1 140px}
  .table{min-width:680px}
  .footer{padding:18px 12px;margin-top:24px;font-size:13px}
}

@media(max-width:420px){
  .topbar-inner{padding:13px 10px;gap:9px}
  .logo{width:46px;height:46px}
  .brand h1{font-size:18px}
  .brand p{font-size:12px}
  .version{font-size:10px}
  .container{padding:0 8px}
  .card{padding:15px 11px}
  .hero h2{font-size:22px}
  .question{padding:13px 10px}
  .q-number{width:28px;height:28px;font-size:13px}
  .field input[type="file"]::file-selector-button{display:block;width:100%;margin:0 0 8px}
}


/* v2.0.3 — mobile horizontal overflow hardening */
form, main, section, header, footer, .topbar-inner, .container, .card,
.grid, .field, .question, .notice, .actions, .brand {
  min-inline-size: 0;
  max-inline-size: 100%;
}
