*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:var(--text-md)/1.5 var(--font)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--brand);outline-offset:3px}.layout{max-width:1160px;margin:auto;min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{padding:var(--space-6);border-right:1px solid var(--line);background:var(--surface)}.brand{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xl);font-weight:800;margin-bottom:var(--space-8)}.mark{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--brand);color:var(--surface)}nav{display:grid;gap:var(--space-2)}nav a{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);color:var(--muted)}nav a[aria-current=page]{background:var(--brand-soft);color:var(--brand);font-weight:700}.main{padding:var(--space-8);min-width:0}.top{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6)}.eyebrow{color:var(--muted);font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase}h1{font-size:var(--text-2xl);line-height:1.15;margin:var(--space-2) 0}h2{font-size:var(--text-lg);margin:0 0 var(--space-3)}p{color:var(--muted);margin:var(--space-2) 0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-6);box-shadow:var(--shadow)}.wide{grid-column:1/-1}.metric{font-size:var(--text-2xl);font-weight:800;margin:var(--space-2) 0}.pill{display:inline-flex;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.primary{background:var(--brand);color:var(--surface);border:0;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5)}.muted{color:var(--muted)}.stack{display:grid;gap:var(--space-4)}.row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.bar{height:10px;background:var(--line);border-radius:999px;overflow:hidden}.bar span{display:block;height:100%;background:var(--brand);width:0}.offline{background:var(--brand-soft);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);margin-bottom:var(--space-4)}.ad{border:1px solid var(--line);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--brand-soft)}.navlinks{display:flex;gap:var(--space-4);flex-wrap:wrap;font-size:var(--text-sm)}.navlinks a{text-decoration:underline}.empty{border:1px dashed var(--line);padding:var(--space-6);border-radius:var(--radius-sm)}.bottom{display:none}@media(max-width:700px){.layout{display:block}.sidebar{padding:var(--space-4);border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{display:none}.brand{margin:0}.main{padding:var(--space-5) var(--space-4) 90px}.grid{grid-template-columns:1fr}.wide{grid-column:auto}.bottom{display:flex;position:fixed;bottom:0;left:0;right:0;justify-content:space-around;background:var(--surface);border-top:1px solid var(--line);padding:var(--space-3);z-index:5}.bottom a{font-size:var(--text-sm);color:var(--muted)}.bottom a[aria-current=page]{color:var(--brand);font-weight:700}h1{font-size:var(--text-xl)}}

/* P17 accessibility and safe-area fixes */
.bottom{padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px))}.bottom a{min-height:44px;min-width:44px;display:grid;place-items:center}.history-scroll{overflow-x:auto;max-width:100%}.history-table{width:100%;border-collapse:collapse;min-width:460px}.history-table th,.history-table td{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--line)}.history-table caption{text-align:left;font-weight:700;margin-bottom:var(--space-3)}input,textarea,select{font:inherit;max-width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-3);background:var(--surface);color:var(--ink)}label{display:grid;gap:var(--space-2);margin-bottom:var(--space-4)}button:disabled{opacity:.55;cursor:not-allowed}.danger{background:#a62626;color:white;border:0;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5)}.warning{border-left:4px solid var(--warn);padding:var(--space-4);background:var(--surface);border-radius:var(--radius-sm)}

.mark.logo{background:none;object-fit:cover}
.brand-hero{display:flex;align-items:center;gap:var(--space-4);background:var(--brand);color:#fff;border-radius:var(--radius);padding:var(--space-5);margin-bottom:var(--space-5)}
.brand-hero img{width:56px;height:56px;border-radius:14px}
.brand-hero .bh-name{font-size:var(--text-xl);font-weight:800;line-height:1.1}
.brand-hero .bh-sub{opacity:.85;font-size:var(--text-sm)}
/* P20 additions to the existing P03 shell */
form{margin-top:var(--space-4)}form button{margin-right:var(--space-2);padding:var(--space-2) var(--space-3)}.notice{padding:var(--space-3);background:var(--brand-soft);margin-bottom:var(--space-4);border-radius:var(--radius-sm)}.thread-layout{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,3fr);gap:var(--space-4)}.thread-list{display:grid;align-content:start;gap:var(--space-2)}.thread-list button{text-align:left}.messages{max-height:420px;overflow:auto}.message,.post{padding:var(--space-3);border-bottom:1px solid var(--line)}.post form{display:flex;gap:var(--space-2)}.post input{flex:1;min-width:0}textarea{width:100%;min-height:75px}@media(max-width:700px){.thread-layout{grid-template-columns:1fr}}
