:root{font-family:Inter,"Segoe UI",system-ui,sans-serif;color:#202b29;background:#f6f7f4;--ink:#202b29;--muted:#626f69;--line:#e1e6e0;--green:#235a49;--gold:#f1cb75;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100vh;display:grid;grid-template-columns:232px minmax(0,1fr)}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #508d76;outline-offset:3px}button:disabled{opacity:.5;cursor:default}h1,h2,h3,p{margin:0}a{color:inherit}svg{width:18px;height:18px;flex:none}small{color:var(--muted)}.skip{position:absolute;left:12px;top:-60px;z-index:20;background:#fff;padding:10px}.skip:focus{top:8px}
#sidebar{position:sticky;top:0;height:100dvh;background:#192b28;color:#e4eee7;display:flex;flex-direction:column;padding:22px 15px;gap:26px;overflow:auto;z-index:4}.brand{display:flex;gap:10px;align-items:center;padding:0 5px}.mark{display:grid;place-items:center;width:37px;height:37px;border-radius:11px;background:var(--gold);color:#25362e;font-weight:850;letter-spacing:-.08em}.brand strong{display:block;font-size:15px}.brand small,.sidebar-label{color:#a6b8af}.brand small{font-size:11px}.sidebar-label{font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-weight:750;padding:0 9px 7px}.nav-button{background:transparent;color:inherit;border:0;width:100%;display:flex;align-items:center;gap:10px;border-radius:8px;padding:9px;text-align:left;font-size:13px}.nav-button:hover,.nav-button[aria-current]{background:#334d44}.nav-button[aria-current]{color:#ffdb8c}.nav-button span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-foot{margin-top:auto;border-top:1px solid #3c5149;padding-top:12px}.sidebar-foot small{color:#a6b8af;display:block;margin:0 9px 7px}
.shell{min-width:0}#topbar{min-height:64px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px clamp(16px,3vw,38px);position:sticky;top:0;z-index:3}.crumb{display:flex;align-items:center;gap:9px;font-size:13px;min-width:0}.crumb span{color:var(--muted)}.crumb strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-actions,.actions,.tabs,.filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.mobile-menu{display:none!important}
.button,.icon-button,.tab{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 12px;border:1px solid var(--line);background:#fff;border-radius:8px;font-size:13px;font-weight:650}.button:hover,.icon-button:hover,.tab:hover{background:#eef3ee}.button.primary{background:var(--green);border-color:var(--green);color:white}.button.primary:hover{background:#1a493b}.button.danger{color:#a12835}.icon-button{padding:7px}.quiet{border:0;background:transparent;color:var(--green);font-size:13px;font-weight:700;padding:5px}
main{padding:25px clamp(16px,3vw,38px) 40px;max-width:1510px;margin:auto;outline:none}.page-head,.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px}.page-head{margin-bottom:22px}.page-head h1{font-size:clamp(29px,4vw,43px);letter-spacing:-.06em;line-height:1.08;margin:5px 0 7px}.page-head p,.section-head p{color:var(--muted);font-size:14px}.eyebrow{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--green)}
.hero{background:#e8efe6;border:1px solid #d7e4d8;border-radius:15px;padding:clamp(16px,3vw,27px);display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:17px;position:relative;overflow:hidden}.hero h2{font-size:clamp(22px,3vw,32px);letter-spacing:-.05em;margin:5px 0}.hero p{color:#4c6458;font-size:14px}.hero-graphic{display:grid;grid-template-columns:repeat(5,9px);gap:6px;transform:rotate(-9deg);padding:7px 14px}.hero-graphic i{width:9px;height:9px;border-radius:3px;background:#9cbcaa}.hero-graphic i:nth-child(3n){background:#d6aa52}
.metrics,.portfolio{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:23px}.portfolio{grid-template-columns:repeat(3,minmax(0,1fr))}.metric,.project,.panel,.lane,.person{background:#fff;border:1px solid var(--line);border-radius:12px;min-width:0}.metric{padding:14px;text-align:left}.metric:hover,.project:hover{border-color:#91ac9c}.metric span{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;gap:5px}.metric span svg{color:var(--green)}.metric strong{display:block;font-size:27px;letter-spacing:-.05em;margin:4px 0}.metric small{font-size:11px}.section-head h2,.panel h2{font-size:18px;letter-spacing:-.035em}.project{padding:14px;text-align:left;width:100%;display:grid;gap:8px}.project-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.project h3{font-size:16px;overflow-wrap:anywhere}.project p{font-size:12px;color:var(--muted);line-height:1.5;overflow-wrap:anywhere}.project-icon{display:grid;place-items:center;width:33px;height:33px;border-radius:9px;background:#e1eee6;color:#245644}.project-icon.violet{background:#ece6f5;color:#705391}.project-icon.amber{background:#f9ecd5;color:#875e24}.progress{height:6px;background:#e9eee9;border-radius:20px;overflow:hidden}.progress i{display:block;height:100%;background:#49876e;border-radius:20px}.project-meta{display:flex;justify-content:space-between;gap:6px;color:var(--muted);font-size:11px}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:20px;background:#edf0ed;color:#45544d;padding:4px 8px;font-size:11px;font-weight:700;white-space:nowrap}.badge.good{background:#e4f1e8;color:#275c43}.badge.warn{background:#fff1d1;color:#785215}.badge.bad{background:#fbe5e7;color:#8a3540}.badge.blue{background:#e6edf9;color:#355988}
.overview-lower{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(230px,1fr);gap:12px}.panel{padding:14px}.panel>h2{margin-bottom:12px}.task-mini,.activity{display:flex;align-items:center;gap:8px;padding:9px 0;border-top:1px solid var(--line);font-size:13px}.task-mini button,.task-name{border:0;background:transparent;text-align:left;padding:0;font-weight:650;overflow-wrap:anywhere}.task-mini button:hover,.task-name:hover{text-decoration:underline}.task-mini small,.activity small{display:block;margin-top:3px}.task-mini>.badge{margin-left:auto}.empty{padding:20px;text-align:center;color:var(--muted);font-size:13px}.avatar{display:inline-grid;place-items:center;flex:none;width:27px;height:27px;border-radius:50%;background:#e4ece2;color:#305947;font-size:10px;font-weight:800}.avatar.violet{background:#ece4f6;color:#654282}.avatar.amber{background:#faedcf;color:#75501e}
.workspace-tools{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px}.tab[aria-pressed=true]{background:#e5efe7;border-color:#afc7b5;color:#234d3f}.filters input,.filters select{padding:7px 9px;min-height:36px;border:1px solid var(--line);background:#fff;border-radius:8px;color:var(--ink);font-size:13px}.filters input{width:min(220px,100%)}.table-wrap,.timeline-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.task-table{width:100%;border-collapse:collapse;min-width:680px;font-size:13px}.task-table th,.task-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line)}.task-table th{color:var(--muted);font-size:11px;background:#f9faf8}.task-table tr:last-child td{border-bottom:0}.assignee{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.done-check{width:25px;height:25px;border:1px solid #c4d0c7;border-radius:7px;background:white;color:#276249}.done-check[aria-pressed=true]{background:#e3f0e5}.board{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:9px;overflow:auto;padding-bottom:5px}.lane{background:#edf1ec;padding:8px}.lane.drag-over{outline:2px solid #4c8a72;outline-offset:-2px}.lane-head{display:flex;justify-content:space-between;align-items:center;padding:4px 2px 8px}.lane-head h3{font-size:13px}.task-card{display:grid;gap:8px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px;margin-bottom:7px;font-size:13px;cursor:grab}.task-card footer{display:flex;justify-content:space-between;align-items:center;gap:3px;flex-wrap:wrap}.timeline{min-width:650px;padding:12px}.time-row{display:grid;grid-template-columns:185px minmax(0,1fr);gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.track{display:grid;grid-template-columns:repeat(28,minmax(0,1fr));align-items:center;min-height:24px;background:repeating-linear-gradient(90deg,#f3f5f2 0,#f3f5f2 calc(25% - 1px),#dde6de calc(25% - 1px),#dde6de 25%);border-radius:5px}.track b{height:15px;border-radius:4px;background:#5d947b;min-width:4px}.track b.milestone{background:#b28328}.time-labels{display:grid;grid-template-columns:repeat(4,1fr);font-size:11px;color:var(--muted)}.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:11px}.person{padding:14px;display:flex;gap:10px;align-items:center}.person p{font-size:12px;color:var(--muted);margin-top:3px}
dialog{width:min(580px,calc(100% - 24px));max-height:calc(100dvh - 24px);border:1px solid var(--line);border-radius:15px;padding:18px;color:var(--ink);box-shadow:0 18px 65px #172a2840}dialog::backdrop{background:#152b25a1}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.dialog-head h2{font-size:21px;letter-spacing:-.035em}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.full{grid-column:1/-1}form label{display:grid;gap:4px;font-size:12px;font-weight:650}form input,form select,form textarea{width:100%;min-height:37px;border:1px solid #cbd7ce;border-radius:7px;background:#fff;padding:7px;color:var(--ink)}form textarea{resize:vertical}form .actions{justify-content:flex-end;margin-top:12px}.error{color:#952f3b;font-size:13px;margin-top:8px}.hint{color:var(--muted);font-size:12px;line-height:1.5}#notice{position:fixed;bottom:14px;right:14px;z-index:10;background:#203c32;color:white;padding:9px 13px;border-radius:8px;font-size:13px;max-width:calc(100% - 28px)}#notice:empty{display:none}
@media(max-width:1000px){body{grid-template-columns:190px minmax(0,1fr)}.portfolio{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){body{display:block}#sidebar{position:fixed;inset:0 auto 0 0;width:min(270px,85vw);transform:translateX(-100%);visibility:hidden}body.nav-open #sidebar{transform:none;visibility:visible;box-shadow:0 0 0 100vmax #152b2570}.mobile-menu{display:inline-flex!important}.crumb>span,.top-actions .optional{display:none}.overview-lower{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.page-head{align-items:flex-start}.hero-graphic{display:none}}
@media(max-width:440px){.portfolio{grid-template-columns:1fr}.page-head{flex-direction:column}.form-grid{grid-template-columns:1fr}.hero p{line-height:1.5}}
.auth-screen{display:block;background:#e8efe6}
.auth-screen #sidebar,.auth-screen #topbar{display:none}
.auth-screen main{display:grid;place-items:center;min-height:100dvh}
.auth-card{width:min(100%,410px);background:#fff;border:1px solid #d6e2d8;border-radius:16px;padding:clamp(18px,5vw,32px);box-shadow:0 15px 45px #152b2512}
.auth-card .brand{padding:0;margin-bottom:18px}
.auth-card h1{letter-spacing:-.045em;margin-bottom:5px}
.auth-card p{color:var(--muted);font-size:14px;margin-bottom:12px}
.auth-card form{display:grid;gap:9px}
.auth-card .error{color:#952f3b;margin:0}

/* FS Projects visual identity */
:root{
  color:#252439;background:#f7f7fb;
  --ink:#252439;--muted:#65647a;--line:#e5e3ef;
  --accent:#563cc3;--accent-dark:#432ca9;--soft:#eeebfb;
  --green:var(--accent);--gold:#eebc81;
}
body{grid-template-columns:218px minmax(0,1fr)}
#sidebar{background:#fff;color:#3d3a54;border-right:1px solid var(--line);padding:21px 13px;gap:23px}
.brand{padding:0 7px}
.brand strong{font-size:16px;letter-spacing:-.035em}
.mark{background:var(--accent);color:#fff;border-radius:9px}
.mark svg{width:22px;height:22px}
.brand small,.sidebar-label,.sidebar-foot small{color:#69677d}
.sidebar-label{letter-spacing:.1em;font-size:10px}
.nav-button{border-radius:7px;font-weight:550}
.nav-button svg{color:#716a91}
.nav-button:hover,.nav-button[aria-current]{background:var(--soft);color:#3e299e}
.nav-button[aria-current]{font-weight:750}
.sidebar-foot{border-color:var(--line)}
.sidebar-profile{display:flex;align-items:center;gap:8px;padding:6px 7px 12px;min-width:0}
.sidebar-profile>div{min-width:0}
.sidebar-profile strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-profile small{margin:2px 0 0;font-size:10px}
#topbar{min-height:59px;background:#ffffffed;backdrop-filter:blur(12px)}
main{padding-top:27px}
.page-head h1{letter-spacing:-.045em;font-weight:740}
.eyebrow{color:#6048b5;letter-spacing:.095em}
.button,.icon-button,.tab{border-radius:7px}
.button:hover,.icon-button:hover,.tab:hover{background:#f1effa}
.button.primary{background:var(--accent);border-color:var(--accent);box-shadow:0 2px 5px #563cc32b}
.button.primary:hover{background:var(--accent-dark)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#6a4cda}
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,1fr);background:#262140;border:0;border-radius:13px;padding:20px 22px;gap:20px;color:#fff;overflow:visible}
.hero .eyebrow{color:#d2c6ff}
.hero h2{font-size:clamp(24px,3.3vw,36px);margin:6px 0;letter-spacing:-.045em}
.hero p{color:#ddd6f0;line-height:1.5}
.focus-copy .button{background:#e8defe;color:#38236d;border:0;margin-top:13px;min-height:33px}
.focus-copy .button:hover{background:#f3ecff}
.work-mix{align-self:center;background:#393154;border:1px solid #51476d;border-radius:9px;padding:13px}
.work-mix-head{display:flex;align-items:end;justify-content:space-between;gap:8px}
.work-mix-head strong{display:block;margin-top:4px;font-size:16px}
.work-mix-head small{color:#e3dbf5;white-space:nowrap}
.work-bar{display:flex;height:8px;gap:3px;margin:12px 0 9px;background:#524867;border-radius:6px;overflow:hidden}
.work-tone-0{background:#b7adc9}.work-tone-1{background:#a690ff}.work-tone-2{background:#f2bd83}.work-tone-3{background:#9cdbbd}
.work-legend{display:flex;flex-wrap:wrap;gap:6px 12px;color:#ebe6f5;font-size:11px}
.work-legend span{display:flex;align-items:center;gap:4px}
.work-legend i{width:7px;height:7px;border-radius:2px}
.metric,.project,.panel,.lane,.person{border-radius:9px}
.metric:hover,.project:hover{border-color:#a69ae1;box-shadow:0 2px 7px #29234b0b}
.metric span svg{color:var(--accent)}
.metric strong{font-size:28px}
.project-icon{background:#eae6fb;color:#5942af}
.project-icon.violet{background:#e4edfc;color:#3b59a0}
.project-icon.amber{background:#fbecdf;color:#8f4e25}
.progress{background:#eeecf6}.progress i{background:#745cce}
.avatar{background:#ebe6fb;color:#4c369d}
.avatar.violet{background:#e2ebfa;color:#3f5b90}.avatar.amber{background:#f8e6d7;color:#8a4f25}
.tab[aria-pressed=true]{background:var(--soft);border-color:#c7bceb;color:#4e36b3}
.lane{background:#f0eef7}.lane.drag-over{outline-color:#6a4cda}
.track{background:repeating-linear-gradient(90deg,#f5f3fa 0,#f5f3fa calc(25% - 1px),#e5dff1 calc(25% - 1px),#e5dff1 25%)}
.track b{background:#836cd4}.track b.milestone{background:#b77840}
dialog{box-shadow:0 18px 65px #26214045}dialog::backdrop{background:#262140a0}
form input,form select,form textarea{border-color:#d7d2e7}
#notice{background:#382c66}
.auth-screen{background:linear-gradient(145deg,#e8e1fa,#f8f6fc 58%,#f6e9da)}
.auth-card{border-color:#ded6ee;box-shadow:0 16px 55px #3225531f}
@media(max-width:1000px){body{grid-template-columns:186px minmax(0,1fr)}}
@media(max-width:720px){body{display:block}.hero{gap:13px;padding:15px}.work-mix{padding:10px}.hero h2{font-size:24px}}
@media(max-width:560px){.hero{grid-template-columns:1fr}.work-mix-head strong{font-size:15px}}

.auth-screen{background:#efedf7}
.auth-screen main{padding:clamp(12px,4vw,52px)}
.auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:min(960px,100%);background:#fff;border:1px solid #ded8ee;border-radius:19px;overflow:hidden;box-shadow:0 18px 65px #33295721}
.auth-intro{display:flex;flex-direction:column;justify-content:space-between;gap:34px;padding:clamp(22px,4vw,46px);background:radial-gradient(ellipse at top right,#503a89,#30274e 65%);color:#fff}
.auth-intro .brand{padding:0}
.auth-intro .brand small{color:#d8c9f9}
.auth-intro .mark{background:#e2d5ff;color:#4a3289;flex:none}
.auth-intro .eyebrow{color:#e2d5ff}
.auth-intro h2{font-size:clamp(34px,5vw,57px);line-height:1.04;letter-spacing:-.065em;margin:9px 0 13px}
.auth-intro p{color:#e4daf7;font-size:15px;line-height:1.65;max-width:30ch}
.auth-features{display:flex;flex-wrap:wrap;gap:8px}
.auth-features span{display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid #b7a6e46b;border-radius:6px;color:#f2ebff;font-size:11px}
.auth-features svg{width:14px;height:14px}
.auth-layout .auth-card{width:auto;border:0;border-radius:0;padding:clamp(22px,4vw,46px);box-shadow:none;align-self:center}
.auth-card h1{font-size:clamp(27px,4vw,36px);margin-top:6px}
.auth-card form{gap:12px}
.auth-card form input{min-height:42px}
.auth-card form .button{min-height:42px}
.auth-demo{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:9px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.auth-demo strong{font-size:13px}.auth-demo p{font-size:12px;margin:3px 0 0}
.auth-demo a,.back-live{text-decoration:none;color:#4e36b3}
@media(max-width:650px){.auth-layout{grid-template-columns:1fr}.auth-intro{gap:15px}.auth-intro h2{font-size:30px;margin:5px 0}.auth-intro p{font-size:13px}.auth-features{display:none}}
@media(max-width:400px){.top-actions .button{padding-inline:7px;font-size:11px}.back-live span{display:none}}
