/* ai.linuxusers.com — colours and shapes taken from menu.vanhus.fi (Food_Menu), dark set added */
:root{
  --bg:#f6f7f2;--card:#fff;--soft:#f3f5ef;--soft2:#edf5e7;--ink:#253d34;--muted:#748078;--line:#e4e8df;
  --green:#235a46;--green2:#4b7864;--olive:#a3bc65;--red:#c62828;--ph:#8a6100;--ph-bg:#fbf3dc;
  --shadow:0 3px 10px #1c3e2708;--shadow2:0 6px 28px #0002;
  --cur-bg:#dff1e3;--cur-bar:#176b35;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#141a17;--card:#1b2320;--soft:#202a26;--soft2:#22302a;--ink:#e3ebe5;--muted:#9aaaa1;--line:#2d3833;
  --green:#7cc4a3;--green2:#8fb8a2;--olive:#b7cf7c;--red:#ef7a7a;--ph:#e7bd5c;--ph-bg:#352c16;
  --shadow:0 3px 10px #0004;--shadow2:0 6px 28px #0006;--cur-bg:#24453a;--cur-bar:#7cc4a3;color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#141a17;--card:#1b2320;--soft:#202a26;--soft2:#22302a;--ink:#e3ebe5;--muted:#9aaaa1;--line:#2d3833;
  --green:#7cc4a3;--green2:#8fb8a2;--olive:#b7cf7c;--red:#ef7a7a;--ph:#e7bd5c;--ph-bg:#352c16;
  --shadow:0 3px 10px #0004;--shadow2:0 6px 28px #0006;--cur-bg:#24453a;--cur-bar:#7cc4a3;color-scheme:dark}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--green)}
h1,h2,h3{font-family:Georgia,serif;color:var(--green);line-height:1.25}

/* top bar */
.top{position:sticky;top:0;z-index:5;background:var(--card);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
.top-in{max-width:1400px;margin:0 auto;padding:10px 16px;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.brand{font-family:Georgia,serif;font-size:1.25rem;font-weight:700;color:var(--green);text-decoration:none;white-space:nowrap}
.brand small{font-family:system-ui,sans-serif;font-weight:400;font-size:.75rem;color:var(--muted);margin-left:6px}
.icon-btn{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:4px 10px}

/* toolbar (food-menu style search + filters) */
/* layout: left menu + content (runbook style) */
.layout{max-width:1400px;margin:0 auto;padding:16px 16px 60px;display:grid;grid-template-columns:280px minmax(0,1fr);gap:22px;align-items:start}
main{min-width:0}
.top-sp{flex:1}
.side-btn{display:none}
#side{position:sticky;top:66px;max-height:calc(100vh - 80px);overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 30px #173b2518;padding:10px 8px 12px;font-size:.9rem;scrollbar-width:thin}
#side .side-head{display:none}
#side .side-filter{width:100%;border:1px solid var(--line);border-radius:8px;padding:6px 9px;background:var(--soft);margin:0 0 8px}
#side ul{list-style:none;margin:0;padding:0}
#side .chrow{display:flex;align-items:flex-start;gap:2px;margin-top:2px}
#side .tog{flex:0 0 22px;height:28px;border:0;background:transparent;color:var(--muted);font-size:.85rem;border-radius:6px;padding:0;transition:transform .15s}
#side .tog:hover{background:var(--soft2)}
#side a{display:flex;gap:4px;align-items:baseline;text-decoration:none;color:var(--green);border-radius:6px;padding:4px 6px;line-height:1.3}
#side a:hover{background:var(--soft2)}
#side .ch>.chrow>a{font-weight:700;flex:1;font-family:Georgia,serif;font-size:1rem}
#side .secs{margin:0 0 6px 22px;display:none}
#side .ch.open>.secs{display:block}
#side .ch.open>.chrow>.tog{transform:rotate(90deg)}
#side .secs a{color:var(--ink);font-size:.88rem}
#side .cap{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;margin:8px 0 2px 6px}
#side .sn{font-weight:700;color:var(--green2);white-space:nowrap}
#side .cnt{margin-left:auto;font-size:.72rem;color:var(--muted);font-weight:400;font-family:system-ui,sans-serif}
#side a.cur{background:var(--cur-bg);box-shadow:inset 4px 0 0 var(--cur-bar);font-weight:700}
#side .subs{margin:2px 0 4px 14px;border-left:1px solid var(--line)}
#side .subs button{display:block;width:100%;text-align:left;border:0;background:none;color:var(--muted);font-size:.8rem;padding:2px 8px;border-radius:6px}
#side .subs button:hover{background:var(--soft2);color:var(--green)}
h2[data-h]{scroll-margin-top:70px}
.group-h{scroll-margin-top:70px}
#side-close{border:1px solid var(--line);background:var(--card);border-radius:999px;width:32px;height:32px;font-size:1.1rem}
@media (max-width:900px){
  .layout{grid-template-columns:minmax(0,1fr);padding:12px 12px 50px}
  .top-in{padding:8px 12px}
  .brand small{display:none}
  .side-btn{display:inline-block}
  #side{display:none}
  body.side-open #side{display:block;position:fixed;z-index:60;top:0;left:0;bottom:0;max-height:none;width:min(92vw,380px);border-radius:0;box-shadow:0 0 40px #0006}
  body.side-open #side .side-head{display:flex;justify-content:space-between;align-items:center;margin:0 4px 8px;color:var(--muted)}
}
.head h1{margin:.1em 0 .1em;font-size:1.6rem}
.head p{margin:0 0 14px;color:var(--muted)}
.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;box-shadow:var(--shadow);margin-bottom:14px}
.search{position:relative;flex:1 1 240px;display:flex}
.search input{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 34px 7px 10px;background:var(--soft)}
.search input:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--olive);outline-offset:1px}
.search button{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--muted);font-size:1.1rem;padding:2px 8px}
.bar select{border:1px solid var(--line);border-radius:8px;padding:7px 8px;background:var(--soft);max-width:100%}
.tabs{display:flex;gap:2px;background:var(--soft);border-radius:20px;padding:2px}
.tabs button{border:0;background:none;border-radius:20px;padding:4px 12px;font-size:.88rem}
.tabs button[aria-pressed="true"]{background:var(--card);color:var(--green);font-weight:600;box-shadow:0 1px 3px #0001}
.toggle{display:flex;align-items:center;gap:6px;font-size:.9rem;color:var(--muted)}
.count{font-size:.85rem;color:var(--muted);margin-left:auto}

/* cards */
.group-h{font-family:Georgia,serif;color:var(--green2);font-size:1.05rem;margin:18px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--line)}
.grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px;min-width:0}
.card h3{margin:0;font-size:1.02rem;display:flex;gap:6px;align-items:flex-start}
.card h3 a{text-decoration:none;flex:1;overflow-wrap:anywhere}
.card h3 a:hover{text-decoration:underline}
.card p{margin:0;color:var(--ink);font-size:.92rem;overflow-wrap:anywhere}
.meta{font-size:.8rem;color:var(--muted)}
.star{border:0;background:none;color:var(--muted);font-size:1.05rem;padding:0 2px;line-height:1}
.star[aria-pressed="true"]{color:var(--olive)}
.tags{display:flex;flex-wrap:wrap;gap:4px}
.tag{font-size:.74rem;padding:1px 8px;border-radius:20px;background:var(--soft2);color:var(--green);border:0}
button.tag:hover{background:var(--olive);color:#fff}
.tag.ph{background:var(--ph-bg);color:var(--ph)}
.refs{display:flex;flex-wrap:wrap;gap:4px;font-size:.8rem}
.refs a{background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:0 6px;text-decoration:none}
.ext{font-size:.85rem;overflow-wrap:anywhere}

/* harness picker */
.pick{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.pick a{display:block;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;text-decoration:none;box-shadow:var(--shadow);color:var(--ink)}
.pick a:hover{border-color:var(--olive);box-shadow:var(--shadow2)}
.pick b{display:block;font-family:Georgia,serif;color:var(--green);font-size:1.05rem}
.pick span{font-size:.8rem;color:var(--muted)}

/* detail page */
.detail{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow)}
.detail h1{margin:0 0 4px}
.detail h2{font-size:1.1rem;margin:18px 0 6px;border-bottom:1px solid var(--line);padding-bottom:3px}
.detail dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0}
.detail dt{color:var(--muted)}
.detail dd{margin:0;overflow-wrap:anywhere}
.back{display:inline-block;margin-bottom:10px;font-size:.9rem}
.empty,.notice{background:var(--soft);border:1px dashed var(--line);border-radius:12px;padding:18px;color:var(--muted);text-align:center}
.notice{border-style:solid;border-left:4px solid var(--olive);text-align:left;color:var(--ink);margin-bottom:14px}
pre{background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:8px 10px;overflow-x:auto;font-size:.82rem;line-height:1.45;margin:6px 0}
pre code{background:none;padding:0;white-space:pre}
.card pre.snip{font-size:.78rem;margin:2px 0}
code{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}
.tablewrap{overflow-x:auto}
table.compare{width:100%;border-collapse:collapse;font-size:.86rem;background:var(--card);border:1px solid var(--line);border-radius:12px}
table.compare th,table.compare td{text-align:left;padding:6px 9px;border-bottom:1px solid var(--line);vertical-align:top}
table.compare th{color:var(--muted);font-weight:600;background:var(--soft)}
.detail ul{margin:4px 0 8px;padding-left:20px}
footer{max-width:1400px;margin:0 auto;padding:0 16px 30px;color:var(--muted);font-size:.8rem}

@media (max-width:600px){
  .count{margin-left:0;width:100%}
  .detail dl{grid-template-columns:1fr}
  .detail dt{margin-top:6px}
}
