/* TCTT UI — own namespace. Visual language adapted from PBPL Vĩnh Phú, no PBPL mutations. */
*{box-sizing:border-box}html{scroll-behavior:smooth}body.tctt-site{margin:0;background:#fff;color:#173553;font:14px/1.55 Arial,'Segoe UI',sans-serif}body.tctt-site a{text-decoration:none;color:inherit}body.tctt-site button,body.tctt-site input,body.tctt-site select,body.tctt-site textarea{font:inherit}body.tctt-site button{cursor:pointer}body.tctt-site .shell{max-width:1250px;padding:0 20px;margin:0 auto}.topline{height:5px;background:#303648}.header{background:#fff}.header-in{min-height:98px;display:flex;align-items:center;justify-content:space-between;gap:20px}.identity{display:flex;align-items:center;gap:16px}.identity img{height:69px;width:69px;object-fit:contain}.identity span{display:flex;flex-direction:column}.identity small{color:#2b4665;font-size:11px;font-weight:800}.identity strong{font-size:29px;line-height:1.2;color:#cf1225}.identity em{font-size:12px;font-style:normal;font-weight:700;color:#1e4d7b}.head-aside{font-size:11px;color:#2c648e;font-weight:800;text-align:right}.navbar{border-top:1px solid #e6edf3;border-bottom:2px solid #e31c2b}.navlinks{display:flex;gap:2px;overflow-x:auto;scrollbar-width:thin}.navlinks a{display:flex;align-items:center;height:45px;padding:0 14px;font-size:11px;font-weight:800;white-space:nowrap}.navlinks a:hover{color:#d41728;background:#fff8f8}.announcement{display:flex;align-items:center;gap:16px;background:#f3f7fb;border:1px solid #e4ebf1;border-radius:5px;padding:11px 17px;margin-top:14px;font-size:12px}.announcement strong{color:#d2182b;white-space:nowrap}.hero{display:grid;grid-template-columns:1.7fr 1fr;gap:20px;margin-top:14px}.hero-main{border-radius:7px;background:linear-gradient(114deg,#eaf4fb,#fff0f1);padding:37px 35px 32px;min-height:273px}.eyebrow{color:#ba1728;font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase}.hero-main h1{font-size:clamp(25px,2.9vw,38px);line-height:1.2;color:#cb1125;margin:13px 0}.hero-main p{font-size:13px;color:#415c75;max-width:570px}.primary-btn{display:inline-block;background:#d80f24;color:#fff!important;border:0;border-radius:6px;padding:10px 18px;font-size:13px;font-weight:800;margin-top:13px;cursor:pointer}.contact{border:1px solid #e2e9f0;background:#fff;border-radius:6px;padding:20px;box-shadow:0 2px 15px #002b4a07}.contact h2{font-size:15px;margin:0 0 16px;color:#173b5c;border-bottom:2px solid #e9eef4;padding-bottom:9px}.contact p{font-size:12px;margin:7px 0;color:#425a71}.contact a{color:#005f9f!important;overflow-wrap:anywhere}.contact small{display:block;color:#7d8fa1;margin-top:10px}.section{padding:28px 0 5px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}.section-head h2,.section-head h1{border-left:4px solid #d80c20;padding-left:10px;color:#183c5e;font-size:18px;line-height:1.35;margin:0}.section-head small{color:#698196;font-size:11px}.categories{display:flex;gap:6px;overflow-x:auto;padding-bottom:10px;scrollbar-width:thin}.chip{border-radius:20px;background:#f1f4f8;padding:8px 13px;font-size:11px;white-space:nowrap;color:#425b73!important}.chip.active,.chip:hover{background:#ce1425;color:#fff!important}.filters{display:flex;gap:9px;align-items:center;margin:12px 0 17px;flex-wrap:wrap}.filters input,.filters select{border:1px solid #d4e0e9;background:#fff;border-radius:5px;height:37px;padding:0 12px;min-width:230px}.filters input{flex:1}.filters button,.review-panel button{border:none;border-radius:5px;background:#d3182b;color:#fff;padding:9px 16px;font-weight:700}.filters a{color:#5d7488!important;font-size:12px}.doc-list{border:1px solid #e2eaf1;border-radius:6px;overflow:hidden}.doc-columns,.doc-row{display:grid;grid-template-columns:160px minmax(0,1fr) 138px 124px;gap:18px;align-items:center}.doc-columns{background:#f1f6fa;color:#3c546a;font-size:10px;font-weight:800;padding:12px 16px}.doc-row{border-top:1px solid #e5ebf1;padding:13px 16px;min-height:77px}.doc-num{font-size:12px;font-weight:800;color:#af1426}.doc-info{min-width:0}.doc-info a{font-size:13px;font-weight:800;color:#1a415f}.doc-info a:hover{color:#ce1528;text-decoration:underline}.doc-info small{display:block;margin-top:5px;font-size:11px;color:#75899a}.doc-date,.state{font-size:12px;color:#677e90}.detail-link{color:#c71d2f!important;font-weight:800;font-size:12px}.empty{text-align:center;padding:44px 24px;color:#637b8b;background:#fafcfe}.empty p{margin:8px 0 0}.pagination{display:flex;gap:20px;justify-content:center;align-items:center;padding:21px;color:#5e7387;font-size:12px}.pagination a{color:#c81728!important}.steps,.resources{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.steps>div,.resources>div{border:1px solid #e5ebf2;background:#fff;border-radius:6px;padding:20px}.steps b{display:block;font-size:26px;color:#d41b2f}.steps strong,.resources strong{font-size:14px;color:#213f60}.steps p,.resources p{font-size:12px;color:#63788d}.resources{grid-template-columns:repeat(2,1fr)}footer{margin-top:35px;padding:24px 0;border-top:1px solid #e2e9ef;background:#fafbfc}.footer-in{display:flex;justify-content:space-between;gap:20px;color:#4e667e;font-size:12px}.footer-in strong{color:#d51629}.detail{padding-top:28px!important}.back{color:#c81b2a!important;font-size:12px;font-weight:800}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:23px;margin-top:24px}.detail h1{font-size:26px;color:#1c3c5c;line-height:1.35}.facts{display:grid;grid-template-columns:155px 1fr;border-top:1px solid #e6edf3;padding-top:14px;gap:11px 15px}.facts dt{color:#698096;font-size:12px}.facts dd{margin:0;font-weight:700;color:#28435d}.pdf-frame{border:1px solid #d8e2eb;display:block;width:100%;min-height:670px;margin:25px 0 5px}.detail-side{padding:20px;background:#f6f9fc;border:1px solid #e7edf2;border-radius:6px;align-self:start}.detail-side h2{font-size:15px}.detail-side p{font-size:12px}.admin-main{padding-top:26px!important}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:16px 0 20px}.stats>div{border:1px solid #e2ebf3;border-radius:6px;padding:16px}.stats strong{font-size:26px;color:#c81728;display:block}.stats small{color:#667d91}.help{font-size:11px;color:#698399}.edit-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;margin:18px 0}.form-panel,.review-panel{padding:22px;border-radius:7px;border:1px solid #e2e9f0;background:#fff}.edit-form label{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;font-size:12px;color:#375673;font-weight:700}.edit-form textarea,.edit-form input,.edit-form select{width:100%;border:1px solid #cfdce7;border-radius:5px;padding:10px;color:#1c405d;font-size:13px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 15px}.form-actions{display:flex;gap:15px;align-items:center}.form-actions .primary-btn{margin:0}.form-actions a{color:#5c7083!important}.review-panel{align-self:start;background:#f9fbfe}.review-panel h2{color:#20435f;font-size:15px}.review-panel form{margin:18px 0}.review-panel .check{font-size:12px;line-height:1.5;display:flex;align-items:flex-start;gap:8px;margin:11px 0}.review-panel .danger{background:#a22525}.review-box{border-top:1px solid #dae4ee;margin-top:20px}.review-box p{font-size:12px;color:#637c92}
@media(max-width:900px){.hero{grid-template-columns:1.25fr 1fr}.head-aside{display:none}.doc-columns,.doc-row{grid-template-columns:130px minmax(0,1fr) 105px}.doc-columns span:last-child,.doc-row>div:last-child{display:none}.steps{grid-template-columns:1fr 1fr}.detail-layout,.edit-layout{grid-template-columns:1fr}}
@media(max-width:650px){body.tctt-site .shell{padding:0 14px}.identity img{width:51px;height:51px}.identity strong{font-size:18px}.identity small{font-size:9px}.identity em{font-size:10px}.header-in{min-height:83px}.navlinks a{height:40px;font-size:10px;padding:0 10px}.announcement{display:block}.announcement strong{display:block}.hero{display:block}.hero-main{padding:26px 20px;min-height:220px}.hero-main h1{font-size:26px}.contact{margin-top:12px}.section-head{display:block}.section-head small{display:block;margin-top:7px}.doc-columns{display:none}.doc-row{grid-template-columns:1fr;gap:5px}.doc-row>div:last-child{display:block}.doc-num,.doc-date{font-size:11px}.steps,.resources,.stats,.form-grid{grid-template-columns:1fr}.filters input{min-width:0;width:100%}.filters select{min-width:0;flex:1}.footer-in{display:block}.detail h1{font-size:21px}.pdf-frame{min-height:480px}.facts{grid-template-columns:105px 1fr}.review-panel{padding:16px}}

/* TCTT TYPOGRAPHY – Times New Roman, 2026-11-03; isolated Develop only. */
body.tctt-site {
  font-family: "Times New Roman", "Liberation Serif", "Noto Serif", serif;
  font-size: 15px;
  line-height: 1.55;
}
body.tctt-site button,
body.tctt-site input,
body.tctt-site select,
body.tctt-site textarea {
  font-family: "Times New Roman", "Liberation Serif", "Noto Serif", serif;
}
body.tctt-site .identity strong { font-size: 29px; }
body.tctt-site .navlinks a { font-size: 13px; }
body.tctt-site .announcement { font-size: 14px; }
body.tctt-site .doc-info a { font-size: 15px; }
body.tctt-site .doc-info small,
body.tctt-site .contact p,
body.tctt-site .detail-side p,
body.tctt-site .steps p,
body.tctt-site .resources p { font-size: 14px; }
body.tctt-site .chip,
body.tctt-site .doc-num,
body.tctt-site .doc-date,
body.tctt-site .state,
body.tctt-site .detail-link { font-size: 13px; }
@media(max-width:650px) {
  body.tctt-site .identity strong { font-size: 20px; }
  body.tctt-site .navlinks a { font-size: 12px; }
}

/* Develop UI review 2026-11-03: guide at top left, contact card unchanged. */
body.tctt-site .guide-panel{
  border:1px solid #e2e9f0;
  border-radius:6px;
  padding:20px 22px;
  background:#f4f8fc;
}
body.tctt-site .guide-panel h2{
  color:#173b5c;
  font-size:17px;
  margin:0 0 14px;
  padding-bottom:9px;
  border-bottom:2px solid #e1eaf3;
}
body.tctt-site .guide-steps{display:grid;gap:10px}
body.tctt-site .guide-step{
  display:grid;
  grid-template-columns:33px minmax(0,1fr);
  align-items:start;
  gap:12px;
  border-radius:5px;
  background:#fff;
  border:1px solid #e5ecf3;
  padding:10px 12px;
}
body.tctt-site .guide-step b{
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#fbebed;
  color:#ca1429;
  font-size:13px;
  height:32px;
  width:32px;
}
body.tctt-site .guide-step strong{font-size:15px;color:#183d61;line-height:1.3}
body.tctt-site .guide-step p{font-size:14px;color:#526b7e;margin:4px 0}
body.tctt-site .guide-step a{font-size:13px}
@media(max-width:650px){
  body.tctt-site .guide-panel{padding:16px}
  body.tctt-site .guide-panel h2{font-size:16px}
  body.tctt-site .guide-step{padding:10px}
}

/* Recent-only home and paginated dedicated catalog */
body.tctt-site .recent-all{
    color:#c5192b!important;
    font-size:14px;
    font-weight:700;
    white-space:nowrap;
    text-decoration:none;
}
body.tctt-site .recent-all:hover{text-decoration:underline;}
@media(max-width:650px){
  body.tctt-site .recent-all{display:inline-block;margin-top:8px;}
}

/* Compact PDF-first document view on TCTT Develop, 2026-11-04. */
body.tctt-detail-page .detail-compact{padding-top:11px!important}
body.tctt-detail-page .detail-toolbar{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;margin:0 0 8px;min-height:28px;flex-wrap:wrap;
}
body.tctt-detail-page .detail-toolbar .back{font-size:14px;font-weight:700}
body.tctt-detail-page .detail-open{font-size:14px;color:#c81728!important;font-weight:700;white-space:nowrap}
body.tctt-detail-page .detail-open:hover{text-decoration:underline}
body.tctt-detail-page .detail-heading{margin:0 0 8px}
body.tctt-detail-page .detail-category{
  display:inline-block;text-transform:uppercase;font-size:12px;
  font-weight:700;color:#c81728;line-height:1.2;
}
body.tctt-detail-page .detail-heading h1{
  font-size:clamp(20px,2vw,24px);line-height:1.22;
  margin:3px 0 0;color:#173553;font-weight:700;
}
body.tctt-detail-page .detail-metadata{
  margin:0 0 10px;padding:9px 12px;
  display:grid;grid-template-columns:1.2fr 1.0fr 1.45fr 1fr 1fr;
  gap:6px 15px;align-items:start;
  border:1px solid #e0e8f0;border-radius:5px;background:#f6f9fc;
}
body.tctt-detail-page .detail-meta{min-width:0;margin:0}
body.tctt-detail-page .detail-meta dt{
  font-size:12px;color:#667d91;margin:0 0 2px;line-height:1.2;
}
body.tctt-detail-page .detail-meta dd{
  font-size:14px;color:#163c5c;font-weight:700;
  margin:0;line-height:1.3;overflow-wrap:anywhere;
}
body.tctt-detail-page .detail-document{margin:0;padding:0}
body.tctt-detail-page .pdf-frame{
  display:block;width:100%;margin:0;
  height:max(520px,calc(100vh - 290px));
  border:1px solid #d7e3ed;border-radius:3px;
}
body.tctt-detail-page .detail-external{
  border:1px solid #dce8f2;padding:14px 18px;background:#f6f9fc;
  color:#284d69;border-radius:5px;
}
body.tctt-detail-page footer{margin-top:16px}
@media(max-width:900px){
  body.tctt-detail-page .detail-metadata{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 12px}
  body.tctt-detail-page .pdf-frame{height:max(530px,calc(100vh - 340px))}
}
@media(max-width:650px){
  body.tctt-detail-page .detail-compact{padding-top:10px!important}
  body.tctt-detail-page .detail-toolbar{margin-bottom:7px}
  body.tctt-detail-page .detail-heading h1{font-size:20px}
  body.tctt-detail-page .detail-metadata{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;gap:9px}
  body.tctt-detail-page .detail-meta dd{font-size:13px}
  body.tctt-detail-page .pdf-frame{height:calc(100dvh - 260px);min-height:420px}
}

/* 2026-11-04: viewport-first reader, metadata in right vertical sidebar.
 * Scope to detail only; preserve homepage, catalog and admin layout. */
body.tctt-reader-page{
  height:100vh;
  height:100dvh;
  min-height:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
body.tctt-reader-page .topline{height:3px;flex:0 0 3px}
body.tctt-reader-page .shell{width:100%;max-width:1460px;padding-left:16px;padding-right:16px}
body.tctt-reader-page .header{flex:none}
body.tctt-reader-page .header-in{min-height:56px;height:56px;justify-content:flex-start}
body.tctt-reader-page .identity{gap:10px}
body.tctt-reader-page .identity img{width:43px;height:43px}
body.tctt-reader-page .identity small{font-size:10px;line-height:1.2}
body.tctt-reader-page .identity strong{font-size:21px;line-height:1.15}
body.tctt-reader-page .navbar{flex:none;border-bottom-width:2px}
body.tctt-reader-page .navlinks a{
  height:34px;padding:0 12px;font-size:12px;
}
body.tctt-reader-page .reader-main{
  flex:1;min-height:0;display:flex;flex-direction:column;
  padding-top:7px;padding-bottom:9px;
}
body.tctt-reader-page .reader-titlebar{
  flex:none;display:flex;gap:12px;align-items:center;
  justify-content:space-between;margin:0 0 7px;
}
body.tctt-reader-page .reader-heading{min-width:0;flex:1}
body.tctt-reader-page .reader-category{
  display:inline-block;font-size:11px;color:#c81728;
  font-weight:700;text-transform:uppercase;line-height:1.15
}
body.tctt-reader-page .reader-heading h1{
  margin:1px 0 0;font-size:18px;font-weight:700;
  color:#193c60;line-height:1.2;overflow-wrap:anywhere
}
body.tctt-reader-page .reader-actions{
  flex:none;display:flex;align-items:center;
  gap:14px;white-space:nowrap;
}
body.tctt-reader-page .reader-actions a{
  font-size:13px;font-weight:700;color:#bb1729!important
}
body.tctt-reader-page .reader-actions a:hover{text-decoration:underline}
body.tctt-reader-page .reader-grid{
  min-height:0;min-width:0;flex:1;
  display:grid;grid-template-columns:minmax(0,1fr) 242px;
  gap:12px;align-items:stretch
}
body.tctt-reader-page .reader-file{min-height:0;min-width:0;height:100%}
body.tctt-reader-page .reader-file .pdf-frame{
  box-sizing:border-box;display:block;
  height:100%;width:100%;min-height:0;
  margin:0;border:1px solid #ccd9e6;
  border-radius:3px;background:#353535
}
body.tctt-reader-page .reader-sidebar{
  box-sizing:border-box;min-width:0;min-height:0;
  overflow-y:auto;scrollbar-width:thin;
  border:1px solid #dce6f0;border-radius:5px;
  padding:13px 14px;background:#f8fafc
}
body.tctt-reader-page .reader-sidebar h2{
  margin:0 0 4px;font-size:14px;font-weight:800;
  color:#193b5c
}
body.tctt-reader-page .reader-facts{margin:0}
body.tctt-reader-page .reader-facts>div{
  padding:10px 0;border-bottom:1px solid #e1e8ef
}
body.tctt-reader-page .reader-facts>div:last-child{border:0}
body.tctt-reader-page .reader-facts dt{
  margin:0 0 3px;color:#698197;font-size:12px;line-height:1.25
}
body.tctt-reader-page .reader-facts dd{
  margin:0;color:#193b5b;font-size:14px;
  line-height:1.35;font-weight:700;overflow-wrap:anywhere
}
body.tctt-reader-page .reader-link-only{
  border:1px solid #dce6f0;border-radius:5px;
  padding:18px;background:#f7f9fc
}
body.tctt-reader-page .reader-link-only a{
  color:#c81728!important;text-decoration:underline;font-weight:700
}
body.tctt-reader-page footer{display:none}
@media(max-width:800px){
  body.tctt-reader-page .reader-grid{grid-template-columns:minmax(0,1fr) 205px;gap:8px}
  body.tctt-reader-page .reader-sidebar{padding:10px}
  body.tctt-reader-page .reader-heading h1{font-size:17px}
}
@media(max-width:650px){
  body.tctt-reader-page{height:auto;min-height:100dvh;overflow:visible;display:block}
  body.tctt-reader-page .header-in{min-height:52px;height:52px}
  body.tctt-reader-page .identity img{height:38px;width:38px}
  body.tctt-reader-page .identity strong{font-size:17px}
  body.tctt-reader-page .identity small{font-size:9px}
  body.tctt-reader-page .navlinks a{height:32px;font-size:11px;padding:0 9px}
  body.tctt-reader-page .reader-main{display:block;padding-top:7px}
  body.tctt-reader-page .reader-titlebar{display:block;margin-bottom:7px}
  body.tctt-reader-page .reader-heading h1{font-size:17px;line-height:1.22}
  body.tctt-reader-page .reader-actions{justify-content:space-between;margin-top:5px}
  body.tctt-reader-page .reader-grid{display:flex;flex-direction:column}
  body.tctt-reader-page .reader-file{height:calc(100dvh - 195px);min-height:400px}
  body.tctt-reader-page .reader-sidebar{overflow:visible;margin-top:10px}
  body.tctt-reader-page .reader-facts{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 10px
  }
  body.tctt-reader-page .reader-facts>div{padding:8px 0}
}

/* 2026-11-04 Common TCTT header dimensions and branding on all pages */
body.tctt-site .topline{height:3px}
body.tctt-site .header-in{
  height:60px;min-height:60px;gap:16px
}
body.tctt-site .identity{gap:11px;min-width:0}
body.tctt-site .identity img{width:45px;height:45px;flex:0 0 45px}
body.tctt-site .identity small{
  font-size:10px;line-height:1.1;white-space:nowrap
}
body.tctt-site .identity strong{
  font-size:21px;line-height:1.16;white-space:nowrap
}
body.tctt-site .identity em{
  font-size:10px;line-height:1.2;white-space:nowrap
}
body.tctt-site .head-aside{font-size:10px;line-height:1.23;margin:0}
body.tctt-site .navlinks a{height:35px;font-size:12px;padding:0 12px}
body.tctt-reader-page .header-in{height:60px;min-height:60px}
body.tctt-reader-page .navlinks a{height:35px}
@media(max-width:650px){
  body.tctt-site .header-in{height:56px;min-height:56px}
  body.tctt-site .identity{gap:9px}
  body.tctt-site .identity img{width:41px;height:41px;flex-basis:41px}
  body.tctt-site .identity small{font-size:9px}
  body.tctt-site .identity strong{font-size:17px}
  body.tctt-site .identity em{font-size:9px}
  body.tctt-site .navlinks a{height:33px;font-size:11px;padding:0 9px}
  body.tctt-reader-page .header-in{height:56px;min-height:56px}
  body.tctt-reader-page .navlinks a{height:33px}
}
@media(max-width:410px){
  body.tctt-site .identity strong{font-size:15px}
  body.tctt-site .identity em{font-size:8px}
}
/* PDF reader footer matches public footer content while preserving PDF viewport */
body.tctt-reader-page .reader-footer{
  display:block;flex:0 0 auto;margin:0;
  padding:7px 0;border-top:1px solid #e2e9ef;
  background:#fafbfc;
}
body.tctt-reader-page .reader-footer .footer-in{
  display:flex;justify-content:space-between;align-items:center;
  gap:12px;font-size:12px;line-height:1.2
}
body.tctt-reader-page .reader-footer .footer-in strong{
  font-size:12px;color:#d51629
}
body.tctt-reader-page .reader-footer .footer-in>div>div{color:#264461}
body.tctt-reader-page .reader-footer .footer-in>span{white-space:nowrap}
@media(max-width:650px){
  body.tctt-reader-page .reader-footer{padding:10px 0}
  body.tctt-reader-page .reader-footer .footer-in{
    display:flex;flex-wrap:wrap;gap:6px;font-size:11px
  }
}


/* 2026-11-04 TCTT SAME-FRAME stabilization across views
 * Common 1250px viewport container: header, nav, main and footer.
 * Short pages keep footer at bottom; PDF maintains viewport-height viewer.
 * Stable scrollbar gutter avoids horizontal shifts between short and long pages.
 */
html{scrollbar-gutter:stable;}
body.tctt-site{
  --tctt-page-width:1250px;
  --tctt-gutter:20px;
}
body.tctt-site .shell{
  width:100%;
  max-width:var(--tctt-page-width);
  padding-left:var(--tctt-gutter);
  padding-right:var(--tctt-gutter);
  margin-left:auto;
  margin-right:auto;
}
/* Override older 1460px PDF-only container; align its edges with every other page. */
body.tctt-reader-page .shell{
  width:100%;
  max-width:var(--tctt-page-width);
  padding-left:var(--tctt-gutter);
  padding-right:var(--tctt-gutter);
}
body.tctt-site:not(.tctt-reader-page){
  display:flex;
  flex-direction:column;
  min-height:100vh;
  min-height:100dvh;
}
body.tctt-site:not(.tctt-reader-page)> .topline,
body.tctt-site:not(.tctt-reader-page)> header,
body.tctt-site:not(.tctt-reader-page)> nav{flex:0 0 auto;}
body.tctt-site:not(.tctt-reader-page)> main{
  flex:1 0 auto;
  min-height:0;
}
body.tctt-site footer{
  margin-top:auto;
  padding:10px 0;
  flex-shrink:0;
}
body.tctt-site .footer-in{
  min-height:38px;
  align-items:center;
}
body.tctt-site .header-in{
  height:60px;
  min-height:60px;
}
body.tctt-site .navlinks a{height:35px;}
/* Keep first content aligned below the navigation on standard pages. */
body.tctt-site:not(.tctt-reader-page) .section:first-child{
  padding-top:14px;
}
body.tctt-site .admin-main{padding-top:14px!important;}
body.tctt-request-page .request-main{padding-top:14px!important;}
/* Read page retains PDF flex sizing, but footer now occupies a stable minimum height. */
body.tctt-reader-page .reader-footer{
  padding:7px 0;
  margin:0;
  flex:0 0 auto;
}
body.tctt-reader-page .reader-footer .footer-in{
  min-height:38px;
}
@media(max-width:650px){
  body.tctt-site{--tctt-gutter:14px;}
  body.tctt-site .header-in{height:56px;min-height:56px;}
  body.tctt-site .navlinks a{height:33px;}
  body.tctt-reader-page .shell{padding-left:14px;padding-right:14px;}
}

/* 2026-11-04 HEADER RIGHT-ANCHOR FIX
 * The secondary slogan must remain at the extreme right, not beside the coat of arms.
 * Layout applies consistently to public, request, reader and admin headers.
 */
body.tctt-site .header{width:100%;min-width:0;}
body.tctt-site .header-in{
  box-sizing:border-box;
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) max-content;
  align-items:center;
  justify-content:stretch;
  column-gap:16px;
}
body.tctt-site .header-in .identity{
  min-width:0;
  justify-self:start;
}
body.tctt-site .header-in .head-aside{
  grid-column:2;
  justify-self:end;
  align-self:center;
  margin:0;
  text-align:right;
  white-space:nowrap;
}
@media(max-width:900px){
  body.tctt-site .header-in{grid-template-columns:minmax(0,1fr) auto}
  body.tctt-site .head-aside{display:none}
}

/* TCTT administrative spreadsheet import preview */
body.tctt-import-page .import-main{padding-bottom:24px}
body.tctt-import-page .import-main .section-head{margin:12px 0}
body.tctt-import-page .import-guidance{
  padding:13px 17px;border:1px solid #dfebf2;
  background:#f2f7fb;border-left:4px solid #c31b2c;
  border-radius:5px;line-height:1.45
}
body.tctt-import-page .import-guidance p{margin:6px 0 0}
body.tctt-import-page .import-panel{
  background:white;border:1px solid #dae5ed;border-radius:6px;
  padding:19px;margin-top:14px
}
body.tctt-import-page .import-panel h2{font-size:17px;color:#193c5d;margin:0 0 10px}
body.tctt-import-page .import-panel p{color:#4e657a;font-size:14px;margin:8px 0}
body.tctt-import-page .import-link{font-weight:700;color:#c41529!important}
body.tctt-import-page .import-form{
  display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-top:14px
}
body.tctt-import-page .import-form label{font-weight:700;color:#264562}
body.tctt-import-page .import-form input{
  display:block;margin-top:7px;padding:9px;
  border:1px solid #d6e1eb;border-radius:5px;max-width:100%
}
body.tctt-import-page .import-form .primary-btn{margin:0}
body.tctt-import-page .import-summary{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:12px 0
}
body.tctt-import-page .import-summary>div{
  border:1px solid #dee8f2;border-radius:5px;padding:11px;background:#fbfcff;
}
body.tctt-import-page .import-summary strong{
  display:block;color:#c51b2d;font-size:23px;line-height:1.15;
}
body.tctt-import-page .import-summary span{color:#526c82;font-size:12px}
body.tctt-import-page .import-errors{
  border:1px solid #e4a5aa;background:#fff3f4;padding:12px;margin:12px 0;color:#9e1e31
}
body.tctt-import-page .import-table-scroll{max-width:100%;overflow-x:auto}
body.tctt-import-page .import-table{
  border-collapse:collapse;width:100%;font-size:13px;margin:10px 0;
}
body.tctt-import-page .import-table th,
body.tctt-import-page .import-table td{
  padding:8px;border:1px solid #e0e7ed;text-align:left;vertical-align:top;
}
body.tctt-import-page .import-table th{background:#eff5fa;color:#173a5c}
body.tctt-import-page .import-title{min-width:280px;max-width:500px}
body.tctt-import-page .import-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:15px}
body.tctt-import-page .import-actions .primary-btn{margin:0}
@media(max-width:650px){
  body.tctt-import-page .import-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Admin action buttons grouped without shifting header */
body.tctt-site .admin-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
body.tctt-site .admin-actions .primary-btn{margin:0}


/* TCTT bulk review grid */
body.tctt-bulk-page .bulk-main{padding-top:16px;padding-bottom:24px}
body.tctt-bulk-page .bulk-main h1{font-size:21px;color:#193e5f}
body.tctt-bulk-page .bulk-intro{line-height:1.55;border-left:3px solid #c61a29;padding:11px 14px;background:#f6f9fd}
body.tctt-bulk-page .bulk-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
body.tctt-bulk-page .bulk-stats>div{border:1px solid #dae4ee;border-radius:6px;padding:15px}
body.tctt-bulk-page .bulk-stats strong{font-size:25px;color:#cc1325;display:block}
body.tctt-bulk-page .bulk-stats small{font-size:12px;color:#5e738a}
body.tctt-bulk-page .bulk-filter{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:15px 0}
body.tctt-bulk-page .bulk-filter select{padding:8px;border:1px solid #ccdae4;min-width:260px;max-width:100%;border-radius:5px}
body.tctt-bulk-page .bulk-filter button{padding:9px 14px;background:#cc1630;color:white;border:0;border-radius:4px}
body.tctt-bulk-page .bulk-table-wrap{max-width:100%;overflow-x:auto}
body.tctt-bulk-page .bulk-table{border-collapse:collapse;min-width:700px;width:100%;font-size:13px}
body.tctt-bulk-page .bulk-table th,body.tctt-bulk-page .bulk-table td{border:1px solid #dae5ee;padding:10px;text-align:left;vertical-align:top}
body.tctt-bulk-page .bulk-table th{background:#f0f5fa;color:#163a5e}
body.tctt-bulk-page .bulk-table small{display:block;margin-top:6px;color:#607894}
body.tctt-bulk-page .bulk-table a,body.tctt-bulk-page .bulk-confirm-list a{color:#c4142d!important;font-weight:bold;white-space:nowrap}
body.tctt-bulk-page .bulk-actions{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin:16px 0}
body.tctt-bulk-page .bulk-success{margin:14px 0;background:#eef8f0;border:1px solid #b3d9c0;padding:12px}
body.tctt-bulk-page .bulk-warning{margin:18px 0;padding:12px 15px;background:#fff8ee;border-left:3px solid #d68a19}
body.tctt-bulk-page .bulk-confirm-list{padding-left:30px;line-height:1.5}
body.tctt-bulk-page .bulk-confirm-list li{padding:8px 0;border-bottom:1px solid #dfe8ef}
body.tctt-bulk-page .bulk-confirm-list a{display:inline-block;margin-left:8px}
body.tctt-bulk-page .bulk-confirm-form{padding:18px;border:1px solid #d6e1ea;border-radius:5px;display:flex;flex-direction:column;gap:15px}
body.tctt-bulk-page .bulk-confirm-form label{line-height:1.5;font-weight:700}
body.tctt-bulk-page .bulk-confirm-form .primary-btn{width:max-content;max-width:100%}
@media(max-width:650px){body.tctt-bulk-page .bulk-stats{grid-template-columns:1fr}body.tctt-bulk-page .bulk-filter select{min-width:0;width:100%}}

body.tctt-bulk-page .bulk-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
body.tctt-bulk-page .bulk-tabs a{display:inline-block;text-decoration:none;border:1px solid #d7e1ee;border-radius:6px;padding:10px 12px;color:#193b5c;background:#fff;font-weight:bold}
body.tctt-bulk-page .bulk-tabs a.active{color:#fff;background:#173f6b;border-color:#173f6b}
body.tctt-bulk-page .bulk-tabs a.bulk-export{margin-left:auto;color:#b50920;border-color:#b50920}
body.tctt-bulk-page .bulk-breakdown{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px;margin:14px 0;border:1px solid #e4cfa5;border-radius:6px;background:#fffaf0}
body.tctt-bulk-page .bulk-breakdown>span{border:1px solid #e7d9b9;padding:4px 8px;background:white;border-radius:4px;font-size:12px}
body.tctt-bulk-page .bulk-flag{color:#8f2224;font-weight:600;line-height:1.5}
body.tctt-bulk-page .bulk-table td:last-child a{display:block;margin-bottom:8px;white-space:nowrap}
@media(max-width:650px){body.tctt-bulk-page .bulk-tabs a.bulk-export{margin-left:0}}


/* Expected approval outcomes: branded, not raw Odoo exceptions. */
body.tctt-bulk-page .bulk-notice-list{line-height:1.6;padding-left:24px}
body.tctt-bulk-page .bulk-notice-list li{padding:5px 0;border-bottom:1px solid #e0e7ee}
body.tctt-bulk-page .bulk-notice-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:20px 0}
body.tctt-bulk-page .bulk-confirm-form button:disabled{opacity:.65;cursor:progress}


/* Production 2026-11-04: justify document summaries in list rows only. */
body.tctt-site .doc-list .doc-row .doc-info > a {
  display: block;
  width: 100%;
  text-align: justify;
  text-align-last: left;
  text-justify: inter-word;
  line-height: 1.55;
}
body.tctt-site .doc-list .doc-row .doc-info > small {
  display: block;
  text-align: left;
}

/* 2026-11-04 detail reading layout spacing: no redundant toolbar, category in sidebar. */
body.tctt-reader-page .reader-main {
  padding-top: 12px;
  padding-bottom: 11px;
}
body.tctt-reader-page .reader-titlebar {
  display:block;
  margin: 0 0 14px;
}
body.tctt-reader-page .reader-heading {
  width:100%;
  min-width:0;
  padding:0 1px;
}
body.tctt-reader-page .reader-heading h1 {
  margin: 0;
  font-size:19px;
  line-height:1.42;
  font-weight:700;
  text-wrap:pretty;
}
body.tctt-reader-page .reader-grid {gap:14px}
body.tctt-reader-page .reader-sidebar {
  padding:16px 15px;
}
body.tctt-reader-page .reader-sidebar h2 {
  margin:0 0 9px;
  line-height:1.45;
}
body.tctt-reader-page .reader-facts>div {
  padding:11px 0;
}
@media(max-width:800px) {
  body.tctt-reader-page .reader-grid {gap:10px}
  body.tctt-reader-page .reader-heading h1 {font-size:18px}
}
@media(max-width:650px) {
  body.tctt-reader-page .reader-main {padding-top:12px}
  body.tctt-reader-page .reader-titlebar {margin-bottom:13px}
  body.tctt-reader-page .reader-heading h1 {
    font-size:18px;
    line-height:1.4;
  }
  body.tctt-reader-page .reader-sidebar {padding:13px}
}

/* TCTT-HEADER-READABILITY-20261104: unified readable header on all views */
/* The same clear visual hierarchy applies to public, details, request and admin. */
body.tctt-site .header-in,
body.tctt-reader-page .header-in {
    height: 88px;
    min-height: 88px;
    column-gap: 24px;
}
body.tctt-site .identity {
    gap: 14px;
    align-items: center;
}
body.tctt-site .identity img {
    width: 60px;
    height: 60px;
    flex: 0 0 60px;
}
body.tctt-site .identity span {
    min-width: 0;
    row-gap: 3px;
}
body.tctt-site .identity small {
    font-size: 12px;
    line-height: 1.28;
    font-weight: 700;
}
body.tctt-site .identity strong {
    font-size: 27px;
    line-height: 1.17;
    font-weight: 800;
}
body.tctt-site .identity em {
    font-size: 12px;
    line-height: 1.32;
    font-weight: 600;
}
body.tctt-site .head-aside {
    font-size: 12px;
    line-height: 1.43;
    font-weight: 800;
    margin: 0;
}
body.tctt-site .navlinks a,
body.tctt-reader-page .navlinks a {
    height: 46px;
    font-size: 14px;
    padding: 0 17px;
    line-height: 1.35;
    font-weight: 800;
}
/* At tablet widths the original layout already hides the slogan. */
@media (max-width: 900px) {
    body.tctt-site .identity strong { font-size: 24px; }
}
@media (max-width: 650px) {
    body.tctt-site .header-in,
    body.tctt-reader-page .header-in {
        height: 76px;
        min-height: 76px;
        column-gap: 8px;
    }
    body.tctt-site .identity { gap: 10px; }
    body.tctt-site .identity img {
        width: 47px;
        height: 47px;
        flex-basis: 47px;
    }
    body.tctt-site .identity span { row-gap: 2px; }
    body.tctt-site .identity small {
        font-size: 10px;
        line-height: 1.2;
        white-space: normal;
    }
    body.tctt-site .identity strong {
        font-size: 19px;
        line-height: 1.17;
        white-space: normal;
    }
    body.tctt-site .identity em {
        font-size: 10px;
        line-height: 1.2;
        white-space: normal;
    }
    body.tctt-site .navlinks a,
    body.tctt-reader-page .navlinks a {
        height: 42px;
        font-size: 12px;
        padding: 0 12px;
    }
}
@media (max-width: 400px) {
    body.tctt-site .identity strong { font-size: 17px; }
    body.tctt-site .identity small { font-size: 9.5px; }
    body.tctt-site .identity em { font-size: 9.5px; }
}

/* TCTT admin approval validation - 2026-11-04 */
body.tctt-site .tctt-admin-validation-error{
  border:1px solid #df9ca4;
  border-left:4px solid #c3152a;
  border-radius:5px;
  background:#fff5f5;
  color:#6b1729;
  padding:12px 16px;
  margin:12px 0 15px;
  line-height:1.5;
}
body.tctt-site .tctt-admin-validation-error strong{font-size:15px}
body.tctt-site .tctt-admin-validation-error p{margin:5px 0 0}


/* TCTT category-neutral bulk publish admin layout 20261105 */
body.tctt-bulk-page .bulk-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 650px) {
    body.tctt-bulk-page .bulk-stats { grid-template-columns: 1fr; }
}


/* TCTT QUICK-FIX ERRORS INLINE 20261105 */
body.tctt-bulk-page .bulk-quick-guide {
  line-height:1.5; background:#f3f7fc; border-left:3px solid #19517c;
  margin:10px 0; padding:11px 13px;
}
body.tctt-bulk-page .bulk-quick-alert {
  border:1px solid #d0e0ed; border-left:4px solid #15578a;
  border-radius:5px; padding:12px; margin:12px 0; background:#f4faff;
}
body.tctt-bulk-page .bulk-quick-table {
  min-width:990px;
}
body.tctt-bulk-page .bulk-quick-table th:first-child,
body.tctt-bulk-page .bulk-quick-table td:first-child {
  width:65px; text-align:center;
}
body.tctt-bulk-page .bulk-quick-table td:nth-child(2){min-width:250px;}
body.tctt-bulk-page .bulk-quick-table td:nth-child(3),
body.tctt-bulk-page .bulk-quick-table td:nth-child(4){min-width:145px;}
body.tctt-bulk-page .bulk-quick-table td:nth-child(5){min-width:210px;}
body.tctt-bulk-page .bulk-quick-table td:nth-child(6){min-width:85px;}
body.tctt-bulk-page input.bulk-quick-date {
  box-sizing:border-box; display:block; width:100%; font:inherit;
  min-height:35px; padding:6px; color:#16385d;
  border:1px solid #ccd9e6; border-radius:4px;
}
body.tctt-bulk-page .bulk-quick-verify {
  display:block; border-top:1px solid #e5d4d4; margin-top:8px; padding-top:8px;
  font-size:12px; font-weight:700; color:#193a5d; cursor:pointer;
}
body.tctt-bulk-page .bulk-quick-verify input{vertical-align:middle;}
body.tctt-bulk-page .bulk-quick-actions {
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  margin:14px 0 8px;
}
body.tctt-bulk-page .bulk-quick-actions button {
  min-height:38px; border:1px solid #c71930; border-radius:5px;
  background:#fff; color:#a6132a; font:inherit; font-weight:700; padding:9px 15px; cursor:pointer;
}
body.tctt-bulk-page .bulk-quick-actions .primary-btn {
  background:#c71930; color:#fff;
}
body.tctt-bulk-page .bulk-quick-actions small{color:#536e85;}
@media(max-width:700px){
 body.tctt-bulk-page .bulk-quick-guide {font-size:13px}
 body.tctt-bulk-page .bulk-quick-actions button {width:100%}
}
