@font-face{font-family:Plex;src:url(fonts/IBMPlexSans-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Plex;src:url(fonts/IBMPlexSans-Medium.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Plex;src:url(fonts/IBMPlexSans-SemiBold.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:Plex;src:url(fonts/IBMPlexSans-Bold.woff2) format("woff2");font-weight:700;font-display:swap}
:root{--ink:#0B0B0B;--mut:#6B6B6B;--line:#E6E6E3;--bg:#F5F5F3;--card:#fff;--ok:#1C6B36;--okb:#E3F4E8;--warn:#8A5A00;--warnb:#FFF1D6;--bad:#A02A1C;--badb:#FFE9E6;--info:#1D4ED8;--infob:#EAF1FF;--r:16px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:Plex,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:16px;line-height:1.45;padding-bottom:84px}
a{color:inherit}h1{font-size:28px;line-height:1.15;margin:4px 0 6px;letter-spacing:-.3px}h2{font-size:18px;margin:0 0 12px}h3{font-size:17px;margin:0 0 4px}
.muted{color:var(--mut)}.small{font-size:13.5px}.mono{font-family:ui-monospace,Menlo,monospace}.pwbig{font-size:24px;letter-spacing:1px}
.demo{background:#FFE58A;color:#3A2E00;text-align:center;font-size:13px;font-weight:600;padding:6px 10px}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:18px;background:#000;color:#fff;padding:10px 18px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;letter-spacing:.2px}.brand img{width:34px;height:34px;border-radius:9px}
.main{display:none;gap:4px;margin-left:12px}.main a{color:#bbb;text-decoration:none;padding:8px 12px;border-radius:10px;font-weight:500}.main a.on,.main a:hover{color:#fff;background:#1E1E1E}
.me{margin-left:auto;display:flex;align-items:center;gap:10px;text-decoration:none}.av{width:34px;height:34px;border-radius:50%;background:#fff;color:#000;display:grid;place-items:center;font-weight:700}
.who{display:none;flex-direction:column;line-height:1.2}.who small{color:#aaa;font-size:12px}
.wrap{max-width:1180px;margin:0 auto;padding:18px 16px}
.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;justify-content:space-around;background:#fff;border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
.tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11.5px;color:var(--mut);text-decoration:none;padding:4px 8px;min-width:60px}
.tabbar svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tabbar a.on{color:#000;font-weight:600}
.tabbar a.plus svg{background:#000;color:#fff;border-radius:12px;padding:4px;width:34px;height:30px;stroke-width:2.4}
.foot{text-align:center;color:#9A9A9A;font-size:12px;padding:20px}
.card{background:var(--card);border-radius:var(--r);padding:18px;border:1px solid var(--line)}
.stack{display:flex;flex-direction:column;gap:14px}.grid2{display:grid;gap:12px}.grid-main{display:grid;gap:14px}
label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14.5px}
input,select,textarea{font:inherit;font-weight:400;font-size:16px;border:1.5px solid #D6D6D2;border-radius:12px;padding:11px 12px;background:#fff;color:var(--ink);width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:#000;box-shadow:0 0 0 3px rgba(0,0,0,.08)}
label.check{flex-direction:row;align-items:center;gap:10px;font-weight:500}label.check input{width:20px;height:20px;accent-color:#000;flex:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:600;font-size:15px;border:1.5px solid #000;background:#fff;color:#000;border-radius:12px;padding:10px 16px;text-decoration:none;cursor:pointer;min-height:44px}
.btn.primary{background:#000;color:#fff}.btn.wide{width:100%}.btn:active{transform:scale(.98)}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.actions form{margin:0}
.actions.sticky{position:sticky;bottom:72px;background:linear-gradient(transparent,var(--bg) 30%);padding:16px 0 4px;justify-content:flex-end}
.head{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-end;margin-bottom:14px}
.path{display:inline-block;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:var(--mut)}
.meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ref{font-family:ui-monospace,Menlo,monospace;font-size:13.5px;color:var(--mut)}
.badge{display:inline-block;font-size:12.5px;font-weight:600;border-radius:20px;padding:3px 10px;white-space:nowrap}
.badge.ok{background:var(--okb);color:var(--ok)}.badge.warn{background:var(--warnb);color:var(--warn)}.badge.bad{background:var(--badb);color:var(--bad)}.badge.info{background:var(--infob);color:var(--info)}.badge.muted{background:#EFEFEC;color:#555}
.flash{border-radius:12px;padding:12px 14px;margin-bottom:14px;font-weight:500}.flash.ok{background:var(--okb);color:var(--ok)}.flash.bad{background:var(--badb);color:var(--bad)}.flash.info{background:var(--infob);color:var(--info)}
.co{display:inline-flex;align-items:center;gap:8px;font-weight:600}.co img{width:24px;height:24px;border-radius:6px}
.hello h1{margin-bottom:0}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:16px 0}
.stat{background:#000;color:#fff;border-radius:var(--r);padding:16px;text-decoration:none;display:flex;flex-direction:column;gap:2px}.stat b{font-size:32px;line-height:1}.stat span{font-weight:600}.stat small{color:#aaa;font-size:12.5px}
.stat:nth-child(n+2){background:#fff;color:#000;border:1px solid var(--line)}.stat:nth-child(n+2) small{color:var(--mut)}
.sec{margin:22px 0 10px}.list{display:flex;flex-direction:column;gap:8px}
.row-item{display:flex;gap:12px;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;text-decoration:none}
a.row-item:hover{border-color:#000}.ri-main{min-width:0}.ri-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ri-title{font-weight:600;margin:4px 0}.ri-sub{display:flex;flex-wrap:wrap;gap:4px;align-items:center;color:var(--mut);font-size:14px}
.ri-sub .co img{width:18px;height:18px;border-radius:5px}.sep{color:#ccc;margin:0 2px}
.ri-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:6px;flex:none}.ri-side small{color:var(--mut);font-size:12.5px}
.ri-side{flex-direction:row;flex-wrap:wrap;max-width:120px;justify-content:flex-end;align-content:space-between}.ri-side small{width:100%;text-align:right}
img.mini{width:22px;height:22px;border-radius:6px}
.empty{color:var(--mut);text-align:center}
.filters{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs a{text-decoration:none;padding:7px 14px;border-radius:20px;border:1.5px solid #D6D6D2;font-weight:600;font-size:14px;background:#fff}.tabs a.on{background:#000;color:#fff;border-color:#000}
.pick{text-decoration:none}.pick:hover{border-color:#000}
.scope{border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;margin-top:10px}.scope.on{border-color:#000}
.scope-body{display:none;margin-top:12px;flex-direction:column;gap:10px}.scope.on .scope-body{display:flex}
label.check.big{flex-wrap:wrap;font-weight:600}.spec{flex-basis:100%;padding-left:30px;font-weight:400}
.newclient{display:none;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.facts small{display:block;color:var(--mut);font-size:12.5px;margin-bottom:3px}
.prose{white-space:normal;line-height:1.55}
.scope-view{border-top:1px solid var(--line);padding:14px 0}.scope-view:first-of-type{border-top:0;padding-top:4px}
.sv-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.sv-meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--mut);font-size:13px;margin-top:8px}
.note{background:#F7F7F4;border-radius:10px;padding:10px 12px;margin-top:10px;font-size:14px}
.sv-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.sv-actions form{margin:0}.inline-form{display:flex;gap:8px;flex:1;min-width:260px}.inline-form input{flex:1}
.file{display:flex;gap:12px;align-items:center;text-decoration:none;padding:8px 0;border-bottom:1px solid var(--line)}.file small{display:block;color:var(--mut);font-size:12.5px}
.ft{flex:none;width:44px;height:44px;border-radius:10px;background:#000;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700}.ft.image{background:#3E6B4A}.ft.voice{background:#1D4ED8}.ft.video{background:#7A2E8A}.ft.drawing{background:#8A5A00}
.upl{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.acts{list-style:none;margin:0;padding:0}.acts li{padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.acts small{display:block;color:var(--mut);font-size:12px}
.cos{display:grid;gap:12px}.co-card{display:flex;gap:14px;text-decoration:none}.co-card:hover{border-color:#000}.co-card>img{width:56px;height:56px;border-radius:14px;flex:none}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tags span{font-size:12px;font-weight:600;background:#F0F0EE;border-radius:12px;padding:3px 9px}
.arms{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.arm small{color:var(--mut);margin-left:6px;font-size:12.5px}.arm .co img{width:20px;height:20px}
.co-head{justify-content:flex-start;align-items:center}.co-head img{width:64px;height:64px;border-radius:16px}
.people{list-style:none;padding:0;margin:0}.people li{padding:8px 0;border-bottom:1px solid var(--line)}.people small{display:block;color:var(--mut)}
.pw{border:2px solid #000;margin-bottom:14px}
.login{max-width:400px;margin:8vh auto 0;text-align:center}.login .logo{width:72px;height:72px;border-radius:18px}.login h1{font-size:24px;margin:16px 0 4px}.login form{text-align:left;display:flex;flex-direction:column;gap:14px;margin:18px 0}
@media (min-width:760px){
 body{padding-bottom:0}.tabbar{display:none}.main{display:flex}.who{display:flex}.actions.sticky{bottom:0}
 .wrap{padding:28px 24px}h1{font-size:34px}.grid2{grid-template-columns:1fr 1fr}.stats{grid-template-columns:repeat(4,1fr)}
 .grid-main{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start}.facts{grid-template-columns:repeat(3,1fr)}.cos{grid-template-columns:repeat(2,1fr)}
 .ri-side{max-width:none;flex-direction:column;align-items:flex-end}.ri-side small{width:auto}
}

/* app feel on the phone: no zoom while typing, no double-tap zoom */
html{touch-action:manipulation;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
input,select,textarea{font-size:16px!important}
button,.btn{-webkit-touch-callout:none}

/* floating rounded tab bar on the phone (same as HUB) */
@media (max-width:759px){
  .tabbar{left:12px;right:12px;bottom:calc(8px + env(safe-area-inset-bottom));padding:5px;border:1px solid rgba(0,0,0,.08);border-radius:30px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 28px rgba(0,0,0,.14),0 1px 3px rgba(0,0,0,.06)}
  .tabbar a{flex:1;border-radius:24px;padding:7px 4px 5px;min-width:0;justify-content:center}
  .tabbar a.on{background:#EDEDEA}
  body{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
}

/* the bar sits closer to the phone's edges */
@media (max-width:759px){
  .tabbar{left:6px;right:6px;bottom:max(6px, calc(env(safe-area-inset-bottom) - 16px))}
}
/* bar placed like the Claude app: same space at the sides and the bottom */
@media (max-width:759px){
  .tabbar{left:16px;right:16px;bottom:16px;padding:6px;border-radius:999px}
  .tabbar a{border-radius:999px}
  body{padding-bottom:110px}
}
