:root{
  --bg:#f2f2f7;--card:#fff;--text:#000;--sub:#6c6c70;--sep:rgba(60,60,67,.18);--blue:#007aff;--green:#34c759;--red:#ff3b30;--orange:#ff9500;
  --fill:rgba(120,120,128,.12);--bar:rgba(249,249,249,.82);--r:14px;
  --sat:env(safe-area-inset-top);--sab:env(safe-area-inset-bottom);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display",system-ui,sans-serif;
}
@media(prefers-color-scheme:dark){:root{--bg:#000;--card:#1c1c1e;--text:#fff;--sub:#98989f;--sep:rgba(84,84,88,.55);--blue:#0a84ff;--green:#30d158;--red:#ff453a;--orange:#ff9f0a;--fill:rgba(120,120,128,.24);--bar:rgba(28,28,30,.8)}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none}
body{font-size:17px;line-height:1.3;-webkit-user-select:none;user-select:none}
input,textarea,.sel{-webkit-user-select:text;user-select:text}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
#app{min-height:100vh;padding:calc(var(--sat) + 8px) 16px calc(90px + var(--sab))}
.screen{animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
h1{font-size:34px;font-weight:700;letter-spacing:.37px;margin:18px 0 14px}
h2{font-size:13px;text-transform:uppercase;letter-spacing:-.08px;color:var(--sub);font-weight:400;margin:22px 16px 7px}
.sub{color:var(--sub);font-size:15px}
.group{background:var(--card);border-radius:var(--r);overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:12px 16px;min-height:48px;position:relative;background:var(--card);width:100%;text-align:left}
.row+.row::before{content:"";position:absolute;top:0;left:16px;right:0;height:.5px;background:var(--sep)}
.row .main{flex:1;min-width:0}
.row .t{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .s{font-size:14px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dot{width:10px;height:10px;border-radius:50%;flex:none}
.chev{color:var(--sub);opacity:.6;font-size:20px}
.pill{font-size:12px;padding:2px 8px;border-radius:99px;background:var(--fill);color:var(--sub)}
/* capture */
.cap{display:flex;flex-direction:column;align-items:center;padding-top:6vh}
.mic{width:168px;height:168px;border-radius:50%;background:var(--blue);display:grid;place-items:center;margin:26px 0 10px;box-shadow:0 10px 40px rgba(0,122,255,.4);transition:transform .2s cubic-bezier(.3,.7,.3,1),background .2s;touch-action:none;-webkit-touch-callout:none}
.mic svg{width:64px;height:64px;fill:#fff}
.mic.rec{transform:scale(1.12);background:var(--red);box-shadow:0 0 0 0 rgba(255,59,48,.5);animation:pulse 1.2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 36px rgba(255,59,48,0)}100%{box-shadow:0 0 0 0 rgba(255,59,48,0)}}
.hint{color:var(--sub);font-size:15px;min-height:22px;text-align:center}
.compose{width:100%;margin-top:34px;display:flex;gap:10px;align-items:flex-end}
.compose textarea{flex:1;background:var(--card);border:0;border-radius:20px;padding:11px 16px;font:inherit;color:var(--text);resize:none;max-height:140px;outline:none;line-height:1.3}
.circ{width:42px;height:42px;border-radius:50%;background:var(--fill);display:grid;place-items:center;flex:none}
.circ svg{width:22px;height:22px;fill:var(--blue)}
.circ.go{background:var(--blue)}.circ.go svg{fill:#fff}
/* inbox swipe */
.sw{position:relative;overflow:hidden}
.sw .bg{position:absolute;inset:0;display:flex;justify-content:space-between;align-items:center;padding:0 22px;color:#fff;font-weight:600}
.sw .bg.l{background:var(--green)}.sw .bg.r{background:var(--blue)}
.sw .row{transition:transform .25s cubic-bezier(.3,.7,.3,1);touch-action:pan-y}
.sw:not(:first-child)::before{content:"";position:absolute;top:0;left:16px;right:0;height:.5px;background:var(--sep);z-index:2}
.sw .row::before{display:none}
.empty{text-align:center;color:var(--sub);padding:70px 20px}
.empty b{display:block;font-size:20px;color:var(--text);margin-bottom:6px}
/* projects */
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tile{background:var(--card);border-radius:var(--r);padding:14px;min-height:96px;display:flex;flex-direction:column;justify-content:space-between;text-align:left;transition:transform .15s}
.tile:active{transform:scale(.97)}
.tile .n{font-size:30px;font-weight:700;letter-spacing:.3px}
.tile .nm{font-size:14px;font-weight:600;line-height:1.2}
.tile .ic{width:28px;height:28px;border-radius:8px}
.nav{display:flex;align-items:center;justify-content:space-between;padding-top:6px}
.link{color:var(--blue);font-size:17px;padding:8px 0}
.seg{display:flex;gap:6px;overflow-x:auto;margin:6px -16px 4px;padding:4px 16px;scrollbar-width:none}
.seg::-webkit-scrollbar{display:none}
.seg button{padding:6px 14px;border-radius:99px;background:var(--fill);font-size:14px;white-space:nowrap}
.seg button.on{background:var(--blue);color:#fff}
.btn{display:block;width:100%;padding:14px;border-radius:var(--r);background:var(--blue);color:#fff;font-weight:600;text-align:center;margin-top:12px}
.btn.gray{background:var(--fill);color:var(--blue)}
/* search */
.field{display:flex;align-items:center;gap:8px;background:var(--fill);border-radius:12px;padding:0 10px;height:38px}
.field input{flex:1;background:none;border:0;outline:none;font:inherit;color:var(--text)}
/* tab bar */
#tabs{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-around;padding:6px 8px calc(6px + var(--sab));background:var(--bar);backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);border-top:.5px solid var(--sep);z-index:10}
#tabs button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:var(--sub);position:relative;padding-top:2px}
#tabs svg{width:26px;height:26px;fill:currentColor}
#tabs button.on{color:var(--blue)}
#badge{position:absolute;top:-2px;left:calc(50% + 6px);min-width:18px;height:18px;border-radius:9px;background:var(--red);color:#fff;font:600 12px/18px system-ui;text-align:center;padding:0 5px}
/* sheet */
#sheet{position:fixed;inset:0;z-index:20}
.scrim{position:absolute;inset:0;background:rgba(0,0,0,.4);animation:sf .25s}
@keyframes sf{from{opacity:0}}
.panel{position:absolute;left:0;right:0;bottom:0;top:calc(var(--sat) + 28px);background:var(--bg);border-radius:14px 14px 0 0;overflow-y:auto;padding:8px 16px calc(30px + var(--sab));animation:up .35s cubic-bezier(.2,.9,.3,1)}
@keyframes up{from{transform:translateY(100%)}}
.grab{width:36px;height:5px;border-radius:3px;background:var(--sep);margin:2px auto 10px}
.card-t{font-size:26px;font-weight:700;margin:6px 0 6px;letter-spacing:.3px}
.card-t[contenteditable]{outline:none}
.sel{white-space:pre-wrap}
select,.sheet-in{width:100%;background:var(--card);border:0;border-radius:12px;padding:12px 14px;font:inherit;color:var(--text);outline:none;-webkit-appearance:none}
audio{width:100%;margin-top:10px}
img.media{width:100%;border-radius:12px;margin-top:10px}
#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(86px + var(--sab));background:rgba(60,60,67,.92);color:#fff;padding:10px 18px;border-radius:99px;font-size:15px;z-index:30;animation:fade .2s;max-width:90vw}
.login{padding-top:18vh;text-align:center}
.login .logo{width:84px;height:84px;border-radius:20px;margin:0 auto 20px;display:block}
.login input{text-align:center;margin-top:20px}
