/* iBaoHiem design system v1. All product colors and geometry live in tokens. */
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/be-vietnam-pro-400.ttf") format("truetype")}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/be-vietnam-pro-500.ttf") format("truetype")}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/be-vietnam-pro-600.ttf") format("truetype")}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/be-vietnam-pro-700.ttf") format("truetype")}
.ibt-app{
  --ibt-brand:#c02030;--ibt-brand-hover:#a51b2a;--ibt-brand-active:#891624;--ibt-brand-soft:#fff1f2;
  --ibt-accent:#f4b544;--ibt-background:#f8fafc;--ibt-surface:#fff;--ibt-text:#1f2937;--ibt-text-muted:#64748b;
  --ibt-border:#e2e8f0;--ibt-input-border:#64748b;--ibt-success:#15803d;--ibt-success-bg:#f0fdf4;
  --ibt-warning:#92400e;--ibt-warning-bg:#fffbeb;--ibt-error:#b91c1c;--ibt-error-bg:#fef2f2;
  --ibt-info:#1d4ed8;--ibt-info-bg:#eff6ff;--ibt-disabled-bg:#e2e8f0;--ibt-disabled-text:#475569;
  --ibt-space-1:4px;--ibt-space-2:8px;--ibt-space-3:12px;--ibt-space-4:16px;--ibt-space-6:24px;
  --ibt-space-8:32px;--ibt-space-12:48px;--ibt-space-16:64px;
  --ibt-radius-control:8px;--ibt-radius-card:12px;--ibt-control-height:44px;--ibt-search-height:48px;
  --ibt-font:"Be Vietnam Pro","Segoe UI",Arial,sans-serif;--ibt-text-sm:14px;--ibt-text-base:16px;
  --ibt-title-sm:18px;--ibt-title-md:22px;--ibt-title-lg:32px;--ibt-line-height:1.5;
  --ibt-duration:150ms;--ibt-shadow:0 4px 20px rgb(31 41 55 / 5%);
  margin:0;background:var(--ibt-background);color:var(--ibt-text);font-family:var(--ibt-font);font-size:var(--ibt-text-base);line-height:var(--ibt-line-height);color-scheme:light;
}
.ibt-app *,.ibt-app *::before,.ibt-app *::after{box-sizing:border-box}
.ibt-app [hidden]{display:none!important}
.ibt-app h1,.ibt-app h2,.ibt-app h3,.ibt-app p,.ibt-app dl,.ibt-app dd{margin:0}
.ibt-app h1{font-size:var(--ibt-title-lg);font-weight:700;line-height:1.35;letter-spacing:-.025em;overflow-wrap:anywhere;text-wrap:balance}
.ibt-app h2{font-size:var(--ibt-title-md);font-weight:600;line-height:1.4}
.ibt-app h3{font-size:var(--ibt-title-sm);font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.ibt-app button,.ibt-app input,.ibt-app select{font:inherit}
.ibt-app a{color:var(--ibt-brand);text-underline-offset:3px}
.ibt-app :focus-visible,.ibt-app .ibt-is-focus{outline:3px solid var(--ibt-brand);outline-offset:3px}
.ibt-shell{max-width:880px;margin-inline:auto;padding:0 var(--ibt-space-4)}
.ibt-shell--admin,.ibt-shell--guide{max-width:1120px}
.ibt-main{padding-block:var(--ibt-space-8) var(--ibt-space-12);min-width:0}
.ibt-header{display:flex;align-items:center;justify-content:space-between;gap:var(--ibt-space-4);padding-block:var(--ibt-space-4);border-bottom:1px solid var(--ibt-border)}
.ibt-logo{padding:var(--ibt-space-3);display:inline-flex;flex-shrink:0;margin-left:calc(-1 * var(--ibt-space-3))}
.ibt-logo img{display:block;object-fit:contain;width:125px;height:40px}
.ibt-header-label{font-size:var(--ibt-text-sm);font-weight:500;color:var(--ibt-text-muted);text-align:right;letter-spacing:.04em}
.ibt-page-heading{max-width:720px;margin-block:var(--ibt-space-4) var(--ibt-space-8)}
.ibt-page-heading h1{margin-block:var(--ibt-space-3) var(--ibt-space-4)}
.ibt-page-heading--admin{max-width:800px}
.ibt-lead{color:var(--ibt-text-muted);font-size:var(--ibt-text-base)}
.ibt-eyebrow{display:flex;align-items:center;gap:var(--ibt-space-2);font-size:var(--ibt-text-sm);font-weight:600;letter-spacing:.04em;color:var(--ibt-text-muted)}
.ibt-accent-dot{width:8px;height:8px;border-radius:50%;background:var(--ibt-accent);flex-shrink:0}
.ibt-muted,.ibt-helper{color:var(--ibt-text-muted);font-size:var(--ibt-text-sm)}
.ibt-helper{margin-top:var(--ibt-space-3)!important}
.ibt-icon{display:inline-block;flex-shrink:0;vertical-align:middle;width:20px;height:20px}
.ibt-stack{display:flex;flex-direction:column;gap:var(--ibt-space-4)}
.ibt-card{background:var(--ibt-surface);border:1px solid var(--ibt-border);border-radius:var(--ibt-radius-card);padding:var(--ibt-space-6);min-width:0}
.ibt-search-card{box-shadow:var(--ibt-shadow)}
.ibt-search-card h2{margin-bottom:var(--ibt-space-6)}
.ibt-label{display:block;font-weight:500;margin-bottom:var(--ibt-space-2)}
.ibt-input{width:100%;min-width:0;min-height:var(--ibt-control-height);padding:var(--ibt-space-3);border:1px solid var(--ibt-input-border);border-radius:var(--ibt-radius-control);background:var(--ibt-surface);color:var(--ibt-text);transition:border-color var(--ibt-duration)}
.ibt-input::placeholder{color:var(--ibt-text-muted);opacity:1}
.ibt-input:hover{border-color:var(--ibt-text)}
.ibt-input:focus{border-color:var(--ibt-brand)}
.ibt-input[aria-invalid="true"]{border-color:var(--ibt-error);border-width:2px}
.ibt-input:disabled{background:var(--ibt-disabled-bg);color:var(--ibt-disabled-text);cursor:not-allowed}
.ibt-search-row{display:flex;align-items:stretch;gap:var(--ibt-space-3)}
.ibt-search-field{position:relative;flex:1;min-width:0}
.ibt-search-field>.ibt-icon{position:absolute;left:var(--ibt-space-4);top:50%;transform:translateY(-50%);color:var(--ibt-text-muted);pointer-events:none}
.ibt-input--search{min-height:var(--ibt-search-height);padding-left:var(--ibt-space-12)}
.ibt-search-row>.ibt-button{min-height:var(--ibt-search-height)}
.ibt-year-field{margin-bottom:var(--ibt-space-6)}
.ibt-year-field>.ibt-input{max-width:280px}
.ibt-year-filter{display:flex;align-items:end;gap:var(--ibt-space-3);flex-wrap:wrap;margin-bottom:var(--ibt-space-4)}
.ibt-year-filter>div{flex:1;min-width:0;max-width:280px}
.ibt-year-editor{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--ibt-space-2);margin-top:var(--ibt-space-3)}
.ibt-year-editor>.ibt-label{flex-basis:100%;font-size:var(--ibt-text-sm);margin:0}
.ibt-year-editor>.ibt-input{width:120px}
.ibt-records>.ibt-helper{margin-bottom:var(--ibt-space-4)}
.ibt-button{display:inline-flex;justify-content:center;align-items:center;gap:var(--ibt-space-2);min-height:var(--ibt-control-height);max-width:100%;padding:var(--ibt-space-2) var(--ibt-space-4);border:1px solid transparent;border-radius:var(--ibt-radius-control);font-weight:600;text-decoration:none;line-height:var(--ibt-line-height);cursor:pointer;transition:background-color var(--ibt-duration),border-color var(--ibt-duration),color var(--ibt-duration)}
.ibt-app .ibt-button--primary{background:var(--ibt-brand);color:var(--ibt-surface)}
.ibt-button--primary:hover,.ibt-button--primary.ibt-is-hover{background:var(--ibt-brand-hover)}
.ibt-button--primary:active,.ibt-button--primary.ibt-is-active{background:var(--ibt-brand-active)}
.ibt-app .ibt-button--secondary{background:var(--ibt-surface);color:var(--ibt-brand);border-color:var(--ibt-brand)}
.ibt-button--secondary:hover,.ibt-button--secondary.ibt-is-hover{background:var(--ibt-brand-soft)}
.ibt-button--secondary:active,.ibt-button--secondary.ibt-is-active{background:var(--ibt-brand-soft);border-color:var(--ibt-brand-active);color:var(--ibt-brand-active)}
.ibt-app .ibt-button--tertiary{background:transparent;color:var(--ibt-brand);text-decoration:underline}
.ibt-button--tertiary:hover,.ibt-button--tertiary.ibt-is-hover{background:var(--ibt-brand-soft)}
.ibt-button--tertiary:active,.ibt-button--tertiary.ibt-is-active{color:var(--ibt-brand-active);background:var(--ibt-brand-soft)}
.ibt-app .ibt-button:disabled{background:var(--ibt-disabled-bg);border-color:var(--ibt-disabled-bg);color:var(--ibt-disabled-text);cursor:not-allowed;text-decoration:none}
.ibt-app .ibt-button.ibt-is-loading{background:var(--ibt-brand);border-color:var(--ibt-brand);color:var(--ibt-surface);cursor:wait}
.ibt-is-loading::before{content:"";width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ibt-spin .8s linear infinite;flex-shrink:0}
.ibt-is-loading>.ibt-icon{display:none}
@keyframes ibt-spin{to{transform:rotate(360deg)}}
.ibt-form-status:empty{display:none}
.ibt-form-status{font-size:var(--ibt-text-sm);color:var(--ibt-text-muted);margin-top:var(--ibt-space-3)!important}
.ibt-field-error{color:var(--ibt-error);font-size:var(--ibt-text-sm);margin-top:var(--ibt-space-2)!important;overflow-wrap:anywhere}
.ibt-section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--ibt-space-3);flex-wrap:wrap;margin-bottom:var(--ibt-space-6)}
.ibt-results,.ibt-records{margin-top:var(--ibt-space-8)}
.ibt-document{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--ibt-space-6)}
.ibt-document-heading{display:flex;align-items:flex-start;gap:var(--ibt-space-3);min-width:0}
.ibt-document-heading>div{min-width:0}
.ibt-document-heading h3{margin-top:var(--ibt-space-1)}
.ibt-document-icon{display:inline-flex;padding:var(--ibt-space-3);background:var(--ibt-brand-soft);color:var(--ibt-brand);border-radius:var(--ibt-radius-control)}
.ibt-document-details{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr));gap:var(--ibt-space-4)}
.ibt-document-details dt{color:var(--ibt-text-muted);font-size:var(--ibt-text-sm);margin-bottom:var(--ibt-space-1)}
.ibt-document-details dd{overflow-wrap:anywhere;font-weight:500}
.ibt-document-meta{grid-column:1/-1;display:grid;gap:var(--ibt-space-3);border-top:1px solid var(--ibt-border);padding-top:var(--ibt-space-4);font-size:var(--ibt-text-sm)}
.ibt-document-meta>div{display:flex;align-items:baseline;gap:var(--ibt-space-3);flex-wrap:wrap}
.ibt-document-meta dt{color:var(--ibt-text-muted)}
.ibt-document-meta dd{overflow-wrap:anywhere;min-width:0}
.ibt-document-action{grid-column:2;grid-row:1;align-self:center}
.ibt-results [id="ket-qua"]{scroll-margin-top:var(--ibt-space-6)}
.ibt-admin-cards{display:none}
.ibt-filename{display:block;font-size:var(--ibt-text-sm);color:var(--ibt-text-muted);overflow-wrap:anywhere}
.ibt-empty{text-align:center;padding:var(--ibt-space-12) var(--ibt-space-4);max-width:560px;margin-inline:auto}
.ibt-empty-icon{display:inline-flex;padding:var(--ibt-space-4);border-radius:50%;background:var(--ibt-border);color:var(--ibt-text-muted);margin-bottom:var(--ibt-space-4)}
.ibt-empty h3{margin-bottom:var(--ibt-space-2)}
.ibt-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ibt-space-4)}
.ibt-upload{min-width:0;border:1px dashed var(--ibt-input-border);border-radius:var(--ibt-radius-control);padding:var(--ibt-space-6);background:var(--ibt-background);transition:background-color var(--ibt-duration),border-color var(--ibt-duration)}
.ibt-upload.ibt-is-dragging{background:var(--ibt-brand-soft);border-color:var(--ibt-brand);outline:2px solid var(--ibt-brand)}
.ibt-upload-heading{display:flex;gap:var(--ibt-space-3);align-items:center;margin-bottom:var(--ibt-space-2)}
.ibt-upload-heading>.ibt-icon{color:var(--ibt-brand)}
.ibt-upload-heading .ibt-label{margin:0}
.ibt-file-input{display:block;max-width:100%;width:100%;min-height:var(--ibt-control-height);margin-top:var(--ibt-space-4);font-size:var(--ibt-text-sm);color:var(--ibt-text-muted)}
.ibt-file-picker{margin-top:var(--ibt-space-4)}
.ibt-file-input::file-selector-button{font:inherit;font-weight:500;min-height:var(--ibt-control-height);border:1px solid var(--ibt-input-border);border-radius:var(--ibt-radius-control);background:var(--ibt-surface);color:var(--ibt-text);padding:var(--ibt-space-2) var(--ibt-space-3);margin-right:var(--ibt-space-2);cursor:pointer}
.ibt-file-input::file-selector-button:hover{background:var(--ibt-brand-soft)}
.ibt-file-selection{font-size:var(--ibt-text-sm);margin-top:var(--ibt-space-3);overflow-wrap:anywhere}
.ibt-file-selection .ibt-file-list{list-style:none;padding:0;margin:var(--ibt-space-3) 0 0}
.ibt-file-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--ibt-space-2);align-items:center;padding-block:var(--ibt-space-2);border-bottom:1px solid var(--ibt-border)}
.ibt-file-item>div{min-width:0}
.ibt-file-name{display:block;overflow-wrap:anywhere;font-weight:500}
.ibt-file-item .ibt-button{font-size:var(--ibt-text-sm);padding-inline:var(--ibt-space-2)}
.ibt-file-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ibt-space-2);margin-top:var(--ibt-space-2)}
.ibt-file-actions .ibt-button{font-size:var(--ibt-text-sm);padding-inline:var(--ibt-space-2)}
.ibt-upload-notes{margin-block:var(--ibt-space-6);font-size:var(--ibt-text-sm)}
.ibt-upload-notes p+p{margin-top:var(--ibt-space-2)}
.ibt-upload-actions{display:flex;gap:var(--ibt-space-4);align-items:center;flex-wrap:wrap}
.ibt-upload-actions .ibt-form-status{margin:0!important}
.ibt-upload-feedback:not(:empty){margin-top:var(--ibt-space-6)}
.ibt-badge{display:inline-flex;align-items:center;padding:var(--ibt-space-1) var(--ibt-space-2);border-radius:var(--ibt-radius-control);background:var(--ibt-brand-soft);color:var(--ibt-brand);font-size:var(--ibt-text-sm);font-weight:500}
.ibt-alert{display:flex;align-items:flex-start;gap:var(--ibt-space-3);padding:var(--ibt-space-4);border-radius:var(--ibt-radius-control);font-size:var(--ibt-text-sm);overflow-wrap:anywhere}
.ibt-alert>.ibt-icon{margin-top:var(--ibt-space-1)}
.ibt-alert-title{font-weight:600;margin-bottom:var(--ibt-space-1)!important}
.ibt-alert--success{color:var(--ibt-success);background:var(--ibt-success-bg)}
.ibt-alert--warning{color:var(--ibt-warning);background:var(--ibt-warning-bg)}
.ibt-alert--error{color:var(--ibt-error);background:var(--ibt-error-bg)}
.ibt-alert--info{color:var(--ibt-info);background:var(--ibt-info-bg)}
.ibt-text-link{display:inline-flex;align-items:center;gap:var(--ibt-space-2);min-height:var(--ibt-control-height);margin-top:var(--ibt-space-3);font-weight:500}
.ibt-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--ibt-border);border-radius:var(--ibt-radius-card);background:var(--ibt-surface)}
.ibt-table{width:100%;min-width:1000px;border-collapse:collapse;font-size:var(--ibt-text-sm);text-align:left}
.ibt-table th,.ibt-table td{padding:var(--ibt-space-4);border-bottom:1px solid var(--ibt-border);vertical-align:top;overflow-wrap:anywhere;max-width:240px;min-width:110px}
.ibt-table thead th{background:var(--ibt-background);font-weight:600;color:var(--ibt-text-muted)}
.ibt-table tbody th{font-weight:500;min-width:180px}
.ibt-table tbody tr:last-child>*{border-bottom:0}
.ibt-table tbody tr:hover{background:var(--ibt-background)}
.ibt-table .ibt-button{padding-inline:var(--ibt-space-2);white-space:nowrap}
.ibt-table time{display:block;min-width:120px}
.ibt-numeric{font-variant-numeric:tabular-nums}
.ibt-error-page{max-width:640px;margin-inline:auto;text-align:center;padding-block:var(--ibt-space-8)}
.ibt-error-page>.ibt-eyebrow{justify-content:center;margin-bottom:var(--ibt-space-6)}
.ibt-error-page h1{margin-bottom:var(--ibt-space-4)}
.ibt-error-page>.ibt-button{margin-top:var(--ibt-space-6)}
.ibt-footer{border-top:1px solid var(--ibt-border);display:flex;justify-content:space-between;gap:var(--ibt-space-3);padding-block:var(--ibt-space-6);font-size:var(--ibt-text-sm);color:var(--ibt-text-muted)}
.ibt-app--embedded{background:var(--ibt-surface)}
.ibt-app--embedded .ibt-main{padding-block:var(--ibt-space-4)}
.ibt-app--embedded .ibt-page-heading{margin-top:0}
.ibt-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.ibt-skip-link{position:absolute;left:var(--ibt-space-4);top:var(--ibt-space-4);z-index:10;padding:var(--ibt-space-3);background:var(--ibt-surface);transform:translateY(-200%)}
.ibt-skip-link:focus{transform:translateY(0)}
/* Component catalogue: uses the same components and tokens as the application. */
.ibt-guide-section{margin-bottom:var(--ibt-space-12)}
.ibt-guide-section>h2{margin-bottom:var(--ibt-space-6)}
.ibt-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ibt-space-4)}
.ibt-guide-row{display:flex;gap:var(--ibt-space-4);align-items:center;flex-wrap:wrap;padding-block:var(--ibt-space-3)}
.ibt-swatch{min-height:72px;border-radius:var(--ibt-radius-control);margin-bottom:var(--ibt-space-2);border:1px solid var(--ibt-border)}
.ibt-swatch--brand{background:var(--ibt-brand)}.ibt-swatch--brand-hover{background:var(--ibt-brand-hover)}.ibt-swatch--brand-soft{background:var(--ibt-brand-soft)}
.ibt-swatch--accent{background:var(--ibt-accent)}.ibt-swatch--background{background:var(--ibt-background)}.ibt-swatch--surface{background:var(--ibt-surface)}
.ibt-swatch--text{background:var(--ibt-text)}.ibt-swatch--text-muted{background:var(--ibt-text-muted)}.ibt-swatch--border{background:var(--ibt-border)}
.ibt-swatch--input-border{background:var(--ibt-input-border)}
.ibt-guide-scale{display:flex;align-items:center;gap:var(--ibt-space-4);padding-block:var(--ibt-space-2)}
.ibt-guide-scale span{display:block;height:var(--ibt-space-4);background:var(--ibt-brand)}
.ibt-guide-scale [data-size="4"]{width:var(--ibt-space-1)}.ibt-guide-scale [data-size="8"]{width:var(--ibt-space-2)}.ibt-guide-scale [data-size="12"]{width:var(--ibt-space-3)}.ibt-guide-scale [data-size="16"]{width:var(--ibt-space-4)}.ibt-guide-scale [data-size="24"]{width:var(--ibt-space-6)}.ibt-guide-scale [data-size="32"]{width:var(--ibt-space-8)}.ibt-guide-scale [data-size="48"]{width:var(--ibt-space-12)}.ibt-guide-scale [data-size="64"]{width:var(--ibt-space-16)}
@media(min-width:640px){.ibt-shell{padding-inline:var(--ibt-space-6)}}
@media(min-width:1024px){.ibt-shell{padding-inline:var(--ibt-space-8)}}
@media(width < 640px){
  .ibt-app{--ibt-title-lg:26px}
  .ibt-header{padding-block:var(--ibt-space-2)}
  .ibt-header-label{max-width:130px}
  .ibt-main{padding-top:var(--ibt-space-4)}
  .ibt-page-heading{margin-top:0;margin-bottom:var(--ibt-space-6)}
  .ibt-page-heading h1{margin-block:var(--ibt-space-2) var(--ibt-space-3)}
  .ibt-search-card h2{margin-bottom:var(--ibt-space-4)}
  .ibt-search-card .ibt-helper{margin-top:var(--ibt-space-2)!important}
  .ibt-card{padding:var(--ibt-space-4)}
  .ibt-search-row{flex-direction:column}
  .ibt-search-row>.ibt-button{width:100%}
  .ibt-document{grid-template-columns:minmax(0,1fr);gap:var(--ibt-space-4)}
  .ibt-document-details{grid-template-columns:minmax(0,1fr)}
  .ibt-document-action{grid-row:auto;grid-column:1}
  .ibt-document-action>.ibt-button{width:100%}
  .ibt-document-meta>div{display:block}
  .ibt-document-meta dt{margin-bottom:var(--ibt-space-1)}
  .ibt-admin-table{display:none}
  .ibt-admin-cards{display:flex}
  .ibt-upload-grid{grid-template-columns:minmax(0,1fr)}
  .ibt-upload{padding:var(--ibt-space-4)}
  .ibt-upload-actions>.ibt-button{width:100%}
  .ibt-footer{flex-direction:column}
  .ibt-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(prefers-reduced-motion:reduce){.ibt-app *,.ibt-app *::before,.ibt-app *::after{animation:none!important;transition:none!important}}
