.visa-layout{padding:22px;display:grid;gap:18px}
.passport-hero{display:grid;grid-template-columns:310px 1fr;gap:22px;align-items:stretch}
.passport-cover{
  min-height:360px;
  border-radius:var(--radius-lg);
  padding:30px;
  background:linear-gradient(145deg,#073b4c,var(--primary) 55%,#023020);
  color:#f5d27a;
  box-shadow:var(--shadow);
  display:grid;
  align-content:center;
  justify-items:center;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.passport-cover:before{content:'';position:absolute;inset:18px;border:2px solid rgba(245,210,122,.45);border-radius:22px}
.passport-cover:after{content:'';position:absolute;width:220px;height:220px;border-radius:50%;border:1px solid rgba(245,210,122,.24);top:70px}
.passport-emblem{font-size:92px!important;position:relative;z-index:1}
.passport-cover h2,.passport-cover p,.passport-cover small{position:relative;z-index:1}
.passport-cover h2{text-transform:uppercase;letter-spacing:.12em;margin:18px 0 8px}
.passport-cover p{margin:0;font-weight:700}
.passport-cover small{margin-top:40px;letter-spacing:.16em;text-transform:uppercase}
.hero-copy{
  border-radius:var(--radius-lg);
  padding:32px;
  background:
    linear-gradient(135deg,rgba(0,105,92,.92),rgba(0,137,123,.7)),
    url('https://images.unsplash.com/photo-1436491865332-7a61a109cc05?auto=format&fit=crop&w=1400&q=80') center/cover;
  color:white;
  display:grid;
  align-content:center;
  box-shadow:var(--shadow);
}
.hero-copy h2{font-size:2.3rem;margin:8px 0 12px}
.hero-copy p{max-width:760px;line-height:1.6}
.official-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.official-links a{
  color:white;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.45);
  border-radius:999px;
  padding:10px 14px;
  background:rgba(255,255,255,.14);
}
.visa-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.passport-page{position:relative;background:linear-gradient(90deg,var(--surface),var(--surface-2));min-height:360px}
.passport-page:before{content:'';position:absolute;left:50%;top:0;bottom:0;border-left:1px dashed var(--border)}
.stamp{
  display:inline-block;
  transform:rotate(-6deg);
  border:3px solid var(--danger);
  color:var(--danger);
  border-radius:12px;
  padding:8px 12px;
  font-weight:900;
  letter-spacing:.08em;
  margin-bottom:8px;
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.form-grid label{display:grid;gap:6px;color:var(--muted);font-size:.9rem}
.requirement-result{display:grid;gap:10px}
.requirement-result.empty{color:var(--muted)}
.visa-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:12px}
.visa-card strong{display:block;margin-bottom:5px}
.visa-card ul{margin:8px 0 0;padding-left:20px}
.warning-card{border-color:var(--accent);background:rgba(255,179,0,.12)}
.document-section{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.doc-list{display:grid;gap:10px}
.doc-list label{display:flex;gap:10px;align-items:flex-start}
.notes-box{
  width:100%;
  min-height:210px;
  border:1px solid var(--border);
  border-radius:18px;
  padding:14px;
  background:var(--surface-2);
  color:var(--text);
  resize:vertical;
}
.note-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.timeline div{background:var(--surface-2);border:1px solid var(--border);border-radius:18px;padding:14px}
.timeline span{display:inline-block;background:var(--primary);color:white;border-radius:999px;padding:6px 10px;font-weight:700;margin-bottom:8px}
.timeline p{margin:0;color:var(--muted);line-height:1.45}
.disclaimer{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}
.disclaimer .material-icons{color:var(--accent)}

@media(max-width:980px){
  .passport-hero,.visa-grid,.document-section{grid-template-columns:1fr}
  .timeline{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .visa-layout{padding:12px}
  .form-grid,.timeline,.note-actions{grid-template-columns:1fr}
  .hero-copy h2{font-size:1.7rem}
  .passport-cover{min-height:280px}
}
