/* Pinned copy of production Soma CSS at clorofill/myrmex commit a19a504780d699960524504fb2cc46ccecb22d30.
   Source: capabilities/soma/prototype/styles.css. Only inaccessible private background image URL replaced with 'none'.
   Preserve class names and layout rules. Update intentionally when Soma design system changes. */
:root{
  color-scheme:light;
  --bg:#F4F0E8;
  --panel:#F8F5EF;
  --panel-alt:#ECE6DC;
  --ink:#121820;
  --muted:#62666A;
  --line:#D8D1C7;
  --line-strong:#BDB3A7;
  --signal:#A65F4A;
  --signal-ui:#9B4F3E;
  --signal-dark:#E7D6CF;
  --positive:#4F765F;
  --warning:#8A6A2F;
  --danger:#8E4340;
  --soma-sage:#8FA69A;
  --soma-sage-deep:#5F776B;
  --soma-sage-pale:#E3E8E1;
  --soma-sage-wash:#EEF1ED;
  --soma-sage-surface:#DCE5DF;
  --soma-sage-card:#CFDBD4;
  --soma-sage-line:#C6D0CA;
  --soma-linen:#EDE7DC;
  --soma-linen-light:#F6F1E9;
  --soma-linen-line:#D8CEC0;
  --soma-glow:rgba(143,166,154,.30);
  --soma-glow-soft:rgba(207,219,212,.34);
  --soma-surface:rgba(248,245,239,.70);
  --soma-surface-soft:rgba(248,245,239,.58);
  --soma-surface-ivory:rgba(248,245,239,.92);
  --soma-line:rgba(95,119,107,.34);
  --soma-status-low:#6F8C7C;
  --soma-status-mid:#B59A5E;
  --soma-status-high:#B6776B;
  --soma-status-critical:#A94B45;
  --radius:16px;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{
  margin:0;
  min-height:100vh;
  background:var(--bg);
  color:var(--ink);
  font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
a{color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.shell{max-width:1180px;margin:0 auto;padding:38px 24px 64px}
.shell.narrow{max-width:900px}
.topbar,.section-head,.status-row,.actions{display:flex;align-items:center;justify-content:space-between;gap:16px}
.topbar{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.brand{text-decoration:none}
.eyebrow,.surface-id,.metric-card small,.period-select,.evidence-badge{
  letter-spacing:.13em;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
}
.eyebrow{color:var(--signal-ui);margin:0 0 6px}
.surface-id{color:var(--signal-ui);white-space:nowrap}
h1{font-size:clamp(2.7rem,4.4vw,4.7rem);line-height:.96;margin:0;font-weight:650;letter-spacing:-.045em}
h2{margin:0;font-size:clamp(1.35rem,2vw,1.85rem);letter-spacing:-.025em}
.tagline{margin:10px 0 0;color:var(--muted);font-size:16px}
.subtle{color:var(--muted);margin:5px 0 0}
.top-actions{display:flex;align-items:flex-end;gap:14px;flex-direction:column}
.nav{display:flex;gap:0;border:1px solid var(--line-strong);background:var(--panel);border-radius:999px;padding:3px}
.nav a{text-decoration:none;padding:8px 12px;color:var(--muted);border-radius:999px;font-size:13px}
.nav a.active{background:var(--ink);color:var(--bg)}
.privacy-pill{
  border:1px solid var(--line-strong);
  background:var(--panel);
  border-radius:999px;
  padding:8px 12px;
  font-size:10px;
  letter-spacing:.1em;
  font-weight:800;
}
.privacy-pill i,.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--positive);margin-right:7px}
.status-dot.amber{background:var(--warning)}
.notice{
  display:flex;
  gap:14px;
  align-items:flex-start;
  background:var(--panel-alt);
  border:1px solid var(--line);
  padding:13px 15px;
  border-radius:12px;
  margin-bottom:18px;
}
.notice.compact{padding:10px 13px}
.notice strong{white-space:nowrap}.notice span{color:var(--muted)}
.card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:22px;
  box-shadow:none;
}
body[data-surface="soma-checkin"] .checkin-card{border-top:3px solid var(--signal)}
body[data-surface="soma-dashboard"] .dashboard-hero{border-top:3px solid var(--ink)}
.checkin-card form{display:grid;gap:20px;margin-top:25px}
label>span,.scale-label span,legend{display:block;color:var(--ink);font-weight:700;margin-bottom:7px}
label small,.scale-label small{color:var(--muted);font-weight:500}
.scale-label{display:flex;justify-content:space-between;align-items:end}
.scale-label output{font-size:40px;line-height:1;font-weight:700;color:var(--signal-ui)}
input[type=range]{width:100%;accent-color:var(--signal-ui)}
fieldset{border:0;padding:0;margin:0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips label{position:relative}
.chips input,.context-grid input{position:absolute;opacity:0;pointer-events:none}
.chips label{
  border:1px solid var(--line-strong);
  border-radius:999px;
  padding:8px 11px;
  color:var(--ink);
  background:var(--panel);
  cursor:pointer;
}
.chips label:has(input:checked){border-color:var(--signal-ui);background:var(--signal-dark);color:var(--ink)}
.context-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.context-grid label{position:relative}
.context-grid span{
  margin:0;
  border:1px solid var(--line-strong);
  background:var(--panel);
  border-radius:10px;
  padding:10px 9px;
  text-align:center;
  color:var(--muted);
  cursor:pointer;
}
.context-grid label:has(input:checked) span{background:var(--ink);border-color:var(--ink);color:var(--bg)}
select,input[type=number],input[type=datetime-local],textarea{
  width:100%;
  border:1px solid var(--line-strong);
  background:#fffdfa;
  color:var(--ink);
  border-radius:9px;
  padding:10px 11px;
  outline:none;
}
select:focus,input:focus,textarea:focus{border-color:var(--signal-ui);box-shadow:0 0 0 2px rgba(155,79,62,.12)}
details{border-top:1px solid var(--line);padding-top:15px}
summary{cursor:pointer;color:var(--ink);font-weight:700}
summary span{color:var(--muted);font-weight:500}
.secondary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:15px 0}
details>label{display:block;margin-top:13px}
.primary{
  border:1px solid var(--ink);
  border-radius:9px;
  padding:13px 16px;
  background:var(--ink);
  color:var(--bg);
  font-weight:800;
  text-decoration:none;
}
.primary:hover{background:#202833}
.button-link{display:inline-block;white-space:nowrap}
.save-panel{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:10px;
  align-items:center;
  background:#EDF1EB;
  border:1px solid #B8C9BB;
  border-radius:10px;
  padding:12px 14px;
}
.save-panel span{color:#53675A}.save-panel a{color:var(--signal-ui)}
.hidden{display:none!important}
.medical-boundary{color:var(--muted);font-size:12px;text-align:center;margin:16px 0 0}
.dashboard-hero{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin:12px 0 18px;
  padding:20px 2px 4px;
}
.dashboard-hero p:last-child{color:var(--muted);margin-bottom:0}
.metric-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.metric-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}
.metric-card small{display:block;color:var(--muted)}
.metric-card strong{display:block;font-size:29px;margin:5px 0 1px}
.metric-card strong.text-metric{font-size:18px;margin-top:11px}
.metric-card span{color:var(--muted);font-size:12px}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr .72fr;gap:16px}
.span-2{grid-column:span 2}
.period-select{color:var(--muted)}
.period-select select{margin-top:5px;padding:7px 9px;min-width:105px}
.trend-chart{height:300px;margin-top:16px}
.trend-chart svg{width:100%;height:100%;overflow:visible}
.grid-line{stroke:var(--line);stroke-width:1}
.axis-text{fill:var(--muted);font-size:11px}
.trend-line{fill:none;stroke:var(--signal-ui);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.chart-dot{fill:var(--panel);stroke:var(--signal-ui);stroke-width:2.5}
.chart-empty{height:100%;display:grid;place-items:center;color:var(--muted);border:1px dashed var(--line-strong);border-radius:11px}
.chart-note{color:var(--muted);font-size:12px;margin:10px 0 0}
.apple-card{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.apple-card .eyebrow{color:#D6A99B}
.apple-card p{color:#D4CFC8}
.apple-card small{color:#AAA69F}
.apple-card .status-row strong{color:var(--bg)}
.status-row{justify-content:flex-start;margin:18px 0 6px}
.future-data{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}
.future-data span{border:1px solid #4E5359;border-radius:999px;padding:5px 8px;font-size:11px;color:#D7D2CA}
.bars{display:grid;gap:12px;margin-top:18px}
.bar-row>div{display:flex;justify-content:space-between;gap:12px;margin-bottom:5px}
.bar-row span{color:var(--ink)}.bar-row b{font-size:12px;color:var(--muted)}
.bar-row i{display:block;height:6px;background:var(--panel-alt);border-radius:10px;overflow:hidden}
.bar-row em{display:block;height:100%;background:var(--signal-ui);border-radius:10px}
.pattern-card{grid-column:span 2;border-left:3px solid var(--signal)}
.evidence-badge{color:var(--warning);border:1px solid #C6AE78;border-radius:999px;padding:7px 10px}
.evidence-badge.ready{color:var(--positive);border-color:#9AB49F}
.pattern-output{display:grid;gap:8px;margin-top:16px}
.pattern-output article{
  display:grid;
  grid-template-columns:36px 1fr;
  gap:12px;
  align-items:start;
  background:var(--panel-alt);
  border:1px solid var(--line);
  border-radius:10px;
  padding:13px;
}
.pattern-output article span{color:var(--signal-ui);font-size:11px;font-weight:800;letter-spacing:.08em}
.pattern-output p{margin:0;color:var(--ink)}
.history{margin-top:16px}
.actions button{
  background:transparent;
  border:1px solid var(--line-strong);
  color:var(--ink);
  border-radius:8px;
  padding:9px 11px;
}
.actions button:hover{border-color:var(--ink)}
.actions .danger{color:var(--danger);border-color:#C6A4A1}
.empty{padding:28px 0 8px;color:var(--muted)}
.empty.mini{padding:8px 0}
.history-list{display:grid;margin-top:8px}
.entry{
  position:relative;
  display:grid;
  grid-template-columns:110px 72px minmax(160px,1fr) minmax(140px,1fr) 30px;
  gap:14px;
  align-items:center;
  padding:14px 4px;
  border-top:1px solid var(--line);
}
.entry time{color:var(--muted);font-variant-numeric:tabular-nums}
.entry .score{font-size:25px;font-weight:800;color:var(--signal-ui)}
.entry .score small{font-size:12px;color:var(--muted)}
.entry .context{color:var(--ink)}
.entry .meta{color:var(--muted);font-size:13px}
.delete-entry{border:0;background:transparent;color:#8A8D8F;font-size:21px}
.delete-entry:hover{color:var(--danger)}
.footer-note{text-align:center;color:var(--muted);font-size:11px;margin-top:22px}
.landing-shell{max-width:980px;padding-top:70px}
.landing-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:35px 0 18px}
.launch-card{
  text-decoration:none;
  border:1px solid var(--line);
  border-radius:16px;
  padding:28px;
  min-height:260px;
  background:var(--panel);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  transition:transform .18s ease,border-color .18s ease;
}
.launch-card:hover{transform:translateY(-2px);border-color:var(--signal-ui)}
.launch-card h2{font-size:32px}
.launch-card p:not(.eyebrow){color:var(--muted);max-width:430px}
.launch-card strong{color:var(--signal-ui);margin-top:10px}
.checkin-launch{border-top:3px solid var(--signal)}
.dashboard-launch{border-top:3px solid var(--ink)}
@media(max-width:900px){
  .dashboard-grid{grid-template-columns:1fr 1fr}
  .apple-card{grid-column:span 2}
  .metric-row{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .shell{padding:22px 14px 42px}
  .topbar{align-items:flex-start;flex-direction:column}
  .top-actions{align-items:flex-start;width:100%}
  .nav{width:100%}.nav a{flex:1;text-align:center}
  h1{font-size:46px}
  .context-grid{grid-template-columns:1fr 1fr}
  .secondary-grid{grid-template-columns:1fr}
  .section-head{align-items:flex-start;flex-direction:column}
  .dashboard-hero{align-items:flex-start;flex-direction:column}
  .dashboard-hero .button-link{width:100%;text-align:center}
  .metric-row,.dashboard-grid,.landing-grid{grid-template-columns:1fr}
  .span-2,.apple-card,.pattern-card{grid-column:span 1}
  .trend-chart{height:240px}
  .actions{width:100%}.actions button{flex:1}
  .entry{grid-template-columns:82px 58px 1fr 30px}
  .entry>div:nth-child(4){grid-column:3}
  .save-panel{grid-template-columns:1fr}
  .notice{flex-direction:column;gap:4px}
  .landing-shell{padding-top:34px}
}


/* Soma multidimensional detail controls */
.range-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.range-card{border:1px solid var(--line);background:var(--panel-alt);border-radius:11px;padding:12px}
.range-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}
.range-head span{margin:0}
.range-head output{font-weight:800;color:var(--signal-ui);font-size:18px;min-width:22px;text-align:right}
.range-ends{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:10px;margin-top:4px}
.detail-fieldset{margin-top:16px}
.thermal-summary{margin-top:18px}
.thermal-summary>strong{display:block;font-size:31px;color:var(--signal-ui)}
.thermal-summary>strong small{font-size:12px;color:var(--muted);font-weight:500;margin-left:4px}
.thermal-summary>div{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.thermal-summary>div span{border:1px solid var(--line);background:var(--panel-alt);border-radius:999px;padding:5px 8px;font-size:11px;color:var(--muted)}
@media(max-width:680px){.range-grid{grid-template-columns:1fr}}


/* Soma standard state section */
.detail-section{border-top:1px solid var(--line);padding-top:18px}
.detail-heading{margin-bottom:4px}
.detail-heading h3{margin:0;font-size:18px;letter-spacing:-.015em}
.comment-field{display:block;margin-top:18px}

.other-input{display:block;margin-top:10px}
.other-input input{width:100%;border:1px solid var(--line-strong);background:#fffdfa;color:var(--ink);border-radius:9px;padding:10px 11px;outline:none}
.other-input input:focus{border-color:var(--signal-ui);box-shadow:0 0 0 2px rgba(155,79,62,.12)}


/* Soma capture-surface refinement */
body[data-surface="soma-checkin"] .checkin-card{
  background:#F2E5DF;
  border-color:#D4BFB5;
  border-top-color:var(--signal);
}
body[data-surface="soma-checkin"] .range-card{
  background:#E7D6CF;
  border-color:#CEB8AE;
}
body[data-surface="soma-checkin"] .chips label,
body[data-surface="soma-checkin"] .context-grid span,
body[data-surface="soma-checkin"] input[type=datetime-local],
body[data-surface="soma-checkin"] input[type=text],
body[data-surface="soma-checkin"] textarea{
  background:#FFFDF8;
}
body[data-surface="soma-checkin"] .scale-label output{
  min-width:120px;
  font-size:21px;
  line-height:1.2;
  text-align:right;
}
body[data-surface="soma-checkin"] .range-head output{
  min-width:92px;
  font-size:14px;
  line-height:1.2;
}


/* Soma dashboard Copper visual hierarchy */
body[data-surface="soma-dashboard"] .dashboard-hero{
  background:#F2E5DF;
  border:1px solid #D4BFB5;
  border-top:3px solid var(--signal);
  border-radius:14px;
  padding:20px;
}
body[data-surface="soma-dashboard"] .metric-card{
  background:#E7D6CF;
  border-color:#CEB8AE;
}
body[data-surface="soma-dashboard"] .dashboard-grid>.card,
body[data-surface="soma-dashboard"] .history{
  background:#F2E5DF;
  border-color:#D4BFB5;
}
body[data-surface="soma-dashboard"] .chart-card,
body[data-surface="soma-dashboard"] .pattern-card{
  background:#F7ECE7;
}
body[data-surface="soma-dashboard"] .pattern-output article,
body[data-surface="soma-dashboard"] .bar-row i,
body[data-surface="soma-dashboard"] .thermal-summary>div span{
  background:#E7D6CF;
}
body[data-surface="soma-dashboard"] .apple-card{
  background:var(--ink);
  border-color:var(--ink);
}
.draft-notice{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 0 16px;
  padding:13px 15px;
  border:1px solid #C9A99C;
  border-left:3px solid var(--signal);
  border-radius:11px;
  background:#E7D6CF;
}
.draft-notice div{display:grid;gap:2px}
.draft-notice strong{color:var(--ink)}
.draft-notice span{color:var(--muted);font-size:13px}
.draft-notice a{white-space:nowrap;color:var(--signal-ui);font-weight:800;text-decoration:none}
@media(max-width:680px){
  .draft-notice{align-items:flex-start;flex-direction:column}
}


/* Soma calm palette experiment (Revision 0.13)
   Clorofill identity remains Carbon + Ivory + Copper.
   Sage is Soma's application accent; Copper is reduced to a family signature. */
body[data-surface="soma-checkin"] input[type=range]{
  accent-color:var(--soma-sage-deep);
}
body[data-surface="soma-checkin"] .checkin-card{
  background:var(--soma-sage-wash);
  border-color:var(--soma-sage-line);
  border-top-color:var(--signal);
}
body[data-surface="soma-checkin"] .range-card{
  background:var(--soma-sage-pale);
  border-color:var(--soma-sage-line);
}
body[data-surface="soma-checkin"] .range-head output,
body[data-surface="soma-checkin"] .scale-label output{
  color:var(--soma-sage-deep);
}
body[data-surface="soma-checkin"] .chips label:has(input:checked){
  border-color:var(--soma-sage-deep);
  background:var(--soma-sage-pale);
  color:var(--ink);
}
body[data-surface="soma-checkin"] .context-grid label:has(input:checked) span{
  background:var(--soma-sage-deep);
  border-color:var(--soma-sage-deep);
  color:#fffdfa;
}
body[data-surface="soma-checkin"] input:focus,
body[data-surface="soma-checkin"] textarea:focus,
body[data-surface="soma-checkin"] select:focus{
  border-color:var(--soma-sage-deep);
  box-shadow:0 0 0 2px rgba(95,119,107,.14);
}
body[data-surface="soma-checkin"] .save-panel{
  background:var(--soma-sage-pale);
  border-color:var(--soma-sage-line);
}
body[data-surface="soma-checkin"] .save-panel a{
  color:var(--soma-sage-deep);
}

/* Dashboard uses the same calm Soma language, with Carbon retained for passive data. */
body[data-surface="soma-dashboard"] .dashboard-hero{
  background:var(--soma-sage-wash);
  border-color:var(--soma-sage-line);
  border-top-color:var(--signal);
}
body[data-surface="soma-dashboard"] .metric-card{
  background:var(--soma-sage-pale);
  border-color:var(--soma-sage-line);
}
body[data-surface="soma-dashboard"] .dashboard-grid>.card,
body[data-surface="soma-dashboard"] .history{
  background:var(--soma-sage-wash);
  border-color:var(--soma-sage-line);
}
body[data-surface="soma-dashboard"] .chart-card,
body[data-surface="soma-dashboard"] .pattern-card{
  background:#F3F5F1;
}
body[data-surface="soma-dashboard"] .pattern-card{
  border-left-color:var(--soma-sage);
}
body[data-surface="soma-dashboard"] .pattern-output article,
body[data-surface="soma-dashboard"] .bar-row i,
body[data-surface="soma-dashboard"] .thermal-summary>div span{
  background:var(--soma-sage-pale);
}
body[data-surface="soma-dashboard"] .trend-line{
  stroke:var(--soma-sage-deep);
}
body[data-surface="soma-dashboard"] .chart-dot{
  stroke:var(--soma-sage-deep);
}
body[data-surface="soma-dashboard"] .bar-row em{
  background:var(--soma-sage-deep);
}
body[data-surface="soma-dashboard"] .entry .score,
body[data-surface="soma-dashboard"] .thermal-summary>strong,
body[data-surface="soma-dashboard"] .pattern-output article span{
  color:var(--soma-sage-deep);
}
body[data-surface="soma-dashboard"] .draft-notice{
  background:var(--soma-sage-pale);
  border-color:var(--soma-sage-line);
  border-left-color:var(--soma-sage-deep);
}
body[data-surface="soma-dashboard"] .draft-notice a{
  color:var(--soma-sage-deep);
}
body[data-surface="soma-dashboard"] .apple-card{
  background:var(--ink);
  border-color:var(--ink);
}


/* Soma stronger Sage surface (Revision 0.14)
   Keep Ivory for inputs; make the surrounding application visibly Sage. */
body[data-surface="soma-checkin"] .checkin-card{
  background:var(--soma-sage-surface);
  border-color:#B9C8C0;
}
body[data-surface="soma-checkin"] .range-card{
  background:var(--soma-sage-card);
  border-color:#B7C7BE;
}
body[data-surface="soma-checkin"] .detail-section{
  border-top-color:#B7C7BE;
}
body[data-surface="soma-checkin"] .chips label,
body[data-surface="soma-checkin"] .context-grid span,
body[data-surface="soma-checkin"] input[type=datetime-local],
body[data-surface="soma-checkin"] input[type=text],
body[data-surface="soma-checkin"] textarea{
  background:#FFFDF8;
}

body[data-surface="soma-dashboard"] .dashboard-hero{
  background:var(--soma-sage-surface);
  border-color:#B9C8C0;
}
body[data-surface="soma-dashboard"] .metric-card{
  background:var(--soma-sage-card);
  border-color:#B7C7BE;
}
body[data-surface="soma-dashboard"] .dashboard-grid>.card,
body[data-surface="soma-dashboard"] .history{
  background:var(--soma-sage-surface);
  border-color:#B9C8C0;
}
body[data-surface="soma-dashboard"] .chart-card,
body[data-surface="soma-dashboard"] .pattern-card{
  background:var(--soma-sage-pale);
}
body[data-surface="soma-dashboard"] .pattern-output article,
body[data-surface="soma-dashboard"] .bar-row i,
body[data-surface="soma-dashboard"] .thermal-summary>div span,
body[data-surface="soma-dashboard"] .draft-notice{
  background:var(--soma-sage-card);
}


/* Soma Linen page field (Revision 0.15)
   The outer canvas is warm Linen, the product surface is Sage, controls are light Linen. */
body[data-surface="soma-checkin"],
body[data-surface="soma-dashboard"],
body[data-surface="soma-home"]{
  background:var(--soma-linen);
}
body[data-surface="soma-checkin"] .chips label,
body[data-surface="soma-checkin"] .context-grid span,
body[data-surface="soma-checkin"] input[type=datetime-local],
body[data-surface="soma-checkin"] input[type=text],
body[data-surface="soma-checkin"] textarea,
body[data-surface="soma-checkin"] select{
  background:var(--soma-linen-light);
  border-color:var(--soma-linen-line);
}
body[data-surface="soma-dashboard"] select,
body[data-surface="soma-dashboard"] .actions button{
  background:var(--soma-linen-light);
  border-color:var(--soma-linen-line);
}
body[data-surface="soma-home"] .launch-card,
body[data-surface="soma-home"] .notice{
  background:var(--soma-linen-light);
  border-color:var(--soma-linen-line);
}


/* Soma visual dashboard refinement (Revision 0.16) */
body[data-surface="soma-checkin"],
body[data-surface="soma-dashboard"],
body[data-surface="soma-home"]{
  background-color:var(--soma-linen);
  background-image:
    radial-gradient(circle at 8% 18%, rgba(143,166,154,.10) 0 1px, transparent 2px),
    radial-gradient(circle at 88% 12%, rgba(95,119,107,.08) 0 1px, transparent 2px),
    radial-gradient(circle at 84% 76%, transparent 0 92px, rgba(143,166,154,.08) 93px 94px, transparent 95px 150px),
    radial-gradient(circle at 12% 72%, transparent 0 128px, rgba(166,95,74,.045) 129px 130px, transparent 131px 190px);
  background-size:180px 180px,240px 240px,460px 460px,560px 560px;
  background-attachment:fixed;
}
.state-support-grid{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);
  gap:16px;
  margin-bottom:16px;
}
.state-visual-card{
  background:var(--soma-sage-surface)!important;
  border-color:#B9C8C0!important;
}
.state-time{font-size:12px;color:var(--muted)}
.state-rings{
  display:grid;
  grid-template-columns:repeat(4,minmax(100px,1fr));
  gap:16px;
  margin:22px 0 16px;
}
.state-ring{text-align:center}
.ring-dial{
  --ring-deg:0deg;
  width:92px;height:92px;margin:0 auto 10px;border-radius:50%;
  background:conic-gradient(var(--soma-sage-deep) 0 var(--ring-deg),rgba(95,119,107,.14) var(--ring-deg) 360deg);
  display:grid;place-items:center;
  position:relative;
}
.ring-dial::after{
  content:"";
  position:absolute;inset:8px;border-radius:50%;
  background:var(--soma-linen-light);
  border:1px solid var(--soma-sage-line);
}
.ring-dial>div{position:relative;z-index:1;display:flex;align-items:baseline;justify-content:center}
.ring-dial strong{font-size:25px;line-height:1;color:var(--ink)}
.ring-dial small{font-size:10px;color:var(--muted);margin-left:2px}
.state-ring>b{display:block;font-size:12px}
.state-ring>span{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.state-tags{display:flex;flex-wrap:wrap;gap:6px}
.state-tags span{
  padding:6px 9px;border-radius:999px;
  background:var(--soma-linen-light);
  border:1px solid var(--soma-linen-line);
  color:var(--muted);font-size:11px;
}
.support-card{
  background:#F0F2ED!important;
  border-color:var(--soma-sage-line)!important;
  position:relative;
  overflow:hidden;
}
.support-card::after{
  content:"";
  position:absolute;right:-48px;bottom:-52px;width:155px;height:155px;border-radius:50%;
  border:1px solid rgba(95,119,107,.16);
  box-shadow:0 0 0 28px rgba(95,119,107,.035),0 0 0 56px rgba(95,119,107,.025);
  pointer-events:none;
}
.support-intro{color:var(--muted);font-size:13px;margin:8px 0 16px}
.support-suggestions{display:grid;gap:9px;position:relative;z-index:1}
.support-suggestions article{
  display:grid;grid-template-columns:28px 1fr;gap:9px;
  padding:10px;border:1px solid var(--soma-sage-line);
  background:rgba(246,241,233,.72);border-radius:10px;
}
.support-suggestions article>span{color:var(--soma-sage-deep);font-size:10px;font-weight:850;letter-spacing:.08em}
.support-suggestions b{font-size:12px}
.support-suggestions p{margin:2px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
.support-boundary{position:relative;z-index:1;margin:13px 0 0;color:#747A75;font-size:10px;line-height:1.5}
body[data-surface="soma-dashboard"] .dashboard-grid>.card{
  box-shadow:inset 0 1px rgba(255,255,255,.28);
}
body[data-surface="soma-dashboard"] .chart-card{
  background:#EEF2ED!important;
}
body[data-surface="soma-dashboard"] .pattern-card{
  background:#E6ECE7!important;
}
body[data-surface="soma-dashboard"] .apple-card{
  background:var(--ink)!important;
}
@media(max-width:900px){
  .state-support-grid{grid-template-columns:1fr}
}
@media(max-width:680px){
  .state-rings{grid-template-columns:1fr 1fr}
}


/* Soma post-save completion + rectangular dashboard (Revision 0.18) */
.checkin-complete{
  background:var(--soma-sage-surface);
  border-color:#B9C8C0;
  border-top:3px solid var(--signal);
  padding:30px;
}
.checkin-complete h2{font-size:32px;margin-bottom:8px}
.completion-lead{color:var(--muted);max-width:620px;margin:0 0 20px}
.completion-support{margin:0 0 16px}
/* Completion prompts are meant to be read at the end of a check-in,
   including when the person is tired or uncomfortable. */
.checkin-complete .completion-choice-question{
  margin:18px 0 6px;
  font-size:clamp(21px,2.6vw,27px);
  line-height:1.25;
}
.checkin-complete .completion-choice-intro{
  font-size:16px;
  line-height:1.6;
  color:var(--muted);
  margin:0 0 17px;
}
.checkin-complete .completion-support{gap:13px}
.checkin-complete .completion-support article{
  gap:14px;
  padding:17px;
  grid-template-columns:30px minmax(0,1fr);
}
.checkin-complete .completion-support article>span{font-size:13px}
.checkin-complete .completion-support b{
  display:block;
  font-size:18px;
  line-height:1.35;
}
.checkin-complete .completion-support p{
  font-size:16px;
  line-height:1.6;
  margin:6px 0 13px;
}
.checkin-complete .completion-try-button{
  appearance:none;
  display:inline-block;
  min-height:44px;
  padding:9px 14px;
  border:1px solid var(--soma-sage-deep);
  border-radius:9px;
  color:var(--ink);
  background:var(--soma-linen-light);
  cursor:pointer;
  font:inherit;
  font-size:15px;
  font-weight:750;
}
.checkin-complete .completion-try-button[aria-pressed="true"]{
  background:var(--soma-sage-deep);
  border-color:var(--soma-sage-deep);
  color:white;
}
.checkin-complete .completion-try-button:focus-visible{
  outline:3px solid var(--ink);
  outline-offset:3px;
}
.checkin-complete .completion-choice-status{
  min-height:1.5em;
  font-size:15px;
  font-weight:650;
  line-height:1.6;
  color:var(--ink);
  margin:0 0 12px;
}
.completion-actions{display:flex;gap:10px;align-items:center;margin-top:22px}
.completion-actions .primary{min-width:190px}
.secondary-link{
  display:inline-block;
  padding:12px 14px;
  border:1px solid var(--soma-linen-line);
  border-radius:9px;
  background:var(--soma-linen-light);
  color:var(--ink);
  text-decoration:none;
  font-weight:750;
}
.dashboard-grid{
  grid-auto-flow:row;
  align-items:stretch;
}
.dashboard-grid>.card{height:100%}
.span-3{grid-column:span 3}
body[data-surface="soma-dashboard"] .pattern-card{grid-column:span 3}
@media(max-width:900px){
  .span-3,
  body[data-surface="soma-dashboard"] .pattern-card{grid-column:span 2}
}
@media(max-width:680px){
  .span-3,
  body[data-surface="soma-dashboard"] .pattern-card{grid-column:span 1}
  .completion-actions{align-items:stretch;flex-direction:column}
  .completion-actions .primary,.secondary-link{width:100%;text-align:center}
}


/* Soma Overview + medication memory aid (Revision 0.21) */
.overview-hero{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin:12px 0 16px;
  padding:22px;
  border:1px solid #B9C8C0;
  border-top:3px solid var(--signal);
  border-radius:14px;
  background:var(--soma-sage-surface);
}
.overview-hero p:last-child{margin:7px 0 0;color:var(--muted);max-width:720px}
.overview-metrics{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-bottom:16px;
}
.overview-metrics .metric-card{
  background:var(--soma-sage-card);
  border-color:#B7C7BE;
}
.month-card{
  background:var(--soma-sage-wash);
  border-color:#B9C8C0;
  margin-bottom:16px;
}
.calendar-legend{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}
.calendar-legend span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px}
.month-weekdays,.month-calendar{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:7px;
}
.month-weekdays{margin:18px 0 7px}
.month-weekdays span{text-align:center;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.calendar-day{
  min-height:88px;
  padding:8px;
  border:1px solid var(--soma-linen-line);
  border-radius:10px;
  background:var(--soma-linen-light);
  display:flex;
  flex-direction:column;
  gap:7px;
}
.calendar-day.blank{background:transparent;border-color:transparent}
.calendar-day.future{opacity:.48}
.calendar-day.today{border-color:var(--soma-sage-deep);box-shadow:inset 0 0 0 1px var(--soma-sage-deep)}
.calendar-day>b{font-size:12px}
.day-dots{display:flex;flex-wrap:wrap;gap:5px;min-height:10px}
.day-dots small{font-size:9px;color:var(--muted)}
.calendar-dot{
  width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 auto;
}
.calendar-dot.low{background:var(--soma-status-low)}
.calendar-dot.mid{background:var(--soma-status-mid)}
.calendar-dot.high{background:var(--soma-status-high)}
.calendar-dot.critical{background:var(--soma-status-critical)}
.med-marker{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  margin-top:auto;
  padding:3px 6px;
  border:1px solid var(--ink);
  border-radius:999px;
  color:var(--ink);
  font-size:8px;
  font-weight:850;
  letter-spacing:.05em;
  line-height:1;
}
.med-marker.sample{margin:0}
.overview-grid{
  display:grid;
  grid-template-columns:1.05fr 1fr .9fr;
  gap:16px;
  align-items:stretch;
}
.overview-grid>.card{height:100%}
.medication-card{background:var(--soma-sage-surface);border-color:#B9C8C0}
.medication-history-card{background:var(--soma-sage-wash);border-color:#B9C8C0}
.overview-support-card{background:#F0F2ED;border-color:var(--soma-sage-line);position:relative;overflow:hidden}
.overview-support-card::after{
  content:"";
  position:absolute;right:-55px;bottom:-55px;width:170px;height:170px;border-radius:50%;
  border:1px solid rgba(95,119,107,.14);
  box-shadow:0 0 0 32px rgba(95,119,107,.03),0 0 0 64px rgba(95,119,107,.02);
  pointer-events:none;
}
.medication-form{display:grid;gap:13px;margin-top:18px}
.medication-form label>span{font-size:12px}
.medication-form input{
  width:100%;
  border:1px solid var(--soma-linen-line);
  background:var(--soma-linen-light);
  color:var(--ink);
  border-radius:9px;
  padding:10px 11px;
  outline:none;
}
.medication-form input:focus{border-color:var(--soma-sage-deep);box-shadow:0 0 0 2px rgba(95,119,107,.14)}
.medication-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.medication-safety{
  display:grid;
  gap:4px;
  margin-top:15px;
  padding:11px 12px;
  border-left:3px solid var(--soma-status-mid);
  border-radius:8px;
  background:var(--soma-linen-light);
}
.medication-safety strong{font-size:11px}
.medication-safety span{font-size:11px;color:var(--muted);line-height:1.5}
.medication-timeline{display:grid;margin-top:10px}
.med-entry{
  display:grid;
  grid-template-columns:82px minmax(0,1fr) 28px;
  gap:12px;
  align-items:center;
  padding:12px 0;
  border-top:1px solid var(--soma-sage-line);
}
.med-entry:first-child{border-top:0}
.med-time{display:grid}
.med-time strong{font-size:17px;color:var(--soma-sage-deep)}
.med-time span{font-size:9px;color:var(--muted)}
.med-detail{display:grid;min-width:0}
.med-detail b{font-size:12px}
.med-detail span{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.delete-med{
  border:0;
  background:transparent;
  color:#8A8D8F;
  font-size:20px;
}
.delete-med:hover{color:var(--danger)}
.overview-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:16px;
}
.launch-strip{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:12px;
  align-items:center;
  padding:16px;
  border:1px solid var(--soma-sage-line);
  border-radius:12px;
  background:var(--soma-sage-pale);
  text-decoration:none;
}
.launch-strip span{font-size:9px;font-weight:850;letter-spacing:.12em;color:var(--soma-sage-deep)}
.launch-strip strong{font-size:15px}
.launch-strip b{font-size:20px;font-weight:400;color:var(--soma-sage-deep)}
.dashboard-state-card{margin-bottom:16px;background:var(--soma-sage-surface)!important;border-color:#B9C8C0!important}
@media(max-width:980px){
  .overview-grid{grid-template-columns:1fr 1fr}
  .overview-support-card{grid-column:span 2}
}
@media(max-width:760px){
  .overview-hero{align-items:flex-start;flex-direction:column}
  .overview-hero .button-link{width:100%;text-align:center}
  .overview-metrics{grid-template-columns:1fr 1fr}
  .month-card{overflow-x:auto}
  .month-weekdays,.month-calendar{min-width:620px}
  .overview-grid{grid-template-columns:1fr}
  .overview-support-card{grid-column:span 1}
  .overview-actions{grid-template-columns:1fr}
}
@media(max-width:520px){
  .overview-metrics{grid-template-columns:1fr 1fr}
  .medication-fields{grid-template-columns:1fr}
}


/* Soma Crisis Mode (Revision 0.22) */
.overview-hero-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.crisis-button{
  display:inline-block;
  padding:12px 16px;
  border:1px solid var(--soma-status-high);
  border-radius:9px;
  background:#F2E6E1;
  color:#6E3F38;
  text-decoration:none;
  font-weight:850;
}
.crisis-button:hover{background:#EAD7D1}
.crisis-text-link{
  font-size:11px;
  color:#7A4A43;
  text-decoration:none;
  border-bottom:1px solid #C79E95;
}
.crisis-shell{max-width:760px}
.crisis-topbar{margin-bottom:18px}
.crisis-intro{
  padding:20px 2px 18px;
  margin-bottom:10px;
}
.crisis-intro h2{font-size:clamp(2rem,5vw,3rem);line-height:1.03;max-width:650px}
.crisis-intro p:last-child{color:var(--muted);font-size:16px;max-width:620px}
.crisis-card,
.crisis-guide-card,
.crisis-med-card{
  background:var(--soma-sage-surface);
  border-color:#B9C8C0;
  border-top:3px solid var(--soma-sage-deep);
}
.crisis-card form{display:grid;gap:22px}
.crisis-card input[type=text],
.crisis-card textarea,
.crisis-med-card input{
  width:100%;
  border:1px solid var(--soma-linen-line);
  background:var(--soma-linen-light);
  color:var(--ink);
  border-radius:10px;
  padding:14px;
  font-size:16px;
}
.crisis-card label>span,
.crisis-card legend{font-size:16px}
.crisis-scale{align-items:center}
.crisis-scale output{color:var(--soma-sage-deep);font-size:22px;min-width:120px}
.crisis-chips label{font-size:15px;padding:10px 13px}
.crisis-primary{min-height:54px;font-size:16px}
.crisis-guide-card{margin-bottom:14px}
.crisis-guide-card h2{font-size:32px}
.crisis-steps{
  list-style:none;
  margin:20px 0 0;
  padding:0;
  display:grid;
  gap:10px;
  counter-reset:steps;
}
.crisis-steps li{
  counter-increment:steps;
  display:grid;
  grid-template-columns:42px 1fr;
  gap:12px;
  padding:14px;
  border:1px solid var(--soma-sage-line);
  border-radius:11px;
  background:var(--soma-linen-light);
}
.crisis-steps li::before{
  content:counter(steps);
  width:36px;height:36px;border-radius:50%;
  display:grid;place-items:center;
  background:var(--soma-sage-deep);
  color:white;
  font-weight:850;
}
.crisis-steps li strong{display:block;font-size:15px;margin-bottom:3px}
.crisis-steps li span{grid-column:2;color:var(--muted);font-size:13px;line-height:1.45}
.crisis-med-card{margin-bottom:14px}
.crisis-med-log{margin-top:14px;border-top:1px solid var(--soma-sage-line);padding-top:12px}
.crisis-med-log summary{font-size:14px}
.crisis-med-entry{grid-template-columns:90px 1fr}
.crisis-urgent{
  display:grid;
  gap:4px;
  margin:14px 0;
  padding:14px 16px;
  border-left:4px solid var(--soma-status-high);
  border-radius:10px;
  background:#F2E6E1;
}
.crisis-urgent strong{color:#6E3F38}
.crisis-urgent span{color:#705C57;font-size:12px;line-height:1.5}
.crisis-actions{margin-bottom:20px}
body[data-surface="soma-crisis"]{
  background-color:var(--soma-linen);
  background-image:
    radial-gradient(circle at 10% 18%, rgba(143,166,154,.09) 0 1px, transparent 2px),
    radial-gradient(circle at 88% 70%, transparent 0 110px, rgba(143,166,154,.07) 111px 112px, transparent 113px 170px);
  background-size:220px 220px,520px 520px;
  background-attachment:fixed;
}
@media(max-width:680px){
  .overview-hero-actions{width:100%}
  .overview-hero-actions a{flex:1;text-align:center}
  .crisis-shell{padding-top:18px}
  .crisis-intro h2{font-size:36px}
  .crisis-steps li{grid-template-columns:38px 1fr}
}


/* Crisis Mode readability refinement (Revision 0.23) */
body[data-surface="soma-crisis"] .crisis-intro{
  padding:12px 2px 10px;
  margin-bottom:6px;
}
body[data-surface="soma-crisis"] .crisis-intro p:last-child{
  font-size:18px;
  line-height:1.45;
}
body[data-surface="soma-crisis"] .crisis-guide-card{
  padding:18px;
  margin-bottom:10px;
}
body[data-surface="soma-crisis"] .crisis-guide-card h2{
  font-size:34px;
  line-height:1.05;
}
body[data-surface="soma-crisis"] .crisis-steps{
  margin:12px 0 0;
  gap:6px;
}
body[data-surface="soma-crisis"] .crisis-steps li{
  grid-template-columns:40px 1fr;
  gap:10px;
  padding:10px 12px;
}
body[data-surface="soma-crisis"] .crisis-steps li::before{
  width:34px;
  height:34px;
  font-size:15px;
}
body[data-surface="soma-crisis"] .crisis-steps li strong{
  font-size:18px;
  line-height:1.2;
  margin-bottom:2px;
}
body[data-surface="soma-crisis"] .crisis-steps li span{
  font-size:16px;
  line-height:1.38;
}
body[data-surface="soma-crisis"] .crisis-med-card{
  padding:18px;
  margin-bottom:10px;
}
body[data-surface="soma-crisis"] .crisis-med-card h2{
  font-size:30px;
}
body[data-surface="soma-crisis"] .med-time strong{font-size:20px}
body[data-surface="soma-crisis"] .med-time span{font-size:11px}
body[data-surface="soma-crisis"] .med-detail b{font-size:15px}
body[data-surface="soma-crisis"] .med-detail span{font-size:13px;line-height:1.4}
body[data-surface="soma-crisis"] .crisis-urgent{
  margin:10px 0;
  padding:12px 14px;
}
body[data-surface="soma-crisis"] .crisis-urgent strong{font-size:15px}
body[data-surface="soma-crisis"] .crisis-urgent span{font-size:13px}
@media(max-width:680px){
  body[data-surface="soma-crisis"] .crisis-guide-card,
  body[data-surface="soma-crisis"] .crisis-med-card{padding:14px}
  body[data-surface="soma-crisis"] .crisis-steps li{
    grid-template-columns:36px 1fr;
    padding:9px 10px;
  }
  body[data-surface="soma-crisis"] .crisis-steps li strong{font-size:17px}
  body[data-surface="soma-crisis"] .crisis-steps li span{font-size:15px}
}


/* Medication package photo memory (Revision 0.24) */
.med-photo-field{display:grid;gap:7px}
.med-photo-field input[type=file]{
  width:100%;
  border:1px solid var(--soma-linen-line);
  background:var(--soma-linen-light);
  color:var(--ink);
  border-radius:9px;
  padding:9px;
}
.med-photo-privacy{
  color:var(--muted);
  font-size:10px;
  line-height:1.45;
}
.med-photo-preview{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px;
  border:1px solid var(--soma-sage-line);
  border-radius:10px;
  background:var(--soma-sage-pale);
}
.med-photo-preview img{
  width:66px;
  height:66px;
  border-radius:8px;
  object-fit:cover;
  border:1px solid var(--soma-linen-line);
  background:var(--soma-linen-light);
}
.med-photo-preview span{
  color:var(--muted);
  font-size:11px;
}
.med-photo-slot{display:none}
.med-photo-slot.has-photo{
  display:block;
  width:54px;
  height:54px;
}
.med-photo-slot img{
  width:54px;
  height:54px;
  object-fit:cover;
  border-radius:8px;
  border:1px solid var(--soma-linen-line);
  background:var(--soma-linen-light);
}
.med-entry:has(.med-photo-slot.has-photo){
  grid-template-columns:54px 82px minmax(0,1fr) 28px;
}
.crisis-med-entry:has(.med-photo-slot.has-photo){
  grid-template-columns:54px 90px minmax(0,1fr);
}
@media(max-width:520px){
  .med-entry:has(.med-photo-slot.has-photo){
    grid-template-columns:48px 68px minmax(0,1fr) 26px;
    gap:8px;
  }
  .crisis-med-entry:has(.med-photo-slot.has-photo){
    grid-template-columns:48px 72px minmax(0,1fr);
  }
  .med-photo-slot.has-photo,
  .med-photo-slot img{
    width:48px;
    height:48px;
  }
}


/* Crisis save confirmation (Revision 0.26) */
.crisis-saved-notice{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,1.25fr) auto;
  gap:18px;
  align-items:center;
  margin:10px 0 14px;
  padding:18px 20px;
  border:1px solid #AFC1B7;
  border-left:5px solid var(--soma-sage-deep);
  border-radius:13px;
  background:var(--soma-sage-surface);
  box-shadow:0 6px 20px rgba(18,24,32,.05);
}
.crisis-saved-notice h2{
  margin:2px 0 5px;
  font-size:28px;
  line-height:1.05;
}
.crisis-saved-notice p:last-child{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.4;
}
.crisis-saved-notice ol{
  list-style:none;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px 10px;
  margin:0;
  padding:0;
  counter-reset:crisisSaved;
}
.crisis-saved-notice li{
  counter-increment:crisisSaved;
  display:grid;
  grid-template-columns:25px 1fr;
  column-gap:7px;
  align-items:start;
}
.crisis-saved-notice li::before{
  content:counter(crisisSaved);
  width:23px;
  height:23px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--soma-sage-deep);
  color:white;
  font-size:11px;
  font-weight:850;
}
.crisis-saved-notice li strong{
  font-size:13px;
  line-height:1.25;
}
.crisis-saved-notice li span{
  grid-column:2;
  color:var(--muted);
  font-size:11px;
  line-height:1.35;
}
.crisis-saved-notice .secondary-link{
  white-space:nowrap;
}
@media(max-width:820px){
  .crisis-saved-notice{
    grid-template-columns:1fr;
    gap:12px;
  }
  .crisis-saved-notice ol{grid-template-columns:1fr}
  .crisis-saved-notice .secondary-link{
    width:100%;
    text-align:center;
  }
}


/* Soma private sync status (Revision 0.29) */
.soma-sync-status{
  position:fixed;
  right:12px;
  bottom:12px;
  z-index:40;
  display:flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border:1px solid var(--soma-linen-line);
  border-radius:999px;
  background:rgba(246,241,233,.94);
  color:var(--muted);
  box-shadow:0 4px 18px rgba(18,24,32,.08);
  backdrop-filter:blur(8px);
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
}
.soma-sync-status i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--warning);
}
.soma-sync-status[data-state="synced"] i{background:var(--positive)}
.soma-sync-status[data-state="syncing"] i{background:var(--soma-sage-deep)}
.soma-sync-status[data-state="offline"] i,
.soma-sync-status[data-state="local"] i{background:var(--warning)}
@media(max-width:680px){
  .soma-sync-status{
    right:8px;
    bottom:8px;
    max-width:calc(100vw - 16px);
    font-size:9px;
  }
}


/* Soma one-time migration */
.migration-card{margin-top:20px}
.migration-panel{display:grid;gap:18px;margin-top:24px}
.migration-summary{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:6px 12px;
  align-items:baseline;
  max-width:360px;
  padding:16px;
  border:1px solid var(--soma-sage-line);
  border-radius:12px;
  background:var(--soma-sage-wash);
}
.migration-summary strong{font-size:24px;color:var(--soma-sage-deep)}
.migration-summary span{color:var(--muted)}
.migration-file input{display:block;margin-top:10px}


/* Soma daily retrospective + explicit optional sliders (Revision 0.31) */
.range-hint{
  margin:0 0 2px;
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
}
.calendar-day.clickable{
  width:100%;
  text-align:left;
  color:var(--ink);
  font:inherit;
  cursor:pointer;
  appearance:none;
}
.calendar-day.clickable:hover{
  border-color:var(--soma-sage-deep);
  box-shadow:inset 0 0 0 1px rgba(95,119,107,.2);
}
.calendar-day.retrospective-low{background:#E7EEE9}
.calendar-day.retrospective-mid{background:#F1E8D4}
.calendar-day.retrospective-high{background:#F1DEDA}
.day-retro-label{
  display:inline-block;
  align-self:flex-start;
  padding:2px 5px;
  border-radius:999px;
  background:rgba(255,255,255,.58);
  color:var(--muted);
  font-size:7px;
  font-weight:850;
  letter-spacing:.06em;
  line-height:1.2;
}
.retro-swatch{
  width:13px;
  height:13px;
  border-radius:3px;
  border:1px solid var(--soma-sage-line);
  background:linear-gradient(90deg,#E7EEE9 0 33%,#F1E8D4 33% 66%,#F1DEDA 66%);
}
.retrospective-dialog{
  width:min(680px,calc(100vw - 28px));
  max-height:calc(100vh - 28px);
  overflow:auto;
  border:1px solid var(--soma-sage-line);
  border-radius:16px;
  padding:0;
  background:var(--soma-linen-light);
  color:var(--ink);
  box-shadow:0 24px 70px rgba(18,24,32,.2);
}
.retrospective-dialog::backdrop{
  background:rgba(18,24,32,.34);
  backdrop-filter:blur(2px);
}
.retrospective-dialog form{display:grid;gap:18px;padding:24px}
.retrospective-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}
.retrospective-head h2{margin-top:2px}
.dialog-close{
  border:0;
  background:transparent;
  color:var(--muted);
  font-size:30px;
  line-height:1;
  padding:0 4px;
}
.retrospective-dates{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.retrospective-dialog input[type=date],
.retrospective-dialog input[type=datetime-local],
.retrospective-dialog input[type=text]{
  width:100%;
  border:1px solid var(--soma-linen-line);
  background:#fffdfa;
  color:var(--ink);
  border-radius:9px;
  padding:10px 11px;
}
.retrospective-bands{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:9px;
}
.retro-choice{position:relative}
.retro-choice input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.retro-choice>span{
  display:grid;
  gap:2px;
  min-height:68px;
  padding:12px;
  border:1px solid var(--soma-linen-line);
  border-radius:11px;
  cursor:pointer;
}
.retro-choice.low>span{background:#E7EEE9}
.retro-choice.mid>span{background:#F1E8D4}
.retro-choice.high>span{background:#F1DEDA}
.retro-choice input:checked+span{
  border-color:var(--ink);
  box-shadow:inset 0 0 0 1px var(--ink);
}
.retro-choice b{font-size:14px}
.retro-choice small{color:var(--muted);font-size:10px}
.retrospective-provenance{
  margin:0;
  padding:10px 12px;
  border-left:3px solid var(--soma-sage-deep);
  border-radius:8px;
  background:var(--soma-sage-wash);
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
}
.retrospective-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.retrospective-actions>div{display:flex;gap:8px}
.danger-link{color:var(--danger);border-color:#D8B8B5}
@media(max-width:620px){
  .retrospective-dates,
  .retrospective-bands{grid-template-columns:1fr}
  .retrospective-actions{align-items:stretch;flex-direction:column}
  .retrospective-actions>div{display:grid;grid-template-columns:1fr 1fr}
  .retrospective-actions .secondary-link,
  .retrospective-actions .primary{width:100%;text-align:center}
}


/* Soma custom activity vocabulary (Revision 0.32) */
.custom-activity-suggestions{
  display:grid;
  gap:7px;
  margin-top:10px;
  padding:10px 12px;
  border:1px dashed var(--soma-sage-line);
  border-radius:10px;
  background:rgba(238,241,237,.55);
}
.custom-activity-suggestions>span{
  color:var(--muted);
  font-size:11px;
  font-weight:700;
}
.custom-activity-suggestions>span small{
  font-weight:500;
}
.custom-activity-chips{
  gap:7px;
}
.custom-activity-chip{
  border:1px solid var(--line-strong);
  border-radius:999px;
  padding:7px 10px;
  color:var(--ink);
  background:var(--panel);
  cursor:pointer;
  font-size:12px;
}
.custom-activity-chip:hover{
  border-color:var(--soma-sage-deep);
  background:var(--soma-sage-wash);
}
.custom-activity-chip small{
  color:var(--muted);
  font-size:9px;
}


/* Soma multi-subject + companion foundation (Revision 0.33) */
.subject-switcher{
  display:grid;
  gap:3px;
  min-width:138px;
}
.subject-switcher>span{
  color:var(--muted);
  font-size:9px;
  font-weight:800;
  letter-spacing:.12em;
}
.subject-switcher select{
  min-height:36px;
  border:1px solid var(--line-strong);
  border-radius:9px;
  padding:7px 30px 7px 10px;
  color:var(--ink);
  background:var(--panel);
  font:inherit;
  font-size:12px;
  font-weight:700;
}
.companion-hero{margin-bottom:18px}
.companion-capture-card{
  max-width:none;
  background:var(--soma-sage-surface);
  border-color:var(--soma-sage-line);
}
.companion-form{display:grid;gap:22px}
.companion-form>label,
.companion-grid>label{display:grid;gap:7px}
.companion-form label>span,
.companion-grid label>span{font-weight:700}
.companion-form input[type="text"],
.companion-form input[type="datetime-local"],
.companion-form textarea{
  width:100%;
  border:1px solid var(--soma-linen-line);
  border-radius:9px;
  padding:10px 11px;
  background:var(--soma-linen-light);
  color:var(--ink);
  outline:none;
}
.companion-form input:focus,
.companion-form textarea:focus{
  border-color:var(--soma-sage-deep);
  box-shadow:0 0 0 2px rgba(95,119,107,.14);
}
.companion-form textarea{resize:vertical;min-height:92px}
.companion-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
}
.companion-form fieldset{
  min-width:0;
}
.companion-form legend{
  margin-bottom:9px;
}
.companion-form .context-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.companion-form .context-grid label{
  min-width:0;
}
.companion-form .context-grid span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  height:100%;
  margin:0;
  padding:9px 10px;
  background:var(--soma-linen-light);
  border-color:var(--soma-linen-line);
  color:var(--ink);
  line-height:1.25;
}
.companion-form .context-grid label:has(input:checked) span{
  background:var(--soma-sage-deep);
  border-color:var(--soma-sage-deep);
  color:#fffdfa;
}
.companion-choice-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.companion-small-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.companion-signs{
  gap:8px;
}
.companion-signs label{
  background:var(--soma-linen-light);
  border-color:var(--soma-linen-line);
}
.companion-signs label:has(input:checked){
  border-color:var(--soma-sage-deep);
  background:var(--soma-sage-pale);
  color:var(--ink);
}
.companion-form .range-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
}
.companion-form .range-row output{
  min-width:132px;
  color:var(--soma-sage-deep);
  font-weight:800;
  text-align:right;
}
.companion-history-card{margin-top:18px}
.companion-timeline{display:grid;gap:10px;margin-top:14px}
.companion-timeline-row{
  display:grid;
  gap:6px;
  padding:12px 14px;
  border:1px solid var(--soma-sage-line);
  border-radius:12px;
  background:var(--panel);
}
.companion-timeline-row>div{display:grid;gap:3px}
.companion-timeline-row small{color:var(--muted)}
.companion-timeline-row p{margin:0;color:var(--ink)}
.companion-timeline-row .timeline-note{color:var(--muted)}
.timeline-kind{
  width:max-content;
  border-radius:999px;
  padding:3px 7px;
  color:var(--muted);
  background:var(--soma-sage-wash);
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
}
.companion-timeline-row.medication .timeline-kind{background:var(--soma-linen-light)}
body[data-subject-type="companion"] .overview-support-card{display:none}
body[data-subject-type="companion"] .crisis-button{display:none!important}
@media(max-width:720px){
  .subject-switcher{width:100%;min-width:0}
  .subject-switcher select{width:100%}
  .companion-grid{grid-template-columns:1fr}
  .companion-form .context-grid,
  .companion-choice-grid,
  .companion-small-grid{grid-template-columns:1fr 1fr!important}
  .companion-form .range-row{grid-template-columns:1fr}
  .companion-form .range-row output{text-align:left}
}
@media(max-width:460px){
  .companion-form .context-grid,
  .companion-choice-grid,
  .companion-small-grid{grid-template-columns:1fr!important}
}


/* Soma subject-aware save confirmation + language refinement (Revision 0.34) */
.companion-saved-notice{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 0 18px;
  padding:16px 18px;
  border:1px solid var(--soma-sage-line);
  border-left:4px solid var(--soma-sage-deep);
  border-radius:13px;
  background:var(--soma-sage-wash);
}
.companion-saved-notice h2{
  margin:2px 0 3px;
  font-size:22px;
}
.companion-saved-notice p{margin:0}
.companion-saved-notice .secondary-link{flex:0 0 auto}
@media(max-width:620px){
  .companion-saved-notice{
    align-items:flex-start;
    flex-direction:column;
  }
  .companion-saved-notice .secondary-link{width:100%;text-align:center}
}


/* Soma universal saved-check-in mark (Revision 0.35) */
.success-confirmation-main{
  display:flex;
  align-items:flex-start;
  gap:14px;
}
.soma-success-mark{
  flex:0 0 auto;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  margin-top:1px;
}
.soma-success-mark svg{
  width:48px;
  height:48px;
  overflow:visible;
}
.soma-success-mark .success-leaf{
  fill:var(--soma-sage-pale);
  stroke:var(--soma-sage-deep);
  stroke-width:1.8;
  stroke-linejoin:round;
}
.soma-success-mark .success-vein{
  fill:none;
  stroke:var(--soma-sage);
  stroke-width:1.5;
  stroke-linecap:round;
}
.soma-success-mark .success-check{
  fill:none;
  stroke:var(--soma-sage-deep);
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.checkin-complete .success-confirmation-main{
  margin-bottom:14px;
}
.companion-saved-notice .success-confirmation-main{
  align-items:center;
}
@media(max-width:460px){
  .soma-success-mark,
  .soma-success-mark svg{
    width:42px;
    height:42px;
  }
}


/* Soma accounts + Family workspace (Revision 0.36) */
.account-link{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:7px 11px;
  border:1px solid var(--soma-sage-line);
  border-radius:999px;
  background:var(--soma-sage-wash);
  color:var(--soma-sage-deep);
  font-size:11px;
  font-weight:800;
  text-decoration:none;
}
.account-link:hover{background:var(--soma-sage-pale)}

body[data-surface="soma-auth"],
body[data-surface="soma-account"]{
  background-color:var(--soma-linen);
  background-image:
    radial-gradient(circle at 8% 18%, rgba(143,166,154,.10) 0 1px, transparent 2px),
    radial-gradient(circle at 88% 12%, rgba(95,119,107,.08) 0 1px, transparent 2px);
  background-size:180px 180px,240px 240px;
}

.auth-shell{max-width:720px;padding-top:54px}
.auth-brand{margin-bottom:24px}
.auth-brand h1{margin:2px 0 0;font-size:52px}
.auth-card{
  background:var(--soma-sage-surface);
  border-color:var(--soma-sage-line);
}
.auth-card h2{margin-top:3px}
.auth-form{display:grid;gap:14px;margin-top:18px}
.auth-form label{display:grid;gap:7px}
.auth-form input{
  width:100%;
  border:1px solid var(--soma-linen-line);
  border-radius:9px;
  padding:11px 12px;
  background:var(--soma-linen-light);
  color:var(--ink);
  font:inherit;
}
.auth-form input:focus{
  border-color:var(--soma-sage-deep);
  outline:none;
  box-shadow:0 0 0 2px rgba(95,119,107,.14);
}
.auth-status{
  min-height:24px;
  margin:14px 0 0;
  color:var(--danger);
  font-weight:700;
}

.account-hero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}
.account-grid{
  display:grid;
  grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);
  gap:16px;
  margin:16px 0;
}
.account-subject-list{display:grid;gap:8px}
.account-subject{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 10px;
  border:1px solid var(--soma-sage-line);
  border-radius:10px;
  background:var(--soma-linen-light);
}
.account-subject>span{font-size:22px}
.account-subject>div{display:grid;gap:1px}
.account-subject small{color:var(--muted)}

.workspace-list{display:grid;gap:12px}
.workspace-row{
  display:grid;
  gap:10px;
  padding:14px;
  border:1px solid var(--soma-sage-line);
  border-radius:12px;
  background:var(--soma-linen-light);
}
.workspace-row-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.workspace-row-head>div:first-child{display:grid;gap:2px}
.workspace-row-head small{color:var(--muted);text-transform:capitalize}
.workspace-subject-pills{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.workspace-subject-pill{
  padding:4px 8px;
  border-radius:999px;
  background:var(--soma-sage-wash);
  color:var(--soma-sage-deep);
  font-size:11px;
  font-weight:700;
}
.workspace-members{display:grid;gap:5px}
.workspace-member{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding-top:7px;
  border-top:1px solid var(--line);
}
.workspace-member small{color:var(--muted);text-transform:capitalize}

.invite-card{margin-top:16px}
.invite-result{
  display:grid;
  gap:8px;
  margin-top:14px;
  padding:14px;
  border:1px solid var(--soma-sage-line);
  border-radius:12px;
  background:var(--soma-sage-wash);
}
.invite-result label{display:grid;gap:7px}
.invite-copy-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
}
.invite-copy-row input{
  width:100%;
  min-width:0;
  border:1px solid var(--soma-linen-line);
  border-radius:9px;
  padding:10px 11px;
  background:var(--soma-linen-light);
  color:var(--ink);
}

@media(max-width:720px){
  .account-hero{flex-direction:column}
  .account-grid{grid-template-columns:1fr}
  .workspace-row-head{flex-direction:column}
  .workspace-subject-pills{justify-content:flex-start}
}
@media(max-width:520px){
  .invite-copy-row{grid-template-columns:1fr}
}


/* Soma ambient Sage over Europa Ivory (Revision 0.37)
   Europa Ivory remains the world. Sage behaves as atmosphere/light rather than
   a separate field of opaque green boxes. Functional hierarchy and Carbon/Copper
   identity remain unchanged. */
body[data-surface^="soma-"]{
  background-color:var(--bg);
  background-image:
    radial-gradient(ellipse 58% 44% at 18% 26%, var(--soma-glow) 0%, rgba(143,166,154,.18) 34%, rgba(143,166,154,.08) 52%, transparent 74%),
    radial-gradient(ellipse 52% 40% at 82% 38%, var(--soma-glow-soft) 0%, rgba(207,219,212,.19) 38%, rgba(207,219,212,.08) 56%, transparent 76%),
    radial-gradient(ellipse 60% 42% at 46% 88%, rgba(143,166,154,.20) 0%, rgba(143,166,154,.10) 42%, transparent 74%),
    radial-gradient(circle at 8% 18%, rgba(143,166,154,.075) 0 1px, transparent 2px),
    radial-gradient(circle at 88% 12%, rgba(95,119,107,.055) 0 1px, transparent 2px),
    radial-gradient(circle at 84% 76%, transparent 0 92px, rgba(143,166,154,.055) 93px 94px, transparent 95px 150px),
    radial-gradient(circle at 12% 72%, transparent 0 128px, rgba(166,95,74,.035) 129px 130px, transparent 131px 190px);
  background-size:auto,auto,auto,180px 180px,240px 240px,460px 460px,560px 560px;
  background-attachment:fixed;
}

/* Shared Soma surfaces: translucent Sage over Ivory, never glassy or shiny. */
body[data-surface^="soma-"] .card,
body[data-surface^="soma-"] .overview-hero,
body[data-surface^="soma-"] .dashboard-hero,
body[data-surface^="soma-"] .checkin-complete,
body[data-surface^="soma-"] .companion-saved-notice,
body[data-surface^="soma-"] .crisis-saved-notice{
  background:var(--soma-surface-soft);
  border-color:var(--soma-line);
  box-shadow:none;
}

/* Hero / capture surfaces retain a little more Sage depth. */
body[data-surface="soma-home"] .overview-hero,
body[data-surface="soma-checkin"] .checkin-card,
body[data-surface="soma-companion"] .overview-hero,
body[data-surface="soma-companion"] .companion-capture-card,
body[data-surface="soma-crisis"] .crisis-card,
body[data-surface="soma-crisis"] .crisis-guide-card,
body[data-surface="soma-crisis"] .crisis-med-card,
body[data-surface="soma-account"] .account-hero,
body[data-surface="soma-auth"] .auth-card{
  background:var(--soma-surface);
  border-color:var(--soma-line);
}

/* Dashboard hierarchy: broad panels merge into the atmosphere; metrics become
   near-Ivory so they no longer read as four disconnected green tiles. */
body[data-surface="soma-dashboard"] .dashboard-hero,
body[data-surface="soma-dashboard"] .dashboard-grid>.card,
body[data-surface="soma-dashboard"] .history,
body[data-surface="soma-dashboard"] .state-visual-card,
body[data-surface="soma-dashboard"] .dashboard-state-card{
  background:var(--soma-surface);
  border-color:var(--soma-line);
}
body[data-surface="soma-dashboard"] .metric-card,
body[data-surface="soma-home"] .overview-metrics .metric-card{
  background:var(--soma-surface-ivory);
  border-color:var(--soma-line);
}
body[data-surface="soma-dashboard"] .chart-card,
body[data-surface="soma-dashboard"] .pattern-card,
body[data-surface="soma-dashboard"] .support-card,
body[data-surface="soma-home"] .month-card,
body[data-surface="soma-home"] .medication-history-card,
body[data-surface="soma-home"] .overview-support-card{
  background:var(--soma-surface-soft)!important;
  border-color:var(--soma-line)!important;
}
body[data-surface="soma-home"] .medication-card{
  background:var(--soma-surface);
  border-color:var(--soma-line);
}

/* Smaller nested elements remain light and readable against the ambient wash. */
body[data-surface^="soma-"] .range-card,
body[data-surface^="soma-"] .pattern-output article,
body[data-surface^="soma-"] .launch-strip,
body[data-surface^="soma-"] .med-photo-preview,
body[data-surface^="soma-"] .migration-summary,
body[data-surface^="soma-"] .companion-timeline-row,
body[data-surface^="soma-"] .custom-activity-suggestions,
body[data-surface^="soma-"] .retrospective-provenance{
  background:rgba(238,241,237,.68);
  border-color:var(--soma-line);
}

/* Inputs and deliberate controls stay Europa Ivory for contrast and usability. */
body[data-surface^="soma-"] input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),
body[data-surface^="soma-"] textarea,
body[data-surface^="soma-"] select,
body[data-surface^="soma-"] .chips label,
body[data-surface^="soma-"] .context-grid span,
body[data-surface^="soma-"] .secondary-link,
body[data-surface^="soma-"] .actions button{
  background:rgba(248,245,239,.88);
}

/* Selected controls must remain visibly selected after the Ivory control pass. */
body[data-surface^="soma-"] .chips label:has(input:checked){
  border-color:var(--soma-sage-deep);
  background:var(--soma-sage-pale);
  color:var(--ink);
}
body[data-surface^="soma-"] .context-grid label:has(input:checked) span{
  background:var(--soma-sage-deep);
  border-color:var(--soma-sage-deep);
  color:#fffdfa;
}

/* Keep the passive-data Carbon card intentionally solid. */
body[data-surface="soma-dashboard"] .apple-card{
  background:var(--ink)!important;
  border-color:var(--ink)!important;
}

/* Preserve Copper as the family signature rather than part of the Sage wash. */
body[data-surface="soma-dashboard"] .dashboard-hero,
body[data-surface="soma-checkin"] .checkin-card,
body[data-surface="soma-home"] .overview-hero{
  border-top-color:var(--signal);
}

/* Mobile gets the same atmosphere without expensive fixed repainting. */
@media(max-width:680px){
  body[data-surface^="soma-"]{background-attachment:scroll}
}


/* Soma ambient-field emphasis (Revision 0.38)
   The capability colour lives primarily in the continuous page atmosphere;
   content surfaces stay close to Europa Ivory. */
body[data-surface^="soma-"] .card,
body[data-surface^="soma-"] .overview-hero,
body[data-surface^="soma-"] .dashboard-hero,
body[data-surface^="soma-"] .checkin-complete,
body[data-surface^="soma-"] .companion-saved-notice,
body[data-surface^="soma-"] .crisis-saved-notice{
  background:var(--soma-surface-soft);
}
body[data-surface="soma-home"] .overview-hero,
body[data-surface="soma-checkin"] .checkin-card,
body[data-surface="soma-companion"] .overview-hero,
body[data-surface="soma-companion"] .companion-capture-card,
body[data-surface="soma-crisis"] .crisis-card,
body[data-surface="soma-crisis"] .crisis-guide-card,
body[data-surface="soma-crisis"] .crisis-med-card,
body[data-surface="soma-account"] .account-hero,
body[data-surface="soma-auth"] .auth-card,
body[data-surface="soma-dashboard"] .dashboard-hero,
body[data-surface="soma-dashboard"] .dashboard-grid>.card,
body[data-surface="soma-dashboard"] .history,
body[data-surface="soma-dashboard"] .state-visual-card,
body[data-surface="soma-dashboard"] .dashboard-state-card,
body[data-surface="soma-home"] .medication-card{
  background:var(--soma-surface);
}
body[data-surface^="soma-"] .range-card,
body[data-surface^="soma-"] .pattern-output article,
body[data-surface^="soma-"] .launch-strip,
body[data-surface^="soma-"] .med-photo-preview,
body[data-surface^="soma-"] .migration-summary,
body[data-surface^="soma-"] .companion-timeline-row,
body[data-surface^="soma-"] .custom-activity-suggestions,
body[data-surface^="soma-"] .retrospective-provenance{
  background:rgba(248,245,239,.72);
}


/* Soma image-based botanical ambience (Revision 0.49)
   Render the generated Monstera artwork directly in the page background.
   This avoids pseudo-element stacking issues and keeps the artwork reliably visible. */
body[data-surface^="soma-"]{
  background-image:
    none,
    none,
    radial-gradient(ellipse 58% 44% at 18% 26%, var(--soma-glow) 0%, rgba(143,166,154,.18) 34%, rgba(143,166,154,.08) 52%, transparent 74%),
    radial-gradient(ellipse 52% 40% at 82% 38%, var(--soma-glow-soft) 0%, rgba(207,219,212,.19) 38%, rgba(207,219,212,.08) 56%, transparent 76%),
    radial-gradient(ellipse 60% 42% at 46% 88%, rgba(143,166,154,.20) 0%, rgba(143,166,154,.10) 42%, transparent 74%),
    radial-gradient(circle at 8% 18%, rgba(143,166,154,.075) 0 1px, transparent 2px),
    radial-gradient(circle at 88% 12%, rgba(95,119,107,.055) 0 1px, transparent 2px);
  background-size:
    560px auto,
    410px auto,
    auto,
    auto,
    auto,
    180px 180px,
    240px 240px;
  background-position:
    -185px 210px,
    calc(100% + 120px) 35px,
    center,
    center,
    center,
    0 0,
    0 0;
  background-repeat:
    no-repeat,
    no-repeat,
    no-repeat,
    no-repeat,
    no-repeat,
    repeat,
    repeat;
}
@media(max-width:680px){
  body[data-surface^="soma-"]{
    background-size:
      360px auto,
      280px auto,
      auto,
      auto,
      auto,
      180px 180px,
      240px 240px;
    background-position:
      -190px 190px,
      calc(100% + 135px) 20px,
      center,
      center,
      center,
      0 0,
      0 0;
  }
}


/* Soma companion care profile (Revision 0.45) */
.companion-care-profile-card{
  margin-bottom:16px;
}
.care-profile-summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 18px;
}
.care-profile-summary-grid>div,
.care-plan-dashboard>div{
  padding:12px 14px;
  border:1px solid var(--soma-line);
  border-radius:14px;
  background:rgba(248,245,239,.72);
}
.care-profile-summary-grid small,
.care-plan-dashboard small{
  display:block;
  margin-bottom:5px;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.09em;
  color:var(--muted);
}
.care-profile-summary-grid p,
.care-plan-dashboard p{
  margin:0;
}
.care-profile-summary-grid ul,
.care-plan-dashboard ul{
  margin:5px 0 0;
  padding-left:18px;
}
.care-profile-form{
  display:grid;
  gap:16px;
  margin-top:12px;
}
.care-profile-form fieldset{
  margin:0;
}
.care-profile-other{
  display:block;
  margin-top:12px;
}
.care-plan-dashboard{
  display:grid;
  gap:10px;
}
.care-plan-dashboard .care-plan-edit{
  justify-self:start;
  margin-top:2px;
}
.provenance{
  margin-top:3px;
}
@media(max-width:680px){
  .care-profile-summary-grid{
    grid-template-columns:1fr;
  }
}


/* Soma longitudinal calendar history (Revision 0.46) */
.calendar-section-head{
  align-items:flex-start;
}
.calendar-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin:16px 0 8px;
  padding:10px 12px;
  border:1px solid var(--soma-sage-line);
  border-radius:12px;
  background:rgba(248,245,239,.62);
}
.calendar-navigation{
  display:flex;
  align-items:center;
  gap:8px;
}
.calendar-navigation .secondary-link{
  min-height:36px;
}
.calendar-nav-button{
  min-width:40px;
  padding-inline:10px;
  font-size:17px;
}
.calendar-navigation button:disabled{
  opacity:.35;
  cursor:not-allowed;
}
.calendar-range-select{
  display:flex;
  align-items:center;
  gap:9px;
}
.calendar-range-select>span{
  color:var(--muted);
  font-size:9px;
  font-weight:850;
  letter-spacing:.12em;
}
.calendar-range-select select{
  border:1px solid var(--soma-linen-line);
  border-radius:9px;
  background:var(--soma-linen-light);
  color:var(--ink);
  padding:9px 30px 9px 11px;
  font:inherit;
  font-size:12px;
}
.calendar-period-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
  margin-top:12px;
}
.calendar-period-grid[data-view="3"],
.calendar-period-grid[data-view="6"],
.calendar-period-grid[data-view="12"],
.calendar-period-grid[data-view="all"]{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.calendar-month-block{
  min-width:0;
  padding:12px;
  border:1px solid var(--soma-sage-line);
  border-radius:13px;
  background:rgba(248,245,239,.46);
}
.calendar-month-block.single-month{
  padding:0;
  border:0;
  background:transparent;
}
.calendar-month-block h3{
  margin:0 0 3px;
  font-size:18px;
}
.calendar-month-block.single-month h3{
  display:none;
}
.calendar-month-block .month-weekdays{
  margin:10px 0 6px;
}
.calendar-period-grid .month-weekdays,
.calendar-period-grid .month-calendar{
  min-width:0;
}
.calendar-period-grid:not([data-view="1"]) .month-weekdays,
.calendar-period-grid:not([data-view="1"]) .month-calendar{
  gap:4px;
}
.calendar-period-grid:not([data-view="1"]) .month-weekdays span{
  font-size:8px;
}
.calendar-period-grid:not([data-view="1"]) .calendar-day{
  min-height:58px;
  padding:5px;
  gap:4px;
  border-radius:7px;
}
.calendar-period-grid:not([data-view="1"]) .calendar-day>b{
  font-size:10px;
}
.calendar-period-grid:not([data-view="1"]) .calendar-dot{
  width:6px;
  height:6px;
}
.calendar-period-grid:not([data-view="1"]) .day-dots{
  gap:3px;
  min-height:7px;
}
.calendar-period-grid:not([data-view="1"]) .day-retro-label{
  padding:1px 3px;
  font-size:5px;
}
.calendar-period-grid:not([data-view="1"]) .med-marker{
  padding:2px 4px;
  font-size:6px;
}
@media(max-width:1080px){
  .calendar-period-grid[data-view="3"],
  .calendar-period-grid[data-view="6"],
  .calendar-period-grid[data-view="12"],
  .calendar-period-grid[data-view="all"]{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:720px){
  .calendar-toolbar{
    align-items:stretch;
    flex-direction:column;
  }
  .calendar-navigation{
    justify-content:space-between;
  }
  .calendar-range-select{
    justify-content:space-between;
  }
  .calendar-period-grid[data-view="3"],
  .calendar-period-grid[data-view="6"],
  .calendar-period-grid[data-view="12"],
  .calendar-period-grid[data-view="all"]{
    grid-template-columns:1fr;
  }
  .month-card{
    overflow:visible;
  }
  .calendar-period-grid .month-weekdays,
  .calendar-period-grid .month-calendar{
    min-width:0;
  }
}


/* Soma retrospective save confirmation (Revision 0.47) */
.calendar-saved-notice{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:12px 0 10px;
  padding:13px 15px;
  border:1px solid var(--soma-sage-line);
  border-left:4px solid var(--soma-sage-deep);
  border-radius:12px;
  background:var(--soma-sage-wash);
}
.calendar-saved-notice strong{
  display:block;
  margin-bottom:2px;
  color:var(--ink);
}
.calendar-saved-notice p{
  margin:0;
  color:var(--muted);
  font-size:12px;
}
.calendar-saved-notice .secondary-link{
  flex:0 0 auto;
}
@media(max-width:620px){
  .calendar-saved-notice{
    align-items:flex-start;
    flex-direction:column;
  }
  .calendar-saved-notice .secondary-link{
    width:100%;
    text-align:center;
  }
}


/* Soma daily calendar aggregation + persistent confirmation (Revision 0.48) */
.calendar-average-swatch{
  width:13px;
  height:13px;
  border-radius:3px;
  border:1px solid var(--soma-sage-line);
  background:linear-gradient(90deg,#DFE9E3 0 25%,#EDE2C8 25% 50%,#E9D1CC 50% 75%,#E8C0BC 75%);
}
.calendar-day.checkin-average-low{background:#DFE9E3}
.calendar-day.checkin-average-mid{background:#EDE2C8}
.calendar-day.checkin-average-high{background:#E9D1CC}
.calendar-day.checkin-average-critical{background:#E8C0BC}
.day-average-label{
  display:inline-block;
  align-self:flex-start;
  padding:2px 5px;
  border-radius:999px;
  background:rgba(255,255,255,.66);
  color:var(--ink);
  font-size:7px;
  font-weight:850;
  letter-spacing:.05em;
}
.calendar-period-grid:not([data-view="1"]) .day-average-label{
  padding:1px 3px;
  font-size:5px;
}
.calendar-saved-notice{
  position:fixed;
  z-index:4000;
  top:18px;
  left:50%;
  width:min(620px,calc(100vw - 28px));
  margin:0;
  transform:translateX(-50%);
  box-shadow:0 14px 36px rgba(18,24,32,.18);
  background:var(--soma-surface-ivory);
  backdrop-filter:blur(14px);
}
@media(max-width:620px){
  .calendar-saved-notice{
    top:12px;
    width:calc(100vw - 20px);
  }
}


/* Soma medication schedules + in-app reminders (Revision 0.50) */
.medication-plan-card{
  margin-bottom:16px;
  background:var(--soma-surface-ivory);
  border-color:var(--soma-line);
}
.medication-plan-head{
  align-items:flex-start;
}
.medication-plan-confirmation{
  margin:14px 0;
  padding:12px 14px;
  border:1px solid var(--soma-sage-line);
  border-left:4px solid var(--soma-sage-deep);
  border-radius:11px;
  background:var(--soma-sage-wash);
  font-weight:750;
}
.medication-plan-alerts{
  display:grid;
  gap:8px;
  margin-top:14px;
}
.medication-plan-alert{
  display:grid;
  gap:2px;
  padding:11px 13px;
  border:1px solid var(--soma-line);
  border-radius:11px;
  background:rgba(248,245,239,.76);
}
.medication-plan-alert strong{font-size:13px}
.medication-plan-alert span{color:var(--muted);font-size:11px;line-height:1.45}
.medication-plan-alert.due{
  border-left:4px solid var(--soma-status-mid);
  background:#F4EBD9;
}
.medication-plan-alert.missed{
  border-left:4px solid var(--soma-status-high);
  background:#F3E4DF;
}
.medication-plan-alert.upcoming{
  border-left:4px solid var(--soma-sage-deep);
}
.medication-plan-alert.offline{
  border-left:4px solid var(--warning);
}
.medication-schedule-list{
  display:grid;
  gap:9px;
  margin-top:12px;
}
.medication-schedule-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  padding:13px 14px;
  border:1px solid var(--soma-line);
  border-radius:12px;
  background:rgba(248,245,239,.72);
}
.medication-schedule-row.due{border-left:4px solid var(--soma-status-mid)}
.medication-schedule-row.given{border-left:4px solid var(--soma-sage-deep)}
.medication-schedule-row.stopped{opacity:.68}
.medication-schedule-main{min-width:0}
.medication-schedule-title{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
}
.medication-schedule-title>strong{font-size:15px}
.medication-schedule-status{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 8px;
  border-radius:999px;
  background:var(--soma-sage-wash);
  color:var(--soma-sage-deep);
  font-size:9px;
  font-weight:850;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.medication-schedule-status.due{
  background:#F1E5C9;
  color:#705622;
}
.medication-schedule-status.given{
  background:#E2ECE6;
  color:#496657;
}
.medication-schedule-status.stopped{
  background:var(--panel-alt);
  color:var(--muted);
}
.medication-schedule-main p{
  margin:5px 0 0;
  color:var(--muted);
  font-size:11px;
}
.medication-schedule-main small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  line-height:1.4;
}
.medication-missed-note{color:#7A4A43!important;font-weight:700}
.medication-schedule-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  flex-wrap:wrap;
}
.medication-schedule-actions .primary{
  min-height:38px;
  padding:9px 13px;
}
.medication-schedule-form{
  display:grid;
  gap:15px;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid var(--soma-sage-line);
}
.medication-schedule-form h3{
  margin:0;
  font-size:19px;
}
.medication-schedule-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.medication-schedule-grid input,
.medication-schedule-grid select{
  width:100%;
  border:1px solid var(--soma-linen-line);
  border-radius:9px;
  background:var(--soma-linen-light);
  color:var(--ink);
  padding:10px 11px;
  font-size:14px;
}
.medication-schedule-grid label>small{
  display:block;
  margin-top:4px;
  font-size:10px;
}
@media(max-width:720px){
  .medication-plan-head{
    align-items:stretch;
    flex-direction:column;
  }
  .medication-plan-head .secondary-link{
    width:100%;
    text-align:center;
  }
  .medication-schedule-row{
    grid-template-columns:1fr;
  }
  .medication-schedule-actions{
    justify-content:flex-start;
  }
  .medication-schedule-grid{
    grid-template-columns:1fr;
  }
}


/* Soma companion Overview layout (Revision 0.52) */
body[data-subject-type="companion"] .overview-grid{
  grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  align-items:start;
}
body[data-subject-type="companion"] .overview-grid>.card{
  height:auto;
}
@media(max-width:760px){
  body[data-subject-type="companion"] .overview-grid{
    grid-template-columns:1fr;
  }
}


/* Soma scheduled-medication actual time (Revision 0.53) */
.medication-given-dialog{
  width:min(560px,calc(100vw - 28px));
}
.medication-given-dialog label>span{
  font-size:12px;
}
.medication-given-dialog label>small{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:10px;
}
.medication-given-actions>span{
  min-width:1px;
}


/* Soma Plants baseline (Revision 0.54) */
.plants-hero,
.plant-detail-hero{
  align-items:center;
}
.plants-metrics{
  margin-bottom:16px;
}
.plant-attention-card{
  margin-bottom:18px;
  background:var(--soma-surface-ivory);
  border-color:var(--soma-line);
}
.plant-attention-list{
  display:grid;
  gap:8px;
  margin-top:12px;
}
.plant-attention-row{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:11px 12px;
  border:1px solid var(--soma-sage-line);
  border-radius:10px;
  background:rgba(248,245,239,.72);
  text-decoration:none;
}
.plant-attention-row>span{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:var(--soma-sage-wash);
  color:var(--soma-sage-deep);
  font-weight:850;
}
.plant-attention-row.attention>span{
  background:#F1E5C9;
  color:#705622;
}
.plant-attention-row strong,
.plant-attention-row small{
  display:block;
}
.plant-attention-row small{
  margin-top:2px;
  color:var(--muted);
  font-size:11px;
}
.plant-attention-row>b{
  color:var(--soma-sage-deep);
  font-size:20px;
  font-weight:400;
}
.plant-collection-section{
  margin-top:18px;
}
.plant-location-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:13px;
}
.plant-location-card{
  min-width:0;
  padding:18px;
  border:1px solid var(--soma-sage-line);
  border-radius:14px;
  background:var(--soma-surface-ivory);
}
.plant-location-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.plant-location-head h3{
  margin:0;
  font-size:21px;
}
.plant-location-head>span{
  padding:5px 8px;
  border-radius:999px;
  background:var(--soma-sage-wash);
  color:var(--soma-sage-deep);
  font-size:9px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.plant-environment{
  margin:4px 0 10px;
  color:var(--muted);
  font-size:11px;
  text-transform:capitalize;
}
.plant-card-list{
  display:grid;
  gap:7px;
  margin-top:10px;
}
.plant-card{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:10px 11px;
  border:1px solid var(--soma-line);
  border-radius:10px;
  background:rgba(248,245,239,.72);
  text-decoration:none;
}
.plant-card:hover{
  border-color:var(--soma-sage-deep);
}
.plant-card-icon{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:var(--soma-sage-pale);
  font-size:20px;
}
.plant-card-main{
  display:grid;
  min-width:0;
}
.plant-card-main>strong{
  font-size:14px;
}
.plant-card-main>em{
  color:var(--muted);
  font-size:11px;
  font-style:italic;
}
.plant-card-status{
  margin-top:3px;
  font-size:10px;
  font-weight:700;
}
.plant-card-status.okay{color:var(--soma-sage-deep)}
.plant-card-status.due{color:#765D28}
.plant-card-status.overdue{color:#7A4A43}
.plant-card>b{
  color:var(--soma-sage-deep);
  font-size:18px;
  font-weight:400;
}
.plant-empty-card{
  grid-column:1/-1;
}
.plant-dialog select,
.plant-dialog input:not([type=checkbox]),
.plant-dialog textarea{
  width:100%;
  border:1px solid var(--soma-linen-line);
  border-radius:9px;
  background:#fffdfa;
  color:var(--ink);
  padding:10px 11px;
}
.plant-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.plant-identity-line{
  margin:5px 0 0;
  color:var(--soma-sage-deep);
  font-size:16px;
  font-style:italic;
}
.plant-care-card{
  margin-bottom:16px;
  background:var(--soma-surface-ivory);
  border-color:var(--soma-line);
}
.plant-detail-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  align-items:start;
  margin-bottom:16px;
}
.plant-observation-form{
  display:grid;
  gap:13px;
  margin-top:16px;
}
.plant-observation-form select,
.plant-observation-form input,
.plant-observation-form textarea{
  width:100%;
  border:1px solid var(--soma-linen-line);
  border-radius:9px;
  background:var(--soma-linen-light);
  color:var(--ink);
  padding:10px 11px;
}
.plant-observation-form .primary{
  justify-self:start;
}
.plant-weather-toggle{
  display:grid!important;
  grid-template-columns:auto 1fr;
  gap:10px;
  align-items:flex-start;
  padding:11px 12px;
  border:1px solid var(--soma-sage-line);
  border-radius:10px;
  background:var(--soma-sage-wash);
}
.plant-weather-toggle input{
  width:auto;
  margin-top:4px;
}
.plant-weather-toggle span{
  margin:0;
}
.plant-weather-toggle strong,
.plant-weather-toggle small{
  display:block;
}
.plant-weather-toggle small{
  margin-top:2px;
  color:var(--muted);
  line-height:1.4;
}
.plant-history-card{
  margin-top:16px;
}
.plant-history-list{
  display:grid;
  margin-top:8px;
}
.plant-history-row{
  display:grid;
  grid-template-columns:150px minmax(0,1fr) 28px;
  gap:12px;
  align-items:center;
  padding:12px 2px;
  border-top:1px solid var(--soma-sage-line);
}
.plant-history-row:first-child{
  border-top:0;
}
.plant-history-row time{
  color:var(--muted);
  font-size:11px;
  font-variant-numeric:tabular-nums;
}
.plant-history-row strong,
.plant-history-row small{
  display:block;
}
.plant-history-row small{
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}
.plant-history-row>span{
  color:var(--soma-sage-deep);
  font-size:17px;
}
body[data-surface="soma-plants"] .subject-switcher select,
body[data-surface="soma-plant"] .subject-switcher select{
  min-width:170px;
}
@media(max-width:820px){
  .plant-location-grid,
  .plant-detail-grid,
  .plant-form-grid{
    grid-template-columns:1fr;
  }
  .plant-history-row{
    grid-template-columns:110px minmax(0,1fr) 24px;
  }
}
@media(max-width:620px){
  .plants-hero,
  .plant-detail-hero{
    align-items:flex-start;
  }
  .plant-history-row{
    grid-template-columns:1fr 24px;
  }
  .plant-history-row time{
    grid-column:1/-1;
  }
}


/* Soma Plants local weather context (Revision 0.55) */
.plant-weather-card{
  margin-bottom:18px;
  background:var(--soma-surface-ivory);
  border-color:var(--soma-line);
}
.plant-weather-head{
  align-items:flex-start;
}

.plant-weather-head > .secondary-link{
  flex:0 0 auto;
  min-width:142px;
  white-space:nowrap;
  text-align:center;
}
.plant-weather-content{
  display:grid;
  gap:12px;
  margin-top:14px;
}
.plant-weather-empty{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 15px;
  border:1px dashed var(--soma-sage-line);
  border-radius:12px;
  background:rgba(248,245,239,.58);
}
.plant-weather-empty strong,
.plant-weather-empty p{
  display:block;
  margin:0;
}
.plant-weather-empty p{
  margin-top:3px;
  color:var(--muted);
  font-size:12px;
}
.plant-weather-empty.warning{
  border-style:solid;
  border-left:4px solid var(--warning);
}
.plant-weather-topline{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.plant-weather-topline>div{
  display:grid;
  gap:2px;
}
.plant-weather-topline strong{
  font-size:16px;
}
.plant-weather-topline span{
  color:var(--muted);
  font-size:11px;
}
.plant-weather-source{
  padding:5px 8px;
  border:1px solid var(--soma-sage-line);
  border-radius:999px;
  background:var(--soma-sage-wash);
  color:var(--soma-sage-deep)!important;
  font-size:9px!important;
  font-weight:850;
  letter-spacing:.07em;
  text-transform:uppercase;
  white-space:nowrap;
}
.plant-weather-metrics{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.plant-weather-metrics>div{
  min-width:0;
  padding:13px 14px;
  border:1px solid var(--soma-sage-line);
  border-radius:11px;
  background:rgba(248,245,239,.72);
}
.plant-weather-metrics small{
  display:block;
  color:var(--muted);
  font-size:9px;
  font-weight:850;
  letter-spacing:.1em;
}
.plant-weather-metrics strong{
  display:block;
  margin:4px 0 1px;
  color:var(--ink);
  font-size:24px;
}
.plant-weather-metrics span{
  display:block;
  color:var(--muted);
  font-size:10px;
}
.plant-weather-context{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:11px 13px;
  border:1px solid var(--soma-sage-line);
  border-left:4px solid var(--soma-sage-deep);
  border-radius:10px;
  background:var(--soma-sage-wash);
}
.plant-weather-context strong{
  flex:0 0 auto;
  color:var(--soma-sage-deep);
  font-size:12px;
}
.plant-weather-context span{
  color:var(--ink);
  font-size:12px;
  line-height:1.45;
}
.plant-weather-context.drying{
  border-left-color:#B6776B;
  background:#F3E7E2;
}
.plant-weather-context.drying strong{
  color:#7A4A43;
}
.plant-weather-context.rain{
  border-left-color:#69818F;
  background:#E9EEF0;
}
.plant-weather-context.rain strong{
  color:#4F6875;
}
.plant-weather-boundary{
  margin:0;
  color:var(--muted);
  font-size:10px;
  line-height:1.45;
}
.plant-location-weather{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  align-items:center;
  margin:8px 0 10px;
  color:var(--muted);
  font-size:10px;
}
.plant-location-weather>span{
  padding:3px 6px;
  border-radius:999px;
  background:var(--soma-sage-wash);
  color:var(--soma-sage-deep);
  font-size:8px;
  font-weight:850;
  letter-spacing:.07em;
}
.weather-dialog{
  width:min(660px,calc(100vw - 28px));
}
.weather-search-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
}
.weather-search-row .secondary-link{
  min-width:90px;
}
.weather-search-results{
  display:grid;
  gap:8px;
  margin:12px 0 6px;
}
.weather-search-result{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  padding:11px 12px;
  border:1px solid var(--soma-sage-line);
  border-radius:10px;
  background:rgba(248,245,239,.72);
  color:var(--ink);
  text-align:left;
}
.weather-search-result:hover{
  border-color:var(--soma-sage-deep);
  background:var(--soma-sage-wash);
}
.weather-search-result>span{
  display:grid;
  gap:2px;
}
.weather-search-result strong{
  font-size:13px;
}
.weather-search-result small{
  color:var(--muted);
  font-size:10px;
}
.weather-search-result>b{
  color:var(--soma-sage-deep);
  font-size:10px;
  white-space:nowrap;
}
.weather-dialog-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--soma-sage-line);
}
@media(max-width:760px){
  .plant-weather-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .plant-weather-context{
    flex-direction:column;
    gap:4px;
  }
}
@media(max-width:560px){
  .plant-weather-head,
  .plant-weather-empty,
  .plant-weather-topline,
  .weather-dialog-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .plant-weather-metrics{
    grid-template-columns:1fr 1fr;
  }
  .weather-search-row{
    grid-template-columns:1fr;
  }
  .weather-search-row .secondary-link{
    width:100%;
  }
}


.plant-weather-detail-card{
  margin-bottom:16px;
  background:var(--soma-surface-ivory);
  border-color:var(--soma-line);
}


/* Shared Myrmex primary-navigation placement: product identity first, primary modes left-aligned beneath it. */
.soma-product-header{
  margin-bottom:0;
  align-items:flex-start;
}
.soma-primary-nav{
  display:flex;
  gap:4px;
  overflow-x:auto;
  padding:12px 0;
  margin-bottom:24px;
  border-bottom:1px solid var(--line);
}
.soma-primary-nav a{
  flex:0 0 auto;
  padding:9px 12px;
  border-radius:8px;
  color:var(--muted);
  text-decoration:none;
  font-size:13px;
  font-weight:650;
}
.soma-primary-nav a:hover,
.soma-primary-nav a.active{
  background:var(--ink);
  color:var(--bg);
}
.header-utility{
  align-self:flex-start;
  margin-top:4px;
}
@media(max-width:760px){
  .soma-product-header{
    align-items:flex-start;
  }
  .soma-primary-nav{
    width:100%;
  }
  .soma-primary-nav a{
    flex:1 1 0;
    text-align:center;
  }
}
