/*
  Final visual layer. It is intentionally loaded after the older theme files so
  public pages and the CMS share one clean, responsive visual language.
*/
:root{--cc-navy:#102e52;--cc-blue:#2167dc;--cc-orange:#fa7318;--cc-yellow:#ffd15f;--cc-bg:#f6f8fc;--cc-ink:#122d4a;--cc-muted:#61738a;--cc-line:#dce5ef;--cc-white:#fff;--cc-radius:18px}
html{scroll-behavior:smooth}body{color:var(--cc-ink)}
body:not(.admin-page){background:var(--cc-bg)}
body:not(.admin-page) .utility-bar{background:linear-gradient(90deg,#092642,#164b80);font-size:12px;letter-spacing:.01em}
body:not(.admin-page) .utility-inner{display:flex;align-items:center;justify-content:space-between;min-height:32px;color:#c7d9ec;font-weight:600}.utility-contact{display:inline-flex;align-items:center;gap:7px}.utility-contact i{color:#ffbe4c;font-size:10px;font-style:normal}.utility-contact a{color:#fff;text-decoration:none;font-weight:800}.utility-contact a:hover{text-decoration:underline}.utility-message{font-size:11px;color:#dce8f7}
body:not(.admin-page) .site-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(16px);border-bottom:1px solid #dfe8f2!important}
body:not(.admin-page) .header-inner{min-height:78px}
body:not(.admin-page) .brand{position:relative;display:inline-flex;align-items:center;gap:10px;color:var(--cc-navy)!important;font-size:22px!important;letter-spacing:-.8px}
body:not(.admin-page) .brand:before{display:none}.brand-mark{position:relative;display:inline-block;width:25px;height:25px;flex:0 0 25px}.brand-mark:before,.brand-mark:after,.brand-mark i,.brand-mark b{content:"";position:absolute;display:block;border-radius:50%}.brand-mark:before{width:11px;height:11px;left:0;top:8px;background:var(--cc-orange)}.brand-mark:after{width:12px;height:12px;right:0;top:2px;background:#1d6ddd}.brand-mark i{width:12px;height:12px;right:0;bottom:1px;background:#12375e}.brand-mark b{width:6px;height:6px;left:10px;top:10px;background:#ffd15f;box-shadow:0 0 0 3px #fff}
body:not(.admin-page) .main-nav{align-items:center;gap:8px}
body:not(.admin-page) .main-nav a{padding:9px 12px;border-radius:9px;color:#26425f;font-size:14px}
body:not(.admin-page) .main-nav a:not(.nav-post):hover{color:var(--cc-blue);background:#edf4ff}
body:not(.admin-page) .main-nav .nav-post{background:var(--cc-orange);box-shadow:0 9px 20px #fa73183d}
body:not(.admin-page) .main-nav .nav-post:hover{transform:translateY(-1px);box-shadow:0 12px 25px #fa731852}
body:not(.admin-page) .main-nav .nav-assist{margin-left:4px;border:1px solid #cbdced;color:#1b568f;font-weight:800}
body:not(.admin-page) .main-nav .nav-assist:before{content:"☎";display:inline-block;margin-right:6px;font-size:13px}
body:not(.admin-page) .main-nav .nav-assist:hover{border-color:#8fb9ec;background:#edf6ff;color:#144c84}
body:not(.admin-page) .home-hero{margin-top:26px;border-radius:26px;box-shadow:0 20px 46px #102e5226}
body:not(.admin-page) .home-search{box-shadow:0 14px 34px #08244726}
body:not(.admin-page) .home-section-heading h1,body:not(.admin-page) .home-section-heading h2{font-weight:800;letter-spacing:-1px;color:var(--cc-navy)}
body:not(.admin-page) .home-grid .listing-card,body:not(.admin-page) .requirement-card{border:1px solid var(--cc-line);box-shadow:0 10px 28px #1435530d;transition:transform .2s ease,box-shadow .2s ease}
body:not(.admin-page) .home-grid .listing-card:hover,body:not(.admin-page) .requirement-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px #1435531c}
body:not(.admin-page) .home-grid .listing-cover{transition:transform .35s ease}body:not(.admin-page) .listing-card{overflow:hidden}body:not(.admin-page) .listing-card:hover .listing-cover{transform:scale(1.035)}
body:not(.admin-page) .listing-content h3{font-weight:750;color:var(--cc-navy)}body:not(.admin-page) .listing-content p{font-size:13px}
body:not(.admin-page) .badge{border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;letter-spacing:.3px}
body:not(.admin-page) .requirement-card{border-top:4px solid var(--cc-orange)}body:not(.admin-page) .requirement-card-top>img{padding:7px;width:48px;height:48px;border-radius:13px;background:#eaf2ff}
body:not(.admin-page) .home-contact{background:linear-gradient(110deg,#102e52,#1e5fa5);box-shadow:0 16px 36px #102e5228}
body:not(.admin-page) .filter-bar{padding:16px;border-radius:14px;border:1px solid var(--cc-line)!important;box-shadow:0 8px 24px #1435530d}
body:not(.admin-page) .filter-bar input,body:not(.admin-page) .filter-bar select{border:1px solid var(--cc-line);border-radius:10px;background:#fff}
body:not(.admin-page) .page-heading{margin-top:42px}
/* Admin shell */
body.admin-page{background:linear-gradient(135deg,#f4f7fb,#eef3fa);min-height:100vh}
body.admin-page .site-header{height:76px;min-height:76px;background:#fff!important;box-shadow:0 2px 16px #102e520a}
body.admin-page .site-header .brand{color:var(--cc-navy)!important;font-size:21px!important}
body.admin-page .shared-admin-sidebar{top:76px;width:264px;padding:25px 15px;background:linear-gradient(180deg,#102f55 0%,#08213f 100%);box-shadow:8px 0 30px #081e3830}
body.admin-page .shared-admin-sidebar h2{font-size:18px;color:#fff;margin:0 8px 21px;padding:0 10px 18px;border-bottom-color:#ffffff22}
body.admin-page .shared-admin-sidebar a{min-height:47px;padding:12px 13px;margin:5px 0;border-radius:11px;color:#c7d7e9}
body.admin-page .shared-admin-sidebar a:hover{background:#ffffff14;transform:none}
body.admin-page .shared-admin-sidebar a.active,body.admin-page .shared-admin-sidebar a:first-of-type.active{background:linear-gradient(100deg,#fa7318,#ff8b35)!important;color:#fff;box-shadow:0 10px 22px #ef70183d}
body.admin-page>main.container{margin-left:264px;padding:38px 40px 46px;max-width:none;width:auto}
body.admin-page h1{font-weight:800;letter-spacing:-1.2px;color:#102e52}
body.admin-page .page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 26px}
body.admin-page .page-heading p{font-size:15px}
body.admin-page .card,body.admin-page .admin-table-wrap{border-color:var(--cc-line);border-radius:var(--cc-radius);box-shadow:0 12px 30px #1234520a}
body.admin-page .admin-table-wrap{background:#fff;overflow:auto}
body.admin-page .admin-table th{background:#f3f7fd;color:#45617e;padding-block:17px}
body.admin-page .admin-table td{padding-block:17px;border-color:#e5ebf3}
body.admin-page .button{border-radius:10px;box-shadow:0 8px 15px #fa731826}
body.admin-page .button.danger{box-shadow:none}
body.admin-page input,body.admin-page select,body.admin-page textarea{border-color:#d4dfec;border-radius:10px}
body.admin-page .dashboard-card{border-radius:16px;padding:24px;box-shadow:0 12px 28px #1234520b}
body.admin-page .dashboard-card:hover{border-color:#b6d0fa;transform:translateY(-2px)}
body.admin-page .dashboard-card strong{color:var(--cc-orange)}
@media(max-width:720px){
 body:not(.admin-page) .utility-bar{display:none}
 body:not(.admin-page) .site-header{position:sticky;top:0}
 body:not(.admin-page) .header-inner{min-height:62px;padding-block:0}
 body:not(.admin-page) .brand{font-size:17px!important;gap:7px}
 body:not(.admin-page) .brand-mark{transform:scale(.76);transform-origin:left center;margin-right:-5px}
 body:not(.admin-page) .nav-toggle{display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid #d6e2ee;border-radius:11px;background:#fff}
 body:not(.admin-page) .nav-toggle span{width:18px;height:2px;margin:2px;background:#163b61}
 body:not(.admin-page) .main-nav{padding:10px 0 6px;gap:6px}
 body:not(.admin-page) .main-nav a{padding:11px 12px;font-size:14px}
 body:not(.admin-page) .main-nav .nav-assist{margin:4px 0 0;text-align:center;background:#eef6ff;border-color:#c6ddf5}
 body:not(.admin-page) .home-hero{margin-top:14px;border-radius:19px;padding:28px 18px 18px}
 body:not(.admin-page) .home-hero h1{font-size:36px;letter-spacing:-1.3px;margin:14px 0}
 body:not(.admin-page) .home-hero-copy p{font-size:14px}
 body:not(.admin-page) .home-search{margin-top:24px;padding:14px;border-radius:13px}
 body:not(.admin-page) .home-section-heading{margin-bottom:18px}
 body:not(.admin-page) .home-section-heading p{font-size:14px}
 body:not(.admin-page) .home-grid .listing-cover,body:not(.admin-page) .home-grid .listing-placeholder{height:205px}
 body:not(.admin-page) .home-grid .listing-content{padding:18px}
 body:not(.admin-page) .home-grid h3{font-size:18px}
 body:not(.admin-page) .home-contact{border-radius:18px;padding:24px 20px}
 body.admin-page .site-header{height:64px;min-height:64px}
 body.admin-page .shared-admin-sidebar{top:auto;padding:12px}
 body.admin-page .shared-admin-sidebar h2{font-size:16px;margin:0;padding:6px 8px 12px}
 body.admin-page .shared-admin-sidebar a{min-height:38px;padding:8px 10px;border-radius:8px}
 body.admin-page>main.container{margin-left:0;padding:24px 14px 36px}
 body.admin-page .page-heading{display:block;margin-bottom:20px}
 body.admin-page .page-heading h1{font-size:28px}
 body.admin-page .admin-table{min-width:780px}
}
/* CMS navigation: fixed desktop rail, compact mobile drawer. */
.admin-menu-toggle,.admin-sidebar-close,.admin-sidebar-backdrop{display:none}
.admin-sidebar-title{display:flex;align-items:center;justify-content:space-between;gap:10px}
body.admin-page .site-header .header-inner{width:100%;max-width:none;padding-inline:32px}
@media(min-width:721px){
 body.admin-page .shared-admin-sidebar{display:block!important;transform:none!important}
}
@media(max-width:720px){
 body.admin-page{overflow-x:hidden}
 body.admin-page .site-header{position:sticky;top:0;z-index:120}
 body.admin-page .site-header .header-inner{min-height:64px;flex-direction:row;align-items:center;justify-content:space-between;padding:0 16px}
 body.admin-page .site-header .brand{font-size:18px!important}
 .admin-menu-toggle{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid #d3e0ee;border-radius:12px;background:#f8fbff;cursor:pointer}
 .admin-menu-toggle span{display:block;width:19px;height:2px;margin:2px;border-radius:3px;background:#103b65}
 .admin-sidebar-backdrop{position:fixed;inset:0;z-index:130;border:0;background:#071d36a3;opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease}
 body.admin-menu-open .admin-sidebar-backdrop{display:block;opacity:1;visibility:visible}
 body.admin-page .shared-admin-sidebar{position:fixed!important;top:0!important;left:0;bottom:auto;width:min(310px,86vw)!important;height:100dvh;display:block!important;overflow-y:auto;overflow-x:hidden;padding:18px 14px 28px;z-index:140;transform:translateX(-105%);transition:transform .25s cubic-bezier(.2,.8,.2,1);box-shadow:16px 0 42px #071d364d}
 body.admin-menu-open .shared-admin-sidebar{transform:translateX(0)}
 body.admin-menu-open{overflow:hidden}
 .admin-sidebar-title{padding:2px 6px 16px;margin-bottom:10px;border-bottom:1px solid #ffffff24}
 body.admin-page .shared-admin-sidebar h2{margin:0;padding:0;border:0;font-size:18px}
 .admin-sidebar-close{display:grid;place-items:center;width:35px;height:35px;border:0;border-radius:10px;background:#ffffff18;color:#fff;font-size:27px;line-height:1;cursor:pointer}
 body.admin-page .shared-admin-sidebar a{display:flex!important;width:100%!important;min-height:47px;margin:5px 0;padding:12px 13px;font-size:14px;border-radius:10px}
 body.admin-page .shared-admin-sidebar a:last-child{margin-top:16px;border-top:1px solid #ffffff1c;border-radius:0;padding-top:18px}
 body.admin-page>main.container{width:100%;max-width:none;margin:0;padding:24px 14px 38px}
 body.admin-page .dashboard-cards{gap:12px}
 body.admin-page .dashboard-card{padding:18px}
 body.admin-page .card{border-radius:14px}
 body.admin-page .form-card{padding:20px 16px}
 body.admin-page .quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
 body.admin-page .quick-actions .button{width:100%;margin:0}
}
@media(max-width:390px){
 body.admin-page .quick-actions{grid-template-columns:1fr}
 body.admin-page .site-header .brand{font-size:16px!important}
}
/* Fine-tuning for spacious desktop pages and empty-state sections. */
@media(min-width:721px){
 body:not(.admin-page) .site-header{position:relative}
}
body:not(.admin-page) .home-section-heading>a{display:inline-flex;align-items:center;gap:7px;padding:10px 14px;border:1px solid #d6e3f3;border-radius:10px;background:#fff;color:var(--cc-blue)!important;text-decoration:none;font-size:14px;font-weight:800;box-shadow:0 5px 16px #153b5e0a}
body:not(.admin-page) .home-section-heading>a:hover{border-color:#a9c9f5;background:#f2f7ff;color:#154cae!important;text-decoration:none}
body:not(.admin-page) .home-empty{grid-column:auto;max-width:590px;min-height:0;padding:30px 32px!important;border:1px dashed #bcd1e8!important;border-radius:18px!important;background:linear-gradient(135deg,#fff,#f5f9ff);box-shadow:none!important}
body:not(.admin-page) .home-empty:before{content:"⌂";display:grid;place-items:center;width:46px;height:46px;margin-bottom:14px;border-radius:14px;background:#e8f1ff;color:#2864ba;font-size:28px;font-weight:800}
body:not(.admin-page) .home-empty h3,body:not(.admin-page) .home-empty h2{margin:0 0 7px;color:var(--cc-navy)}
body:not(.admin-page) .home-empty p{margin:0 0 14px;color:var(--cc-muted)}
body:not(.admin-page) .home-empty a{color:#165fc9;font-weight:800}
body:not(.admin-page) .home-requirements .home-grid{align-items:start}
@media(max-width:640px){
 body:not(.admin-page) .home-empty{max-width:none;padding:24px!important}
 body:not(.admin-page) .home-section-heading>a{align-self:flex-start}
}
/* Admin-only log viewer */
.system-log-card{padding:0!important;overflow:hidden}.system-log-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;background:#f6f9fd;border-bottom:1px solid var(--cc-line);color:var(--cc-muted);font-size:13px}.log-status-ready{background:#e5f8ed!important;color:#197044!important}.system-log-output{max-height:520px;overflow:auto;margin:0;padding:20px;background:#0a2039;color:#d9e9fb;font:12px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.system-log-empty{padding:34px 24px}.system-log-empty h2,.system-log-help h2{font-size:19px;margin-top:0}.system-log-empty code,.system-log-help code{padding:2px 5px;border-radius:4px;background:#edf2f8;color:#1d4d7b}.system-log-help{margin-top:20px;padding:22px 24px}.system-log-help ol{margin:0;padding-left:20px;color:var(--cc-muted)}.system-log-help li+li{margin-top:8px}@media(max-width:720px){.system-log-meta{align-items:flex-start;flex-direction:column;padding:14px 16px}.system-log-output{max-height:420px;padding:15px;font-size:11px}.system-log-empty,.system-log-help{padding:22px 18px}}
.system-health-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:0 0 20px}.system-health-card{padding:18px!important;min-width:0}.system-health-card span{display:block;color:var(--cc-muted);font-size:12px;font-weight:700}.system-health-card strong{display:block;margin-top:8px;color:#197044;font-size:15px;overflow-wrap:anywhere}.system-health-card strong.health-warning{color:#c05a07}@media(max-width:1000px){.system-health-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.system-health-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.system-health-card{padding:14px!important}.system-health-card strong{font-size:13px}}
