:root{--bg: oklch(.966 .007 84);--paper-2: oklch(.929 .009 84);--card: oklch(.985 .004 84);--ink: oklch(.196 0 0);--muted: oklch(.485 .008 70);--line: oklch(.87 .01 84);--border-strong: oklch(.28 0 0);--sidebar: oklch(.155 0 0);--sidebar-text: oklch(.68 .006 84);--sidebar-hover: oklch(1 0 0 / 8%);--navy: oklch(.155 0 0);--green: oklch(.45 .09 150);--green-dark: oklch(.36 .08 150);--green-soft: oklch(.94 .035 150);--ok: oklch(.36 .08 150);--danger: oklch(.505 .176 27);--warn: oklch(.62 .13 70);--info: oklch(.5 .06 250);--radius: 4px;--shadow: 0 1px 0 0 var(--line), 0 12px 28px -24px oklch(0 0 0 / 40%);--font: "Work Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--text-xs: .6875rem;--text-sm: .75rem;--text-md: .875rem;--text-base: .9375rem;--text-lg: 1.125rem;--text-xl: 1.5rem;--text-2xl: 1.75rem;--text-stat: 2rem}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100%}html{font-size:16px}body{margin:0;color:var(--ink);font-family:var(--font);background:var(--bg);font-size:var(--text-md);line-height:1.5;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em}button,input,textarea,select,.dash,.sidebar,.main{font-family:var(--font)}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.home{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.home-top{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 2.25rem}.brand{display:flex;gap:.75rem;align-items:center}.brand h1{margin:0;font-size:1.125rem;font-weight:700;letter-spacing:-.02em}.brand p{margin:0;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.1em;text-transform:uppercase}.dot{width:8px;height:8px;border-radius:50%;background:var(--green);display:inline-block;margin-right:.4rem}.operational{display:inline-flex;align-items:center;gap:.4rem;background:var(--green-soft);color:var(--green-dark);border:1px solid var(--line);border-radius:999px;padding:.4rem .85rem;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:.04em}.operational .pulse{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 #2b63397f;animation:pulse 1.8s ease-out infinite}@keyframes pulse{70%{box-shadow:0 0 0 8px #2b633900}to{box-shadow:0 0 #2b633900}}.glance-head{display:flex;justify-content:space-between;align-items:center;margin:.15rem 0 .85rem}.glance-head .updated{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:var(--text-sm)}.page-sub strong{color:var(--ink);font-weight:600}.ext-link{display:inline-flex;align-items:center;gap:.25rem;color:var(--ink);font-weight:600;font-size:var(--text-md);background:none;border:0;padding:0}.ext-link:hover{text-decoration:underline}.home-hero{text-align:center;padding:2rem 1.5rem .5rem}.home-hero h2{margin:0 0 .55rem;font-size:var(--text-2xl);font-weight:700;letter-spacing:-.03em}.home-hero p{margin:0 auto;max-width:36rem;color:var(--muted);font-size:var(--text-base)}.portal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.35rem;padding:2.25rem 2.25rem 1.5rem;max-width:820px;margin:0 auto;width:100%}.portal-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;min-height:380px;box-shadow:var(--shadow);transition:border-color .18s ease}.portal-card:hover{border-color:var(--border-strong)}.icon-sq{width:44px;height:44px;border-radius:var(--radius);display:grid;place-items:center;color:var(--card);margin-bottom:1rem;background:var(--ink)}.icon-sq.blue,.icon-sq.purple,.icon-sq.navy,.icon-sq.green{background:var(--ink)}.portal-card h3{margin:0 0 .45rem;font-size:var(--text-lg);font-weight:700}.portal-card .desc{color:var(--muted);font-size:var(--text-md);line-height:1.55;margin:0 0 1rem}.portal-card ul{margin:0;padding:0;list-style:none;flex:1;font-size:var(--text-md)}.portal-card li{display:flex;gap:.5rem;padding:.28rem 0;color:var(--ink)}.portal-card li:before{content:"";width:6px;height:6px;margin-top:.45rem;border-radius:50%;background:var(--border-strong);flex-shrink:0}.portal-foot{display:flex;align-items:center;gap:.45rem;color:var(--ink);font-size:.88rem;font-weight:700;border-top:1px solid var(--line);padding-top:1rem;margin-top:1rem}.principle{margin:0 2.25rem 2.25rem;background:var(--navy);color:var(--sidebar-text);border-radius:var(--radius);padding:1.2rem 1.4rem;font-size:.95rem;max-width:1180px;width:calc(100% - 4.5rem);margin-left:auto;margin-right:auto}.principle strong{color:var(--card)}.signin{min-height:100vh;display:grid;place-items:center;padding:2rem;background:var(--bg)}.signin-card{width:min(460px,100%);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.75rem;box-shadow:var(--shadow)}.signin-card h2{margin:.5rem 0 .35rem}.signin-card .muted{color:var(--muted);margin:0 0 1.1rem}.dash{height:100vh;overflow:hidden;display:grid;grid-template-columns:240px minmax(0,1fr)}.sidebar{background:var(--sidebar);color:var(--sidebar-text);display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:1.15rem .65rem .85rem}.side-nav{flex:1 1 auto;min-height:0;overflow:hidden}.side-brand{display:flex;gap:.65rem;align-items:center;padding:.05rem .55rem 1.1rem;color:var(--card);flex-shrink:0}.side-brand strong{display:block;font-family:var(--font-display);font-size:.95rem;font-weight:700;letter-spacing:-.02em}.side-brand .tagline{display:block;font-family:var(--font-mono);font-size:.625rem;font-weight:500;letter-spacing:.14em;color:var(--sidebar-text);text-transform:uppercase;margin-top:.12rem}.nav-label{font-family:var(--font-mono);font-size:.625rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--sidebar-text);padding:.5rem .7rem .28rem}.nav a,.nav button.nav-btn{display:flex;align-items:center;gap:.65rem;width:100%;border:0;background:transparent;color:var(--sidebar-text);padding:.5rem .7rem;border-radius:var(--radius);font-weight:500;font-size:.875rem;text-align:left;position:relative}.nav a:hover,.nav button.nav-btn:hover{background:var(--sidebar-hover);color:var(--card)}.nav a.active,.nav button.nav-btn.active{background:var(--card);color:var(--sidebar);font-weight:600}.nav a.active:before{display:none}.nav .badge{margin-left:auto;background:var(--card);color:var(--sidebar);min-width:1.15rem;height:1.15rem;border-radius:999px;font-family:var(--font-mono);font-size:.625rem;font-weight:700;display:grid;place-items:center}.side-foot{flex-shrink:0;margin-top:auto;padding:.6rem .15rem .05rem}.profile-chip{display:flex;align-items:center;gap:.55rem;padding:.55rem .5rem;border-radius:var(--radius);background:#ffffff0a;border:1px solid oklch(1 0 0 / 6%)}.avatar{width:32px;height:32px;border-radius:50%;background:#ffffff1f;color:var(--card);display:grid;place-items:center;font-weight:700;font-size:.75rem;flex-shrink:0}.profile-chip strong{display:block;color:var(--card);font-size:.75rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:108px}.profile-chip span{display:block;font-size:.625rem;color:var(--sidebar-text)}.signout{margin-left:auto;background:none;border:0;color:var(--sidebar-text);display:grid;place-items:center;padding:.3rem}.signout:hover{color:var(--card)}.main{height:100vh;overflow-y:auto;padding:1.5rem 2.25rem 2.5rem;background:var(--bg)}.crumb{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.55rem}.crumb:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--border-strong)}.eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 .75rem}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.page-head h1{margin:0;font-size:var(--text-xl);letter-spacing:-.03em;line-height:1.2;font-weight:700}.page-sub{margin:.35rem 0 0;color:var(--muted);font-size:var(--text-md);font-weight:400}.plan-pill,.pill,.status-pill{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.25rem .7rem;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:.04em}.plan-pill,.status-pill.ok,.pill.ok{background:var(--green-soft);color:var(--green-dark)}.pill.danger{background:#fceae7;color:#861213}.pill.accent{background:#e5f0fc;color:#194f81}.pill.muted{background:var(--paper-2);color:var(--muted)}.pill.warn{background:#fcecd9;color:#6c4300;color:oklch(.42 .12 70)}.hero-banner{border-radius:var(--radius);padding:1.25rem 1.4rem;color:var(--card);margin-bottom:1.2rem;background:var(--ink)}.hero-banner.client,.hero-banner.supplier{background:var(--ink)}.hero-banner h2{margin:0 0 .25rem;font-size:1.35rem}.hero-banner p{margin:0;opacity:.88}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1.5rem}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat,.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.25rem;box-shadow:var(--shadow)}.card{margin-bottom:1.5rem}.stat-icon{width:36px;height:36px;border-radius:var(--radius);background:var(--paper-2);color:var(--muted);display:grid;place-items:center;margin-bottom:.85rem}.stat .label{color:var(--muted);font-size:var(--text-md);font-weight:500}.stat .value{font-size:var(--text-stat);font-weight:700;margin-top:.35rem;letter-spacing:-.04em;line-height:1}.stat .hint{color:var(--muted);font-size:var(--text-sm);margin-top:.45rem}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.9fr);gap:1.15rem;align-items:start}.section-title{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin:.5rem 0 .9rem}.section-title h2{margin:0;font-size:var(--text-lg);font-weight:700}.section-title p{margin:.2rem 0 0;color:var(--muted);font-size:var(--text-md)}.section-title a,.link-green{color:var(--ink);font-weight:600;font-size:var(--text-md)}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-md)}.data-table th{text-align:left;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:500;padding:.55rem .4rem;border-bottom:1px solid var(--line)}.data-table td{padding:.9rem .4rem;border-bottom:1px solid var(--line);vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.client-cell{display:flex;align-items:center;gap:.7rem;font-weight:600;font-size:var(--text-md)}.client-cell .avatar{background:var(--paper-2);color:var(--ink);font-size:var(--text-sm)}.activity-list{list-style:none;margin:0;padding:0;display:grid;gap:.95rem}.activity-list li{display:grid;grid-template-columns:28px 1fr;gap:.7rem}.activity-dot{width:28px;height:28px;border-radius:50%;background:var(--green-soft);color:var(--green-dark);display:grid;place-items:center;font-size:.75rem;font-weight:700}.activity-dot.info{background:#e5f0fc;color:#194f81}.activity-dot.warn{background:#fcecd9;color:#6c4300;color:oklch(.42 .12 70)}.activity-list strong{display:block;font-size:var(--text-md);font-weight:600}.activity-list p{margin:.15rem 0 0;color:var(--muted);font-size:var(--text-sm)}.activity-list .when{margin-top:.25rem;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}.actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:.95rem}.action{display:flex;gap:.85rem;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.05rem;text-align:left;color:inherit;box-shadow:var(--shadow)}.action:hover{border-color:var(--border-strong)}.action h3{margin:0 0 .2rem;font-size:.98rem}.action p{margin:0;color:var(--muted);font-size:.86rem}.btn{border:0;background:var(--navy);color:var(--card);font-weight:600;font-size:var(--text-md);border-radius:var(--radius);padding:.65rem 1.05rem}.btn:hover{opacity:.85}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary,.btn.green{background:var(--navy);color:var(--card)}.btn.primary:hover,.btn.green:hover{opacity:.85}.btn.ghost{background:transparent;color:var(--ink);padding:.35rem 0;font-weight:600}.btn.danger{background:var(--card);color:var(--danger);border:1px solid oklch(.85 .06 27)}.btn.secondary{background:var(--card);color:var(--ink);border:1px solid var(--line)}.btn-sm{padding:.4rem .75rem;font-size:var(--text-sm)}label{display:grid;gap:.35rem;font-size:var(--text-md);font-weight:500;color:var(--ink)}input,textarea,select{border:1px solid var(--line);border-radius:var(--radius);padding:.65rem .85rem;background:var(--paper-2);font-size:var(--text-md)}input:focus,textarea:focus,select:focus{outline:2px solid oklch(.196 0 0 / 20%);border-color:var(--border-strong);background:var(--card)}form.stack,.list{display:grid;gap:.85rem}.row-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem;display:grid;gap:.4rem;box-shadow:var(--shadow)}.row-card header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.meta{color:var(--muted);font-size:var(--text-sm)}.signin-card h2{margin:.5rem 0 .35rem;font-size:var(--text-xl);font-weight:700}.mono{font-family:var(--font-mono);font-size:.84rem;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:.75rem .85rem;overflow-wrap:anywhere}.mono.dark{background:var(--navy);color:var(--card);border-color:transparent}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.banner{border-radius:var(--radius);padding:1rem 1.1rem;margin:.85rem 0}.banner.navy{background:var(--navy);color:var(--card)}.banner.green{background:var(--green-soft);color:var(--green-dark)}.banner.gray{background:var(--paper-2);color:var(--ink)}.banner.warn{background:#fdefe0;color:#653e00;color:oklch(.4 .13 70);border:1px solid oklch(.85 .06 70)}.banner.info{background:#e5f0fc;color:#124a7b;border:1px solid oklch(.85 .04 250)}.error{color:var(--danger);font-weight:600}.muted{color:var(--muted)}.tabs{display:flex;gap:.45rem;margin-bottom:1rem;flex-wrap:wrap}.tabs button{border:0;background:var(--paper-2);color:var(--ink);border-radius:999px;padding:.45rem .9rem;font-family:var(--font-mono);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.tabs button.on{background:var(--navy);color:var(--card)}.dialog{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;padding:1rem;z-index:20}.dialog .panel{width:min(520px,100%);background:var(--card);border-radius:var(--radius);padding:1.35rem;max-height:90vh;overflow:auto;box-shadow:0 24px 48px #0000002e}.dialog .panel.wide{width:min(680px,100%)}.check{color:var(--green);margin-right:.35rem}.mono-wrap{display:grid;gap:.45rem;margin-bottom:.7rem}.mono-wrap .btn{justify-self:start}.code-block{position:relative;background:var(--navy);color:var(--card);border-radius:var(--radius);padding:.9rem 1rem 2.7rem;margin:.55rem 0}.code-block pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono);font-size:.82rem;line-height:1.45}.code-block .btn{position:absolute;right:.55rem;bottom:.55rem}.step-list,.stage-list{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}.step-list li,.stage-list li{display:grid;grid-template-columns:30px 1fr;gap:.8rem;align-items:start}.step-n,.stage-n{width:30px;height:30px;border-radius:999px;background:var(--navy);color:var(--card);display:grid;place-items:center;font-size:.78rem;font-weight:800}.stage-list li.done .stage-n{background:var(--green);color:var(--card)}.step-body{color:var(--muted);font-size:.9rem;margin-top:.2rem}.step-body p{margin:.25rem 0}.stage-list p{margin:.15rem 0 0;font-size:.88rem}.stage-list li:last-child{padding-bottom:0}.note-pill{display:inline-block;background:#fdefe0;color:#653e00;color:oklch(.4 .13 70);border-radius:var(--radius);padding:.5rem .8rem;font-size:.86rem;font-weight:600;margin:.4rem 0 .9rem}.check-grid{border:1px solid var(--line);border-radius:var(--radius);padding:.85rem 1rem;margin:0}.check-grid legend{font-size:.86rem;font-weight:700;padding:0 .25rem}.check-row{display:flex;align-items:center;gap:.55rem;font-weight:600;margin:.4rem 0}.check-row input{width:auto}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:0}.timeline li{display:grid;grid-template-columns:36px 1fr;gap:.85rem;position:relative;padding-bottom:1.15rem}.timeline li:not(:last-child):before{content:"";position:absolute;left:17px;top:30px;bottom:0;width:2px;background:var(--line)}.tl-mark{width:36px;height:36px;border-radius:50%;border:2px solid var(--line);background:var(--card);display:grid;place-items:center;font-size:.85rem;z-index:1}.tl-mark.done{background:var(--green);border-color:var(--green);color:var(--card)}.tl-mark.active{border-color:var(--info);color:var(--info);background:#e5f0fc}.tl-mark.locked{color:var(--muted)}.priority-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.95rem;margin-bottom:1.2rem}.priority-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;text-align:left;box-shadow:var(--shadow);cursor:pointer}.priority-card.on{border-color:var(--border-strong);box-shadow:0 0 0 1px var(--border-strong) inset}.priority-card .tone{font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.35rem}.priority-card .tone.critical{color:var(--danger)}.priority-card .tone.high{color:var(--warn)}.priority-card h3{margin:0 0 .2rem;font-size:1rem}.priority-card p{margin:0;color:var(--muted);font-size:.84rem}.section-card-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.85rem}.section-card-head h2{margin:0;font-size:var(--text-lg);font-weight:700}@media(max-width:1100px){.workspace-grid,.priority-grid{grid-template-columns:1fr}.stats,.stats.three{grid-template-columns:1fr 1fr}}@media(max-width:980px){.dash{height:auto;overflow:visible;grid-template-columns:1fr}.sidebar,.main{height:auto;overflow:visible}.sidebar{position:sticky;top:0;z-index:5}.portal-grid,.actions-grid,.grid-2,.grid-3{grid-template-columns:1fr}.home-hero h2{font-size:var(--text-xl)}.main{padding:1.2rem 1.1rem 2rem}}
