@font-face {
  font-family: "A J Kunheing E-T-M 05";
  src: url("/static/assets/fonts/A%20J%20Kunheing%20E-T-M%2005.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
:root { --primary: #168653; --primary-dark: #116b42; --primary-light: #e8f5ee; --line: #e2e8f0; --muted: #64748b; }
* { box-sizing: border-box; }
body { background: #f6f8fb; color: #16202c; }

/* Use the supplied A J Kunheing font first for Shan text.
   Noto Sans Myanmar is the fallback for any missing glyphs; preserve icon fonts. */
html[lang="shn"] body,
html[lang="shn"] body :not(i):not([class*="fa-"]):not(svg):not(path) {
  font-family: "A J Kunheing E-T-M 05", "Noto Sans Myanmar", "Noto Sans Thai", sans-serif !important;
}
.shan-text, .shan-font {
  font-family: "A J Kunheing E-T-M 05", "Noto Sans Myanmar", "Noto Sans Thai", sans-serif;
}
.navbar-brand { letter-spacing: -.02em; }
.brand-icon { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 14px; color: white; background: var(--primary); }
.brand-subtitle { font-size: .58rem; letter-spacing: .12em; }
.hero { display: flex; gap: 1rem; align-items: center; padding: 1.25rem; background: linear-gradient(120deg,#eaf7ef,#fff); border: 1px solid #d9eee1; border-radius: 1.25rem; }
.hero-symbol { width: 54px; height: 54px; flex: 0 0 54px; display: grid; place-items: center; border-radius: 18px; color: white; background: var(--primary); font-size: 1.35rem; }
.eyebrow { color: var(--primary); font-size: .7rem; font-weight: 800; letter-spacing: .14em; }
.panel { height: fit-content; background: #fff; border: 1px solid var(--line); border-radius: 1.25rem; box-shadow: 0 5px 24px rgba(15,23,42,.035); }
.form-control, .form-select { border-color: #dbe3ec; border-radius: .8rem; padding: .8rem .9rem; }
.form-control:focus, .form-select:focus { border-color: var(--primary); box-shadow: 0 0 0 .2rem rgba(22,134,83,.12); }
#textInput { line-height: 1.9; resize: vertical; min-height: 220px; font-size: 1.05rem; }
.counter { color: var(--muted); font-size: .8rem; font-variant-numeric: tabular-nums; }
.btn-primary { --bs-btn-bg: var(--primary); --bs-btn-border-color: var(--primary); --bs-btn-hover-bg: var(--primary-dark); --bs-btn-hover-border-color: var(--primary-dark); --bs-btn-active-bg: var(--primary-dark); --bs-btn-active-border-color: var(--primary-dark); }
#generateBtn { border-radius: .9rem; padding: .9rem; }
#generateBtn:disabled { opacity: .55; }
.success-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: var(--primary); background: var(--primary-light); }
.empty-state { padding: 1.5rem .5rem; text-align: center; color: #94a3b8; }
.empty-state i { font-size: 1.8rem; }
.history-item { padding: .8rem 0; border-bottom: 1px solid #eef2f6; }
.history-item:last-child { border-bottom: 0; }
.history-text { overflow-wrap: anywhere; font-size: .9rem; }
.history-date { font-size: .75rem; color: var(--muted); }
footer { color: var(--muted); }
@media (max-width: 575.98px) { .hero { align-items: flex-start; } .hero-symbol { width: 44px; height: 44px; flex-basis: 44px; border-radius: 14px; } }
.brand-logo { width: 46px; height: 46px; object-fit: contain; border-radius: 12px; }
.language-select { min-width: 112px; border-radius: .65rem; padding-top: .45rem; padding-bottom: .45rem; }


/* Polished responsive branding, About dialog and footer */
.hero-logo-wrap { overflow:hidden; background:#fff; border:1px solid #d8eee1; }
.hero-logo { width:100%; height:100%; object-fit:contain; padding:2px; }
.info-panel { background:linear-gradient(145deg,#fff,#f7fbf8); }
.site-footer { border-top:1px solid #dfe8e2; border-radius:1.2rem; background:linear-gradient(120deg,#fff,#edf8f1); padding:1.2rem; }
.footer-inner { display:flex; align-items:center; gap:.9rem; flex-wrap:wrap; }
.footer-logo { width:54px; height:54px; object-fit:contain; border-radius:14px; background:#fff; }
.site-footer strong { color:#173b2a; font-size:1rem; }
.site-footer p { color:var(--muted); font-size:.875rem; }
.site-footer small { color:#84918b; }
.about-modal { border:1px solid #dcebe1; border-radius:1.4rem; box-shadow:0 24px 80px rgba(15,50,30,.18); }
.about-logo { width:100px; height:100px; object-fit:contain; }
@media (max-width:575.98px) { .site-footer{padding:1rem}.footer-inner{align-items:flex-start}.footer-inner .btn{margin-left:0!important}.about-logo{width:84px;height:84px} }
