:root{--bone:#f2f1ec;--surface:#fbfaf7;--raise:#e9e7e0;--sunk:#e4e2da;--ink:#1e1c1a;--ink-2:#56524d;--ink-3:#8a8279;--line:#dbd8d0;--line-2:#c2bdb3;--teal:#0e4b45;--teal-ink:#0e4b45;--teal-soft:#dde9e6;--copper:#a0663f;--copper-soft:#f0e3da;--onteal:#f2f1ec;--ok:#2c6e52;--ok-soft:#dcebe3;--warn:#8a6114;--warn-soft:#f3e8ce;--crit:#9b3b27;--crit-soft:#f4ded8;--shadow:0 1px 2px rgba(30,28,26,.06),0 8px 24px rgba(30,28,26,.07);--radius:2px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bone:#121413;--surface:#1a1d1c;--raise:#222624;--sunk:#0d0f0e;--ink:#edece6;--ink-2:#a6a59d;--ink-3:#7c7b74;--line:#2a2e2c;--line-2:#3c4240;--teal:#0c3d38;--teal-ink:#5fb0a2;--teal-soft:#16302d;--copper:#cc8a5c;--copper-soft:#33251c;--onteal:#edece6;--ok:#67b892;--ok-soft:#163024;--warn:#d2a650;--warn-soft:#332913;--crit:#d97d64;--crit-soft:#361d17;--shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px rgba(0,0,0,.35);color-scheme:dark}}*{box-sizing:border-box}body,html{padding:0;margin:0}body{background:var(--bone);color:var(--ink);font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}.disp,h1,h2,h3{font-family:Jost,system-ui,sans-serif;font-weight:300;margin:0;line-height:1.15}p{margin:0}a{color:inherit}img{display:block;max-width:100%}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:2px solid var(--teal-ink);outline-offset:2px}.mono{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:500}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.shell{max-width:1340px;margin:0 auto;padding-inline:clamp(14px,2.6vw,30px)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bone) 93%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.topbar .row{display:flex;align-items:center;gap:14px;padding-block:12px}.brand{display:flex;flex-direction:column;gap:2px;line-height:1;text-decoration:none;flex:none}.brand .wm{font-family:Jost,sans-serif;font-weight:300;font-size:17px;letter-spacing:.3em;-webkit-padding-start:.3em;padding-inline-start:.3em}.brand .sub{font-family:IBM Plex Mono,monospace;font-size:7.5px;letter-spacing:.24em;color:var(--ink-3)}.nav{display:flex;gap:2px;-webkit-margin-end:auto;margin-inline-end:auto;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a{color:var(--ink-3);text-decoration:none;padding:8px 11px;border-bottom:2px solid transparent;white-space:nowrap;font-size:13.5px}.nav a.on,.nav a:hover{color:var(--ink)}.nav a.on{border-bottom-color:var(--copper)}.btn{border:1px solid var(--line-2);background:var(--surface);color:var(--ink);padding:8px 14px;border-radius:var(--radius);cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-block}.btn:hover{border-color:var(--teal-ink)}.btn.primary{background:var(--teal);border-color:var(--teal);color:var(--onteal)}.btn.primary:hover{opacity:.9}.btn.sm{padding:5px 10px;font-size:12.5px}.btn.ghost{border-color:transparent;background:transparent;color:var(--ink-3)}.btn.ghost:hover{color:var(--ink);background:var(--raise)}.btn.danger{color:var(--crit);border-color:var(--crit)}.btn[disabled]{opacity:.5;cursor:not-allowed}input[type=date],input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],select,textarea{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);padding:9px 11px;width:100%}textarea{resize:vertical;min-height:80px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.field label{color:var(--ink-3);font-family:IBM Plex Mono,monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 14px;gap:0 14px}@media (max-width:560px){.grid2{grid-template-columns:1fr}}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;font-family:IBM Plex Mono,monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;white-space:nowrap}.chip.brief,.chip.todo{background:var(--sunk);color:var(--ink-2)}.chip.concept{background:var(--copper-soft);color:var(--copper)}.chip.at_municipality,.chip.permits,.chip.waiting_client{background:var(--warn-soft);color:var(--warn)}.chip.build,.chip.doing{background:var(--teal-soft);color:var(--teal-ink)}.chip.done,.chip.handover{background:var(--ok-soft);color:var(--ok)}.chip.blocked,.chip.on_hold{background:var(--crit-soft);color:var(--crit)}.chip.t{background:transparent;border:1px solid var(--line-2);color:var(--ink-3)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.scroll{overflow-x:auto}.tbl{width:100%;border-collapse:collapse;font-size:13.5px}.tbl th{text-align:start;font-family:IBM Plex Mono,monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--ink-3);background:var(--raise);white-space:nowrap}.tbl td,.tbl th{padding:11px 14px;border-bottom:1px solid var(--line)}.tbl td{vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr:hover td{background:var(--raise)}.tbl td.rt,.tbl th.rt{text-align:end}.tbl a{text-decoration:none;font-weight:500}.tbl a:hover{color:var(--teal-ink)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:16px}.tile{background:var(--surface);padding:16px 18px;display:flex;flex-direction:column;gap:3px}.tile .k{color:var(--ink-3)}.tile .v{font-family:Jost,sans-serif;font-weight:300;font-size:26px}.tile.accent .v{color:var(--copper)}.tile.good .v{color:var(--ok)}.tile.bad .v{color:var(--crit)}.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(216px,1fr);grid-gap:10px;gap:10px;overflow-x:auto;padding-bottom:10px;align-items:start}.col{background:var(--sunk);border:1px solid var(--line);border-radius:var(--radius)}.col h3{display:flex;align-items:center;gap:8px;padding:11px 12px;border-bottom:1px solid var(--line);font-family:IBM Plex Mono,monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--ink-2)}.col h3 b{-webkit-margin-start:auto;margin-inline-start:auto;color:var(--ink-3);font-weight:500}.col .items{padding:10px;gap:9px}.card,.col .items{display:flex;flex-direction:column}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:11px 12px;gap:7px;box-shadow:var(--shadow);text-decoration:none}.card .t{font-weight:500;line-height:1.35}.card .meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;color:var(--ink-3);font-size:12px}.col .empty{padding:14px 12px 18px;color:var(--ink-3);font-size:12.5px;text-align:center}.toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;padding-block:16px 12px}.toolbar .grow{flex:1 1 180px;min-width:0}.sectionhead{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:14px}.sectionhead h1{font-size:26px}.empty-big{padding:46px 20px;text-align:center;color:var(--ink-3);display:flex;flex-direction:column;gap:12px;align-items:center}.empty-big .disp{font-size:19px;color:var(--ink-2)}.bar{height:5px;background:var(--sunk);border-radius:999px;overflow:hidden;min-width:70px}.bar,.bar i{display:block}.bar i{height:100%;background:var(--teal-ink)}.notice{padding:11px 14px;border-radius:var(--radius);margin-bottom:14px}.notice.bad{background:var(--crit-soft);color:var(--crit)}.notice.good{background:var(--ok-soft);color:var(--ok)}.loginwrap{min-height:100svh;display:grid;place-items:center;padding:24px}.logincard{width:min(400px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;box-shadow:var(--shadow)}.logincard .wm{font-family:Jost,sans-serif;font-weight:300;font-size:22px;letter-spacing:.3em;-webkit-padding-start:.3em;padding-inline-start:.3em;display:block}.logincard .sub{font-family:IBM Plex Mono,monospace;font-size:8px;letter-spacing:.24em;color:var(--ink-3);display:block;margin-bottom:26px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}