/* LARCH APP SURFACES: ported from design/_src/final.css (the shipped app tokens and components).
   Real product surfaces, re-themed by system/tokens.css. Do not restyle here; change the app spec first. */
.lx{font-family:var(--font-sans);font-size:13px;color:var(--ink);--r-win:10px;--r-page:10px;--r-pop:12px;--r-ctl:10px;--r-row:8px;--r-chip:999px}
.lx .ic{font-family:"Material Symbols Rounded";font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 20;display:inline-block}

.lx p{margin:0}
.l-wm{font-weight:600;letter-spacing:-.015em;color:var(--ink);font-size:13px}
.l-tbt,.l-tbt2{font-size:12px;color:var(--mute)}
.l-tbt .l-wm{font-size:12px}
.l-k{font-family:var(--font-mono);font-size:10.5px;color:var(--faint)}


/* ---------- buttons ---------- */
.l-btn{height:30px;padding:0 12px;border:0;border-radius:8px;background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);font-size:12.5px;font-weight:500;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.l-btn.on{background:var(--soft)}
.l-btn .ic,.l-pribtn .ic{font-size:16px}
.l-btn.sm,.l-pribtn.sm{height:28px;font-size:12px}
.l-icb{width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--mute);display:grid;place-items:center}
.l-icb .ic{font-size:17px}
.l-chev{font-size:15px!important;margin:0 -4px 0 -2px;color:var(--mute)}
.l-pribtn{height:32px;padding:0 16px;border:0;border-radius:var(--r-ctl);background:var(--btn);color:var(--btnink);font-size:12.5px;font-weight:500;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.l-pribtn.dis{opacity:.35}
.l-pri{width:100%;height:38px;border:0;border-radius:var(--r-ctl);background:var(--btn);color:var(--btnink);font-size:13px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:6px}
.l-pri .ic{font-size:18px;font-variation-settings:'FILL' 1,'wght' 400}
.l-ghostfull{width:100%;height:36px;border:0;border-radius:var(--r-ctl);background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);font-size:12.5px;font-weight:500;display:flex;align-items:center;gap:8px;padding:0 10px 0 12px}
.l-ghostfull .ic{font-size:17px;color:var(--mute)}
.l-danger{width:100%;height:36px;border:0;border-radius:var(--r-ctl);background:var(--rec-soft);color:var(--rec);font-size:13px;font-weight:500;margin-top:8px}
.l-dangerbtn,.l-dangertext{color:var(--rec)}

