@font-face{font-family:SteveSans;src:url('/assets/fonts/SteveSans.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:SteveSans;src:url('/assets/fonts/SteveSans-Italic.woff2') format('woff2');font-style:italic;font-weight:100 900;font-display:swap}
:root{--sidebar-width:15.5rem;--bookmark-bar-height:3.55rem;--mobile-appbar-height:3.5rem;--page-gap:1rem;--page-row:64px;--page-row-step:80px;--app-blue:#315c9b}
html[data-bs-theme="dark"]{color-scheme:dark}
html,body{min-height:100%}
body{font-family:SteveSans,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bs-tertiary-bg);min-height:100vh}
button,input,select,textarea{font-family:inherit}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:.72rem;font-weight:800;color:var(--bs-primary)}
.brand-mark{width:2.25rem;height:2.25rem;border-radius:.7rem;display:inline-grid;place-items:center;color:#fff;background:linear-gradient(145deg,#4779bc,#234773);box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);z-index:1040;background:var(--bs-body-bg);border-right:1px solid var(--bs-border-color);flex-direction:column;padding:1rem}.sidebar-brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--bs-body-color);font-size:1.2rem;font-weight:800;padding:.25rem .25rem 1.4rem}.sidebar-nav{display:grid;gap:.25rem}.sidebar-nav a,.sidebar-nav button{appearance:none;border:0;background:transparent;width:100%;display:flex;align-items:center;gap:.8rem;border-radius:.72rem;padding:.72rem .8rem;text-decoration:none;color:var(--bs-secondary-color);text-align:left}.sidebar-nav a:hover,.sidebar-nav button:hover{background:var(--bs-tertiary-bg);color:var(--bs-body-color)}.sidebar-nav .active{background:var(--bs-primary-bg-subtle);color:var(--bs-primary);font-weight:700}.sidebar-nav i{width:1.2rem;text-align:center;font-size:1.05rem}.sidebar-account{margin-top:auto;border-top:1px solid var(--bs-border-color);padding:.9rem .55rem .2rem}.sidebar-user{font-weight:700;margin-bottom:.25rem}.sidebar-account a{font-size:.9rem;text-decoration:none;color:var(--bs-secondary-color)}
.app-shell-main{min-height:100vh;margin-left:var(--sidebar-width)}.app-main{min-height:calc(100vh - var(--bookmark-bar-height));padding:0}.bookmark-topbar{height:var(--bookmark-bar-height);position:sticky;top:0;z-index:1030;display:flex;align-items:center;background:color-mix(in srgb,var(--bs-body-bg) 94%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--bs-border-color)}.bookmark-menu-scroll{display:flex;align-items:center;gap:.2rem;min-width:0;overflow-x:auto;overflow-y:visible;padding:.45rem .6rem .45rem .85rem;scrollbar-width:none;flex:1}.bookmark-menu-scroll::-webkit-scrollbar{display:none}.bookmark-root-link,.bookmark-menu-folder>summary{height:2.45rem;display:flex;align-items:center;gap:.45rem;padding:0 .7rem;border-radius:.6rem;color:var(--bs-body-color);text-decoration:none;white-space:nowrap;cursor:pointer;list-style:none}.bookmark-menu-folder>summary::-webkit-details-marker{display:none}.bookmark-root-link:hover,.bookmark-menu-folder>summary:hover,.bookmark-menu-folder[open]>summary{background:var(--bs-tertiary-bg)}.bookmark-root-link img,.bookmark-menu-link img{object-fit:contain;border-radius:3px}.bookmark-root-link>i,.bookmark-menu-folder>summary>i:first-child{color:var(--bs-secondary-color)}.bookmark-menu-folder{position:relative}.bookmark-menu-popover{position:fixed;top:calc(100% + .3rem);left:0;z-index:1080;width:max-content;min-width:15rem;max-width:22rem;padding:.4rem;border-radius:.75rem;background:var(--bs-body-bg);border:1px solid var(--bs-border-color);box-shadow:0 .8rem 2.2rem rgba(0,0,0,.16)}.bookmark-menu-link{display:flex;align-items:center;gap:.6rem;min-height:2.35rem;padding:.45rem .6rem;border-radius:.5rem;text-decoration:none;color:var(--bs-body-color);white-space:nowrap;overflow:hidden}.bookmark-menu-link span:last-child{overflow:hidden;text-overflow:ellipsis}.bookmark-menu-link:hover{background:var(--bs-tertiary-bg)}.bookmark-menu-link>i,.bookmark-menu-link>img,.bookmark-menu-icon-spacer{width:1rem;flex:0 0 1rem;text-align:center}.bookmark-menu-folder.nested{position:relative}.bookmark-menu-folder.nested>summary{height:2.35rem;padding:.45rem .6rem}.nested-popover{}.submenu-chevron{font-size:.75rem}.bookmark-menu-empty{padding:0 .5rem;color:var(--bs-secondary-color);font-size:.9rem}.bookmark-quick-add{border:0;background:transparent;color:var(--bs-secondary-color);width:3.4rem;height:100%;border-left:1px solid var(--bs-border-color)}.bookmark-quick-add:hover{color:var(--bs-primary);background:var(--bs-tertiary-bg)}
.mobile-appbar{height:var(--mobile-appbar-height);position:sticky;top:0;z-index:1040;align-items:center;padding:.4rem .65rem;background:var(--bs-body-bg);border-bottom:1px solid var(--bs-border-color)}.mobile-appbar .btn-link{font-size:1.45rem;color:var(--bs-body-color);padding:.15rem .4rem}.mobile-brand{display:flex;align-items:center;gap:.45rem;margin:auto;text-decoration:none;color:var(--bs-body-color);font-weight:800}.mobile-brand i{color:var(--bs-primary)}.mobile-app-nav{display:grid;gap:.35rem}.mobile-app-nav a{display:flex;align-items:center;gap:.7rem;padding:.75rem;border-radius:.6rem;text-decoration:none;color:var(--bs-body-color)}.mobile-app-nav a.active{background:var(--bs-primary-bg-subtle);color:var(--bs-primary);font-weight:700}
.bookmark-page{position:relative;height:calc(100vh - var(--bookmark-bar-height));min-height:0;background-image:var(--page-wallpaper,none);background-position:center;background-repeat:no-repeat;background-size:var(--page-wallpaper-size,cover);background-color:var(--bs-tertiary-bg);overflow:auto}.bookmark-page-shade{position:absolute;inset:0;pointer-events:none;background:color-mix(in srgb,var(--page-overlay-color,black) var(--page-overlay-opacity,0%),transparent)}.bookmark-canvas{position:relative;z-index:1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:var(--page-row);gap:var(--page-gap);padding:1.2rem;min-height:calc(100vh - var(--bookmark-bar-height));align-items:start}.page-item{display:none;position:relative;grid-column:var(--desktop-col)/span var(--desktop-span);grid-row-start:var(--desktop-row);min-width:0;align-self:start;border:1px solid var(--bs-border-color);border-radius:1rem;background:rgba(var(--bs-body-bg-rgb),.82);box-shadow:0 .4rem 1.4rem rgba(0,0,0,.08);backdrop-filter:blur(13px);overflow:visible}.page-item.show-desktop{display:block}.page-group{padding:1rem}.page-group-heading{font-size:.92rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;margin:0 0 .75rem;color:var(--bs-secondary-color)}.page-group-links{display:grid;grid-template-columns:repeat(var(--group-columns),minmax(0,1fr));gap:.5rem}.page-group[data-density="loose"] .page-group-links{gap:.9rem}.page-group[data-density="tight"] .page-group-links{gap:.22rem}.bookmark-tile{display:flex;align-items:center;gap:.55rem;min-width:0;border-radius:.65rem;padding:.55rem;text-decoration:none;color:var(--bs-body-color);line-height:1.15}.bookmark-tile:hover{background:rgba(var(--bs-tertiary-bg-rgb),.72)}.page-group[data-density="loose"] .bookmark-tile{padding:.75rem}.page-group[data-density="tight"] .bookmark-tile{padding:.32rem .4rem}.bookmark-tile span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(.78rem + (var(--bookmark-icon-size) - 16px)*.004)}.bookmark-favicon,.bookmark-tile-icon{width:var(--bookmark-icon-size);height:var(--bookmark-icon-size);flex:0 0 var(--bookmark-icon-size);object-fit:contain}.bookmark-tile-icon{display:grid;place-items:center;font-size:var(--bookmark-icon-size);color:var(--bs-primary)}.group-empty{padding:.65rem;color:var(--bs-secondary-color);font-size:.88rem}.page-widget{padding:1.05rem 1.15rem}.ip-widget{display:flex;flex-direction:column}.ip-value{font-size:clamp(1.45rem,2.2vw,2.5rem);font-weight:800;letter-spacing:-.03em}.ip-caption{font-size:.8rem;color:var(--bs-secondary-color)}.custom-text-widget{white-space:normal;font-size:1rem;line-height:1.35}.empty-canvas{grid-column:1/-1;place-self:center;text-align:center;color:var(--bs-secondary-color);max-width:28rem;padding:3rem}.empty-canvas i{font-size:3rem;color:var(--bs-primary);opacity:.7}.empty-canvas h1{font-size:1.5rem;margin-top:.8rem;color:var(--bs-body-color)}
.page-item-handle,.page-item-edit{display:none;position:absolute;z-index:8;width:2rem;height:2rem;border:1px solid var(--bs-border-color);background:var(--bs-body-bg);color:var(--bs-body-color);border-radius:.55rem;box-shadow:0 .2rem .6rem rgba(0,0,0,.12)}.page-item-handle{left:.55rem;top:.55rem;cursor:grab}.page-item-edit{right:.55rem;top:.55rem}.page-editor .page-item{outline:1px dashed transparent}.page-editor .page-group-heading{padding-left:2rem;padding-right:2rem}.page-editor .page-item-edit{display:grid;place-items:center}.layout-reorganizing .page-item{outline-color:var(--bs-primary);outline-offset:3px}.layout-reorganizing .page-item-handle{display:grid;place-items:center}.layout-reorganizing .page-item-edit{display:none}.layout-reorganizing .bookmark-tile{cursor:grab}.layout-reorganizing .bookmark-tile:hover{outline:1px dashed var(--bs-primary)}.layout-reorganizing .page-group-links.drag-over{outline:2px dashed var(--bs-primary);outline-offset:3px;border-radius:.55rem}.layout-reorganizing .bookmark-canvas{background-image:linear-gradient(to right,rgba(var(--bs-primary-rgb),.08) 1px,transparent 1px),linear-gradient(to bottom,rgba(var(--bs-primary-rgb),.08) 1px,transparent 1px);background-size:calc((100% - 11rem)/12 + 1rem) var(--page-row-step)}.edit-toolbar{position:sticky;top:0;z-index:1025;display:flex;align-items:center;gap:.5rem;padding:.55rem .8rem;background:rgba(var(--bs-dark-rgb),.76);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.13)}.page-editor{height:calc(100vh - var(--bookmark-bar-height));min-height:0}.page-editor .bookmark-canvas{min-height:calc(100vh - var(--bookmark-bar-height) - 3.6rem)}.page-editor[data-layout-target="desktop"] .page-item{display:none;grid-column:var(--desktop-col)/span var(--desktop-span);grid-row-start:var(--desktop-row)}.page-editor[data-layout-target="desktop"] .page-item.show-desktop{display:block}.page-editor[data-layout-target="mobile"] .bookmark-canvas{grid-template-columns:repeat(4,minmax(0,1fr));max-width:34rem;margin:0 auto;background-color:rgba(var(--bs-body-bg-rgb),.08)}.page-editor[data-layout-target="mobile"] .page-item{display:none;grid-column:var(--mobile-col)/span 4;grid-row-start:var(--mobile-row)}.page-editor[data-layout-target="mobile"] .page-item.show-mobile{display:block}.page-editor[data-layout-target="mobile"] .page-group-links{grid-template-columns:repeat(var(--group-columns-mobile),minmax(0,1fr))}
.settings-page{max-width:88rem}.settings-card{border-radius:1rem}.theme-options{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.theme-options button{border:1px solid var(--bs-border-color);background:var(--bs-body-bg);color:var(--bs-body-color);border-radius:.85rem;padding:1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.theme-options button.active{border-color:var(--bs-primary);box-shadow:0 0 0 .2rem var(--bs-primary-bg-subtle)}.theme-options i{font-size:1.5rem}.range-value{font-size:.78rem;color:var(--bs-secondary-color);text-align:right}.icon-mode-options{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.icon-mode-options label{position:relative}.icon-mode-options input{position:absolute;opacity:0;pointer-events:none}.icon-mode-options span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;min-height:4.4rem;border:1px solid var(--bs-border-color);border-radius:.7rem;cursor:pointer;font-size:.85rem}.icon-mode-options input:checked+span{border-color:var(--bs-primary);background:var(--bs-primary-bg-subtle);color:var(--bs-primary)}.bookmark-picker{max-height:17rem;overflow:auto;border:1px solid var(--bs-border-color);border-radius:.7rem;padding:.45rem}.bookmark-picker label{display:flex;gap:.55rem;align-items:center;padding:.42rem;border-radius:.45rem}.bookmark-picker label:hover{background:var(--bs-tertiary-bg)}.menu-editor{width:min(92vw,31rem)!important}.library-tree{display:grid;gap:.15rem}.library-row{--indent:calc(var(--tree-depth)*1.05rem);display:flex;align-items:center;gap:.55rem;min-height:2.3rem;padding:.3rem .2rem .3rem calc(.3rem + var(--indent));border-radius:.45rem}.library-row:hover{background:var(--bs-tertiary-bg)}.library-folder>i{color:var(--bs-warning)}.library-bookmark{font-size:.9rem;color:var(--bs-secondary-color)}.library-row .btn-link{padding:.2rem .35rem;text-decoration:none}
.auth-body{display:grid;place-items:center;padding:1rem;background:radial-gradient(circle at 50% 0,var(--bs-primary-bg-subtle),var(--bs-tertiary-bg) 50%)}.auth-card{width:min(100%,28rem);border-radius:1.1rem}.auth-brand{display:flex;align-items:center;gap:.7rem;font-size:1.35rem;font-weight:800;margin-bottom:2rem}
@media(max-width:767.98px){:root{--bookmark-bar-height:3.25rem}.app-shell-main{margin-left:0}.bookmark-topbar{top:var(--mobile-appbar-height)}.bookmark-menu-scroll{padding-left:.45rem}.bookmark-root-link,.bookmark-menu-folder>summary{height:2.25rem;padding:0 .55rem}.bookmark-root-link span,.bookmark-menu-folder>summary span{max-width:9rem;overflow:hidden;text-overflow:ellipsis}.bookmark-quick-add{display:none}.app-main{min-height:calc(100vh - var(--mobile-appbar-height) - var(--bookmark-bar-height))}.bookmark-page{height:calc(100vh - var(--mobile-appbar-height) - var(--bookmark-bar-height));min-height:0}.bookmark-canvas{grid-template-columns:repeat(4,minmax(0,1fr));padding:.75rem;gap:.7rem;min-height:calc(100vh - var(--mobile-appbar-height) - var(--bookmark-bar-height))}.page-item{grid-column:var(--mobile-col)/span 4;grid-row-start:var(--mobile-row)}.page-item.show-desktop{display:none}.page-item.show-mobile{display:block}.page-group{padding:.8rem}.page-group-links{grid-template-columns:repeat(var(--group-columns-mobile),minmax(0,1fr))}.bookmark-tile{padding:.48rem}.edit-toolbar{top:0;overflow-x:auto;flex-wrap:nowrap}.edit-toolbar>.d-flex{margin-left:0!important}.page-editor .bookmark-canvas{min-height:calc(100vh - var(--mobile-appbar-height) - var(--bookmark-bar-height) - 3.6rem)}.theme-options{grid-template-columns:1fr}.theme-options button{flex-direction:row;justify-content:flex-start}.icon-mode-options{grid-template-columns:1fr}.icon-mode-options span{min-height:auto;flex-direction:row;justify-content:flex-start;padding:.7rem}.nested-popover{left:1rem;top:100%}.bookmark-menu-popover{position:fixed;left:.5rem!important;right:.5rem;width:auto;max-width:none;top:calc(var(--mobile-appbar-height) + var(--bookmark-bar-height) - .2rem)}}
@media(min-width:768px) and (max-width:1050px){:root{--sidebar-width:12.5rem}.sidebar-brand{font-size:1.05rem}.sidebar-nav a,.sidebar-nav button{padding:.68rem .55rem}.bookmark-canvas{padding:1rem}}

/* Minimal application chrome. Desktop navigation stays off-canvas until requested. */
@media(min-width:768px){
.app-sidebar{transform:translateX(-100%);transition:transform .2s ease;box-shadow:.8rem 0 2.2rem rgba(0,0,0,.12)}
body.sidebar-open .app-sidebar{transform:translateX(0)}
.app-shell-main{margin-left:0}
.desktop-chrome-controls{position:fixed;top:.55rem;left:.65rem;z-index:1060;gap:.25rem;transition:left .2s ease}
body.sidebar-open .desktop-chrome-controls{left:calc(var(--sidebar-width) + .65rem)}
.chrome-control{width:2.35rem;height:2.35rem;border:1px solid var(--bs-border-color);border-radius:.62rem;background:color-mix(in srgb,var(--bs-body-bg) 92%,transparent);color:var(--bs-body-color);display:grid;place-items:center;box-shadow:0 .15rem .5rem rgba(0,0,0,.08);backdrop-filter:blur(10px)}
.chrome-control:hover{background:var(--bs-tertiary-bg);color:var(--bs-primary)}
.sidebar-backdrop{position:fixed;inset:0;z-index:1035;background:rgba(0,0,0,.2);opacity:0;pointer-events:none;transition:opacity .2s ease}
body.sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}
.bookmark-menu-scroll{padding-left:6rem}
}

/* The top bookmark menu can be hidden while its gutter remains reserved for chrome controls. */
.bookmark-topbar{transition:opacity .14s ease,border-color .14s ease}
body.top-menu-hidden .bookmark-topbar{opacity:0;overflow:hidden;border-bottom-color:transparent;pointer-events:none}

/* Empty state occupies the usable canvas instead of the first implicit grid row. */
.empty-canvas{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;place-self:auto;padding:3rem 1rem;pointer-events:none}
.empty-canvas a,.empty-canvas button{pointer-events:auto}

@media(max-width:767.98px){
.mobile-appbar{display:flex}
}
@media(min-width:768px){
.page-editor .edit-toolbar{padding-left:6rem}
.settings-page{padding-left:6rem!important}
}
