:root{
  --bg:#e7e2dd; --panel:#e7e2dd; --line:rgba(0,0,0,.08); --text:#1d1d1f; --muted:#86868b;
  --accent:#0071e3; --mine:#0071e3; --theirs:#e9e9eb;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
.app{display:flex;flex-direction:column;height:100%;padding-top:env(safe-area-inset-top,0)}
.screen{display:none;flex:1;min-height:0;flex-direction:column}
.screen.active{display:flex}

/* top bar */
.topbar{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--panel);border-bottom:1px solid var(--line)}
.topbar h1{font-size:17px;font-weight:700;flex:1}
.pill{padding:7px 14px;border-radius:999px;background:var(--accent);color:#fff;font-size:13px;font-weight:600}
.ghost{padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:13px;font-weight:500}

/* boards list */
.boards-grid{flex:1;overflow-y:auto;padding:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;align-content:start}
.board-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;text-align:left;min-height:110px;display:flex;flex-direction:column;justify-content:space-between}
.board-card b{font-size:15px}
.board-card span{font-size:12px;color:var(--muted)}
.board-card.new{border-style:dashed;align-items:center;justify-content:center;color:var(--accent);font-weight:600}

/* board page (fixed, fits the screen) */
.board-tools{display:flex;gap:8px;padding:8px 12px;overflow-x:auto;background:var(--panel);border-bottom:1px solid var(--line)}
.board-tools button{white-space:nowrap}
.page{position:relative;flex:1;margin:10px;border-radius:14px;overflow:hidden;background:#fafafa;
  background-image:radial-gradient(rgba(0,0,0,.12) 1px,transparent 1px);background-size:24px 24px;border:1px solid var(--line);touch-action:none}
.note{position:absolute;width:38%;min-width:120px;max-width:220px;border-radius:10px;box-shadow:0 6px 18px rgba(0,0,0,.1);display:flex;flex-direction:column}
.note.yellow{background:#fff3a8}.note.green{background:#d2f5e3}.note.blue{background:#d0e8ff}.note.pink{background:#ffd0e8}
.note .grip{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;cursor:grab;touch-action:none;font-size:12px;color:rgba(0,0,0,.4)}
.note .grip button{font-size:13px;color:rgba(0,0,0,.5)}
.note textarea{border:none;outline:none;background:transparent;resize:none;font:inherit;font-size:14px;padding:0 10px 10px;min-height:70px;color:var(--text)}
.empty-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;pointer-events:none;text-align:center;padding:24px}

/* chat (DM style) */
.dm-head{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line)}
.avatars{display:flex}
.av{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;border:2px solid #fff;margin-left:-8px}
.av:first-child{margin-left:0}
.dm-head .t{display:flex;flex-direction:column;line-height:1.2}
.dm-head .t b{font-size:15px}.dm-head .t span{font-size:12px;color:var(--muted)}
.msgs{flex:1;overflow-y:auto;padding:16px 12px;display:flex;flex-direction:column;gap:3px;background:#fff}
.row{display:flex;align-items:flex-end;gap:8px;margin-top:8px}
.row.mine{justify-content:flex-end}
.row .av{margin-left:0;width:28px;height:28px;font-size:11px;border:none}
.bubble{max-width:72%;padding:9px 14px;border-radius:20px;font-size:15px;line-height:1.35;word-wrap:break-word;user-select:text;-webkit-user-select:text}
.mine .bubble{background:var(--mine);color:#fff}
.theirs .bubble{background:var(--theirs)}
.who{font-size:11px;color:var(--muted);margin:6px 0 0 36px}
.composer{display:flex;align-items:center;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0));background:#fff}
.composer input{flex:1;border:1px solid var(--line);border-radius:999px;padding:11px 16px;font-size:15px;outline:none;background:#f5f5f7}
.composer .send{color:var(--accent);font-weight:700;padding:8px 6px}

/* tab bar */
.tabs{display:flex;background:var(--panel);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0)}
.tabs button{flex:1;padding:12px 0;font-size:13px;font-weight:600;color:var(--muted);position:relative}
.tabs button.on{color:var(--accent)}
.badge{position:absolute;top:6px;margin-left:4px;background:#ff3b30;color:#fff;border-radius:999px;font-size:10px;padding:1px 6px;display:none}
.note.plain{background:#fff}.note.wide{width:56%;max-width:260px}
.note img{width:100%;display:block;border-radius:0 0 10px 10px}
.note .link{display:block;padding:0 10px 10px;font-size:14px;color:var(--accent);word-break:break-all}
.poll{padding:0 10px 10px;font-size:14px}.poll b{display:block;margin-bottom:6px}
.opt{position:relative;display:block;width:100%;text-align:left;margin-top:5px;padding:7px 10px;border-radius:8px;background:rgba(0,0,0,.06);overflow:hidden;color:inherit}
.opt i{position:absolute;left:0;top:0;bottom:0;background:rgba(0,113,227,.25)}
.opt span{position:relative;display:flex;justify-content:space-between;gap:8px}
.mine .opt{background:rgba(255,255,255,.2)}
canvas.draw{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.page.drawing canvas.draw{pointer-events:auto}.page.drawing .note{pointer-events:none}
.ghost.on{background:var(--accent);color:#fff}
.composer .aux{font-size:13px;font-weight:600;color:var(--accent);padding:8px 4px}.composer .aux.rec{color:#ff3b30}
.bubble audio{height:36px;max-width:230px}
.theirs .bubble{background:#fff}
.board-card{background:#f4f1ed}
.composer{background:var(--panel)}.composer input{background:#f4f1ed}
.tray{background:var(--panel);border-top:1px solid var(--line);padding:8px 12px}
.tray-row{display:flex;gap:8px}
.tray-row button,.stk .addst{padding:7px 14px;border-radius:999px;background:#f4f1ed;border:1px solid var(--line);font-size:13px;font-weight:600}
.stk{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:8px;max-height:170px;overflow-y:auto}
.stk[hidden]{display:none}
.stk button{font-size:30px;padding:4px;border-radius:10px;line-height:1.2}
.stk .addst{font-size:12px;grid-column:span 2}
.stk img{width:100%;aspect-ratio:1;object-fit:contain;display:block}
.bubble.big{font-size:56px;line-height:1.1;padding:0;background:none!important}
.bubble.media{padding:0;background:none!important}
.bubble.media img{max-width:230px;width:100%;border-radius:16px;display:block}
.whoami{border:none;background:none;padding:0}.whoami .av{margin:0;border:none}
.picker{position:fixed;inset:0;z-index:50;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.picker[hidden]{display:none}.picker h2{font-size:22px;margin-bottom:8px}
.pk{display:flex;align-items:center;gap:14px;width:250px;padding:12px 16px;border-radius:16px;background:#f4f1ed;border:1px solid var(--line);font-size:17px;font-weight:600}
.pk .av{margin:0;width:44px;height:44px;font-size:18px;border:none}
.hist{flex:1;overflow-y:auto;padding:12px 16px}
.hrow{display:flex;gap:12px;align-items:center;padding:10px 12px;background:#f4f1ed;border-radius:12px;margin-bottom:8px}
.hrow .av{margin:0;flex:none}.ht{display:flex;flex-direction:column;font-size:14px}.ht span{font-size:12px;color:var(--muted)}
.msgs,.boards-grid,.page{background:#e7e2dd}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