/* ---------- main window ---------- */
.l-win{background:var(--paper);border-radius:var(--r-win);box-shadow:var(--sh-win);display:flex;flex-direction:column;overflow:hidden}
.l-body{flex:1;display:grid;grid-template-columns:236px 1fr;min-height:0}
.l-nav{padding:0 10px 10px;display:flex;flex-direction:column;min-height:0}
.l-search{height:30px;border-radius:var(--r-row);background:var(--soft);display:flex;align-items:center;gap:7px;padding:0 6px 0 10px;color:var(--mute);font-size:12.5px;margin-bottom:4px}
.l-search .ic{font-size:16px}
.l-search kbd{margin-left:auto}
.l-list{overflow:hidden;-webkit-mask-image:linear-gradient(#000 88%,transparent);mask-image:linear-gradient(#000 88%,transparent)}
.l-grp{font-size:11.5px;color:var(--faint);padding:14px 10px 5px;font-weight:500}
.l-row{padding:8px 10px;border-radius:var(--r-row);display:flex;flex-direction:column;gap:3px}
.l-row.on{background:var(--page);box-shadow:0 0 0 1px var(--line),var(--sh-1)}
.l-t{font-size:13px;font-weight:500;line-height:18px}
.l-sub{font-family:var(--font-mono);font-size:10.5px;color:var(--mute);display:flex;align-items:center;gap:6px}
.l-sub em{font-style:normal;margin-left:4px}
.l-subacc{font-family:var(--font-sans);font-size:11.5px;color:var(--acc)}
.l-subwarn{font-family:var(--font-sans);font-size:11.5px;color:var(--warn)}
.l-subwarn .ic{font-size:14px}
.l-spin{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--acc-soft);border-top-color:var(--acc);display:inline-block}
.l-page{background:var(--page);margin:0 8px 8px 0;border-radius:var(--r-page);box-shadow:0 0 0 1px var(--line),var(--sh-1);position:relative;overflow:hidden}
.l-tools{position:absolute;top:12px;right:12px;display:flex;gap:6px;align-items:center;z-index:3}
.l-doc{width:580px;margin:0 auto;padding:52px 0 0;height:100%;-webkit-mask-image:linear-gradient(#000 82%,transparent);mask-image:linear-gradient(#000 82%,transparent);position:relative}
.l-meta{display:flex;gap:16px;font-family:var(--font-mono);font-size:11px;color:var(--mute)}
.l-title{font-size:34px;font-weight:600;letter-spacing:-.032em;line-height:1.1;margin:10px 0 18px;display:flex;align-items:center;gap:10px;color:var(--ink)}
.l-pencil{font-size:18px;color:var(--faint);opacity:.6}
.l-title-edit{box-shadow:0 2px 0 var(--acc);margin-bottom:8px;padding-bottom:4px;background:linear-gradient(transparent 60%,transparent)}
.l-caret{display:inline-block;width:2px;height:1em;background:var(--acc);margin-left:1px;vertical-align:-.12em}
.l-hint{font-family:var(--font-mono);font-size:10.5px;color:var(--faint);margin:0 0 16px}
.l-strip .lanes{width:100%;height:52px;display:block}
.lx .ln-me{fill:var(--me);opacity:.85}.lx .ln-s1{fill:var(--s1)}.lx .ln-s2{fill:var(--s2)}.lx .ln-s3{fill:var(--s3)}
.lx .ln-view{fill:var(--sel);stroke:var(--ink);stroke-opacity:.4;stroke-width:1;vector-effect:non-scaling-stroke}
.l-ticks{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:9.5px;color:var(--faint);margin:4px 0 12px}
.l-chips{display:flex;gap:6px;flex-wrap:wrap}
.l-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:var(--r-chip);background:var(--soft);font-size:11.5px}
.l-chip i,.l-who i{width:7px;height:7px;border-radius:2px;background:var(--c)}
.l-me{--c:var(--me)}.l-s1{--c:var(--s1)}.l-s2{--c:var(--s2)}.l-s3{--c:var(--s3)}
.l-chipon{background:var(--acc-soft);box-shadow:inset 0 0 0 1.5px var(--acc)}
.l-rule{height:1px;background:var(--line);margin:18px 0 8px}
.l-line{display:grid;grid-template-columns:44px 1fr;gap:14px;padding:9px 0}
.l-line time{font-family:var(--font-mono);font-size:10.5px;color:var(--faint);padding-top:2px}
.l-who{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;color:var(--c)}
.l-who.l-hl{background:var(--acc-soft);padding:1px 7px;margin-left:-7px;border-radius:6px}
.l-line p{font-size:16px;line-height:1.68;letter-spacing:-.004em;margin:3px 0 0;color:var(--ink)}

/* popover + menu */
.l-pop{position:absolute;z-index:4;width:300px;background:var(--page);border-radius:var(--r-pop);box-shadow:var(--sh-pop);padding:14px}
.l-pop-rename{left:86px;top:258px}
.l-pop-rename::before{content:'';position:absolute;left:28px;top:-6px;width:11px;height:11px;background:var(--page);transform:rotate(45deg);box-shadow:-1px -1px 0 var(--line)}
.l-pop-h{font-size:13px;font-weight:600;margin-bottom:10px}
.l-input{height:34px;border-radius:8px;box-shadow:inset 0 0 0 1.5px var(--acc),0 0 0 3px var(--acc-soft);display:flex;align-items:center;padding:0 10px;font-size:13px}
.l-pop p{font-size:11.5px;color:var(--mute);margin:10px 0 12px;line-height:1.45}
.l-pop-btns{display:flex;justify-content:flex-end;gap:8px}
.l-menu{position:absolute;right:38px;top:38px;width:300px;background:var(--page);border-radius:var(--r-pop);box-shadow:var(--sh-pop);padding:6px}
.l-mi{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:center;padding:9px 10px;border-radius:var(--r-row)}
.l-mi.hl{background:var(--soft)}
.l-mi>.ic{font-size:18px;color:var(--mute)}
.l-mi b{display:block;font-size:12.5px;font-weight:500}
.l-mi span{display:block;font-size:11px;color:var(--mute)}
.l-mcheck{font-size:16px!important;color:var(--acc)!important}
.l-msep{height:1px;background:var(--line);margin:4px 8px}

/* failed */
.l-doc-fail{-webkit-mask-image:none;mask-image:none}
.l-fail{display:grid;grid-template-columns:40px 1fr;gap:14px;padding:18px;border-radius:12px;background:var(--warn-soft);margin-top:8px}
.l-fail-ic{width:40px;height:40px;border-radius:10px;background:var(--page);display:grid;place-items:center;color:var(--warn)}
.l-fail-ic .ic{font-size:22px}
.l-fail-b b{font-size:15px;font-weight:600;letter-spacing:-.01em}
.l-fail-b p{font-size:13.5px;line-height:1.55;color:var(--ink);margin:6px 0 12px;opacity:.85}
.l-fail-meta{display:flex;gap:16px;font-family:var(--font-mono);font-size:10.5px;color:var(--mute);margin-bottom:16px}
.l-fail-btns{display:flex;gap:8px}
.l-fail-note{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--mute);margin-top:18px}
.l-fail-note .ic{font-size:16px}

/* ---------- tray flyout ---------- */
.l-fly{position:absolute;right:10px;bottom:58px;width:328px;background:var(--page);border-radius:var(--r-pop);box-shadow:var(--sh-pop),0 24px 48px rgba(10,12,20,.12);overflow:hidden}
.l-live{padding:16px 18px;box-shadow:inset 0 -1px 0 var(--line)}
.l-lh{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--mute)}
.l-lh .ic{font-size:15px}
.l-rec{display:inline-flex;align-items:center;gap:8px;color:var(--rec);font-weight:500}
.l-rec b{width:8px;height:8px;border-radius:4px;background:var(--rec);box-shadow:0 0 0 3px var(--rec-soft)}
.l-paused,.l-ready,.l-acc,.l-warn{display:inline-flex;align-items:center;gap:6px;font-weight:500}
.l-acc{color:var(--acc)}.l-warn{color:var(--warn)}
.l-timer{font-family:var(--font-mono);font-size:13px;font-weight:500;color:var(--ink)}
.l-dim{color:var(--faint)}
.l-ft{font-size:19px;font-weight:600;letter-spacing:-.022em;line-height:1.2;margin:12px 0 14px}
.l-fp{font-size:12.5px;color:var(--mute);margin:-6px 0 14px;line-height:1.45}
.l-wave{display:grid;gap:6px;margin-bottom:16px}
.l-wl{display:grid;grid-template-columns:46px 1fr;align-items:center}
.l-wl span{font-family:var(--font-mono);font-size:10px;color:var(--faint)}
.l-bars{display:flex;align-items:center;gap:2px;height:22px}
.l-bars i{flex:1;height:calc(var(--h)*100%);min-height:2px;border-radius:2px;background:var(--rec);transform-origin:center}
.l-bars.l-me i{background:var(--ink);opacity:.5}
.l-bars.l-acc-bars i{background:var(--acc)}
@media (prefers-reduced-motion:no-preference){.l-live-bars i,.l-me i,.l-acc-bars i{animation:c-lvl 1.1s var(--d) ease-in-out infinite alternate}}
.l-subrow{display:flex;justify-content:center;gap:22px;margin-top:10px;font-size:12px;color:var(--mute)}
.l-subrow>span{display:inline-flex;align-items:center;gap:4px}
.l-subrow .ic{font-size:15px}
.l-confirm{text-align:left}
.l-cf-ic{width:36px;height:36px;border-radius:10px;background:var(--rec-soft);color:var(--rec);display:grid;place-items:center}
.l-cf-ic .ic{font-size:20px}
.l-confirm .l-fp{margin:-6px 0 16px}
.l-prog{height:4px;border-radius:2px;background:var(--soft);overflow:hidden}
.l-prog b{display:block;height:100%;background:var(--acc);border-radius:2px}
.l-progmeta{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:10.5px;color:var(--faint);margin:8px 0 14px}
.l-progmeta+.l-fp{margin:0}
.l-errcard{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;border-radius:10px;background:var(--warn-soft);margin:12px 0 12px}
.l-errcard b{display:block;font-size:12.5px;font-weight:600}
.l-errcard span{display:block;font-size:11.5px;color:var(--mute);margin-top:2px}
.l-errcard .l-btn{background:var(--page)}
.l-ghostfull kbd{margin-left:auto}
.l-sec{font-size:11.5px;color:var(--faint);padding:10px 18px 4px;font-weight:500}
.l-mrow{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:12.5px}
.l-mrow time{font-family:var(--font-mono);font-size:10.5px;color:var(--faint)}
.l-foot{display:flex;justify-content:space-between;padding:8px 12px;margin-top:6px;box-shadow:inset 0 1px 0 var(--line)}
.l-foot span{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--mute);padding:6px}
.l-foot .ic{font-size:16px}
.l-hidden{display:flex;align-items:center;gap:6px;justify-content:center;font-size:11px;color:var(--faint);padding:8px 0 9px;box-shadow:inset 0 1px 0 var(--line);background:var(--paper)}
.l-hidden .ic{font-size:14px}
.l-banner{display:grid;grid-template-columns:20px 1fr auto;gap:10px;align-items:center;margin:10px 10px 0;padding:10px 10px 10px 12px;border-radius:10px;background:var(--acc-soft)}
.l-banner>.ic{font-size:18px;color:var(--acc)}
.l-banner b{display:block;font-size:12.5px;font-weight:600}
.l-banner span{display:block;font-size:11.5px;color:var(--mute)}
.l-banner .l-btn{background:var(--page)}
.l-banner+.l-live{box-shadow:inset 0 -1px 0 var(--line)}

