/* The Accra Handyman – Staff Portal (V2.5.1). Scoped to body.tahs; also supplies the few wp-admin classes the shared V2.5 screens rely on. */
:root { --tahs-ink:#14232b; --tahs-brand:#0b6e4f; --tahs-brand-d:#08543c; --tahs-line:#d9e0e4; --tahs-bg:#f3f6f7; --tahs-warn:#b3261e; }
body.tahs { margin:0; background:var(--tahs-bg); color:var(--tahs-ink); font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; -webkit-text-size-adjust:100%; }
body.tahs *, body.tahs *::before, body.tahs *::after { box-sizing:border-box; }
.tahs a { color:var(--tahs-brand-d); }
.tahs h1 { font-size:22px; margin:.2em 0 .4em; } .tahs h2 { font-size:18px; margin:1.2em 0 .5em; } .tahs h3 { font-size:16px; }
.tahs-top { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:10px 14px; background:var(--tahs-ink); color:#fff; position:sticky; top:0; z-index:20; }
.tahs-brand { text-decoration:none; color:#fff !important; display:flex; flex-direction:column; line-height:1.1; }
.tahs-logo { font-weight:800; letter-spacing:.06em; font-size:14px; } .tahs-sub { font-size:11px; letter-spacing:.18em; opacity:.8; }
.tahs-user { display:flex; align-items:center; gap:10px; font-size:13px; } .tahs-user__name { font-weight:600; } .tahs-user__role { opacity:.75; display:none; }
.tahs-signout { background:transparent !important; color:#fff !important; border:1px solid rgba(255,255,255,.5) !important; padding:6px 10px !important; min-height:0 !important; font-size:13px !important; }
.tahs-body { display:block; }
.tahs-main { padding:14px 12px 96px; max-width:1280px; margin:0 auto; }
/* mobile: bottom tab bar */
.tahs-nav { position:fixed; left:0; right:0; bottom:0; z-index:30; display:flex; overflow-x:auto; background:#fff; border-top:1px solid var(--tahs-line); -webkit-overflow-scrolling:touch; }
.tahs-nav a { flex:1 0 74px; display:flex; flex-direction:column; align-items:center; gap:2px; padding:8px 4px; font-size:11px; text-decoration:none; color:#46575f; min-height:56px; }
.tahs-nav a.is-current { color:var(--tahs-brand); font-weight:700; box-shadow:inset 0 3px 0 var(--tahs-brand); }
@media (min-width:900px) {
	.tahs-body { display:grid; grid-template-columns:210px 1fr; }
	.tahs-nav { position:sticky; top:52px; align-self:start; height:calc(100vh - 52px); flex-direction:column; overflow:auto; border-top:0; border-right:1px solid var(--tahs-line); padding-top:8px; }
	.tahs-nav a { flex:0 0 auto; flex-direction:row; gap:10px; padding:11px 16px; font-size:14px; min-height:0; }
	.tahs-nav a.is-current { box-shadow:inset 3px 0 0 var(--tahs-brand); background:#eef6f3; }
	.tahs-main { padding:20px 24px 40px; width:100%; } .tahs-user__role { display:inline; }
}
/* Shared "wp-admin" classes used by the V2.5 renderers */
.tahs .wrap { margin:0; }
.tahs .button { display:inline-block; min-height:44px; padding:10px 16px; border:1px solid #9aa9b0; border-radius:8px; background:#fff; color:var(--tahs-ink); font:600 14px/1.2 inherit; text-decoration:none; cursor:pointer; text-align:center; }
.tahs .button-primary { background:var(--tahs-brand); border-color:var(--tahs-brand-d); color:#fff; }
.tahs .button-small { min-height:36px; padding:6px 12px; }
.tahs .button-link, .tahs .button-link-delete { background:none; border:0; color:var(--tahs-warn); text-decoration:underline; cursor:pointer; padding:6px 0; font-size:14px; }
.tahs .tahs-big { min-height:52px; font-size:16px; padding:14px 18px; }
.tahs .tahs-block { display:block; width:100%; }
.tahs .tahs-danger { color:var(--tahs-warn); border-color:var(--tahs-warn); }
.tahs input[type=text], .tahs input[type=email], .tahs input[type=password], .tahs input[type=tel], .tahs input[type=search], .tahs input[type=date], .tahs input[type=time], .tahs input[type=number], .tahs select, .tahs textarea { width:100%; min-height:44px; padding:9px 11px; border:1px solid #9aa9b0; border-radius:8px; font:inherit; background:#fff; color:inherit; }
.tahs input[type=checkbox] { width:20px; height:20px; vertical-align:middle; }
.tahs label { display:block; font-size:14px; font-weight:600; margin:0 0 10px; } .tahs label input, .tahs label select, .tahs label textarea { margin-top:4px; font-weight:400; }
.tahs .tahs-check { font-weight:400; }
.tahs .widefat { width:100%; border-collapse:collapse; background:#fff; } .tahs .widefat th, .tahs .widefat td { padding:8px 10px; border-bottom:1px solid var(--tahs-line); text-align:left; vertical-align:top; }
.tahs .widefat.striped tbody tr:nth-child(odd) { background:#fafcfc; }
.tahs .notice { padding:10px 14px; margin:10px 0; border-left:4px solid #6c7a82; background:#fff; border-radius:4px; } .tahs .notice p { margin:.2em 0; }
.tahs .notice-success { border-color:var(--tahs-brand); } .tahs .notice-error, .tahs .notice-warning { border-color:var(--tahs-warn); }
.tahs .description { color:#5b6a71; font-size:13px; }
.tahs .screen-reader-text { position:absolute; left:-9999px; }
.tahs .tah-box { background:#fff; border:1px solid var(--tahs-line); border-radius:10px; padding:14px; margin:12px 0; }
.tahs-pill { display:inline-block; padding:2px 10px; border-radius:99px; background:#e4edf0; font-size:12px; font-weight:600; }
.tahs-inline { display:inline-block; margin:0 6px 8px 0; } .tahs-inline select { width:auto; margin-right:6px; }
.tahs-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; } .tahs-actions .button { flex:1 1 220px; }
.tahs-grid { display:grid; grid-template-columns:1fr; gap:0 14px; } .tahs-full { grid-column:1/-1; }
@media (min-width:700px) { .tahs-grid { grid-template-columns:1fr 1fr; } }
.tahs-sched, .tahs-jobs { list-style:none; margin:0; padding:0; } .tahs-sched li { padding:10px 0; border-bottom:1px solid var(--tahs-line); }
.tahs-job { display:flex; flex-direction:column; gap:3px; padding:14px; margin:0 0 10px; background:#fff; border:1px solid var(--tahs-line); border-left:5px solid var(--tahs-brand); border-radius:10px; text-decoration:none; color:var(--tahs-ink) !important; min-height:64px; }
.tahs-job__top { display:flex; justify-content:space-between; align-items:center; gap:8px; } .tahs-job__svc { font-weight:600; } .tahs-job__meta { font-size:13px; color:#5b6a71; }
.tahs-mini { font-size:12px; font-weight:400; margin-left:8px; }
.tahs-empty { text-align:center; padding:40px 12px; }
.tahs .tah-dl { display:grid; grid-template-columns:1fr; gap:2px; margin:0; } .tahs .tah-dl dt { font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:#5b6a71; margin-top:8px; } .tahs .tah-dl dd { margin:0; }
@media (min-width:600px) { .tahs .tah-dl { grid-template-columns:160px 1fr; } .tahs .tah-dl dt { margin:0; padding-top:2px; } }
/* Auth screens */
body.tahs--plain main { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:16px; }
.tahs-auth { width:100%; max-width:380px; background:#fff; border:1px solid var(--tahs-line); border-radius:14px; padding:24px 20px; box-shadow:0 6px 24px rgba(20,35,43,.08); }
.tahs-auth__brand { display:flex; flex-direction:column; align-items:center; margin-bottom:16px; color:var(--tahs-ink); } .tahs-auth__brand .tahs-sub { color:var(--tahs-brand); opacity:1; }
.tahs-center { text-align:center; }
.tahs-msg { padding:10px 12px; border-radius:8px; font-size:14px; } .tahs-msg--err { background:#fdecea; color:#7a1b15; } .tahs-msg--ok { background:#e6f4ee; color:#0b4f38; }
/* Technician job screen: big touch targets down to 320px */
.tahs-jobpage .tah-box form label { margin-bottom:12px; }
.tahs-jobpage textarea { min-height:90px; }
@media (max-width:360px) { .tahs-main { padding:10px 8px 96px; } .tahs h1 { font-size:20px; } .tahs-user__name { max-width:90px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } }
.tahs table.tah-table { width:100%; }
.tahs img { max-width:100%; height:auto; }
.tahs label:has(> input[type=checkbox]) { display:flex; align-items:center; gap:10px; min-height:44px; font-weight:400; }
.tahs label:has(> input[type=checkbox]) input { margin:0; flex:0 0 auto; }
/* The portal's content column is narrower than wp-admin's, so stack the dashboard's two columns until there is real room. */
.tahs .tah-dash2 { grid-template-columns:minmax(0,1fr); }
.tahs .tah-dash2 > * { min-width:0; overflow-x:auto; }
@media (min-width:1500px) { .tahs .tah-dash2 { grid-template-columns:minmax(0,2fr) minmax(260px,1fr); } }

/* V2.5.1 hardening – 2FA screens */
.tahs-auth--wide { max-width:460px; }
.tahs-steps { padding-left:20px; line-height:1.5; } .tahs-steps li { margin-bottom:10px; }
.tahs-qr { margin:10px 0; text-align:center; } .tahs-qr svg { width:200px; height:200px; max-width:100%; }
.tahs-key { display:block; padding:10px; background:#f3f6f7; border-radius:6px; letter-spacing:1px; word-break:break-all; overflow-wrap:anywhere; font-size:16px; line-height:1.5; -webkit-user-select:all; user-select:all; }
.tahs-opt { border:1px solid #d9e1e4; border-radius:10px; padding:12px; margin:12px 0; } .tahs-opt h2 { font-size:16px; margin:0 0 6px; }
.tahs .tahs-touch { min-height:48px; padding:13px 12px; line-height:1.3; text-align:center; text-decoration:none; margin:8px 0; box-sizing:border-box; }
.tahs-copy-status { min-height:1.2em; margin:4px 0; font-size:14px; } .tahs-copy-ok { color:#0a6b2d; } .tahs-copy-fail { color:#a02020; }
.tahs-hint { font-size:13px; color:#4a5a60; }
.tahs-codes { list-style:none; margin:12px 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.tahs-codes li code { display:block; text-align:center; padding:8px 4px; background:#f3f6f7; border-radius:6px; font-size:15px; letter-spacing:1px; }
.tahs-sec-pass { color:#0a6b3a; font-weight:700; } .tahs-sec-warn { color:#8a5a00; font-weight:700; } .tahs-sec-crit { color:#b00020; font-weight:700; }
.tahs-sec-banner { background:#b00020; color:#fff; padding:14px 16px; border-radius:8px; font-weight:700; margin:0 0 14px; }
