/* ═══════════════════════════════════════════════════════════════════
   VEDOMIA Workspace — the private, living side of the product.
   Calm, confident, no dashboard chrome. Same tokens as the public shell.
   ═══════════════════════════════════════════════════════════════════ */
:root{
  --ws-ink:#10211f; --ws-soft:#43514e; --ws-muted:#586763; --ws-paper:#fff; --ws-ivory:#faf9f6;
  --ws-mist:#f1f5f3; --ws-line:#dfe7e4; --ws-teal:#12625f; --ws-teal-soft:#e6f0ee; --ws-deep:#082f2d;
  --ws-brass:#86613d; --ws-brass-soft:#f6efe4; --ws-sand:#d8c2a2; --ws-rose:#8a2b2b; --ws-rose-soft:#f8ecec;
  --ws-display:'Atkinson Hyperlegible Next','Open Sans',Arial,sans-serif; --ws-body:'Open Sans',Arial,sans-serif;
  --ws-shadow:0 24px 70px rgba(8,47,45,.08); --ws-shadow-soft:0 12px 36px rgba(8,47,45,.06);
  --ws-r:22px; --ws-r-s:14px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.ws{margin:0;min-height:100vh;background:var(--ws-ivory);color:var(--ws-ink);font-family:var(--ws-body);-webkit-font-smoothing:antialiased;line-height:1.6}
body.ws a{color:inherit}
body.ws button,body.ws input,body.ws select,body.ws textarea{font:inherit}
body.ws input,body.ws select,body.ws textarea{color:inherit}
[hidden]{display:none!important}
.ws-skip{position:fixed;left:16px;top:-80px;z-index:1000;padding:11px 15px;border-radius:9px;background:#fff;box-shadow:var(--ws-shadow-soft)}
.ws-skip:focus{top:16px}
.ws-wrap{width:min(1180px,calc(100% - 40px));margin-inline:auto}

/* ── header ─────────────────────────────────────────────────────────── */
.ws-header{position:sticky;top:0;z-index:50;background:rgba(250,249,246,.86);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--ws-line)}
.ws-nav{display:flex;align-items:center;gap:18px;min-height:64px}
.ws-brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none}
.ws-brand img{width:30px;height:30px;border-radius:8px}
.ws-brand .vedomia-wordmark{font-family:var(--ws-display);font-weight:700;letter-spacing:.14em;font-size:14px}
.ws-tag{padding:4px 9px;border-radius:999px;background:var(--ws-teal-soft);color:var(--ws-teal);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.ws-nav-links{display:flex;gap:4px;margin-left:12px}
.ws-nav-links a{padding:8px 12px;border-radius:999px;font-size:13.5px;color:var(--ws-soft);text-decoration:none;transition:background .15s,color .15s}
.ws-nav-links a:hover,.ws-nav-links a.is-active{background:#fff;color:var(--ws-ink);box-shadow:0 1px 0 var(--ws-line)}
.ws-who{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13px;color:var(--ws-muted)}
.ws-who strong{color:var(--ws-ink);font-weight:600}
.ws-link-btn{border:1px solid var(--ws-line);background:#fff;border-radius:999px;padding:7px 13px;font-size:13px;cursor:pointer;transition:border-color .15s,transform .15s}
.ws-link-btn:hover{border-color:var(--ws-teal)}
@media (max-width:820px){.ws-nav-links{display:none}.ws-who span{display:none}}

/* ── generic ────────────────────────────────────────────────────────── */
.ws-kicker{margin:0 0 12px;color:var(--ws-teal);font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.ws-card{background:var(--ws-paper);border:1px solid var(--ws-line);border-radius:var(--ws-r);box-shadow:var(--ws-shadow-soft)}
body.ws .ws-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:999px;border:1px solid var(--ws-deep);background:var(--ws-deep);color:#fff;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s}
body.ws .ws-btn:hover{transform:translateY(-1px);background:var(--ws-teal);border-color:var(--ws-teal);box-shadow:0 10px 24px rgba(18,98,95,.18)}
body.ws .ws-btn:active{transform:translateY(0)}
body.ws .ws-btn:disabled{opacity:.55;cursor:default;transform:none;box-shadow:none}
body.ws .ws-btn.secondary{background:#fff;color:var(--ws-deep);border-color:#c9d7d3}
body.ws .ws-btn.secondary:hover{background:var(--ws-mist);color:var(--ws-deep)}
body.ws .ws-btn.ghost{background:transparent;border-color:transparent;color:var(--ws-teal);padding-inline:10px;min-height:36px}
body.ws .ws-btn.ghost:hover{background:var(--ws-teal-soft);box-shadow:none;transform:none}
body.ws .ws-btn.small{min-height:36px;padding:6px 13px;font-size:13px}
body.ws .ws-btn.danger{color:var(--ws-rose);border-color:transparent;background:transparent}
body.ws .ws-btn.danger:hover{background:var(--ws-rose-soft);box-shadow:none;transform:none}
.ws-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--ws-mist);color:var(--ws-soft);white-space:nowrap}
.ws-pill::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.75}
.ws-pill.draft{background:var(--ws-brass-soft);color:var(--ws-brass)}
.ws-pill.taking_shape{background:#eef3e8;color:#4f6b2f}
.ws-pill.review_ready{background:var(--ws-teal-soft);color:var(--ws-teal)}
.ws-pill.approved{background:var(--ws-deep);color:#fff}
.ws-pill.empty{background:var(--ws-mist);color:var(--ws-muted)}
.ws-input{width:100%;min-height:48px;padding:11px 15px;border:1px solid #c9d7d3;border-radius:12px;background:#fff;transition:border-color .15s,box-shadow .15s}
.ws-input:focus{outline:none;border-color:var(--ws-teal);box-shadow:0 0 0 4px rgba(18,98,95,.12)}
select.ws-input{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ws-muted) 50%),linear-gradient(135deg,var(--ws-muted) 50%,transparent 50%);background-position:calc(100% - 20px) 21px,calc(100% - 15px) 21px;background-size:5px 5px;background-repeat:no-repeat;padding-right:40px}
.ws-field{display:grid;gap:6px}
.ws-field label{font-size:13px;font-weight:600;color:var(--ws-soft)}
.ws-field small{color:var(--ws-muted);font-size:12px;line-height:1.5}
.ws-msg{margin:14px 0 0;padding:12px 15px;border-radius:12px;font-size:14px;line-height:1.55}
.ws-msg.ok{background:var(--ws-teal-soft);color:var(--ws-deep)}
.ws-msg.bad{background:var(--ws-rose-soft);color:var(--ws-rose)}
.ws-msg.quiet{background:var(--ws-mist);color:var(--ws-soft)}
.ws-muted{color:var(--ws-muted)}
.ws-toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,12px);z-index:200;padding:11px 18px;border-radius:999px;background:var(--ws-deep);color:#fff;font-size:13.5px;font-weight:600;box-shadow:var(--ws-shadow);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.ws-toast.show{opacity:1;transform:translate(-50%,0)}

/* ── sign-in ────────────────────────────────────────────────────────── */
.ws-login{min-height:calc(100vh - 64px);display:grid;place-items:center;padding:48px 0;position:relative;overflow:hidden}
.ws-login::before{content:'V';position:absolute;right:-60px;bottom:-190px;font-family:var(--ws-display);font-size:520px;font-weight:700;line-height:1;color:rgba(18,98,95,.035);transform:scaleY(-1);pointer-events:none}
.ws-login-card{position:relative;width:min(520px,100%);padding:44px 44px 38px;border-radius:28px}
.ws-login-card h1{margin:0 0 12px;font-family:var(--ws-display);font-size:clamp(34px,4.2vw,44px);font-weight:550;line-height:1.1;letter-spacing:-.025em;text-wrap:balance}
.ws-login-card h1 span{color:var(--ws-teal)}
.ws-login-card p{margin:0 0 26px;color:var(--ws-soft);font-size:15.5px}
.ws-login-form{display:grid;gap:12px}
.ws-login-meta{margin:22px 0 0;display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--ws-muted);font-size:12.5px}
.ws-login-meta span::before{content:'✓ ';color:var(--ws-teal);font-weight:700}
.ws-sent{display:grid;gap:10px;text-align:center;padding:10px 0 0}
.ws-sent .mark{width:58px;height:58px;margin:0 auto 6px;border-radius:50%;display:grid;place-items:center;background:var(--ws-teal-soft);color:var(--ws-teal);font-size:24px;font-weight:700}
@media (max-width:560px){.ws-login-card{padding:30px 22px}}

/* ── home ───────────────────────────────────────────────────────────── */
.ws-home{padding:44px 0 90px}
.ws-hero{display:grid;grid-template-columns:1.35fr .65fr;gap:40px;align-items:end;margin-bottom:34px}
.ws-hero h1{margin:0;font-family:var(--ws-display);font-size:clamp(38px,5.2vw,62px);font-weight:550;line-height:1.05;letter-spacing:-.03em;text-wrap:balance}
.ws-hero-sub{margin:14px 0 0;color:var(--ws-soft);font-size:15.5px;display:flex;flex-wrap:wrap;gap:6px 14px}
.ws-hero-sub b{font-weight:600;color:var(--ws-ink)}
.ws-hero-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
@media (max-width:900px){.ws-hero{grid-template-columns:1fr}.ws-hero-actions{justify-content:flex-start}}

.ws-section{margin-top:44px}
.ws-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:16px}
.ws-section-head h2{margin:0;font-family:var(--ws-display);font-size:26px;font-weight:600;letter-spacing:-.015em}
.ws-section-head p{margin:4px 0 0;color:var(--ws-muted);font-size:14px}