/* ---------- cards above the tray ---------- */
.l-card{position:absolute;right:10px;bottom:58px;width:340px;background:var(--page);border-radius:var(--r-pop);box-shadow:var(--sh-pop),0 24px 48px rgba(10,12,20,.12);padding:14px 16px 16px;overflow:hidden}
.l-card-top{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--faint);margin-bottom:12px}
.l-card-top .l-wm{font-size:12px;color:var(--mute)}
.l-card-h{display:block;font-size:15px;font-weight:600;letter-spacing:-.012em}
.l-card p{margin:2px 0 0;font-size:12.5px;color:var(--mute)}
.l-rt{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:center}
.l-rt-ic{width:38px;height:38px;border-radius:10px;background:var(--acc-soft);color:var(--acc);display:grid;place-items:center}
.l-rt-ic .ic{font-size:20px}
.l-rt-meta{display:flex;gap:14px;font-family:var(--font-mono);font-size:10.5px;color:var(--mute);margin:12px 0 14px 50px}
.l-card-btns{display:flex;gap:8px;align-items:center;margin-left:50px}

.l-sbody{grid-template-columns:196px 1fr}
.l-snavs{padding-top:6px}
.l-snav{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-row);font-size:12.5px;color:var(--mute)}
.l-snav .ic{font-size:17px}
.l-snav.on{background:var(--page);color:var(--ink);font-weight:500;box-shadow:0 0 0 1px var(--line),var(--sh-1)}
.l-spage{padding:22px 26px}
.l-sgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px 26px}
.l-sgrid h3{font-size:12px;font-weight:600;margin:0 0 4px;color:var(--ink)}
.l-srow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;box-shadow:inset 0 -1px 0 var(--line)}
.l-srow:last-child{box-shadow:none}
.l-srow b{display:block;font-size:12.5px;font-weight:500}
.l-srow span:not(.l-fact):not(.l-k):not(.l-in):not(.l-sel){display:block;font-size:11px;color:var(--mute);margin-top:2px}
.l-tog{flex:none;width:34px;height:20px;border-radius:10px;background:var(--line);position:relative}
.l-tog::after{content:'';position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:8px;background:var(--page);box-shadow:0 1px 2px rgba(0,0,0,.2)}
.l-tog.on{background:var(--acc)}
.l-tog.on::after{left:16px}
.l-fact{flex:none;font-size:11.5px;font-weight:500;color:var(--acc);background:var(--acc-soft);padding:4px 10px;border-radius:999px}
.l-kbd{font-size:10.5px!important}
.l-in{flex:none;height:28px;min-width:96px;padding:0 10px;border-radius:8px;box-shadow:inset 0 0 0 1px var(--line);display:flex;align-items:center;font-size:12.5px}
.l-sel{flex:none;height:28px;padding:0 6px 0 10px;border-radius:8px;box-shadow:inset 0 0 0 1px var(--line);display:flex;align-items:center;gap:2px;font-size:12px}
.l-sel .ic{font-size:16px;color:var(--mute)}
.l-k{font-family:var(--font-mono);font-size:10.5px;color:var(--faint)}
.lx .ln-me{fill:var(--me);opacity:.85}.lx .ln-s1{fill:var(--s1)}.lx .ln-s2{fill:var(--s2)}.lx .ln-s3{fill:var(--s3)}
.lx .ln-view{fill:var(--sel);stroke:var(--ink);stroke-opacity:.4;stroke-width:1;vector-effect:non-scaling-stroke}
.l-titlebar{height:40px;display:flex;align-items:center;justify-content:space-between;padding:0 6px 0 14px;color:var(--mute)}
.l-titlebar .l-wm{font-size:12.5px}
.l-titlebar .wc{display:flex;gap:2px}.l-titlebar .wc .ic{font-size:16px;width:40px;text-align:center;color:var(--mute)}
@keyframes c-lvl{from{transform:scaleY(.55)}to{transform:scaleY(1)}}
@media (prefers-reduced-motion:no-preference){.l-bars.anim i{animation:c-lvl 1.1s var(--d,0s) ease-in-out infinite alternate}}
.l-fly,.l-card,.l-pop,.l-menu{position:relative;right:auto;bottom:auto;left:auto;top:auto}
.lx kbd{font-family:var(--font-mono);font-size:10px;line-height:1.3;background:var(--soft);color:var(--mute);padding:2px 6px;border-radius:5px;margin-left:auto}
