@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Serif:wght@600&display=swap");:root{--bg:#ebe6dc;--panel:#f7f3ea;--ink:#1c242c;--muted:#5f6b75;--line:#d2cbbd;--accent:#e85d04;--accent-soft:#fce8d8;--occupied:#9aa7b5;--shadow:0 12px 40px rgba(28,36,44,0.08);font-family:IBM Plex Sans,sans-serif;line-height:1.45;font-weight:400;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body,html{margin:0;width:100%;height:100%}body{min-width:320px;min-height:100%;background:radial-gradient(ellipse 80% 50% at 70% 0,#f4efe4 0,transparent 55%),linear-gradient(160deg,#e7e1d4,#ebe6dc 45%,#ddd6c8)}button,input{font:inherit}.app{display:grid;grid-template-columns:minmax(280px,360px) 1fr;width:100%;height:100dvh;min-height:100dvh}.app--no-scene{grid-template-columns:1fr}.app--no-scene .sidebar{border-right:none;width:100%;max-width:none}.sidebar{gap:1rem;padding:1.4rem 1.25rem 1rem;background:color-mix(in srgb,var(--panel) 92%,white);border-right:1px solid var(--line);box-shadow:var(--shadow);min-height:0;z-index:2}.sidebar,.sidebar__brand{display:flex;flex-direction:column}.sidebar__brand{gap:.35rem}.sidebar__eyebrow{margin:0;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600}.sidebar__title{margin:0;font-family:"IBM Plex Serif",serif;font-size:1.75rem;font-weight:600;letter-spacing:-.02em}.sidebar__subtitle{margin:0;color:var(--muted);font-size:.92rem}.search{display:flex;flex-direction:column;gap:.4rem}.search__label{font-size:.78rem;font-weight:600;color:var(--muted)}.search__input{width:100%;border:1px solid var(--line);background:#fffdf8;color:var(--ink);border-radius:10px;padding:.75rem .9rem;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.search__input:focus{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:0 0 0 3px var(--accent-soft)}.detail{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:var(--accent-soft);border-radius:12px;padding:.85rem .95rem}.detail__row{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.detail__name{margin:0;font-size:1.05rem;font-weight:600}.detail__close{border:none;background:transparent;color:var(--muted);font-size:1.35rem;line-height:1;cursor:pointer;padding:0 .15rem}.detail__meta{display:grid;grid-template-columns:1fr 1fr;grid-gap:.55rem .75rem;gap:.55rem .75rem;margin:.75rem 0 0}.detail__meta dt{margin:0;font-size:.72rem;color:var(--muted);font-weight:600}.detail__meta dd{margin:.1rem 0 0;font-size:.9rem;font-weight:500}.detail__meta>div:last-child{grid-column:1/-1}.detail__action,.detail__actions{margin-top:.85rem}.detail__actions{display:flex;flex-wrap:wrap;gap:.5rem}.detail__actions .btn{flex:1 1 auto}.item-detail{gap:.9rem}.item-detail__hero{display:grid;grid-template-columns:5.5rem minmax(0,1fr);grid-gap:.85rem;gap:.85rem;align-items:center}.item-detail__photo{width:5.5rem;height:5.5rem;border-radius:12px;object-fit:cover;background:#efe9df;border:1px solid var(--line)}.item-detail__photo--empty{display:block}.item-detail__intro{display:grid;grid-gap:.25rem;gap:.25rem;min-width:0}.item-detail__name{margin:0;font-family:"IBM Plex Serif",serif;font-size:1.2rem;font-weight:600;line-height:1.25}.item-detail__sku{margin:0;color:var(--muted);font-size:.85rem}.item-detail__locs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.item-detail__loc{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:.45rem;gap:.45rem;align-items:center;padding:.55rem .65rem;border-radius:10px;border:1px solid var(--line);background:#fffdf8}.item-detail__loc-label{font-size:.85rem;font-weight:500;min-width:0}.item-detail__loc-qty{font-size:.85rem;font-weight:650}.item-detail__loc-actions{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-end}.item-detail__loc-actions .btn{font-size:.78rem;padding:.35rem .55rem}@media (max-width:560px){.item-detail__loc{grid-template-columns:minmax(0,1fr) auto}.item-detail__loc-actions{grid-column:1/-1;justify-content:flex-start}}.list-header{display:flex;justify-content:space-between;font-size:.78rem;font-weight:600;color:var(--muted);padding:0 .15rem}.item-list{list-style:none;margin:0;padding:0;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));grid-gap:.55rem;gap:.55rem;align-content:start;min-height:0;flex:1 1}.item-row{display:flex;flex-direction:column;gap:.35rem;min-width:0}.item-row__qty{display:flex;align-items:center;gap:.4rem}.item-row__qty-input{width:100%;border:1px solid var(--line);border-radius:8px;background:#fffdf8;padding:.4rem .55rem;font:inherit;font-size:.85rem}.item-row__unbind{width:100%;font-size:.78rem;padding:.4rem .55rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.item{width:100%;height:100%;text-align:left;border:1px solid transparent;background:#fffdf8;border-radius:12px;padding:.55rem;display:flex;flex-direction:column;gap:.45rem;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.item__thumb{width:100%;aspect-ratio:1;height:auto;border-radius:8px;object-fit:cover;background:#efe9df;border:1px solid var(--line)}.item__thumb--empty{display:block}.item__body{display:grid;grid-gap:.12rem;gap:.12rem;min-width:0}.item:hover{border-color:var(--line);transform:translateY(-1px)}.item--active{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));background:var(--accent-soft)}.item__name{font-weight:600;font-size:.9rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.item__sku{color:var(--muted);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item__loc{color:var(--ink);font-size:.72rem;opacity:.8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.item-list__empty{grid-column:1/-1;color:var(--muted);font-size:.9rem;padding:1rem .25rem}.app--no-scene .item-list{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.7rem}.sidebar__hint{font-size:.72rem;color:var(--muted);margin-top:auto;padding-top:.5rem}.sidebar__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.sidebar__toolbar .btn{display:inline-flex;align-items:center;gap:.55rem;width:auto;padding:.55rem .85rem}.sidebar__toolbar .btn--ghost{border-color:var(--line);background:#fffdf8;color:var(--ink)}.sidebar__toolbar-count{color:var(--muted);font-size:.78rem;font-weight:500}.sidebar__toolbar .btn--primary .sidebar__toolbar-count{color:color-mix(in srgb,#f7f3ea 78%,transparent)}.modal-root{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1.25rem}.modal-backdrop{position:absolute;inset:0;border:none;padding:0;margin:0;background:rgba(28,36,44,.42);cursor:pointer}.modal{position:relative;z-index:1;width:min(520px,100%);max-height:min(80vh,720px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 64px rgba(28,36,44,.18);overflow:hidden}.modal--wide{width:min(680px,100%)}.modal--plan{width:min(960px,100%);max-height:min(88vh,860px)}.modal--scan{width:min(420px,100%)}.scan-reader-wrap{position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#111827;min-height:240px}.scan-reader{width:100%}.scan-reader video{display:block;width:100%!important;height:auto!important;object-fit:cover}.scan-reader__status{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:1rem;text-align:center;color:#f7f3ea;font-size:.9rem;pointer-events:none}.scan-manual{gap:.65rem}.scan-actions,.scan-manual{display:flex;flex-direction:column}.scan-actions{gap:.5rem}.modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1.15rem 1.2rem .9rem;border-bottom:1px solid var(--line)}.modal__title{margin:0;font-family:"IBM Plex Serif",serif;font-size:1.35rem;font-weight:600}.modal__subtitle{margin:.3rem 0 0;color:var(--muted);font-size:.88rem}.modal__close{border:none;background:transparent;color:var(--muted);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 .2rem}.modal__close:hover{color:var(--ink)}.modal__body{gap:.85rem;padding:1rem 1.2rem 1.2rem;min-height:0;overflow:auto}.modal__body,.shelf-list{display:flex;flex-direction:column}.shelf-list{list-style:none;margin:0;padding:0;gap:.4rem}.shelf-list--modal{max-height:none}.shelf-row{display:flex;align-items:center;justify-content:space-between;gap:.55rem;padding:.55rem .65rem;background:#fffdf8;border:1px solid transparent;border-radius:10px}.shelf-row--with-thumb{display:grid;grid-template-columns:2.6rem minmax(0,1fr) auto;justify-content:normal}.shelf-row__thumb{width:2.6rem;height:2.6rem;border-radius:8px;object-fit:cover;background:#efe9df;border:1px solid var(--line)}.shelf-row__thumb--empty{display:block}.shelf-row__info{display:grid;grid-gap:.1rem;gap:.1rem;min-width:0}.shelf-row__label{font-weight:600;font-size:.9rem}.shelf-row__meta{color:var(--muted);font-size:.72rem}.shelf-row--active{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:var(--accent-soft)}.shelf-row__actions{display:flex;align-items:center;flex-wrap:wrap;gap:.15rem;flex-shrink:0;justify-content:flex-end}.shelf-plan{gap:1rem}.shelf-plan__split{display:grid;grid-template-columns:1fr 1fr;grid-gap:.85rem;gap:.85rem;align-items:start}.shelf-plan__face{display:flex;flex-direction:column;gap:.55rem;min-width:0;padding:.75rem;border:1px solid var(--line);border-radius:12px;background:#fffdf8}.shelf-plan__face-head h3{margin:0;font-size:.95rem;font-weight:650}.shelf-plan__levels{display:flex;flex-direction:column;gap:.45rem}.shelf-plan__level{display:grid;grid-template-columns:3.6rem minmax(0,1fr);grid-gap:.45rem;gap:.45rem;align-items:stretch}.shelf-plan__level-label{display:grid;place-items:center;font-size:.72rem;font-weight:600;color:var(--muted);background:color-mix(in srgb,var(--panel) 55%,#efe9df);border-radius:8px;padding:.25rem;text-align:center;line-height:1.2}.shelf-plan__row{display:flex;flex-wrap:wrap;gap:.35rem;min-height:3.2rem;padding:.3rem;border-radius:8px;border:1px dashed color-mix(in srgb,var(--line) 80%,transparent);background:color-mix(in srgb,#ebe6dc 55%,white)}.shelf-plan__empty{display:grid;place-items:center;flex:1 1 auto;min-width:3.5rem;color:var(--muted);font-size:.78rem}.shelf-plan__add{flex:0 0 2.4rem;min-height:3rem;align-self:stretch;border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--accent-soft) 70%,white);color:var(--accent);font-size:1.25rem;font-weight:600;line-height:1;cursor:pointer}.shelf-plan__add:hover:not(:disabled){background:var(--accent-soft)}.shelf-plan__add:disabled{opacity:.45;cursor:not-allowed}.shelf-plan__cell{position:relative;flex:1 1 4.5rem;min-width:4.2rem;max-width:7.5rem;display:flex;flex-direction:column;border-radius:8px;border:1px solid var(--line);background:#e8e4db;color:var(--ink);overflow:hidden}.shelf-plan__cell:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.shelf-plan__cell--occupied{background:#9aa7b5;border-color:color-mix(in srgb,#5c6670 35%,var(--line));color:#1f2933}.shelf-plan__cell--selected{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:0 0 0 2px var(--accent-soft)}.shelf-plan__cell-main{display:flex;flex-direction:column;gap:.12rem;align-items:flex-start;width:100%;padding:.4rem 1.6rem .4rem .45rem;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}.shelf-plan__cell-top{display:flex;align-items:center;justify-content:space-between;gap:.25rem}.shelf-plan__cell-index{font-size:.68rem;font-weight:650;opacity:.8}.shelf-plan__cell-remove{position:absolute;top:.15rem;right:.1rem;border:none;background:transparent;color:inherit;opacity:.55;font-size:1rem;line-height:1;padding:.15rem .25rem;cursor:pointer;border-radius:4px;z-index:1}.shelf-plan__cell-remove:hover:not(:disabled){opacity:1;background:color-mix(in srgb,#b42318 18%,transparent);color:#b42318}.shelf-plan__cell-remove:disabled{opacity:.3;cursor:not-allowed}.shelf-plan__cell-label{font-size:.78rem;font-weight:600;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.shelf-plan__cell-qty{font-size:.68rem;font-weight:600;opacity:.85}.shelf-plan__detail{margin-top:.15rem}.shelf-plan__bound-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.4rem}.shelf-plan__bound-item{display:grid;grid-template-columns:2.2rem minmax(0,1fr) auto;grid-gap:.55rem;gap:.55rem;align-items:center;padding:.4rem .5rem;border-radius:8px;background:color-mix(in srgb,white 70%,transparent);border:1px solid color-mix(in srgb,var(--line) 80%,transparent)}.shelf-plan__bound-thumb{width:2.2rem;height:2.2rem;border-radius:6px;object-fit:cover;background:#efe9df;border:1px solid var(--line)}.shelf-plan__bound-thumb--empty{display:block}.shelf-plan__bound-body{display:grid;grid-gap:.1rem;gap:.1rem;min-width:0}.shelf-plan__bound-body strong{font-size:.85rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shelf-plan__bound-body span{font-size:.72rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shelf-plan__bound-qty{font-size:.8rem;font-weight:650}@media (max-width:720px){.shelf-plan__split{grid-template-columns:1fr}}.shelf-form{display:flex;flex-direction:column;gap:.55rem;padding:.75rem;border:1px solid var(--line);border-radius:12px;background:#fffdf8}.shelf-form__title{margin:0;font-size:.88rem;font-weight:600}.item-photo-field{display:grid;grid-gap:.35rem;gap:.35rem}.item-photo-field__row{display:grid;grid-template-columns:5.5rem minmax(0,1fr);grid-gap:.75rem;gap:.75rem;align-items:center}.item-photo-field__placeholder,.item-photo-field__preview{width:5.5rem;height:5.5rem;border-radius:10px;border:1px solid var(--line);background:#efe9df;object-fit:cover}.item-photo-field__placeholder{display:grid;place-items:center;color:var(--muted);font-size:.75rem;text-align:center;padding:.4rem}.item-photo-field__actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.item-photo-field__hint{margin:0;width:100%;color:var(--muted);font-size:.75rem}.shelf-form__grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.55rem;gap:.55rem}.shelf-form__grid--3{grid-template-columns:1.2fr 1fr 1fr}.level-columns{display:flex;flex-direction:column;gap:.45rem}.level-columns__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:.45rem;gap:.45rem}.level-columns__item{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;font-weight:600;color:var(--muted)}.shelf-form__hint{margin:0;font-size:.78rem;color:var(--muted);line-height:1.45}.box-levels{display:flex;flex-direction:column;gap:.75rem}.box-level__face{display:grid;grid-gap:.4rem;gap:.4rem;padding:.45rem .55rem;border-radius:8px;background:rgba(255,255,255,.45)}.box-level__face+.box-level__face{margin-top:.45rem}.box-level{border:1px solid var(--line);border-radius:10px;padding:.65rem .75rem;background:color-mix(in srgb,var(--panel) 88%,white)}.box-level__head{display:flex;align-items:center;gap:.55rem;margin-bottom:.45rem;font-size:.82rem}.box-level__head span{color:var(--muted);margin-right:auto}.box-level__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.box-level__item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.8rem;padding:.35rem .45rem;border-radius:8px;background:color-mix(in srgb,white 70%,var(--panel))}.box-level__item-actions{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-end;flex-shrink:0}.box-level__item-actions .btn{font-size:.75rem;padding:.3rem .5rem}.search__input,select.search__input{-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (max-width:640px){.shelf-form__grid,.shelf-form__grid--3{grid-template-columns:1fr}}.shelf-form__error{margin:0;color:#b42318;font-size:.78rem;font-weight:500}.shelf-form__actions{display:flex;gap:.45rem}.btn{border:1px solid var(--line);background:#fffdf8;color:var(--ink);border-radius:8px;padding:.45rem .75rem;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn:hover{border-color:color-mix(in srgb,var(--ink) 20%,var(--line))}.btn--primary{background:var(--ink);border-color:var(--ink);color:#f7f3ea}.btn--primary:hover{background:#2a3540;border-color:#2a3540}.btn--danger{background:transparent;border-color:transparent;color:#b42318;padding-inline:.45rem}.btn--danger:hover{background:#fdecea;border-color:#f5c2c0}.btn--ghost{background:transparent}.btn--block{width:100%}.viewport{position:relative;min-width:0;min-height:0;height:100%;overflow:hidden;background:#ebe6dc}.viewport__stage{position:absolute;inset:0}.viewport canvas,.viewport__stage>div{width:100%!important;height:100%!important}.viewport canvas{display:block}.viewport-controls{position:absolute;top:1rem;right:1rem;z-index:20;display:flex;align-items:center;gap:.55rem;pointer-events:auto}.viewport-controls--page{position:fixed;top:1rem;right:1rem;z-index:40;padding:.45rem .55rem;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 92%,white);box-shadow:var(--shadow)}.viewport__loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:.95rem;font-weight:500;background:#ebe6dc}.data-badge{display:inline-flex;align-items:center;padding:.35rem .7rem;border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 92%,white);box-shadow:var(--shadow);font-size:.75rem;font-weight:600;letter-spacing:.02em;max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-badge--ok{color:#1f6b3a;border-color:color-mix(in srgb,#1f6b3a 28%,var(--line))}.data-badge--muted{color:var(--muted)}.data-badge--error{color:#9b2c2c;border-color:color-mix(in srgb,#9b2c2c 30%,var(--line))}.box-context-menu{position:fixed;z-index:80;width:max-content;height:auto;min-width:10.5rem;max-width:14rem;padding:.3rem;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--panel) 94%,white);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.15rem;pointer-events:auto}.box-context-menu__item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;text-align:left;padding:.5rem .7rem;border-radius:7px;font:inherit;font-size:.82rem;font-weight:600;color:var(--ink);cursor:pointer}.box-context-menu__item:hover:not(:disabled){background:color-mix(in srgb,var(--accent,#c45c26) 12%,white)}.box-context-menu__item:disabled{opacity:.45;cursor:not-allowed}.box-context-menu__item--danger{color:#9b2c2c}.label-switch{display:inline-flex;align-items:center;gap:.55rem;padding:.4rem .7rem .4rem .85rem;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--panel) 92%,white);box-shadow:var(--shadow);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.label-switch__text{font-size:.82rem;font-weight:600;color:var(--ink)}.switch{position:relative;width:2.4rem;height:1.35rem;border:none;border-radius:999px;padding:0;background:#c9c3b6;cursor:pointer;transition:background .18s ease}.switch--on{background:var(--accent)}.switch__thumb{position:absolute;top:.15rem;left:.15rem;width:1.05rem;height:1.05rem;border-radius:50%;background:#fffdf8;box-shadow:0 1px 3px rgba(28,36,44,.25);transition:transform .18s ease}.switch--on .switch__thumb{transform:translateX(1.05rem)}.view-mode{display:inline-flex;padding:.25rem;gap:.2rem;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--panel) 92%,white);box-shadow:var(--shadow)}.view-mode__btn{border:none;background:transparent;color:var(--muted);border-radius:999px;padding:.45rem .9rem;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease}.view-mode__btn:hover{color:var(--ink)}.view-mode__btn--active{background:var(--ink);color:#f7f3ea}.view-mode__btn--active:hover{color:#f7f3ea}.mobile-bar{display:none}.app--mobile{grid-template-columns:1fr}.app--mobile,.app--mobile.app--no-scene{grid-template-rows:auto 1fr}.app--mobile.app--no-scene .sidebar{max-width:none;margin-inline:0}.app--mobile .mobile-bar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:.65rem;gap:.65rem;padding:calc(.55rem + env(safe-area-inset-top, 0px)) .75rem .55rem;background:color-mix(in srgb,var(--panel) 94%,white);border-bottom:1px solid var(--line);z-index:30}.mobile-bar__menu{border:1px solid var(--line);background:#fffdf8;border-radius:999px;padding:.45rem .8rem;font-size:.8rem;font-weight:600;cursor:pointer}.mobile-bar__menu--spacer{visibility:hidden;pointer-events:none}.mobile-bar__title{display:flex;flex-direction:column;min-width:0}.mobile-bar__eyebrow{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:600}.mobile-bar__title strong{font-family:"IBM Plex Serif",serif;font-size:1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-bar__scan{border:1px solid var(--line);background:var(--ink);color:#f7f3ea;border-radius:999px;padding:.45rem .85rem;font-size:.8rem;font-weight:600;cursor:pointer}.mobile-bar__scan:hover{filter:brightness(1.08)}.app--mobile .viewport{min-height:0}.app--mobile .viewport-controls:not(.viewport-controls--page){top:auto;bottom:calc(.85rem + env(safe-area-inset-bottom, 0px));right:.75rem;left:.75rem;justify-content:flex-end;flex-wrap:wrap}.app--mobile .viewport-controls--page{top:calc(4.25rem + env(safe-area-inset-top, 0px));right:.75rem}.app--mobile .sidebar-sheet{position:fixed;inset:0;z-index:60;pointer-events:none}.app--mobile .sidebar-sheet--open{pointer-events:auto}.app--mobile .sidebar-sheet__backdrop{position:absolute;inset:0;border:0;background:rgba(28,36,44,.35);opacity:0;transition:opacity .2s ease;cursor:pointer}.app--mobile .sidebar-sheet--open .sidebar-sheet__backdrop{opacity:1}.app--mobile .sidebar--sheet{position:absolute;left:0;right:0;bottom:0;max-height:min(78dvh,640px);border-right:none;border-top:1px solid var(--line);border-radius:18px 18px 0 0;box-shadow:0 -12px 40px rgba(28,36,44,.16);transform:translateY(105%);transition:transform .22s ease;padding-bottom:calc(1rem + env(safe-area-inset-bottom, 0px));pointer-events:auto}.app--mobile .sidebar-sheet--open .sidebar--sheet{transform:translateY(0)}.sidebar__sheet-handle{width:2.5rem;height:.28rem;border-radius:999px;background:color-mix(in srgb,var(--muted) 35%,var(--line));margin:.15rem auto .35rem}.sidebar__brand-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.sidebar__sheet-close{border:none;background:transparent;color:var(--muted);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 .2rem}.app--mobile .item-list{max-height:none;flex:1 1}html.mobile-ui,html.mobile-ui body{overscroll-behavior:none;touch-action:manipulation}.app--mobile .modal{width:min(100%,100vw);max-height:min(92dvh,100%);margin:0;border-radius:16px 16px 0 0;align-self:end}.app--mobile .modal-root{place-items:end center;padding:0}.app--mobile .box-context-menu{max-width:calc(100vw - 1.5rem)}