@import"https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700&family=Ubuntu+Mono:wght@400;700&display=swap";@font-face{font-family:Dinamit;src:url(/fonts/Dinamit_Thin.otf) format("opentype");font-weight:100;font-display:swap}@font-face{font-family:Dinamit;src:url(/fonts/Dinamit_Light.otf) format("opentype");font-weight:300;font-display:swap}@font-face{font-family:Dinamit;src:url(/fonts/Dinamit_Regular.otf) format("opentype");font-weight:400;font-display:swap}@font-face{font-family:Dinamit;src:url(/fonts/Dinamit_Medium.otf) format("opentype");font-weight:500;font-display:swap}@font-face{font-family:Dinamit;src:url(/fonts/Dinamit_Semibold.otf) format("opentype");font-weight:600;font-display:swap}:root{--black: #000000;--grey-dark: #212121;--grey-two: #9b9b9b;--grey-one: #f1f1f1;--white: #ffffff;--line-1: rgba(0, 0, 0, .08);--line-2: rgba(0, 0, 0, .18);--status-bad: #b3261e;--status-warn: #9a6b00;--status-ok: #1e6b40;--font-display: "Dinamit", "Helvetica Neue", Arial, sans-serif;--font-body: "Ubuntu", "Helvetica Neue", Arial, sans-serif;--font-mono: "Ubuntu Mono", ui-monospace, Menlo, monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh}body{background:var(--white);color:var(--grey-dark);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}::selection{background:var(--black);color:var(--white)}a{color:inherit;text-decoration:none;border-bottom:1px solid currentColor}a:hover{opacity:.55}button{font-family:var(--font-display)}.eyebrow{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey-two)}.mono{font-family:var(--font-mono);font-size:13px}.login{min-height:100vh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:0 8vw;background:var(--black);color:var(--white)}.login img{height:64px;margin-bottom:48px}.login h1{font-family:var(--font-display);font-weight:100;font-size:clamp(48px,8vw,120px);line-height:.95;letter-spacing:-.02em;margin:0 0 48px;color:var(--white)}.login form{display:flex;gap:0}.login input{background:transparent;border:1px solid rgba(255,255,255,.3);border-right:none;color:var(--white);padding:14px 18px;font-family:var(--font-mono);font-size:15px;width:280px;outline:none}.login input:focus{border-color:var(--white)}.login button{background:var(--white);color:var(--black);border:none;padding:14px 28px;font-weight:500;font-size:13px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.login .err{margin-top:16px;color:#ff6b61;font-size:13px}.shell{max-width:1440px;margin:0 auto;padding:0 32px 96px}.topbar{display:flex;align-items:baseline;gap:32px;padding:28px 0 20px;border-bottom:1px solid var(--black)}.topbar .brand{display:flex;align-items:baseline;gap:14px}.topbar .brand img{height:16px;transform:translateY(1px)}.topbar .brand img.mark{height:26px;transform:translateY(6px)}.topbar .brand span{font-family:var(--font-display);font-weight:100;font-size:22px;color:var(--black)}.nav{display:flex;gap:4px;margin-left:auto}.nav button{background:none;border:none;cursor:pointer;padding:8px 14px;font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--grey-two)}.nav button.active{color:var(--white);background:var(--black)}.nav button:hover:not(.active){color:var(--black)}.meta-row{display:flex;gap:24px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line-1);font-size:12px;color:var(--grey-two)}.meta-row .spacer{flex:1}.meta-row button{background:none;border:1px solid var(--line-2);padding:6px 14px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;color:var(--grey-dark)}.meta-row button:hover{background:var(--black);color:var(--white);border-color:var(--black)}.src-badge{font-family:var(--font-mono);font-size:11px}.src-badge b{color:var(--grey-dark);font-weight:400}.grid{display:grid;gap:1px;background:var(--line-1);margin-top:1px}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}.g2-1{grid-template-columns:2fr 1fr}@media (max-width: 1100px){.g4{grid-template-columns:repeat(2,1fr)}.g3,.g2,.g2-1{grid-template-columns:1fr}}.cell{background:var(--white);padding:24px 24px 28px;min-width:0}.cell.inv{background:var(--black);color:var(--white)}.cell.inv .eyebrow{color:#ffffff8c}.section{margin-top:56px}.section>.head{display:flex;align-items:baseline;gap:16px;margin-bottom:16px}.section>.head .num{font-family:var(--font-display);font-weight:100;font-size:40px;color:var(--grey-two);line-height:1}.section>.head h2{font-family:var(--font-display);font-weight:300;font-size:26px;letter-spacing:-.02em;margin:0;color:var(--black)}.section>.head .side{margin-left:auto;font-size:12px;color:var(--grey-two)}.stat .eyebrow{margin-bottom:14px}.stat .value{font-family:var(--font-display);font-weight:100;font-size:clamp(34px,3.2vw,52px);line-height:1;letter-spacing:-.02em;color:var(--black);font-variant-numeric:tabular-nums}.cell.inv .stat .value,.cell.inv .value{color:var(--white)}.stat .sub{margin-top:10px;font-size:12.5px;color:var(--grey-two)}.stat .sub b{color:inherit;font-weight:500}.stat .sub .bad{color:var(--status-bad)}.stat .sub .ok{color:var(--status-ok)}.alerts{display:flex;flex-direction:column}.alert{display:flex;gap:14px;align-items:baseline;padding:13px 4px;border-bottom:1px solid var(--line-1);font-size:14px}.alert .tag{flex:0 0 74px;font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:3px 0;text-align:center}.alert.red .tag{background:var(--status-bad);color:var(--white)}.alert.amber .tag{background:transparent;color:var(--status-warn);border:1px solid var(--status-warn)}.alert.info .tag{background:transparent;color:var(--grey-two);border:1px solid var(--line-2)}.alert .txt{flex:1;color:var(--grey-dark)}.alert a{font-size:12px;color:var(--grey-two)}.chart-wrap{position:relative}.chart-title{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px}.chart-title .eyebrow{margin:0}.chart-title .figure{font-family:var(--font-mono);font-size:12px;color:var(--grey-two)}.tooltip{position:absolute;pointer-events:none;z-index:10;background:var(--black);color:var(--white);padding:8px 12px;font-family:var(--font-mono);font-size:12px;line-height:1.5;transform:translate(-50%,calc(-100% - 10px));white-space:nowrap}.tooltip .k{color:#fff9}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;font-size:11.5px;color:var(--grey-dark)}.legend i{display:inline-block;width:10px;height:10px;margin-right:6px;vertical-align:-1px;border:1px solid var(--line-1)}.legend.interactive button{background:none;border:none;padding:2px 0;cursor:pointer;font-family:var(--font-body);font-size:11.5px;color:var(--grey-dark)}.legend.interactive button:hover{color:var(--black)}.legend.interactive button.off{opacity:.35;text-decoration:line-through}.legend.interactive button.reset{border:1px solid var(--line-2);padding:2px 10px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-family:var(--font-display)}table.data{width:100%;border-collapse:collapse;font-size:13.5px}table.data th{font-family:var(--font-display);font-weight:500;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey-two);text-align:left;padding:8px 10px 8px 0;border-bottom:1px solid var(--black)}table.data td{padding:9px 10px 9px 0;border-bottom:1px solid var(--line-1);vertical-align:top}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}table.data tr.overdue td:first-child{border-left:3px solid var(--status-bad);padding-left:8px}.pill{display:inline-block;white-space:nowrap;font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:2px 8px;border:1px solid var(--line-2);color:var(--grey-dark)}.pill.late{border-color:var(--status-bad);color:var(--status-bad)}.pill.warn{border-color:var(--status-warn);color:var(--status-warn)}.pill.stalled{background:var(--grey-one);border-color:var(--grey-one);color:var(--grey-dark)}.pill.ok{border-color:var(--line-2);color:var(--grey-two)}.proj-card{background:var(--white);padding:22px 24px;cursor:pointer}.proj-card:hover{background:var(--grey-one)}.proj-card .name{font-family:var(--font-display);font-weight:400;font-size:17px;color:var(--black);letter-spacing:-.01em;margin-bottom:8px;display:flex;gap:10px;align-items:center;justify-content:space-between}.proj-card .stats{display:flex;gap:18px;font-size:12px;color:var(--grey-two);font-variant-numeric:tabular-nums}.proj-card .stats b{color:var(--grey-dark);font-weight:500}.proj-card .stats .bad{color:var(--status-bad)}.drawer{position:fixed;inset:0 0 0 auto;width:min(680px,100vw);background:var(--white);border-left:1px solid var(--black);z-index:50;overflow-y:auto;padding:32px 36px 64px;box-shadow:-24px 0 64px #0000001f}.drawer .close{position:sticky;top:0;float:right;background:var(--black);color:var(--white);border:none;width:36px;height:36px;font-size:16px;cursor:pointer}.drawer h3{font-family:var(--font-display);font-weight:300;font-size:30px;margin:8px 0 4px;color:var(--black);letter-spacing:-.02em}.drawer .imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.drawer .imgs img{width:100%;aspect-ratio:1;object-fit:cover;background:var(--grey-one)}.task-row{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-1);font-size:13.5px;align-items:baseline}.task-row .st{flex:0 0 84px}.task-row .who{color:var(--grey-two);font-size:12px}.task-row .due{margin-left:auto;font-family:var(--font-mono);font-size:12px;color:var(--grey-two);white-space:nowrap}.task-row .due.bad{color:var(--status-bad)}.chat{display:flex;flex-direction:column;height:calc(100vh - 220px);min-height:480px}.chat .scroll{flex:1;overflow-y:auto;padding:24px 0}.msg{max-width:72ch;margin-bottom:20px}.msg .who{font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--grey-two);margin-bottom:6px}.msg.user .body{background:var(--grey-one);padding:12px 16px}.msg.assistant .body{border-left:2px solid var(--black);padding:2px 0 2px 16px;white-space:pre-wrap}.msg .imgs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.msg .imgs img{height:120px;background:var(--grey-one)}.chat form{display:flex;border-top:1px solid var(--black);padding-top:16px;gap:0}.chat input{flex:1;border:1px solid var(--line-2);border-right:none;padding:13px 16px;font-family:var(--font-body);font-size:15px;outline:none}.chat input:focus{border-color:var(--black)}.chat button{background:var(--black);color:var(--white);border:none;padding:0 28px;font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.chat button:disabled{opacity:.4}.suggestions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.suggestions button{background:none;border:1px solid var(--line-2);padding:7px 14px;font-size:12px;color:var(--grey-dark);cursor:pointer;font-family:var(--font-body)}.suggestions button:hover{border-color:var(--black)}.key-row{padding:18px 0;border-bottom:1px solid var(--line-1)}.key-head{display:flex;align-items:baseline;gap:14px}.key-label{font-family:var(--font-display);font-weight:500;font-size:16px;color:var(--black)}.key-help{font-size:12px;color:var(--grey-two);margin-top:3px}.key-input{display:flex;margin-top:10px}.key-input input{flex:1;border:1px solid var(--line-2);border-right:none;padding:11px 14px;font-family:var(--font-mono);font-size:13px;outline:none}.key-input input:focus{border-color:var(--black)}.key-input button{background:var(--black);color:var(--white);border:none;padding:0 22px;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.key-input button:disabled{opacity:.35}.key-msg{margin-top:8px;font-size:13px}.proj-money{font-family:var(--font-display);font-weight:300;font-size:24px;letter-spacing:-.02em;color:var(--black);margin:2px 0 10px;font-variant-numeric:tabular-nums}.proj-money .pend{font-size:12.5px;font-weight:400;color:var(--status-bad);letter-spacing:0}.fin-row{display:flex;gap:1px;background:var(--line-1);margin:20px 0 4px}.fin{flex:1;background:var(--grey-one);padding:14px 16px}.fin-val{font-family:var(--font-display);font-weight:200;font-size:clamp(26px,4vw,38px);line-height:1.05;letter-spacing:-.02em;color:var(--black);font-variant-numeric:tabular-nums;margin-top:6px}.brief{margin:18px 0 4px;padding:14px 16px;border-left:2px solid var(--black);font-size:14px;line-height:1.55;color:var(--grey-dark);background:var(--white)}.dl-all{font-size:12px;color:var(--grey-dark)}.drawer .imgs img{cursor:zoom-in}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000000eb;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0}.lightbox>img{max-width:94vw;max-height:82vh;object-fit:contain;background:#111}.lb-bar{display:flex;align-items:center;gap:18px;padding:14px 8px;color:var(--white)}.lb-bar .lb-name{font-family:var(--font-mono);font-size:12px;color:#ffffffb3;max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-bar a{color:var(--white);font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-family:var(--font-display)}.lb-bar button{background:none;border:1px solid rgba(255,255,255,.35);color:var(--white);width:34px;height:34px;font-size:16px;cursor:pointer}.lb-bar button:hover{background:var(--white);color:var(--black)}tr.dismissed td{text-decoration:line-through;color:var(--grey-two)}tr.dismissed td .dismiss-btn{text-decoration:none}.dismiss-btn{background:none;border:1px solid var(--line-2);color:var(--grey-two);width:26px;height:26px;font-size:13px;cursor:pointer;line-height:1}.dismiss-btn:hover{border-color:var(--status-bad);color:var(--status-bad)}tr.dismissed .dismiss-btn:hover{border-color:var(--status-ok);color:var(--status-ok)}@media (max-width: 760px){.shell{padding:0 14px 64px}.topbar{flex-wrap:wrap;gap:10px 16px;padding:16px 0 10px}.topbar .brand img.mark{height:22px}.nav{order:3;width:100%;margin-left:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:0;padding-bottom:2px}.nav::-webkit-scrollbar{display:none}.nav button{padding:8px 10px;font-size:11px;letter-spacing:.1em;flex:0 0 auto}.meta-row{flex-wrap:wrap;gap:10px 14px;font-size:11px}.grid.g4{grid-template-columns:repeat(2,1fr)}.cell{padding:16px 14px 18px}.stat .value{font-size:clamp(26px,8vw,34px)}.section{margin-top:36px}.section>.head .num{font-size:28px}.section>.head h2{font-size:21px}.alert{gap:10px;font-size:13px}.alert .tag{flex-basis:62px;font-size:9px}.drawer{width:100vw;padding:20px 16px 48px}.fin-row{flex-direction:row}.fin{padding:10px}.fin-val{font-size:22px}.proj-money{font-size:20px}.chat{height:calc(100vh - 260px)}table.data{font-size:12.5px}.lb-bar .lb-name{max-width:30vw}}.loading{padding:96px 0;text-align:center;color:var(--grey-two);font-family:var(--font-display);font-weight:300;font-size:20px}.dropzone{border:1px dashed var(--line-2);padding:14px 18px;font-size:12.5px;color:var(--grey-two)}.dropzone.over{border-color:var(--black);color:var(--black)}.period{background:none;border:1px solid var(--line-2);margin-left:6px;padding:4px 12px;font-family:var(--font-display);font-size:11px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;color:var(--grey-dark)}.period.on{background:var(--black);color:var(--white);border-color:var(--black)}.ig-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}@media (max-width: 1100px){.ig-grid{grid-template-columns:repeat(2,1fr)}}.ig-card{border:1px solid var(--line-1);border-bottom:1px solid var(--line-1);text-decoration:none;display:block}.ig-card:hover{border-color:var(--black);opacity:1}.ig-card img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:var(--grey-one)}.ig-noimg{width:100%;aspect-ratio:1;background:var(--grey-one);display:flex;align-items:center;justify-content:center;color:var(--grey-two);font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;font-size:11px}.ig-meta{display:flex;justify-content:space-between;padding:10px 12px 4px;font-size:12px;color:var(--grey-dark)}.ig-meta b{font-weight:500}.ig-cap{padding:0 12px 12px;font-size:12px;color:var(--grey-two);line-height:1.4;max-height:3.9em;overflow:hidden}
