/* ============================================================
   ДИПЛОМ ГУ — фирменная тема сайта (панель, синие акценты ГАБДД-
   семейства, Orbitron-заголовок). Бумага живёт ТОЛЬКО внутри
   канваса самого диплома.
   ============================================================ */
:root{
  --bg:#0a0a14; --panel:rgba(18,18,30,0.96); --line:rgba(90,127,192,0.4);
  --txt:#e8e8f2; --mut:#9a95b0; --acc:#5a7fc0;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  background:var(--bg); color:var(--txt); font-family:'Exo 2',sans-serif; min-height:100vh;
  background-image:
    radial-gradient(ellipse 60% 40% at 20% 0%, rgba(60,90,160,0.16), transparent),
    radial-gradient(ellipse 50% 35% at 85% 15%, rgba(138,109,47,0.08), transparent);
}

/* ── панель (общий паттерн сайта) ── */
.panel{
  position:relative; max-width:760px; margin:34px auto 18px; padding:26px 30px 22px;
  background:var(--panel); backdrop-filter:blur(10px);
  border:1px solid var(--line); border-radius:16px;
  box-shadow:0 0 30px rgba(90,127,192,0.18); text-align:center;
}
.panel h1{
  font-family:'Orbitron',sans-serif; font-size:1.7rem; letter-spacing:2px;
  background:linear-gradient(135deg,#5a7fc0,#c9a44a); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; margin-bottom:10px;
}
.dip-sub{color:var(--mut); max-width:640px; margin:0 auto; line-height:1.55; font-size:0.93rem;}

.dip-screen{margin-top:16px;}
.dip-input-row{display:flex; gap:10px; margin:16px auto 8px; max-width:600px;}
.dip-input-row input{
  flex:1; padding:12px 16px; border-radius:12px; font-size:1rem;
  background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.18); color:var(--txt);
  font-family:'Exo 2',sans-serif;
}
.dip-input-row input:focus{outline:none; border-color:var(--acc); box-shadow:0 0 0 3px rgba(90,127,192,0.25);}
.dip-btn{
  cursor:pointer; border:1px solid rgba(255,255,255,0.22); border-radius:12px; padding:11px 20px;
  background:rgba(18,18,30,0.9); color:#e8e8f2;
  font-family:'Jura','Orbitron',sans-serif; font-weight:700; font-size:0.85rem; letter-spacing:0.5px; transition:.2s;
}
.dip-btn:hover{border-color:var(--acc); box-shadow:0 0 12px rgba(90,127,192,0.4);}
.dip-btn-primary{background:linear-gradient(135deg,#3a5b96,#5a7fc0); border-color:transparent;}
.dip-btn:disabled{opacity:0.55; cursor:wait;}
.dip-err{color:#e07a7a; min-height:22px; font-size:0.9rem; margin-top:4px;}
.dip-prog{display:flex; align-items:center; justify-content:center; gap:10px; color:var(--mut); margin-top:8px;}
.dip-spinner{
  width:18px; height:18px; border:3px solid rgba(90,127,192,0.3);
  border-top-color:var(--acc); border-radius:50%; animation:dipspin 0.8s linear infinite;
}
@keyframes dipspin{to{transform:rotate(360deg);}}

/* ── кафедры ── */
#scrFaculty h2{
  font-family:'Orbitron',sans-serif; color:var(--txt); letter-spacing:1px;
  margin:6px 0 8px; font-size:1.05rem;
}
#scrFaculty .dip-sub{margin-bottom:16px;}
.fac-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(215px,1fr)); gap:10px; text-align:left;}
.fac{
  cursor:pointer; text-align:left; padding:13px 15px; border-radius:14px;
  background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.14);
  color:var(--txt); transition:0.2s; font-family:'Exo 2',sans-serif;
}
.fac:hover:not(.closed){transform:translateY(-3px); border-color:var(--acc); box-shadow:0 0 14px rgba(90,127,192,0.3);}
.fac-icon{font-size:1.5rem; margin-bottom:5px;}
.fac-name{font-weight:600; font-size:0.92rem; line-height:1.3; margin-bottom:4px;}
.fac-sub{font-size:0.76rem; color:var(--mut);}
.fac.closed{opacity:0.42; cursor:not-allowed;}