/* health */
.ws-health{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}
.ws-health-main{padding:28px 30px 26px}
.ws-health-top{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.ws-health-top h3{margin:0;font-family:var(--ws-display);font-size:22px;font-weight:600}
.ws-map-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.ws-map-tabs button{border:1px solid var(--ws-line);background:#fff;border-radius:999px;padding:7px 13px;font-size:13px;cursor:pointer;color:var(--ws-soft)}
.ws-map-tabs button.is-active{background:var(--ws-deep);border-color:var(--ws-deep);color:#fff}
.ws-ind{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ws-ind-item{padding:16px 18px;border-radius:var(--ws-r-s);background:var(--ws-ivory);border:1px solid var(--ws-line)}
.ws-ind-item .lbl{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ws-soft)}
.ws-ind-item .lbl b{font-family:var(--ws-display);font-size:22px;font-weight:600;letter-spacing:-.02em;color:var(--ws-ink);text-transform:none}
.ws-ind-item .lbl b small{font-size:13px;color:var(--ws-muted);font-weight:500;margin-left:2px}
.ws-bar{height:6px;margin:10px 0 9px;border-radius:999px;background:#e3ebe8;overflow:hidden}
.ws-bar i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--ws-teal),#3f8f8a);transition:width .9s cubic-bezier(.2,.8,.2,1)}
.ws-ind-item.is-complete .ws-bar i{background:var(--ws-teal)}
.ws-ind-item .why{margin:0;font-size:13px;color:var(--ws-soft);line-height:1.5}
.ws-next{padding:28px 30px;display:flex;flex-direction:column;gap:14px;background:linear-gradient(150deg,#0a3936,#082f2d 75%);color:#fff;border-color:transparent;position:relative;overflow:hidden}
.ws-next::after{content:'V';position:absolute;right:-24px;bottom:-96px;font-family:var(--ws-display);font-size:280px;font-weight:700;line-height:1;color:rgba(255,255,255,.03);pointer-events:none}
.ws-next .ws-kicker{color:#9bc7c1;margin:0}
.ws-next h3{margin:0;font-family:var(--ws-display);font-size:24px;font-weight:600;line-height:1.25;letter-spacing:-.015em;position:relative}
.ws-next p{margin:0;color:rgba(255,255,255,.74);font-size:14.5px;line-height:1.6;position:relative}
body.ws .ws-next .ws-btn{align-self:flex-start;background:#fff;color:var(--ws-deep);border-color:#fff;position:relative}
body.ws .ws-next .ws-btn:hover{background:var(--ws-mist)}
.ws-next-stats{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);font-size:13px;color:rgba(255,255,255,.7);position:relative}
.ws-next-stats b{color:#fff;font-weight:600}
.ws-points{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.ws-points li{display:grid;grid-template-columns:auto 1fr auto;gap:10px 12px;align-items:center;padding:10px 14px;border-radius:12px;background:#fff;border:1px solid var(--ws-line);font-size:13.5px}
.ws-points .sev{margin-top:5px;width:9px;height:9px;border-radius:50%;background:var(--ws-brass)}
.ws-points .sev.high{background:var(--ws-rose)}
.ws-points .sev.low{background:#8fb0aa}
.ws-points b{display:block;font-weight:600}
.ws-points span{color:var(--ws-muted);font-size:12.5px}
.ws-points a{color:var(--ws-teal);font-size:12.5px;font-weight:600;text-decoration:none;white-space:nowrap}
@media (max-width:900px){.ws-health{grid-template-columns:1fr}.ws-ind{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ws-ind{grid-template-columns:1fr}}

/* maps */
.ws-maps{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}
.ws-map{padding:24px 24px 20px;display:flex;flex-direction:column;gap:14px;transition:transform .18s ease,box-shadow .18s ease}
.ws-map:hover{transform:translateY(-2px);box-shadow:var(--ws-shadow)}
.ws-map-head{display:flex;justify-content:space-between;align-items:start;gap:12px}
.ws-map-head h3{margin:0;font-family:var(--ws-display);font-size:20px;font-weight:600;line-height:1.25}
.ws-map-meta{color:var(--ws-muted);font-size:12.5px;display:flex;flex-wrap:wrap;gap:4px 12px}
.ws-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.ws-mini div{padding:8px 6px;border-radius:10px;background:var(--ws-ivory);border:1px solid var(--ws-line);text-align:center}
.ws-mini b{display:block;font-family:var(--ws-display);font-size:15px;font-weight:600}
.ws-mini span{display:block;font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ws-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-views{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.ws-views a{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;border:1px solid var(--ws-line);background:#fff;text-decoration:none;font-size:13px;transition:border-color .15s,background .15s}
.ws-views a:hover{border-color:var(--ws-teal);background:var(--ws-teal-soft)}
.ws-views a b{font-weight:600}
.ws-views a span{color:var(--ws-muted);font-size:11.5px}
.ws-map-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:4px}
.ws-new-map{display:grid;place-items:center;text-align:center;padding:30px;border:1.5px dashed #c9d7d3;border-radius:var(--ws-r);color:var(--ws-soft);text-decoration:none;min-height:220px;transition:border-color .15s,background .15s}
.ws-new-map:hover{border-color:var(--ws-teal);background:#fff}
.ws-new-map b{display:block;font-family:var(--ws-display);font-size:19px;font-weight:600;color:var(--ws-ink);margin-bottom:4px}

/* share + reports + history */
.ws-two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:900px){.ws-two{grid-template-columns:1fr}}
.ws-panel{padding:26px 28px}
.ws-panel h3{margin:0 0 6px;font-family:var(--ws-display);font-size:21px;font-weight:600}
.ws-panel>p{margin:0 0 18px;color:var(--ws-muted);font-size:14px}
.ws-form{display:grid;gap:12px}
.ws-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:560px){.ws-form-row{grid-template-columns:1fr}}
.ws-view-note{padding:12px 14px;border-radius:12px;background:var(--ws-ivory);border:1px solid var(--ws-line);font-size:13px;line-height:1.55;color:var(--ws-soft)}
.ws-view-note b{color:var(--ws-ink)}
.ws-view-note .no{color:var(--ws-rose)}
.ws-list{margin:18px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.ws-list li{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px 14px;border-radius:12px;border:1px solid var(--ws-line);background:#fff;font-size:13.5px}
.ws-list li b{font-weight:600}
.ws-list li small{display:block;color:var(--ws-muted);font-size:12px;margin-top:2px;word-break:break-all}
.ws-list .actions{display:flex;gap:4px}
.ws-empty{padding:18px;border-radius:12px;border:1px dashed var(--ws-line);color:var(--ws-muted);font-size:13.5px;text-align:center}
.ws-docs{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.ws-docs li{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:9px 12px;border-radius:12px;border:1px solid var(--ws-line);background:#fff}
.ws-docs a.doc{text-decoration:none;display:block;min-width:0}
.ws-docs a.doc b{display:block;font-weight:600;font-size:14px}
.ws-docs a.doc span{display:block;color:var(--ws-muted);font-size:12px;margin-top:1px}
.ws-docs a.doc:hover b{color:var(--ws-teal)}
.ws-docs .acts{display:flex;gap:2px}
.ws-formats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (max-width:820px){.ws-formats{grid-template-columns:1fr}}
.ws-formats li{padding:14px 16px;border-radius:16px}
.ws-formats a.doc b{font-family:var(--ws-display);font-size:16px}
.ws-linkbox{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px}
.ws-linkbox input{font-size:13px}
.ws-history{margin:0;padding:0;list-style:none;display:grid;gap:0;position:relative}
.ws-history::before{content:'';position:absolute;left:7px;top:8px;bottom:8px;width:1px;background:var(--ws-line)}
.ws-history li{display:grid;grid-template-columns:16px 1fr auto;gap:12px;align-items:start;padding:9px 0;font-size:13.5px}
.ws-history .dot{width:15px;height:15px;border-radius:50%;background:#fff;border:3px solid var(--ws-line);margin-top:3px;position:relative}
.ws-history li.kind-report .dot{border-color:var(--ws-brass)}
.ws-history li.kind-shared .dot,.ws-history li.kind-share_revoked .dot{border-color:#7a9cd0}
.ws-history li.kind-map_saved .dot,.ws-history li.kind-map_created .dot{border-color:var(--ws-teal)}
.ws-history b{font-weight:600}
.ws-history small{display:block;color:var(--ws-muted);font-size:12px}
.ws-history .when{color:var(--ws-muted);font-size:12px;white-space:nowrap}
.ws-versions{margin:16px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.ws-versions li{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:9px 12px;border-radius:10px;border:1px solid var(--ws-line);background:#fff;font-size:13px}
.ws-versions .v{font-family:var(--ws-display);font-weight:700;color:var(--ws-teal);min-width:38px}
.ws-versions small{display:block;color:var(--ws-muted);font-size:12px}
.ws-versions li.is-current{background:var(--ws-teal-soft);border-color:#b9d3ce}

/* the homepage's lifecycle ring, reused for one process with live numbers.
   The ring's own rules live in vedomia-premium-shell.css; they read these
   tokens from the homepage, so the Workspace defines them too. */
body.ws{--deep:#082f2d;--sand:#d8c2a2;--teal:#12625f;--brass:#86613d;--ink:#10211f;--soft:#43514e;--muted:#586763;--serif:'Atkinson Hyperlegible Next','Open Sans',Arial,sans-serif}
.ws-cycle{margin:36px 0 0;padding:44px 40px 40px;border-radius:var(--ws-r);background:var(--ws-deep);color:#fff;overflow:hidden}
.ws-cycle .cycle-head{grid-template-columns:1fr;gap:12px;margin-bottom:26px}
.ws-cycle .cycle-head h2{font-family:var(--ws-display);font-size:clamp(26px,3vw,36px);font-weight:600;letter-spacing:-.02em;color:#fff}
.ws-cycle .cycle-head>p{color:rgba(255,255,255,.66);font-size:14px;max-width:640px}
.ws-cycle .cycle-stage{grid-template-columns:minmax(300px,.9fr) minmax(300px,1.1fr);gap:34px}
.ws-cycle .orbit-panel{min-height:440px}
.ws-cycle .orbit{--radius:172px;width:min(420px,100%)}
.ws-cycle .cycle-node{width:96px}
.ws-cycle .cycle-node i{width:38px;height:38px;font-size:12px}
.ws-cycle .cycle-node b{font-size:8.5px}
.ws-cycle .orbit-centre strong{font-size:19px;margin:10px auto 6px}
.ws-cycle .orbit-centre small{font-size:7.5px}
.ws-cycle .orbit-centre span{font-size:9px}
.ws-cycle .cycle-detail{min-height:0;padding:28px 30px 26px}
.ws-cycle .cycle-detail h3{font-size:clamp(24px,2.6vw,32px);margin:20px 0 10px}
.ws-cycle .detail-explain{min-height:0;margin-bottom:18px;font-size:14px}
.ws-cycle .detail-fact b{font-size:13px}
.ws-cycle .detail-fact .num{display:inline-block;font-family:var(--ws-display);font-size:22px;font-weight:600;color:#fff;margin-right:8px;letter-spacing:-.02em}
.ws-cycle .detail-fact .num em{font-style:normal;font-size:12px;color:rgba(255,255,255,.55);font-weight:500;margin-left:5px;letter-spacing:0}
.ws-cycle .detail-fact b{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 6px}
.ws-cycle .cycle-act{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
body.ws .ws-cycle .ws-btn{background:#fff;color:var(--ws-deep);border-color:#fff}
body.ws .ws-cycle .ws-btn.secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.ws-cycle .cycle-progress{position:absolute;inset:0;border-radius:50%;pointer-events:none}
@media (max-width:900px){.ws-cycle{padding:30px 18px}.ws-cycle .cycle-stage{grid-template-columns:1fr}.ws-cycle .orbit-panel{min-height:400px}}

/* your process, today — one sheet */
.ws-today{background:var(--ws-paper);border:1px solid var(--ws-line);border-radius:28px;box-shadow:var(--ws-shadow);padding:28px 30px 26px}
.ws-today-head{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.ws-today-head h2{margin:0;font-family:var(--ws-display);font-size:clamp(24px,3vw,32px);font-weight:600;letter-spacing:-.02em}
.ws-today-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ws-sheet{border:1px solid var(--ws-line);border-radius:18px;padding:8px;background:#fff;overflow-x:auto;box-shadow:inset 0 0 0 1px rgba(255,255,255,.6),0 12px 30px rgba(8,47,45,.06)}
.ws-sheet-hint{margin:8px 4px 0;color:var(--ws-muted);font-size:12.5px}
.ws-today-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-top:22px;align-items:stretch}
@media (max-width:900px){.ws-today-grid{grid-template-columns:1fr}}
.ws-narrative{padding:6px 8px 0}
.ws-narrative p{margin:0 0 12px;font-size:16.5px;line-height:1.65;color:var(--ws-soft)}
.ws-narrative p.lead{font-family:var(--ws-display);font-size:clamp(20px,2.2vw,25px);line-height:1.3;color:var(--ws-ink);letter-spacing:-.01em}
.ws-narrative b{color:var(--ws-ink);font-weight:600}
.ws-narrative em{color:var(--ws-rose);font-style:normal;font-weight:600}
.ws-narrative .ok{color:var(--ws-teal)}
.ws-narrative .gap{color:var(--ws-brass);font-weight:600}
.ws-narrative p.close{color:var(--ws-ink);font-weight:500}
.ws-ind-row{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:18px}
@media (max-width:900px){.ws-ind-row{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ws-ind-row{grid-template-columns:1fr}}

/* three doors */
.ws-doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media (max-width:980px){.ws-doors{grid-template-columns:1fr}}
.ws-door{background:var(--ws-paper);border:1px solid var(--ws-line);border-radius:var(--ws-r);box-shadow:var(--ws-shadow-soft);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}
.ws-door:hover{transform:translateY(-3px);box-shadow:var(--ws-shadow)}
.ws-door-img{display:block;height:170px;overflow:hidden;background:var(--ws-mist)}
.ws-door-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.ws-door:hover .ws-door-img img{transform:scale(1.04)}
.ws-door-img-dark{display:grid;place-items:center;background:linear-gradient(150deg,#0a3936,#082f2d 75%);color:#fff;position:relative;overflow:hidden}
.ws-door-img-dark::after{content:'V';position:absolute;right:-18px;bottom:-70px;font-family:var(--ws-display);font-size:220px;font-weight:700;line-height:1;color:rgba(255,255,255,.05)}
.ws-door-stamp{position:relative;font-family:var(--ws-display);font-size:22px;font-weight:600;letter-spacing:-.01em;padding:10px 16px;border-radius:12px;color:#eaf3f1;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.06)}
.ws-door-body{padding:20px 22px 18px;display:flex;flex-direction:column;gap:10px;flex:1}
.ws-door-body .ws-kicker{margin:0}
.ws-door-body h3{margin:0;font-family:var(--ws-display);font-size:22px;font-weight:600;letter-spacing:-.015em}
.ws-door-body .sub{margin:0 0 4px;color:var(--ws-soft);font-size:13.5px;line-height:1.55}
body.ws .ws-door-body>.ws-btn{align-self:flex-start}

/* three audiences */
.ws-aud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:980px){.ws-aud{grid-template-columns:1fr}}
.ws-audience{padding:22px 22px 18px;display:flex;flex-direction:column;gap:12px}
.ws-audience-head h3{margin:0;font-family:var(--ws-display);font-size:21px;font-weight:600;letter-spacing:-.01em}
.ws-audience-head p{margin:6px 0 0;color:var(--ws-soft);font-size:13.5px;line-height:1.55}
.ws-audience-view{display:block;padding:14px 16px;border-radius:14px;background:var(--ws-deep);color:#fff;text-decoration:none;transition:background .15s}
.ws-audience-view:hover{background:var(--ws-teal)}
.ws-audience-view b{display:block;font-weight:600;font-size:14.5px}
.ws-audience-view span{display:block;color:rgba(255,255,255,.7);font-size:12.5px;margin-top:2px}
.ws-audience-label{margin:4px 0 -4px;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ws-muted)}
.ws-aud-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:14px}

/* organisation home */
.ws-org-health{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:900px){.ws-org-health{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ws-org-health{grid-template-columns:1fr}}
.ws-org-stats{display:flex;flex-wrap:wrap;gap:8px 22px;margin:14px 0 0;color:var(--ws-soft);font-size:14px}
.ws-org-stats b{color:var(--ws-ink);font-family:var(--ws-display);font-size:20px;font-weight:600;margin-right:4px}
.ws-group{margin-top:26px}
.ws-group-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}
.ws-group-head h3{margin:0;font-family:var(--ws-display);font-size:20px;font-weight:600}
.ws-group-head span{color:var(--ws-muted);font-size:13.5px}
.ws-matrix{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
.ws-matrix th,.ws-matrix td{padding:10px 12px;border-bottom:1px solid var(--ws-line);text-align:left;vertical-align:middle}
.ws-matrix th{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ws-muted);font-weight:700}
.ws-matrix th.col{text-align:center}
.ws-matrix td.dot{text-align:center}
.ws-matrix td.dot i{display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--ws-teal)}
.ws-matrix td.dot i.off{background:#e3ebe8}
.ws-matrix tr:last-child td{border-bottom:0}
.ws-report-cta{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:center;padding:26px 30px;border-radius:var(--ws-r);background:linear-gradient(150deg,#0a3936,#082f2d 75%);color:#fff;position:relative;overflow:hidden}
.ws-report-cta::after{content:'V';position:absolute;right:-24px;bottom:-96px;font-family:var(--ws-display);font-size:280px;font-weight:700;line-height:1;color:rgba(255,255,255,.03);pointer-events:none}
.ws-report-cta h3{margin:0 0 6px;font-family:var(--ws-display);font-size:24px;font-weight:600;letter-spacing:-.015em;position:relative}
.ws-report-cta p{margin:0;color:rgba(255,255,255,.74);font-size:14.5px;position:relative}
.ws-report-cta .acts{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;position:relative}
body.ws .ws-report-cta .ws-btn{background:#fff;color:var(--ws-deep);border-color:#fff}
@media (max-width:820px){.ws-report-cta{grid-template-columns:1fr}.ws-report-cta .acts{justify-content:flex-start}}

/* footer */
.ws-footer{margin-top:70px;padding:26px 0;border-top:1px solid var(--ws-line);color:var(--ws-muted);font-size:12.5px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ws-footer a{text-decoration:none;margin-left:16px}
.ws-footer a:hover{color:var(--ws-teal)}
/* language: the Workspace speaks the language it was set up in; a person may choose otherwise */
.ws-lang{display:flex;gap:16px;justify-content:center;margin:20px 0 0;font-size:12.5px}
.ws-lang a{color:var(--ws-muted);text-decoration:none}
.ws-lang a:hover{color:var(--ws-teal)}
.ws-lang a.is-on,.ws-footer a[data-lang].is-on{font-weight:700;color:var(--ws-ink)}

/* skeleton + motion */
.ws-skel{border-radius:12px;background:linear-gradient(90deg,#eef2f0 25%,#f6f8f7 50%,#eef2f0 75%);background-size:200% 100%;animation:ws-shimmer 1.4s infinite}
@keyframes ws-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.ws-reveal{opacity:0;transform:translateY(8px);animation:ws-in .5s ease forwards}
.ws-reveal:nth-child(2){animation-delay:.06s}.ws-reveal:nth-child(3){animation-delay:.12s}.ws-reveal:nth-child(4){animation-delay:.18s}
@keyframes ws-in{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.ws-reveal{animation:none;opacity:1;transform:none}.ws-bar i{transition:none}.ws-skel{animation:none}.ws-map:hover,.ws-btn:hover{transform:none}}
/* the verifier's result under a verify link */
.ws-verif{margin-top:6px;padding:8px 10px;background:var(--ws-mist);border-radius:8px;line-height:1.5}
.ws-verif small{font-size:12px;color:var(--ws-soft)}
/* figures: the numbers beside the steps */
.ws-figures{width:100%;border-collapse:collapse;font-size:13.5px}
.ws-figures th,.ws-figures td{padding:8px 8px;border-bottom:1px solid var(--ws-line);text-align:left;vertical-align:top}
.ws-figures th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ws-muted)}
.ws-figures .num{text-align:right;white-space:nowrap}
.ws-form-row-5{display:grid;grid-template-columns:1.4fr 1.4fr .8fr .6fr 1.2fr;gap:10px}
@media (max-width:820px){.ws-form-row-5{grid-template-columns:1fr 1fr}}
.ws-pivot-cols{display:flex;flex-wrap:wrap;gap:6px}
.ws-pivot li small{display:block}
/* open points: owner and date */
.ws-point-owner{display:inline-block;margin-top:6px;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:700;background:var(--ws-teal-soft);color:var(--ws-teal)}
.ws-point-owner.is-overdue{background:var(--ws-rose-soft);color:var(--ws-rose)}
.ws-point-acts{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.ws-assign{grid-column:1 / -1;display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px;padding-top:8px;border-top:1px dashed var(--ws-line)}
.ws-assign .ws-input{width:auto;min-width:160px}
/* the funder's own form */
.ws-template-card{margin-top:14px;padding:22px 26px;display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--ws-deep);color:#fff;overflow:hidden}
.ws-template-card .ws-kicker{color:#9bc7c1}
.ws-template-card h3{margin:0 0 6px;color:#fff}
.ws-template-card p{margin:0;color:#c9d8d5;max-width:60ch}
.ws-template-card .ws-btn{background:#fff;color:var(--ws-deep)}
