@font-face {
  font-family: Manrope;
  src: url('/assets/manrope.ttf') format('truetype');
  font-weight: 400 800;
  font-display: swap;
}
:root {
  color-scheme: dark;
  --bg: #141516;
  --rail: #101112;
  --panel: #1d1f20;
  --raised: #252729;
  --border: #333537;
  --text: #f4f4f1;
  --muted: #a7a9ab;
  --accent: #f5cf59;
  --mono: Consolas, 'Liberation Mono', monospace;
  --side: 216px;
  font: 14px/1.5 Manrope, 'Segoe UI', Arial, sans-serif;
  background: var(--bg);
  color: var(--text);
  font-synthesis: none;
  scrollbar-color: #505151 var(--bg);
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 300px; }
body:has(dialog[open]), body.menu-open { overflow: hidden; }
button, input, textarea, select { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, a { touch-action: manipulation; }
button { color: inherit; cursor: pointer; }
button:disabled { opacity: .52; cursor: wait; }
a { color: inherit; text-decoration: none; }
button { background: none; border: 0; padding: 0; }
h1, h2, h3, p, figure, dl, dd { margin: 0; }
h1, h2, h3 { line-height: 1.22; }
h1 { font-size: 34px; font-weight: 750; letter-spacing: -.045em; }
h2 { font-size: 22px; font-weight: 740; letter-spacing: -.035em; }
h3 { font-size: 16px; font-weight: 690; letter-spacing: -.02em; }
img { display: block; max-width: 100%; }
.icon { display:inline-block; flex: 0 0 auto; vertical-align: middle; }
button, a, input, select, textarea { outline-offset: 3px; }
:focus-visible { outline: 2px solid var(--accent); }
::selection { background:#f5cf59; color:#171810; }
[hidden] { display: none !important; }
.skip-link { position:fixed; z-index:40; top:5px; left:10px; background:var(--accent); color:#111; padding:9px 14px; transform:translateY(-160%); }
.skip-link:focus-visible { transform:none; }
.muted { color: var(--muted); }
.loading { padding:30px; color:var(--muted); }
#sidebar { width: var(--side); position: fixed; inset: 0 auto 0 0; z-index: 5; background:var(--rail); border-right:1px solid #2c2e2f; display:flex; flex-direction:column; }
.brand { display:flex; align-items:center; gap:10px; height:76px; margin:0 24px; width:max-content; font-size:29px; font-weight:800; letter-spacing:-1.7px; }
.brand img { width:34px; height:34px; }
.brand-dot { color:var(--accent); }
nav { margin:25px 14px; }
.nav-label { margin:0 0 10px 13px; color:#8d9091; text-transform:uppercase; font:600  11px/1.4 var(--mono); letter-spacing:.105em; }
.nav-group + .nav-group { margin-top:31px; }
.nav-link { display:flex; align-items:center; gap:12px; min-height:43px; margin:3px 0; padding:0 13px; border-radius:6px; color:#b7b9b9; font-size:13px; font-weight:570; }
.nav-link:hover { background:#1c1e1f; color:white; }
.nav-link.selected { color:#f7d568; background:#302d21; }
.nav-count { margin-left:auto; min-width:21px; text-align:center; border:1px solid #37393a; color:#b7b7b4; font:11px/18px var(--mono); border-radius:4px; }
.sidebar-bottom { margin-top:auto; padding:14px 14px 20px; border-top:1px solid #2a2b2c; }
.workspace-switch { width:100%; display:flex; align-items:center; gap:10px; text-align:left; padding:7px 5px; }
.workspace-switch>span:nth-child(2) { min-width:0; display:grid; gap:3px; }
.workspace-switch strong { max-width:130px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:12px; font-weight:620; }
.workspace-switch small { color:var(--muted); font-size:11px; }
.workspace-switch>.icon { margin-left:auto; color:var(--muted); }
.workspace-avatar { height:34px; width:34px; flex:none; display:grid; place-items:center; border:1px solid #43423b; background:#272720; color:var(--accent); border-radius:7px; }
.shell { margin-left:var(--side); min-height:100dvh; }
#topbar { height:65px; border-bottom:1px solid #2d2e2f; padding:0 32px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.topbar-start,.topbar-end,.breadcrumb,.search-launch { display:flex; align-items:center; }
.topbar-start { gap:12px; }
.topbar-end { gap:18px; }
.breadcrumb { gap:11px; font-size:12px; font-weight:500; color:#9da0a1; }
.breadcrumb .icon { color:#626565; }
.breadcrumb strong { color:#efefed; font-weight:600; }
.mobile-brand { display:none; }
.search-launch { color:#a8aaa9; font-size:12px; gap:9px; }
.search-launch:hover { color:white; }
kbd { border:1px solid #3b3d3d; width:19px; height:19px; font:11px/17px var(--mono); border-radius:4px; color:#b7b8b6; margin-left:10px; }
.top-divider { width:1px; height:20px; background:var(--border); }
.header-avatar { width:30px; height:30px; border-radius:50%; color:#ebd5ab; background:#41382a; border:1px solid #5a4a33; font-size:11px; font-weight:760; letter-spacing:.06em; }
.mobile-menu { display:none !important; }
#content { width:100%; max-width:1850px; padding:28px 32px 44px; margin:auto; outline:0; }
.hero { overflow:hidden; isolation:isolate; position:relative; background:#262622; border:1px solid #474438; border-radius:10px; min-height:222px; display:flex; align-items:center; }
.hero-picture { position:absolute; inset:0 0 0 auto; width:76%; z-index:-2; background:url('/assets/transmission.jpg') center 59%/cover no-repeat; }
.hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#222321 1%,#222321 21%,rgba(31,32,29,.91) 34%,rgba(30,30,27,.51) 51%,rgba(24,24,22,.05) 80%); }
.hero-content { padding:24px 32px 26px; }
.hero-date { display:flex; align-items:center; gap:8px; font:500  11px/1.4 var(--mono); letter-spacing:.045em; color:#e3c97b; }
.hero h1 { font-size:clamp(32px,3.15vw,49px); font-weight:740; letter-spacing:-.045em; margin:9px 0 3px; }
.hero p { color:#d6d6d0; font-size:13px; font-weight:460; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:17px; margin-top:22px; }
.hero-actions .text-link { color:#ece9e0; font-size:12px; }
.btn,.icon-btn,.text-link { display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.btn { border:1px solid transparent; min-height:37px; padding:8px 14px; border-radius:6px; font-size:12px; line-height:1.25; font-weight:700; }
.btn.primary { background:var(--accent); color:#201d12; }
.btn.primary:hover { background:#ffdc73; }
.btn.secondary { background:#282a2b; color:#eee; border-color:#3c3d3e; }
.btn.secondary:hover { background:#313335; }
.btn.danger { background:#372622; color:#f4a094; border-color:#5a3732; }
.btn.danger:hover { background:#472b27; }
.icon-btn { width:31px; height:31px; border-radius:5px; color:var(--muted); }
.icon-btn:hover { background:#303233; color:#fff; }
.text-link { color:#d0d1ce; font-size:12px; font-weight:610; gap:7px; }
.text-link:hover { color:var(--accent); }
.metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; margin:18px 0 27px; }
.metric { border:1px solid var(--border); background:var(--panel); border-radius:8px; padding:15px 18px 14px; text-align:left; min-height:96px; }
.metric:hover { border-color:#575950; background:#222425; }
.metric-top,.metric-data { display:flex; align-items:center; }
.metric-top { justify-content:space-between; gap:6px; color:#b9bcbb; font-size:12px; font-weight:590; }
.metric-top>.icon { color:#a7aaa7; }
.metric-data { margin-top:5px; gap:10px; align-items:baseline; }
.metric-data strong { font-family:Manrope,'Segoe UI',sans-serif; font-size:31px; line-height:1.25; font-weight:650; letter-spacing:-.05em; font-variant-numeric:tabular-nums; }
.metric-data small { color:#a3a6a5; font-size:11px; }
.dashboard-columns { display:grid; grid-template-columns:minmax(0,2.06fr) minmax(250px,1fr); gap:22px; align-items:start; }
.board,.agenda-wrap { min-width:0; }
.block-heading,.section-heading,.page-heading,.view-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.block-heading { margin:1px 0 15px; min-height:27px; }
.block-heading h2 { font-size:21px; }
.block-heading .text-link { font-size:11.5px; }
.feature-grid,.project-grid,.photo-grid { display:grid; gap:16px; min-width:0; }
.feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.project-grid { grid-template-columns:repeat(auto-fill,minmax(min(275px,100%),1fr)); }
.project-card { background:var(--panel); border-radius:9px; overflow:hidden; border:1px solid var(--border); text-align:left; display:flex; flex-direction:column; min-width:0; color:var(--text); transition:border-color .15s ease; }
.project-card:hover { border-color:#65665a; }
.card-image { display:block; position:relative; width:100%; height:clamp(126px,10.5vw,182px); overflow:hidden; background-color:#302f29; }
.card-image img { height:100%; width:100%; object-fit:cover; }
.card-image.no-cover { display:grid; place-items:center; color:#b3a162; background:#31322c; }
.status { position:absolute; left:12px; top:12px; display:inline-flex; align-items:center; gap:6px; background:#192822; color:#c2f0cf; border:1px solid #527062; border-radius:5px; padding:3px 7px; font-size:11px; line-height:1.45; font-weight:730; }
.status i,.category-dot { display:inline-block; width:6px; height:6px; background:#8bd69c; border-radius:50%; }
.status.planning { background:#1e2e37; border-color:#567791; color:#bcdcf7; }
.status.planning i { background:#95bde0; }
.status.on-hold { background:#3e3222; border-color:#7f6746; color:#f2d58b; }
.status.on-hold i { background:#e9c276; }
.status.completed { background:#292d2c; border-color:#57605a; color:#cfddd5; }
.card-body { display:block; width:100%; padding:16px 16px 15px; }
.card-category { display:flex; align-items:center; gap:7px; color:#afb1ad; font:500  11px/1.4 var(--mono); text-transform:uppercase; letter-spacing:.085em; }
.category-dot { border-radius:1px; width:5px; height:5px; background:#ebc462; }
.category-dot.industrial { background:#9ab9dc; }
.category-dot.residential { background:#c7a5cf; }
.card-name { display:block; font-size:clamp(16px,1.25vw,21px); line-height:1.35; font-weight:690; letter-spacing:-.035em; margin:5px 0; overflow-wrap:anywhere; }
.card-location,.card-lead,.card-due { display:flex; align-items:center; gap:5px; }
.card-location { color:#a8acab; font-size:11.5px; }
.progress-label { display:flex; justify-content:space-between; align-items:center; margin:17px 0 7px; color:#b5b7b4; font-size:11px; }
.progress-label b { font:550  11px var(--mono); color:#e6e8e1; }
progress { appearance:none; -webkit-appearance:none; display:block; height:4px; width:100%; border:0; border-radius:4px; overflow:hidden; color:var(--accent); background:#353735; }
progress::-webkit-progress-bar { background:#353735; }
progress::-webkit-progress-value { background:var(--accent); border-radius:4px; }
progress::-moz-progress-bar { background:var(--accent); border-radius:4px; }
.card-foot { display:flex; gap:6px; justify-content:space-between; align-items:center; width:100%; margin-top:auto; padding:11px 15px; border-top:1px solid var(--border); color:#c0c3bf; font-size:11px; }
.card-lead { gap:7px; }
.mini-avatar { width:24px; height:24px; flex:none; border-radius:50%; background:#383c35; color:#d6dec9; display:grid; place-items:center; font-size:11px; font-weight:720; }
.project-card:nth-child(even) .mini-avatar { background:#3a363c; color:#e0cddf; }
.card-due { white-space:nowrap; }
.page-heading { margin:5px 0 25px; }
.page-heading p { margin-top:7px; font-size:13px; }
.view-toolbar { margin-bottom:20px; flex-wrap:wrap; }
.search-field,.filter-select,input,select,textarea { border:1px solid #414446; background:#191b1c; color:var(--text); border-radius:6px; }
input:not([type=checkbox]),select,textarea { padding:10px 12px; min-width:0; }
input,select,textarea { accent-color:var(--accent); }
input::placeholder,textarea::placeholder { color:#919597; }
select { cursor:pointer; }
.search-field { display:flex; align-items:center; gap:8px; padding:0 11px; color:var(--muted); }
.search-field input { background:transparent; border:0; width:100%; outline:0; }
.search-field:focus-within { outline:2px solid var(--accent); outline-offset:2px; }
.filter-select,.search-field input { font-size:13px; }
.filter-select { max-width:100%; }
.route-projects .project-grid,.route-photos .photo-grid { align-items:stretch; }
.empty-state { text-align:center; border:1px dashed #464846; border-radius:8px; padding:35px 20px; color:var(--muted); }
.empty-state h2,.empty-state h3 { color:var(--text); margin:6px 0; }
.empty-state p { margin:6px 0; font-size:13px; }
.empty-state .btn { margin-top:10px; }
.route-tasks .view-toolbar { justify-content:flex-start; gap:5px; }
.filter-tab,.tab-btn { border-radius:5px; padding:7px 13px; color:var(--muted); font-size:12px; }
.filter-tab.active,.tab-btn[aria-pressed=true] { color:var(--text); background:#363839; }
.global-tasks { border:1px solid var(--border); border-radius:9px; background:var(--panel); overflow:hidden; }
.global-task,.task-row { display:flex; gap:12px; align-items:center; justify-content:space-between; border-bottom:1px solid var(--border); }
.global-task { padding:15px 19px; }
.global-task:last-child,.task-row:last-child { border:0; }
.global-task label,.task-row label { display:flex; align-items:center; gap:10px; cursor:pointer; min-width:0; overflow-wrap:anywhere; }
input[type=checkbox] { width:16px; height:16px; flex:none; accent-color:var(--accent); }
input[type=checkbox]:checked + span { text-decoration:line-through; color:var(--muted); }
.global-task .text-link { color:var(--muted); font-size:11px; text-align:right; }
.photo-grid { grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr)); }
.photo-tile { display:grid; overflow:hidden; border:1px solid var(--border); background:var(--panel); border-radius:8px; text-align:left; }
.photo-tile:hover { border-color:#686963; }
.photo-tile img { width:100%; height:170px; object-fit:cover; }
.photo-caption { display:grid; gap:4px; padding:12px 14px; }
.photo-caption strong { font-size:13px; font-weight:650; }
.photo-caption small { font-size:11px; color:var(--muted); }
dialog { width:min(560px, calc(100% - 32px)); max-height:calc(100dvh - 48px); margin:auto; padding:0; color:var(--text); background:#1c1e1f; border:1px solid #444644; border-radius:12px; box-shadow:0 12px 38px #0006; }
dialog::backdrop { background:#080909bd; }
.dialog-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:17px 22px; border-bottom:1px solid var(--border); position:sticky; top:0; z-index:2; background:#1c1e1f; }
.dialog-header h2 { overflow-wrap:anywhere; }
#dialog-body { padding:21px 22px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px 14px; }
.wide { grid-column:1/-1; }
.field { display:grid; align-content:start; gap:5px; color:#dbdcd7; font-size:12px; font-weight:630; min-width:0; }
.field input,.field select,.field textarea { width:100%; font-size:13px; font-weight:450; }
textarea { resize:vertical; }
.field small { font-weight:450; font-size:11px; }
.field input[type=file] { font-size:12px; padding:7px 8px; }
::file-selector-button { font:inherit; color:var(--text); background:#343637; border:0; border-radius:3px; padding:5px 9px; margin-right:8px; cursor:pointer; }
.dialog-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; margin-top:18px; padding-top:17px; border-top:1px solid var(--border); }
.form-grid>.dialog-actions { margin-top:3px; }
.form-error { color:#ffaaa0; font-size:12px; }
.detail-cover { width:100%; height:185px; object-fit:cover; border-radius:7px; margin-bottom:15px; }
.detail-progress { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; color:var(--muted); font-size:12px; }
.chip { display:inline-flex; background:#2a322c; color:#c9dfc8; font-size:11px; padding:3px 8px; border-radius:4px; }
.detail-tabs { display:flex; gap:4px; margin:20px 0 16px; padding-bottom:11px; border-bottom:1px solid var(--border); }
.detail-facts { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:16px 0 20px; }
.detail-facts dt { color:var(--muted); font-size:11px; margin-bottom:4px; }
.detail-facts dd { font-weight:580; font-size:13px; overflow-wrap:anywhere; }
.detail-description { color:#c9cbc8; white-space:pre-wrap; overflow-wrap:anywhere; font-size:13px; line-height:1.65; }
.detail-section h3 { font-size:14px; margin:0 0 5px; }
.detail-section .section-heading { margin-bottom:12px; }
.task-list { list-style:none; padding:0; margin:0 0 16px; }
.task-row { font-size:13px; padding:6px 0; }
.task-add { margin-top:12px; display:flex; gap:7px; flex-wrap:wrap; }
.task-add input { flex:1; }
.photo-preview { width:100%; max-height:430px; object-fit:contain; border-radius:6px; }
.photo-inspect figcaption { display:flex; justify-content:space-between; gap:8px; margin-top:10px; font-size:12px; }
.upload-zone { border:1px dashed #575950; border-radius:7px; padding:15px; }
#search-results h3 { margin:16px 0 5px; font-size:11px; color:var(--muted); }
.search-result { width:100%; display:flex; align-items:center; gap:12px; text-align:left; padding:9px; border-radius:6px; }
.search-result:hover { background:#2c2e2e; }
.search-result>span { display:grid; gap:2px; flex:1; }
.search-result strong { font-size:13px; font-weight:600; }
.search-result .icon,.search-result small { color:var(--muted); }
.search-result small { font-size:11px; }
#toast { position:fixed; bottom:24px; left:calc(50% + var(--side)/2); z-index:20; transform:translate(-50%,8px); max-width:calc(100vw - 25px); width:max-content; border:1px solid #585b50; background:#30332c; color:#f1f4eb; font-size:13px; border-radius:6px; padding:10px 15px; opacity:0; visibility:hidden; transition:transform .16s ease,opacity .16s ease; }
#toast.show { opacity:1; transform:translate(-50%,0); visibility:visible; }
@media(min-width:1600px) {
  :root { --side:234px; }
  #topbar { padding-inline:40px; }
  #content { padding:32px 40px 50px; }
  .hero { min-height:245px; }
  .hero-content { padding-left:38px; }
  .metric { padding:18px 22px; }
}
@media(max-width:1190px) {
  :root { --side:185px; }
  .brand { margin-left:20px; }
  nav { margin-inline:10px; }
  #topbar { padding-inline:24px; }
  #content { padding:22px 24px 35px; }
  .dashboard-columns { grid-template-columns:minmax(0,1.85fr) minmax(245px,1fr); gap:17px; }
  .metrics,.feature-grid { gap:10px; }
  .metric { padding:13px; min-height:89px; }
  .card-body { padding:13px; }
  .card-foot { padding:10px; }
}
@media(max-width:1000px) {
  :root { --side:0px; }
  #sidebar { width:225px; transform:translateX(-100%); visibility:hidden; z-index:10; transition:transform .16s ease; }
  .menu-open #sidebar { transform:translateX(0); visibility:visible; }
  .nav-backdrop { display:block; background:#0009; position:fixed; inset:0; z-index:9; width:100%; }
  .mobile-menu { display:inline-flex !important; }
  .crumb-root { display:none; }
  .mobile-brand { display:inline-flex; align-items:center; gap:7px; font-size:14px; font-weight:750; color:var(--text); }
  .mobile-brand img { width:22px; height:22px; }
  #topbar { height:56px; }
  .hero { min-height:207px; }
  #content { padding-top:20px; }
  .hero h1 { font-size:37px; }
  #toast { left:50%; }
}
@media(max-width:760px) {
  .dashboard-columns { grid-template-columns:1fr; gap:24px; }
  .card-image { height:155px; }
  .card-name { font-size:18px; }
  .metric-data { gap:6px; }
  .metric-data small { font-size:11px; }
  .metric-top { font-size:11.5px; }
  .metric-top>.icon { width:15px; }
}
@media(max-width:580px) {
  #topbar { padding-inline:13px; }
  #content { padding:16px 16px 34px; }
  .topbar-end { gap:12px; }
  .search-launch span,.search-launch kbd,.top-divider { display:none; }
  .search-launch { min-width:32px; min-height:36px; justify-content:center; }
  .topbar-start { gap:6px; }
  .hero { min-height:198px; }
  .hero-content { padding:20px 18px; }
  .hero h1 { font-size:32px; letter-spacing:-.048em; }
  .hero p { font-size:12px; }
  .hero-date { font-size:11px; }
  .hero-picture { width:100%; background-position:63% 55%; }
  .hero::after { background:linear-gradient(90deg,rgba(27,28,25,.97),rgba(30,30,26,.80) 46%,rgba(26,26,24,.22)); }
  .hero-actions { margin-top:19px; gap:14px; }
  .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); margin:12px 0 22px; gap:8px; }
  .metric { min-height:79px; padding:11px 13px; }
  .metric-data { gap:8px; }
  .metric-data strong { font-size:26px; }
  .feature-grid { grid-template-columns:1fr; gap:14px; }
  .card-image { height:175px; }
  .card-body { padding:15px; }
  .card-foot { padding:10px 15px; }
  .block-heading h2 { font-size:20px; }
  .page-heading { align-items:flex-start; flex-wrap:wrap; gap:13px; }
  h1 { font-size:29px; }
  .global-task { align-items:flex-start; flex-direction:column; gap:5px; font-size:13px; }
  .global-task .text-link { margin-left:31px; }
  .form-grid { gap:12px 10px; }
  .dialog-header { padding:14px 16px; }
  #dialog-body { padding:17px 16px; }
  .photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .photo-tile img { height:115px; }
  .photo-caption { padding:9px; }
  .search-field { min-width:0; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; }
}