/* ── экзамен ── */
.exam-head{display:flex; justify-content:space-between; align-items:baseline; margin:4px 0 8px; gap:12px; flex-wrap:wrap; text-align:left;}
.exam-part{color:var(--acc); font-family:'Orbitron',sans-serif; font-size:0.74rem; letter-spacing:1px;}
.exam-counter{color:var(--mut); font-size:0.85rem;}
.exam-progress{height:6px; background:rgba(255,255,255,0.07); border-radius:3px; overflow:hidden; margin-bottom:20px;}
.exam-bar{height:100%; background:linear-gradient(90deg,#3a5b96,#c9a44a); transition:width 0.3s; width:0;}
.exam-q{font-size:1.12rem; line-height:1.5; color:var(--txt); margin-bottom:18px; min-height:52px; text-align:left;}
.exam-opts{display:grid; gap:10px;}
.opt{
  cursor:pointer; text-align:left; padding:13px 16px; border-radius:12px; font-size:0.97rem;
  background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.16); color:var(--txt);
  transition:0.15s; font-family:'Exo 2',sans-serif;
}
.opt:hover:not(:disabled){border-color:var(--acc); box-shadow:0 0 10px rgba(90,127,192,0.25);}
.opt:disabled{cursor:default;}
.opt.right{border-color:#3f8a4f; background:rgba(63,138,79,0.18);}
.opt.wrong{border-color:#b03030; background:rgba(176,48,48,0.18);}

/* ── сцена диплома (вне панели, как lic-stage) ── */
.dip-stage{max-width:960px; margin:8px auto 0; padding:0 14px; text-align:center;}
.dip-wrap{margin:14px auto 0; max-width:920px;}
.dip-scale{transform-origin:top left; width:880px; margin:0 auto;}
.dip-scene{position:relative; width:880px; height:622px; perspective:1600px; cursor:pointer;}
.dip-face{
  position:absolute; inset:0; backface-visibility:hidden; border-radius:6px; overflow:hidden;
  box-shadow:0 18px 50px rgba(0,0,0,0.55), 0 0 26px rgba(90,127,192,0.15);
  transition:transform 0.7s cubic-bezier(0.4,0.2,0.2,1);
}
.dip-face canvas{position:absolute; inset:0; width:100%; height:100%; display:block;}
.dip-front{transform:rotateY(0);}
.dip-back{transform:rotateY(180deg);}
.dip-scene.flipped .dip-front{transform:rotateY(-180deg);}
.dip-scene.flipped .dip-back{transform:rotateY(0);}
.dip-actions{display:flex; gap:12px; justify-content:center; margin-top:20px; flex-wrap:wrap;}

/* ── SEO ── */
.dip-seo{max-width:720px; margin:38px auto 0; color:var(--mut); font-size:0.85rem; line-height:1.6; text-align:center; padding:0 16px;}

@media (max-width:640px){
  .dip-input-row{flex-direction:column;}
  .panel{margin:20px 10px 14px; padding:20px 16px;}
}

/* модалка выбора стороны */
.dip-modal{
  position:fixed; inset:0; z-index:100000; background:rgba(5,5,12,0.7);
  backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center;
}
.dip-modal-box{
  background:var(--panel); border:1px solid var(--line); border-radius:16px;
  padding:24px 26px; display:flex; flex-direction:column; gap:10px; min-width:260px;
  box-shadow:0 0 40px rgba(90,127,192,0.25);
}
.dip-modal-title{
  font-family:'Orbitron',sans-serif; font-size:0.85rem; letter-spacing:1px;
  color:var(--txt); text-align:center; margin-bottom:6px;
}
