:root {
  --ta-navy: #0b1f3a;
  --ta-navy-2: #132c4f;
  --ta-gold: #ffd95d;
  --ta-white: #fff;
  --ta-soft: #f4f6f8;
  --ta-line: #dde3ea;
  --ta-text: #233246;
  --ta-muted: #6b7787;
  --ta-danger: #b42318;
  --ta-success: #157347;
  --ta-shadow: 0 16px 44px rgba(11,31,58,.10);
}

.tahp-global-menu { display:inline-flex; position:relative; }
.tahp-global-menu-trigger { color:inherit; font-weight:800!important; white-space:nowrap; }
.tahp-global-menu-trigger::before { color:#9b7600; content:"◉"; font-size:.72em; margin-right:6px; }
.tahp-global-submenu { background:#fff; border:1px solid #dde3ea; border-radius:12px; box-shadow:0 16px 44px rgba(11,31,58,.16); display:none; min-width:220px; padding:8px; position:absolute; right:0; top:calc(100% + 8px); z-index:9999; }
.tahp-global-submenu a { border-radius:8px; color:#0b1f3a!important; display:block!important; font-size:13px; padding:10px 12px!important; white-space:nowrap; }
.tahp-global-submenu a:hover,.tahp-global-submenu a:focus { background:#fff3be; }
.tahp-global-menu:hover .tahp-global-submenu,.tahp-global-menu:focus-within .tahp-global-submenu { display:block; }

@media (min-width: 901px) and (max-width: 1120px) {
  .tahp-global-menu-trigger { align-items:center; display:flex!important; font-size:0!important; height:42px; justify-content:center; min-width:38px; padding:0!important; width:38px; }
  .tahp-global-menu-trigger::before { font-size:18px; margin:0; }
}

.tahp-page { background: var(--ta-soft); color: var(--ta-text); min-height: 72vh; padding: clamp(30px,5vw,72px) 18px 80px; }
.tahp-wrap { width: min(1180px,100%); margin: 0 auto; }
.tahp-page *, .tahp-page *::before, .tahp-page *::after { box-sizing: border-box; }
.tahp-page h1,.tahp-page h2,.tahp-page h3 { color: var(--ta-navy); line-height: 1.16; margin-top: 0; }
.tahp-page h1 { font-size: clamp(30px,4vw,52px); letter-spacing: -.035em; }
.tahp-page h2 { font-size: clamp(21px,2.2vw,29px); }
.tahp-page a { text-decoration: none; }
.tahp-eyebrow { color: #9b7600; font-size: 12px; font-weight: 850; letter-spacing: .16em; margin: 0 0 9px; text-transform: uppercase; }
.tahp-muted { color: var(--ta-muted); }
.tahp-card { background: var(--ta-white); border: 1px solid var(--ta-line); border-radius: 20px; box-shadow: var(--ta-shadow); margin-bottom: 24px; padding: clamp(22px,3vw,36px); }
.tahp-card-gold { background: var(--ta-gold); border-color: var(--ta-gold); }
.tahp-card-gold .tahp-button { background: var(--ta-navy); color: #fff; }
.tahp-button { align-items:center; background:var(--ta-gold); border:0; border-radius:10px; color:var(--ta-navy); cursor:pointer; display:inline-flex; font-size:13px; font-weight:850; justify-content:center; letter-spacing:.035em; min-height:48px; padding:13px 22px; transition:.18s ease; }
.tahp-button:hover { filter: brightness(.96); transform: translateY(-1px); }
.tahp-button:disabled { cursor:wait; opacity:.58; transform:none; }
.tahp-button-secondary { background:transparent; border:1px solid var(--ta-navy); color:var(--ta-navy); }
.tahp-button-small { min-height:40px; padding:10px 15px; }
.tahp-auth-layout { align-items:stretch; display:grid; gap:32px; grid-template-columns:1.05fr .95fr; }
.tahp-auth-brand { background:linear-gradient(145deg,var(--ta-navy),var(--ta-navy-2)); border-radius:24px; color:#fff; display:flex; flex-direction:column; justify-content:center; min-height:560px; overflow:hidden; padding:clamp(32px,6vw,72px); position:relative; }
.tahp-auth-brand::after { border:44px solid rgba(255,217,93,.14); border-radius:50%; content:""; height:320px; position:absolute; right:-120px; top:-110px; width:320px; }
.tahp-auth-brand h1 { color:#fff; }
.tahp-auth-brand>p:not(.tahp-eyebrow) { font-size:18px; line-height:1.7; max-width:620px; }
.tahp-auth-brand .tahp-eyebrow { color:var(--ta-gold); }
.tahp-brand-line { border-left:4px solid var(--ta-gold); color:var(--ta-gold); font-size:14px; font-weight:800; letter-spacing:.08em; margin-top:28px; padding-left:18px; }
.tahp-auth-card { align-self:center; margin:0; }
.tahp-form { display:grid; gap:18px; }
.tahp-form label { color:var(--ta-navy); display:grid; font-size:14px; font-weight:750; gap:7px; }
.tahp-form input:not([type=checkbox]),.tahp-form select,.tahp-form textarea { appearance:none; background:#fff; border:1px solid #cbd4df; border-radius:10px; color:var(--ta-text); font:inherit; min-height:48px; padding:12px 14px; width:100%; }
.tahp-form textarea { resize:vertical; }
.tahp-form input:focus,.tahp-form select:focus,.tahp-form textarea:focus { border-color:#a57e00; box-shadow:0 0 0 3px rgba(255,217,93,.28); outline:none; }
.tahp-consent { align-items:flex-start; display:flex!important; font-weight:500!important; line-height:1.45; }
.tahp-consent input { height:18px; margin-top:2px; width:18px; }
.tahp-consent a,.tahp-switch a,.tahp-text-link { color:#725700; font-weight:750; }
.tahp-hp { left:-10000px!important; opacity:0!important; position:absolute!important; }
.tahp-notice { background:#fff8da; border-left:4px solid var(--ta-gold); color:var(--ta-navy); padding:13px 15px; }
.tahp-form-status { border-radius:9px; font-size:14px; margin-top:14px; padding:0; }
.tahp-form-status.is-error,.tahp-form-status.is-success { padding:12px 14px; }
.tahp-form-status.is-error { background:#fff0ee; color:var(--ta-danger); }
.tahp-form-status.is-success { background:#eaf8f0; color:var(--ta-success); }
.tahp-switch { color:var(--ta-muted); font-size:14px; margin:20px 0 0; text-align:center; }
.tahp-portal-header { align-items:center; background:var(--ta-navy); border-radius:18px 18px 0 0; color:#fff; display:flex; justify-content:space-between; padding:22px 28px; }
.tahp-portal-header .tahp-eyebrow { color:var(--ta-gold); }
.tahp-portal-header strong { font-size:20px; }
.tahp-account-link { align-items:center; background:var(--ta-gold); border-radius:50%; color:var(--ta-navy); display:flex; height:42px; justify-content:center; width:42px; }
.tahp-tabs { background:#fff; border:1px solid var(--ta-line); display:flex; gap:2px; margin-bottom:34px; overflow-x:auto; padding:0 15px; scrollbar-width:thin; }
.tahp-tabs a { border-bottom:3px solid transparent; color:var(--ta-muted); flex:0 0 auto; font-size:14px; font-weight:750; padding:17px 14px 14px; }
.tahp-tabs a.is-active,.tahp-tabs a:hover { border-color:var(--ta-gold); color:var(--ta-navy); }
.tahp-hero { background:linear-gradient(135deg,#fff,#eef2f6); border:1px solid var(--ta-line); border-radius:20px; margin-bottom:24px; padding:clamp(28px,5vw,52px); }
.tahp-hero p:last-child { color:var(--ta-muted); font-size:17px; }
.tahp-stat-grid { display:grid; gap:18px; grid-template-columns:repeat(4,1fr); margin-bottom:24px; }
.tahp-stat { background:#fff; border:1px solid var(--ta-line); border-radius:16px; box-shadow:0 10px 28px rgba(11,31,58,.07); color:var(--ta-text); display:grid; gap:5px; padding:24px; }
.tahp-stat strong { color:var(--ta-navy); font-size:42px; line-height:1; }
.tahp-stat span { color:var(--ta-muted); font-size:14px; }
.tahp-grid-2 { display:grid; gap:24px; grid-template-columns:repeat(2,1fr); }
.tahp-card-grid { display:grid; gap:24px; grid-template-columns:repeat(2,1fr); }
.tahp-section-title { margin:34px 0 24px; }
.tahp-home-icon { color:var(--ta-gold); font-size:44px; }
.tahp-card dl { display:grid; gap:0; margin:22px 0; }
.tahp-card dl>div { align-items:center; border-bottom:1px solid var(--ta-line); display:flex; justify-content:space-between; padding:10px 0; }
.tahp-card dt { color:var(--ta-muted); font-size:13px; }
.tahp-card dd { color:var(--ta-navy); font-weight:750; margin:0; text-align:right; }
.tahp-card-top,.tahp-project-head { align-items:flex-start; display:flex; gap:20px; justify-content:space-between; }
.tahp-badge,.tahp-status { border-radius:999px; display:inline-flex; font-size:12px; font-weight:800; line-height:1.2; padding:7px 11px; }
.tahp-badge { background:var(--ta-navy); color:#fff; }
.tahp-status { background:#fff3be; color:#604900; }
.tahp-project-head { background:var(--ta-navy); border-radius:20px; color:#fff; margin:26px 0 16px; padding:clamp(24px,4vw,42px); }
.tahp-project-head h1 { color:#fff; font-size:clamp(27px,3.5vw,44px); margin:15px 0 8px; }
.tahp-project-tabs { background:#fff; border:1px solid var(--ta-line); border-radius:14px; display:flex; gap:4px; margin-bottom:22px; overflow-x:auto; padding:9px; }
.tahp-project-tabs a { border-radius:8px; color:var(--ta-muted); flex:0 0 auto; font-size:13px; font-weight:700; padding:10px 13px; }
.tahp-project-tabs a.is-active { background:var(--ta-gold); color:var(--ta-navy); }
.tahp-detail-grid { display:grid!important; gap:0 28px!important; grid-template-columns:repeat(2,1fr); }
.tahp-photo-grid { display:grid; gap:18px; grid-template-columns:repeat(3,1fr); }
.tahp-photo-grid figure { background:var(--ta-soft); border-radius:12px; margin:0; overflow:hidden; }
.tahp-photo-grid img { aspect-ratio:3/2; display:block; object-fit:cover; width:100%; }
.tahp-photo-grid figcaption { display:grid; gap:3px; padding:12px 14px; }
.tahp-photo-grid figcaption span { color:var(--ta-muted); font-size:12px; }
.tahp-document-list article { align-items:center; border-bottom:1px solid var(--ta-line); display:grid; gap:16px; grid-template-columns:auto 1fr auto; padding:16px 0; }
.tahp-doc-icon { align-items:center; background:#fff0ee; border-radius:8px; color:var(--ta-danger); display:flex; font-size:11px; font-weight:900; height:44px; justify-content:center; width:44px; }
.tahp-document-list h3,.tahp-document-list p { margin:0; }
.tahp-document-list p { color:var(--ta-muted); font-size:13px; margin-top:4px; }
.tahp-doc-actions { display:flex; gap:12px; }
.tahp-doc-actions a { color:#725700; font-size:13px; font-weight:800; }
.tahp-actions { display:flex; flex-wrap:wrap; gap:12px; }
.tahp-timeline { margin-top:24px; }
.tahp-timeline-item { display:grid; gap:22px; grid-template-columns:145px 1fr; padding:0 0 28px; position:relative; }
.tahp-timeline-item::before { background:var(--ta-gold); border:4px solid #fff; border-radius:50%; box-shadow:0 0 0 2px var(--ta-gold); content:""; height:12px; left:153px; position:absolute; top:4px; width:12px; }
.tahp-timeline-item::after { background:var(--ta-line); content:""; height:calc(100% - 12px); left:158px; position:absolute; top:18px; width:2px; }
.tahp-timeline-item:last-child::after { display:none; }
.tahp-timeline-item>div { padding-left:25px; }
.tahp-timeline-item time { color:var(--ta-muted); font-size:13px; text-align:right; }
.tahp-timeline-item p { color:var(--ta-muted); margin:5px 0 0; }
.tahp-empty { padding:70px 30px; text-align:center; }
.tahp-empty-icon { color:var(--ta-gold); font-size:64px; }
.tahp-form-card { max-width:920px; }
.tahp-big-date { color:var(--ta-navy); font-size:26px; font-weight:850; }

@media (max-width: 900px) {
  .tahp-global-menu { display:block; width:100%; }
  .tahp-global-submenu { background:transparent; border:0; box-shadow:none; display:block; min-width:0; padding:0 0 0 14px; position:static; }
  .tahp-global-submenu a { color:inherit!important; padding:8px 0!important; }
  .tahp-auth-layout { grid-template-columns:1fr; }
  .tahp-auth-brand { min-height:auto; }
  .tahp-stat-grid { grid-template-columns:repeat(2,1fr); }
  .tahp-photo-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 640px) {
  .tahp-page { padding:18px 12px 54px; }
  .tahp-auth-brand { border-radius:18px; padding:30px 24px; }
  .tahp-card { border-radius:15px; padding:20px; }
  .tahp-portal-header { border-radius:14px 14px 0 0; padding:18px; }
  .tahp-tabs { margin-bottom:22px; }
  .tahp-stat-grid,.tahp-grid-2,.tahp-card-grid,.tahp-detail-grid { grid-template-columns:1fr; }
  .tahp-stat { align-items:center; grid-template-columns:auto 1fr; }
  .tahp-stat strong { font-size:34px; }
  .tahp-photo-grid { grid-template-columns:1fr; }
  .tahp-project-head { display:block; }
  .tahp-project-head .tahp-status { margin-top:12px; }
  .tahp-document-list article { align-items:start; grid-template-columns:auto 1fr; }
  .tahp-doc-actions { grid-column:2; }
  .tahp-timeline-item { gap:10px; grid-template-columns:1fr; padding-left:26px; }
  .tahp-timeline-item::before { left:0; }
  .tahp-timeline-item::after { left:5px; }
  .tahp-timeline-item>div { padding-left:0; }
  .tahp-timeline-item time { text-align:left; }
  .tahp-button { width:100%; }
}
