:root{
  --shv-bg:#f5f5f5;
  --shv-surface:#ffffff;
  --shv-surface-2:#fafafa;
  --shv-text:#171717;
  --shv-muted:#666666;
  --shv-border:#dedede;
  --shv-shadow:0 8px 24px rgba(0,0,0,.06);
  --shv-accent:#7fbf00;
  --shv-accent-soft:#eef8d6;
  --shv-accent-hover:#e4f2c0;
  --shv-danger:#d14343;
  --shv-danger-soft:#fff0f0;
  --shv-danger-hover:#fde4e4;
  --shv-hover:#f2f2f2;
  --shv-row-hover:#f6faee;
  --shv-row-selected:#f1f7e4;
  --shv-row-selected-hover:#edf5dc;
  --shv-header-h:56px;
  --shv-side-w:248px;
  --shv-detail-w:340px;
  --shv-footer-h:44px;
  --shv-space-xs:8px;
  --shv-space-sm:12px;
  --shv-space-md:16px;
  --shv-space-lg:20px;
  --shv-panel-gap-y:16px;
  --shv-panel-pad-y:16px;
  --shv-panel-pad-x:16px;
}
@media (prefers-color-scheme: dark){
  :root{
    --shv-bg:#121212;
    --shv-surface:#1b1b1b;
    --shv-surface-2:#232323;
    --shv-text:#f1f1f1;
    --shv-muted:#a5a5a5;
    --shv-border:#343434;
    --shv-shadow:none;
    --shv-accent:#9ad824;
    --shv-accent-soft:#1d2b09;
    --shv-accent-hover:#2a3d11;
    --shv-danger:#ff6a6a;
    --shv-danger-soft:#341414;
    --shv-danger-hover:#472020;
    --shv-hover:#242424;
    --shv-row-hover:rgba(154,216,36,.045);
    --shv-row-selected:rgba(154,216,36,.08);
    --shv-row-selected-hover:rgba(154,216,36,.11);
  }
}
body.shv-app{background:var(--shv-bg);color:var(--shv-text)}body.shv-app:not(.shv-share-page){overflow:hidden}
body.shv-app .uik-wrap{max-width:none;padding:0;min-height:100vh;min-height:100dvh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
.shv-ico{font-family:"Material Symbols Outlined";font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;font-size:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.shv-header{position:sticky;top:0;z-index:30;height:var(--shv-header-h);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 14px;background:var(--shv-surface);border-bottom:1px solid var(--shv-border)}
.shv-header__left,.shv-header__right{display:flex;align-items:center;gap:14px;min-width:0}
.shv-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--shv-text);font-weight:700;min-width:0}
.shv-logo__iconimg{width:24px;height:24px;border-radius:8px;object-fit:contain}
.shv-logo__images{display:inline-flex;align-items:center;max-height:28px}
.shv-logo__image{max-height:28px;width:auto;display:block}
.shv-logo__image--dark{display:none}
@media (prefers-color-scheme: dark){.shv-logo__image--light{display:none}.shv-logo__image--dark{display:block}}
.shv-logo__text{letter-spacing:.2px;white-space:nowrap}.shv-logo__text--sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.shv-nav{display:flex;align-items:center;gap:4px}
.shv-nav__item{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;text-decoration:none;color:var(--shv-muted);font-size:14px}
.shv-nav__item:hover{background:var(--shv-surface-2);color:var(--shv-text)}
.shv-nav__item.is-active{background:var(--shv-surface-2);color:var(--shv-text);border:1px solid var(--shv-border)}
.shv-user{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--shv-border);border-radius:999px;background:var(--shv-surface-2);min-width:0;text-decoration:none;color:var(--shv-text)}
.shv-user__text{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.shv-user__sep,.shv-user__role{font-size:13px;color:var(--shv-muted)}
.shv-btn,.shv-iconbtn{height:36px;border:1px solid var(--shv-border);background:var(--shv-surface-2);color:var(--shv-text);border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-decoration:none;padding:0 12px;white-space:nowrap;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}
.shv-iconbtn{width:36px;padding:0}
.shv-btn:hover,.shv-iconbtn:hover{background:var(--shv-hover);border-color:var(--shv-border);color:var(--shv-text)}
.shv-btn--primary{background:var(--shv-accent-soft);border-color:rgba(127,191,0,.25)}
.shv-btn--primary:hover{background:var(--shv-accent-hover);border-color:rgba(127,191,0,.32)}
.shv-btn--danger{background:var(--shv-danger-soft);border-color:rgba(209,67,67,.25);color:var(--shv-danger)}
.shv-btn--danger:hover{background:var(--shv-danger-hover);border-color:rgba(209,67,67,.34);color:var(--shv-danger)}
.shv-btn--ghost,.shv-iconbtn--ghost{background:transparent}
.shv-btn--block{width:100%}
.shv-shell{display:grid;grid-template-columns:var(--shv-side-w) minmax(0,1fr);flex:1 1 auto;min-height:0;height:calc(100vh - var(--shv-header-h) - var(--shv-footer-h));height:calc(100dvh - var(--shv-header-h) - var(--shv-footer-h));background:var(--shv-bg);overflow:hidden}
.shv-shell--detail{grid-template-columns:var(--shv-side-w) minmax(0,1fr) var(--shv-detail-w)}
.shv-sidebar,.shv-main,.shv-detail{background:var(--shv-surface);min-height:0;height:100%}.shv-sidebar{border-right:1px solid var(--shv-border);overflow-y:scroll;overflow-x:hidden}.shv-main{min-width:0;display:flex;flex-direction:column;overflow:hidden}.shv-detail{border-left:1px solid var(--shv-border);overflow:hidden;position:relative;top:auto;align-self:stretch;display:flex;flex-direction:column}
.shv-sidebar__section{padding:12px;border-bottom:1px solid var(--shv-border)}
.shv-sidebar__title,.shv-help,.shv-sub{font-size:12px;color:var(--shv-muted)}
.shv-sidebar__title{display:block;margin:0 0 10px;font-weight:700;line-height:1.4}
.shv-group{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:10px;text-decoration:none;color:var(--shv-text);font-size:14px}
.shv-group:hover{background:var(--shv-surface-2)}
.shv-group.is-active{background:var(--shv-surface-2);border:1px solid var(--shv-border)}
.shv-group__label{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shv-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:18px;padding:0 6px;border-radius:999px;background:var(--shv-surface-2);color:var(--shv-muted);font-size:12px;border:1px solid var(--shv-border)}
.shv-count--accent{background:var(--shv-accent-soft);color:#557f00;border-color:rgba(127,191,0,.25)}
.shv-tree summary{list-style:none}.shv-tree summary::-webkit-details-marker{display:none}.shv-tree__body{padding-left:14px}.shv-group--child{padding-left:20px}
.shv-sidebar__foot{padding:12px;border-top:1px solid var(--shv-border)}
.shv-sidebar-usage{display:grid;gap:6px;padding-top:10px;border-top:1px dashed var(--shv-border);margin-top:10px}.shv-sidebar-usage:first-of-type{border-top:0;padding-top:0;margin-top:0}
.shv-sidebar-usage__head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--shv-muted)}.shv-sidebar-usage__ratio{font-size:13px}
.shv-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid var(--shv-border)}
.shv-toolbar__left,.shv-toolbar__right{display:flex;align-items:center;gap:8px;min-width:0}
.shv-toolbar__left{flex:1 1 auto;min-width:0}
.shv-toolbar__right{flex:0 0 auto}
.shv-input{width:min(520px,100%);height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--shv-border);background:var(--shv-surface-2);color:var(--shv-text)}

.shv-toolbar-searchline{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:nowrap;width:100%}
.shv-searchbox{position:relative;display:flex;align-items:center;min-width:0;flex:1 1 320px;max-width:420px}
.shv-searchbox__icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--shv-muted)}
.shv-searchbox__input{width:100%;padding-left:38px}
.shv-searchbox__input::-webkit-search-decoration,.shv-searchbox__input::-webkit-search-cancel-button,.shv-searchbox__input::-webkit-search-results-button,.shv-searchbox__input::-webkit-search-results-decoration{display:none}
.shv-searchbox__input::placeholder{color:transparent}
.shv-panel{background:var(--shv-surface);border:1px solid var(--shv-border);border-radius:5px;overflow:hidden}
.shv-panel__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px var(--shv-panel-pad-x);border-bottom:1px solid var(--shv-border);font-size:14px;font-weight:700}
.shv-panel__body{padding:var(--shv-panel-pad-y) var(--shv-panel-pad-x)}.shv-panel__body--table{padding:0}
.shv-tablewrap{padding:12px;overflow:auto}
.shv-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--shv-surface)}
.shv-table th,.shv-table td{padding:10px 12px;border-bottom:1px solid var(--shv-border);vertical-align:middle;text-align:left}
.shv-table th{font-size:12px;color:var(--shv-muted);font-weight:700;background:var(--shv-surface);position:sticky;top:0;z-index:1}
.shv-row:hover{background:var(--shv-row-hover)}
.shv-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.shv-pagehead__title{font-size:18px;line-height:1.2;margin:0}.shv-pagehead__sub{font-size:12px;color:var(--shv-muted);margin-top:4px}
.shv-detail__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--shv-border);flex:0 0 auto}
.shv-detail__title{font-size:15px;line-height:1.35;margin:0 0 4px}.shv-detail__body{padding:14px 16px;flex:1 1 auto;min-height:0;overflow-y:scroll;overflow-x:hidden}.shv-detail__sectiontitle{font-size:12px;color:var(--shv-muted);margin-bottom:8px}.shv-kv{display:grid;grid-template-columns:112px 1fr;gap:8px 10px;margin:0}.shv-kv dt{font-size:12px;color:var(--shv-muted)}.shv-kv dd{margin:0;font-size:13px;word-break:break-word}
.shv-history{display:grid;gap:8px}.shv-history__item{padding:10px;border:1px solid var(--shv-border);border-radius:12px;background:var(--shv-surface-2)}.shv-history__meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--shv-muted)}.shv-history__name{font-size:13px;font-weight:600;margin-top:4px;word-break:break-word}.shv-history__empty{padding:10px;border:1px dashed var(--shv-border);border-radius:12px;color:var(--shv-muted);font-size:12px}
.shv-pagewrap{padding:12px;display:grid;gap:12px;flex:1 1 auto;min-height:0;overflow-y:scroll;overflow-x:hidden;scrollbar-gutter:stable;align-content:start;grid-auto-rows:min-content}
.shv-pagehead-strip{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.shv-pagehead-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--shv-muted)}
.shv-side-tree{display:grid;gap:4px;margin-top:10px}
.shv-foldertiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.shv-foldertile{display:grid;gap:10px;align-content:start;padding:16px;border:1px solid var(--shv-border);border-radius:5px;background:var(--shv-surface-2);text-decoration:none;color:var(--shv-text);min-height:140px;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}
.shv-foldertile:hover{background:var(--shv-hover);border-color:rgba(127,191,0,.28);transform:translateY(-1px)}
.shv-foldertile__icon{width:56px;height:56px;border-radius:5px;border:1px solid rgba(127,191,0,.25);background:var(--shv-accent-soft);display:grid;place-items:center;color:#557f00}.shv-foldertile__icon .shv-ico{font-size:28px}
.shv-foldertile__title{font-weight:700;font-size:14px;line-height:1.45;word-break:break-word}.shv-foldertile__meta{font-size:12px;color:var(--shv-muted);line-height:1.6}
.shv-photo-grid{--shv-photo-min:210px;--shv-photo-body-gap:10px;--shv-photo-body-pad:12px;--shv-photo-name-size:13px;--shv-photo-chip-height:24px;--shv-photo-chip-pad:0 7px;--shv-photo-chip-font:10px;--shv-photo-chip-icon-size:12px;--shv-photo-menu-btn-size:28px;display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--shv-photo-min),1fr));gap:12px}.shv-photo-grid--share{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.shv-photo-grid.is-card-size-large{--shv-photo-min:258px;--shv-photo-body-gap:10px;--shv-photo-body-pad:12px;--shv-photo-name-size:13px;--shv-photo-chip-height:24px;--shv-photo-chip-pad:0 7px;--shv-photo-chip-font:10px;--shv-photo-chip-icon-size:12px;--shv-photo-menu-btn-size:28px}
.shv-photo-grid.is-card-size-medium{--shv-photo-min:210px;--shv-photo-body-gap:9px;--shv-photo-body-pad:11px;--shv-photo-name-size:12px;--shv-photo-chip-height:22px;--shv-photo-chip-pad:0 6px;--shv-photo-chip-font:9px;--shv-photo-chip-icon-size:11px;--shv-photo-menu-btn-size:26px}
.shv-photo-grid.is-card-size-small{--shv-photo-min:172px;--shv-photo-body-gap:8px;--shv-photo-body-pad:9px;--shv-photo-name-size:11px;--shv-photo-chip-height:20px;--shv-photo-chip-pad:0 5px;--shv-photo-chip-font:9px;--shv-photo-chip-icon-size:10px;--shv-photo-menu-btn-size:24px}
.shv-photo-card{display:flex;flex-direction:column;border:1px solid var(--shv-border);border-radius:5px;background:var(--shv-surface-2);overflow:visible}
.shv-photo-card__thumb{display:grid;place-items:center;width:100%;aspect-ratio:1/1;border:0;background:var(--shv-surface-2);padding:0;cursor:pointer;overflow:hidden}.shv-photo-card__thumb img{width:100%;height:100%;object-fit:contain;display:block;background:transparent}
.shv-photo-card__body{display:grid;gap:var(--shv-photo-body-gap);padding:var(--shv-photo-body-pad)}.shv-photo-card__name{font-weight:700;font-size:var(--shv-photo-name-size);line-height:1.5;word-break:break-word}.shv-photo-card__meta{font-size:12px;color:var(--shv-muted)}.shv-photo-card__actions{display:flex;gap:8px;flex-wrap:wrap}
.shv-photo-card__status .shv-chip{height:var(--shv-photo-chip-height);padding:var(--shv-photo-chip-pad);font-size:var(--shv-photo-chip-font)}
.shv-photo-card__status .shv-chip__icon{font-size:var(--shv-photo-chip-icon-size)}
.shv-settings-table{display:grid;gap:0;padding:0}.shv-settings-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid var(--shv-border)}.shv-settings-row:last-child{border-bottom:0}.shv-settings-row__body{display:grid;gap:4px}.shv-settings-row__title{font-size:14px;font-weight:700}.shv-settings-row__meta{font-size:12px;color:var(--shv-muted);line-height:1.6}
.shv-pill{display:inline-flex;align-items:center;justify-content:center;height:24px;padding:0 10px;border-radius:999px;border:1px solid var(--shv-border);font-size:12px;background:var(--shv-surface-2);color:var(--shv-muted)}.shv-pill.is-accent{background:var(--shv-accent-soft);border-color:rgba(127,191,0,.25);color:#557f00}.shv-pill.is-danger{background:var(--shv-danger-soft);border-color:rgba(209,67,67,.25);color:var(--shv-danger)}
.shv-shareurl-cell a{display:block;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:inherit;text-decoration:none}.shv-shareurl-cell a:hover{text-decoration:underline}
.shv-selection-counts{font-size:12px;color:var(--shv-muted)}
.shv-guide{display:grid;gap:16px}.shv-guide__item h2{font-size:16px;line-height:1.4;margin:0 0 6px}.shv-guide__item p{margin:0;font-size:14px;line-height:1.8;color:var(--shv-muted)}
.shv-detail-actions{display:grid;gap:8px}.shv-detail-actions-title{margin-top:14px}
.shv-admin-footer{display:flex;justify-content:flex-end;align-items:center;flex:0 0 var(--shv-footer-h);min-height:var(--shv-footer-h);padding:10px 16px;border-top:1px solid var(--shv-border);background:var(--shv-surface);font-size:12px;color:var(--shv-muted);box-sizing:border-box}

.shv-panel--flat-list{border:0;background:transparent;box-shadow:none}
.shv-panel--flat-list > .shv-panel__body{padding:0}
.shv-sidebar,.shv-detail,.shv-pagewrap,.shv-toolbar-menu__panel--card{scrollbar-width:thin;scrollbar-color:rgba(127,141,153,.42) transparent}
.shv-sidebar::-webkit-scrollbar,.shv-detail::-webkit-scrollbar,.shv-pagewrap::-webkit-scrollbar,.shv-toolbar-menu__panel--card::-webkit-scrollbar{width:3px;height:3px}
.shv-sidebar::-webkit-scrollbar-track,.shv-detail::-webkit-scrollbar-track,.shv-pagewrap::-webkit-scrollbar-track,.shv-toolbar-menu__panel--card::-webkit-scrollbar-track{background:transparent}
.shv-sidebar::-webkit-scrollbar-thumb,.shv-detail::-webkit-scrollbar-thumb,.shv-pagewrap::-webkit-scrollbar-thumb,.shv-toolbar-menu__panel--card::-webkit-scrollbar-thumb{background:rgba(127,141,153,.42);border-radius:999px}
.shv-sidebar::-webkit-scrollbar-thumb:hover,.shv-detail::-webkit-scrollbar-thumb:hover,.shv-pagewrap::-webkit-scrollbar-thumb:hover,.shv-toolbar-menu__panel--card::-webkit-scrollbar-thumb:hover{background:rgba(127,141,153,.62)}
.shv-header__left--share{align-items:center}
.shv-form-modal--wide{width:min(100%,860px)}.shv-form-modal__body--grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.shv-form-modal__foot--full{grid-column:1 / -1}
@media (max-width: 1280px){.shv-shell--detail{grid-template-columns:220px minmax(0,1fr) 300px}}
@media (max-width: 1024px){.shv-shell--detail{grid-template-columns:220px minmax(0,1fr)}.shv-detail{display:none}.shv-form-modal__body--grid{grid-template-columns:1fr}}
@media (max-width: 860px){.shv-shell,.shv-shell--detail{grid-template-columns:1fr}.shv-sidebar{display:none}.shv-header{padding:0 10px}.shv-header__left,.shv-header__right{gap:8px}.shv-nav{gap:2px}.shv-nav__item{padding:8px}.shv-pagehead-strip{flex-direction:column;align-items:flex-start}.shv-foldertiles{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.shv-photo-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.shv-photo-grid.is-card-size-large{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.shv-photo-grid.is-card-size-small{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.shv-settings-row{flex-direction:column;align-items:flex-start}}


/* v0.4.2 layout/form refinements */
body.shv-app .uik-input,
body.shv-app .uik-select,
body.shv-app textarea,
body.shv-app input[type="text"],
body.shv-app input[type="email"],
body.shv-app input[type="password"],
body.shv-app input[type="number"],
body.shv-app input[type="datetime-local"],
body.shv-app input[type="search"]{
  background:var(--shv-surface-2);
  color:var(--shv-text);
  border:1px solid var(--shv-border);
  border-radius:10px;
}
body.shv-app .uik-input::placeholder,
body.shv-app textarea::placeholder,
body.shv-app .shv-input::placeholder{color:var(--shv-muted)}
body.shv-app .uik-field label,
body.shv-app .uik-help,
body.shv-app .shv-check{color:var(--shv-muted)}
body.shv-app .uik-btn{height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--shv-border);background:var(--shv-surface-2);color:var(--shv-text);display:inline-flex;align-items:center;justify-content:center}
body.shv-app .uik-btn:hover{background:var(--shv-hover)}
body.shv-app .uik-btn--primary{background:var(--shv-accent-soft);border-color:rgba(127,191,0,.25);color:var(--shv-text)}
body.shv-app .uik-btn--primary:hover{background:var(--shv-accent-hover)}
body.shv-app .uik-btn--danger{background:var(--shv-danger-soft);border-color:rgba(209,67,67,.25);color:var(--shv-danger)}
body.shv-app input[type="checkbox"]{accent-color:var(--shv-accent)}
body.shv-app input[type="file"]{color:var(--shv-text)}
.shv-btn--sm,.shv-iconbtn--sm{height:30px;min-height:30px;border-radius:9px;font-size:12px}
.shv-btn--sm{padding:0 10px}
.shv-iconbtn--sm{width:30px;padding:0}
.shv-manage-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;align-items:start}
.shv-manage-nav{position:sticky;top:12px;align-self:start;border:1px solid var(--shv-border);border-radius:5px;background:var(--shv-surface);padding:10px;display:grid;gap:6px}
.shv-manage-nav__title{padding:4px 8px 8px;font-size:12px;color:var(--shv-muted);font-weight:700}
.shv-manage-nav__item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;border:1px solid transparent;color:var(--shv-text);text-decoration:none;background:transparent}
.shv-manage-nav__item:hover{background:var(--shv-surface-2);border-color:var(--shv-border)}
.shv-manage-content{display:grid;gap:12px;min-width:0}
.shv-manage-section{scroll-margin-top:84px}
.shv-manage-note{padding:12px 14px;border:1px dashed var(--shv-border);border-radius:12px;background:var(--shv-surface-2);font-size:13px;line-height:1.7;color:var(--shv-muted)}
.shv-dropzone{position:relative}
.shv-dropzone__input{position:absolute;inset:0;opacity:0;cursor:pointer;z-index:2}
.shv-dropzone__surface{display:grid;place-items:center;gap:6px;min-height:190px;padding:18px;border:1px dashed var(--shv-border);border-radius:5px;background:var(--shv-surface-2);text-align:center;color:var(--shv-muted);transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}
.shv-dropzone__surface strong{font-size:14px;color:var(--shv-text)}
.shv-dropzone__surface .shv-ico{font-size:28px;color:#557f00}
.shv-dropzone__meta{font-size:12px}
.shv-dropzone.is-dragover .shv-dropzone__surface{border-color:rgba(127,191,0,.42);background:var(--shv-accent-soft);box-shadow:inset 0 0 0 1px rgba(127,191,0,.12)}
.shv-form-modal__body{min-width:0}
.shv-form-modal__body .uik-field,.shv-form-modal__body .shv-check{min-width:0}
.shv-main .shv-pagewrap{min-width:0}
.shv-detail{display:block}
@media (max-width: 1200px){.shv-manage-layout{grid-template-columns:1fr}.shv-manage-nav{position:relative;top:0;grid-auto-flow:column;grid-auto-columns:max-content;overflow:auto;padding-bottom:6px}.shv-manage-nav__title{padding-right:14px;align-self:center}}


/* v0.4.4 admin hotfix + ui refinements */
.shv-logo__iconimg,.shv-nav__item,.shv-btn,.shv-iconbtn,.shv-group,.shv-input,.shv-panel,.shv-foldertile,.shv-photo-card,.shv-manage-nav,.shv-manage-nav__item,.shv-dropzone__surface,.shv-manage-note,.shv-history__item,.shv-settings-row,.shv-btn--sm,.shv-iconbtn--sm,body.shv-app .uik-input,body.shv-app .uik-select,body.shv-app textarea,body.shv-app input[type="text"],body.shv-app input[type="email"],body.shv-app input[type="password"],body.shv-app input[type="number"],body.shv-app input[type="datetime-local"],body.shv-app input[type="search"],body.shv-app .uik-btn{border-radius:5px}
.shv-user,.shv-count,.shv-pill{border-radius:999px}
.shv-manage-nav__item.is-active{background:var(--shv-surface-2);border-color:var(--shv-border);font-weight:700}
.shv-inline-filter{display:inline-flex;align-items:center;margin:0;flex:0 0 auto}.shv-inline-filter--size .shv-select{min-width:104px;width:104px}.shv-select{min-width:136px;height:36px;padding-right:42px;appearance:none;-webkit-appearance:none;-moz-appearance:none}
body.shv-app .uik-select,body.shv-app select,body.shv-app .shv-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23909090' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px 18px}
body.shv-app select::-ms-expand,body.shv-app .uik-select::-ms-expand,body.shv-app .shv-select::-ms-expand{display:none}
body.shv-app .uik-select:hover,body.shv-app select:hover,body.shv-app .shv-select:hover,body.shv-app .uik-select:focus,body.shv-app select:focus,body.shv-app .shv-select:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23909090' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px 18px}
.shv-filterchips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.shv-chip--readonly{display:inline-flex;align-items:center;gap:4px;text-decoration:none;cursor:pointer}.shv-chip__icon{font-size:14px}.shv-chip__count{margin-left:6px;font-size:10px;color:inherit;opacity:.82}.shv-chip.is-favorite{background:rgba(255,92,140,.12);border-color:rgba(255,92,140,.24);color:#d94d73}.shv-chip.is-ok{background:var(--shv-accent-soft);border-color:rgba(127,191,0,.25);color:#557f00}.shv-chip.is-ng{background:var(--shv-danger-soft);border-color:rgba(209,67,67,.25);color:var(--shv-danger)}
.shv-photo-card__status{display:flex;justify-content:flex-start}.shv-photo-card__actions--icons{display:flex;align-items:center;gap:6px}.shv-photo-card__actions--icons form{margin:0}.shv-iconbtn--danger{background:var(--shv-danger-soft);border-color:rgba(209,67,67,.25);color:var(--shv-danger)}.shv-iconbtn--danger:hover{background:var(--shv-danger-hover);border-color:rgba(209,67,67,.34)}
.shv-actions .shv-btn{height:30px;padding:0 10px;font-size:12px}.shv-actions .shv-iconbtn{width:30px;height:30px}
@media (max-width: 860px){.shv-inline-filter{width:100%}.shv-select{width:100%}.shv-filterchips{margin-top:10px}}

/* v0.4.5 FileHub-aligned admin structure */
body.shv-app.shv-admin-page{--shv-side-w:248px;--shv-detail-w:340px}
.shv-header__menubtn{display:none;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--shv-border);background:var(--shv-surface-2);color:var(--shv-text);border-radius:5px;cursor:pointer;flex:0 0 auto}
.shv-header__menubtn:hover{background:var(--shv-hover)}
.shv-mobile-backdrop{position:fixed;inset:var(--shv-header-h) 0 0;z-index:58;border:0;background:rgba(7,10,16,.34);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}
body.shv-app.shv-nav-open .shv-mobile-backdrop,
body.shv-app.shv-sidebar-open .shv-mobile-backdrop{opacity:1;visibility:visible;pointer-events:auto}
body.shv-app.shv-nav-open,
body.shv-app.shv-sidebar-open{overflow:hidden}
.shv-manage-sectionwrap{display:block}
.shv-manage-content--single{display:grid;gap:12px;min-width:0}
.shv-manage-nav--sidebar{display:grid;gap:6px}
.shv-manage-nav--sidebar .shv-manage-nav__item{width:100%}
.shv-manage-summary{display:grid;gap:10px}
.shv-manage-summary__item{padding:10px 12px;border:1px solid var(--shv-border);border-radius:5px;background:var(--shv-surface-2)}
.shv-manage-summary__label{font-size:12px;color:var(--shv-muted)}
.shv-manage-summary__value{margin-top:4px;font-size:13px;font-weight:700;word-break:break-word}
.shv-right-note{font-size:12px;color:var(--shv-muted);line-height:1.7}
@media (max-width:1040px){
  body.shv-app .shv-header{padding-inline:12px}
  body.shv-app .shv-header__left,body.shv-app .shv-header__right{gap:10px}
  body.shv-app .shv-toolbar{align-items:stretch;gap:10px}
  body.shv-app .shv-toolbar__left{flex:1 1 100%}
  body.shv-app .shv-toolbar__right{justify-content:flex-start}
  body.shv-app .shv-toolbar-searchline{flex-wrap:nowrap}
  body.shv-app .shv-searchbox{flex:1 1 240px;max-width:none}
  body.shv-app .shv-input{min-width:0}
}
@media (max-width:860px){
  body.shv-app .shv-header{gap:8px;padding-inline:10px}
  body.shv-app .shv-header__menubtn{display:inline-flex}
  body.shv-app .shv-header__left,body.shv-app .shv-header__right{gap:8px;min-width:0}
  body.shv-app .shv-logo{min-width:0;gap:10px}
  body.shv-app .shv-logo__text{max-width:32vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body.shv-app .shv-logo__images{max-width:min(32vw,180px)}
  body.shv-app .shv-toolbar-searchline{flex-wrap:wrap}
  body.shv-app .shv-searchbox{flex:1 1 100%;max-width:none}
  body.shv-app .shv-inline-filter{flex:1 1 auto}
  body.shv-app .shv-inline-filter--size{flex:0 0 auto}
  body.shv-app .shv-inline-filter--size .shv-select{width:104px;min-width:104px}
  body.shv-app .shv-select{width:100%;min-width:0}
  body.shv-app .shv-nav{position:fixed;top:calc(var(--shv-header-h) + 10px);left:12px;right:12px;z-index:62;display:grid;gap:6px;padding:10px;border:1px solid var(--shv-border);border-radius:5px;background:var(--shv-surface);box-shadow:0 18px 36px rgba(0,0,0,.22);transform:translateY(-10px);opacity:0;visibility:hidden;pointer-events:none;transition:transform .18s ease,opacity .18s ease,visibility .18s ease}
  body.shv-app.shv-nav-open .shv-nav{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto}
  body.shv-app .shv-nav__item{min-height:42px;justify-content:flex-start;width:100%}
  body.shv-app .shv-user{min-width:0;max-width:48vw;padding-inline:10px}
  body.shv-app .shv-user__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body.shv-app .shv-shell > .shv-sidebar{position:fixed;top:var(--shv-header-h);left:0;bottom:0;width:min(86vw,320px);max-width:320px;z-index:61;display:block;transform:translateX(-104%);opacity:0;visibility:hidden;pointer-events:none;transition:transform .18s ease,opacity .18s ease,visibility .18s ease;box-shadow:14px 0 34px rgba(0,0,0,.24)}
  body.shv-app.shv-sidebar-open .shv-shell > .shv-sidebar{transform:translateX(0);opacity:1;visibility:visible;pointer-events:auto}
  body.shv-app .shv-shell,body.shv-app .shv-shell--detail{grid-template-columns:1fr}
  body.shv-app .shv-detail{display:none}
  body.shv-app .shv-pagewrap{padding:10px}
}
@media (min-width:861px){
  body.shv-app .shv-header__menubtn,body.shv-app .shv-mobile-backdrop{display:none !important}
  body.shv-app .shv-nav{position:static !important;top:auto !important;left:auto !important;right:auto !important;z-index:auto !important;display:flex !important;gap:4px !important;padding:0 !important;border:0 !important;border-radius:0 !important;background:transparent !important;box-shadow:none !important;transform:none !important;opacity:1 !important;visibility:visible !important;pointer-events:auto !important}
  body.shv-app .shv-shell > .shv-sidebar{display:block !important;position:sticky !important;top:var(--shv-header-h) !important;left:auto !important;bottom:auto !important;width:auto !important;max-width:none !important;transform:none !important;opacity:1 !important;visibility:visible !important;pointer-events:auto !important;z-index:auto !important;box-shadow:none !important}
  body.shv-app.shv-nav-open,body.shv-app.shv-sidebar-open{overflow:auto}
}


/* v0.4.7 photo move selection */
.shv-selectionbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px dashed var(--shv-border);border-radius:5px;background:var(--shv-surface-2);margin-bottom:12px}
.shv-selectionbar__text{font-size:12px;color:var(--shv-muted)}
.shv-selectionbar__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.shv-photo-card{position:relative}
.shv-photo-card__select{position:absolute;top:8px;left:8px;z-index:2;display:inline-flex;align-items:center;gap:6px;padding:4px 6px;border:1px solid var(--shv-border);border-radius:5px;background:rgba(18,18,18,.72);color:#fff;font-size:11px;line-height:1;cursor:pointer}
@media (prefers-color-scheme: light){.shv-photo-card__select{background:rgba(255,255,255,.9);color:var(--shv-text)}}
.shv-photo-card__select input{margin:0}
.shv-photo-card.is-selected{border-color:rgba(127,191,0,.55);box-shadow:0 0 0 1px rgba(127,191,0,.18) inset;background:var(--shv-row-selected)}
.shv-photo-card.is-selected .shv-photo-card__select{border-color:rgba(127,191,0,.45);background:var(--shv-accent-soft);color:#557f00}
.shv-selection-summary{padding:10px 12px;border:1px solid var(--shv-border);border-radius:5px;background:var(--shv-surface-2);font-size:13px;font-weight:700}
@media (max-width:860px){.shv-selectionbar{align-items:flex-start;flex-direction:column}.shv-selectionbar__actions{width:100%}.shv-selectionbar__actions .shv-btn{flex:1 1 auto;justify-content:center}}


.shv-photo-card{cursor:pointer}
.shv-photo-card:focus-visible{outline:2px solid rgba(127,191,0,.48);outline-offset:2px}
.shv-photo-card.is-dragging{opacity:.62}
.shv-foldertile.is-drop-target,.shv-group.is-drop-target{border-color:rgba(127,191,0,.55)!important;box-shadow:0 0 0 1px rgba(127,191,0,.2) inset;background:var(--shv-accent-soft)}
.shv-group.is-drop-target{background:var(--shv-accent-soft)}

.shv-foldertile__subtitle{font-size:12px;line-height:1.45;color:var(--shv-muted);margin-top:2px}
.shv-detail-sharelist{display:grid;gap:10px}
.shv-detail-shareitem{padding:10px;border:1px solid var(--shv-border);border-radius:5px;background:var(--shv-surface-2)}
.shv-detail-shareitem__meta{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px;color:var(--shv-muted);margin-bottom:6px}
.shv-detail-shareitem__url{font-size:12px;line-height:1.55;word-break:break-all;margin-bottom:8px}
.shv-detail-shareitem__actions{display:flex;justify-content:flex-end;gap:6px}
.shv-log-controls{display:grid;grid-template-columns:1.2fr 1fr auto;gap:12px;align-items:end}
.shv-log-filterform,.shv-log-limitform,.shv-log-clearform{display:grid;gap:6px}
.shv-log-limitform{grid-template-columns:1fr auto;align-items:end}
.shv-log-detail-cell{max-width:420px;white-space:normal;word-break:break-word;font-size:12px;line-height:1.55}
.shv-upload-progress{display:grid;gap:8px;margin-top:14px;padding:12px;border:1px solid var(--shv-border);border-radius:5px;background:var(--shv-surface-2)}
.shv-upload-progress__bar{height:8px;border-radius:5px;background:rgba(127,191,0,.12);overflow:hidden}
.shv-upload-progress__bar span{display:block;height:100%;width:0;background:var(--shv-accent);transition:width .18s ease}
.shv-upload-progress__meta{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--shv-muted)}
@media (max-width: 980px){.shv-log-controls{grid-template-columns:1fr}.shv-log-limitform{grid-template-columns:1fr}}


/* v0.5.1 manage forms + log controls */
.shv-settings-form{display:grid;gap:16px;min-width:0}
.shv-settings-grid{display:grid;gap:14px}
.shv-settings-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.shv-settings-grid__full{grid-column:1 / -1}
.shv-settings-checks{display:grid;gap:8px;margin-top:8px}
.shv-settings-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.shv-branding-previews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:4px}
.shv-branding-preview{display:grid;gap:8px}
.shv-branding-preview__label{font-size:12px;font-weight:700;color:var(--shv-text)}
.shv-branding-preview__media{display:flex;align-items:center;justify-content:center;min-height:96px;padding:12px;border:1px solid var(--shv-border);border-radius:5px;background:var(--shv-surface-2)}
.shv-branding-preview__media img{display:block;max-width:100%;max-height:64px;object-fit:contain}
.shv-branding-preview__media--logo{justify-content:flex-start;background:#ffffff;border-color:#dcdcdc}
.shv-branding-preview__media--dark{background:#1b1d22;border-color:#2c313a}
.shv-log-controls{display:grid;grid-template-columns:1.2fr 1fr auto;gap:12px;align-items:stretch}
.shv-log-card{display:grid;gap:8px;padding:12px;border:1px solid var(--shv-border);border-radius:5px;background:var(--shv-surface-2);min-width:0}
.shv-log-filterform,.shv-log-limitform,.shv-log-clearform{grid-auto-rows:min-content}
.shv-inline-row{display:flex;align-items:center;gap:10px;min-width:0}
.shv-inline-row .uik-select{min-width:0;flex:1 1 auto}
.shv-log-clearform .uik-btn{justify-content:center}
body.shv-app .uik-field label,body.shv-app .uik-help,body.shv-app .shv-check{color:var(--shv-muted)}
body.shv-app .uik-input,body.shv-app .uik-select,body.shv-app textarea,body.shv-app input[type="text"],body.shv-app input[type="email"],body.shv-app input[type="password"],body.shv-app input[type="number"],body.shv-app input[type="datetime-local"],body.shv-app input[type="search"],body.shv-app input[type="file"]{color:var(--shv-text)}
@media (max-width:980px){.shv-log-controls{grid-template-columns:1fr}.shv-inline-row{flex-wrap:wrap}.shv-inline-row .uik-select,.shv-inline-row .uik-btn{width:100%}}
@media (max-width:860px){.shv-settings-grid--2,.shv-branding-previews{grid-template-columns:1fr}}


/* v0.5.2 log form alignment + modal reliability */
.shv-log-controls{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1.05fr) 190px;gap:12px;align-items:stretch}
.shv-log-card{display:grid;gap:8px;padding:12px;border:1px solid var(--shv-border);border-radius:5px;background:var(--shv-surface-2);min-width:0;align-content:start}
.shv-log-card .uik-help{display:block;margin:0;color:var(--shv-muted)}
.shv-log-filterform .uik-select,.shv-log-limitform .uik-select{width:100%}
.shv-log-limitform{display:grid;gap:8px;align-content:start}
.shv-log-limitform .shv-inline-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.shv-log-limitform .uik-btn{min-width:88px;white-space:nowrap;justify-content:center}
.shv-log-clearform{display:grid;gap:8px;align-content:start}
.shv-log-clearform .uik-btn{width:100%;min-height:40px;white-space:nowrap;justify-content:center}
@media (max-width: 1180px){.shv-log-controls{grid-template-columns:1fr}.shv-log-limitform .shv-inline-row{grid-template-columns:minmax(0,1fr) auto}}
@media (max-width: 760px){.shv-log-limitform .shv-inline-row{grid-template-columns:1fr}.shv-log-limitform .uik-btn{width:100%}}

/* v0.5.6 action-menu simplification + subtle motion */
.shv-pagehead__sub:empty{display:none}
.shv-panel--plain .shv-panel__head{display:none}
.shv-panel--plain .shv-panel__body{padding-top:var(--shv-panel-pad-y)}
.shv-pagehead-strip{align-items:flex-start;min-height:0}
.shv-pagehead-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.shv-pagehead-meta span{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid var(--shv-border);border-radius:999px;background:var(--shv-surface-2);font-size:12px;color:var(--shv-muted)}
.shv-toolbar-menu{position:relative}
.shv-toolbar-menu > summary{list-style:none}
.shv-toolbar-menu > summary::-webkit-details-marker{display:none}
.shv-toolbar-menu__panel{position:absolute;right:0;top:calc(100% + 8px);z-index:28;display:grid;gap:8px;min-width:220px;padding:10px;border:1px solid var(--shv-border);border-radius:5px;background:var(--shv-surface);box-shadow:0 18px 36px rgba(0,0,0,.20);opacity:0;transform:translateY(-6px);pointer-events:none}
.shv-toolbar-menu[open] .shv-toolbar-menu__panel{opacity:1;transform:translateY(0);pointer-events:auto;animation:shv-slide-fade-in .18s ease both}
.shv-toolbar-menu__panel .shv-btn{width:100%;justify-content:flex-start}
.shv-toolbar-menu__panel .shv-count{margin-left:auto}
@keyframes shv-slide-fade-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes shv-card-fade-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.shv-pagewrap > *{animation:shv-card-fade-up .22s ease both}
.shv-foldertile,.shv-photo-card,.shv-detail-shareitem{animation:shv-card-fade-up .26s ease both}
.shv-foldertiles .shv-foldertile:nth-child(2),.shv-photo-grid .shv-photo-card:nth-child(2){animation-delay:.02s}
.shv-foldertiles .shv-foldertile:nth-child(3),.shv-photo-grid .shv-photo-card:nth-child(3){animation-delay:.04s}
.shv-foldertiles .shv-foldertile:nth-child(4),.shv-photo-grid .shv-photo-card:nth-child(4){animation-delay:.06s}
.shv-foldertiles .shv-foldertile:nth-child(5),.shv-photo-grid .shv-photo-card:nth-child(5){animation-delay:.08s}
.shv-foldertiles .shv-foldertile:nth-child(6),.shv-photo-grid .shv-photo-card:nth-child(6){animation-delay:.10s}
.shv-foldertiles .shv-foldertile:nth-child(7),.shv-photo-grid .shv-photo-card:nth-child(7){animation-delay:.12s}
@media (prefers-reduced-motion: reduce){
  .shv-toolbar-menu[open] .shv-toolbar-menu__panel,
  .shv-pagewrap > *,
  .shv-foldertile,
  .shv-photo-card,
  .shv-detail-shareitem{animation:none}
}
@media (max-width:860px){
  .shv-toolbar-menu__panel{position:absolute;right:0;left:auto;min-width:min(78vw,260px)}
}

/* v0.5.7 smartphone-like action simplification */
.shv-selectionbar[hidden]{display:none !important}
.shv-photo-grid:not(.is-selection-mode) .shv-photo-card__select{display:none}
.shv-photo-grid.is-selection-mode .shv-photo-card__select{display:inline-flex}
.shv-photo-grid:not(.is-selection-mode) .shv-selectionbar{display:none}
.shv-photo-card__headrow{display:flex;align-items:flex-start;gap:8px}
.shv-photo-card__headrow .shv-photo-card__name{flex:1 1 auto;min-width:0}
.shv-photo-card__name{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.shv-toolbar-menu--card{margin-left:auto;align-self:flex-start}
.shv-toolbar-menu--card > summary{width:var(--shv-photo-menu-btn-size);height:var(--shv-photo-menu-btn-size);min-height:var(--shv-photo-menu-btn-size);padding:0}
.shv-toolbar-menu__panel--card{min-width:172px;right:0;left:auto;max-height:min(240px,calc(100dvh - 32px));overflow:auto;overscroll-behavior:contain}
.shv-toolbar-menu--card.is-dropup .shv-toolbar-menu__panel--card{top:auto;bottom:calc(100% + 8px)}
.shv-toolbar-menu__panel--card form{margin:0}
.shv-toolbar-menu__panel--card .shv-btn{height:32px;font-size:12px}

.shv-photo-card__thumb,.shv-photo-card__thumb img{border-top-left-radius:5px;border-top-right-radius:5px}
.shv-toolbar-menu--card{position:relative;z-index:6}
.shv-toolbar-menu__panel--card{z-index:40}
.shv-photo-grid,.shv-panel__body,.shv-panel--plain,.shv-panel{overflow:visible}
.shv-photo-card__meta{margin-top:-2px}
.shv-photo-card__status{margin-top:-2px}
.shv-photo-card__actions,.shv-photo-card__actions--icons{display:none}
.shv-photo-grid.is-selection-mode .shv-photo-card{cursor:pointer}
.shv-photo-grid:not(.is-selection-mode) .shv-photo-card{cursor:grab}
.shv-photo-grid:not(.is-selection-mode) .shv-photo-card:focus-visible{outline:none}
.shv-photo-grid.is-selection-mode .shv-photo-card:focus-visible{outline:2px solid rgba(127,191,0,.48);outline-offset:2px}
.shv-selectionbar{margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--shv-border);border-radius:5px;background:var(--shv-surface-2)}
.shv-selectionbar__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.shv-toolbar-menu__panel .shv-btn.is-active,.shv-btn.is-active{background:var(--shv-accent-soft);border-color:rgba(127,191,0,.3);color:#557f00}
@media (max-width:860px){
  .shv-selectionbar{align-items:flex-start;flex-direction:column}
  .shv-selectionbar__actions{width:100%}
  .shv-selectionbar__actions .shv-btn{flex:1 1 auto}
}

/* v0.5.9 card menu stacking + selection mode */
.shv-photo-card{z-index:1}
.shv-photo-card.is-menu-open{z-index:80}
.shv-photo-grid{position:relative;z-index:1}
.shv-photo-card .shv-toolbar-menu{position:relative;z-index:10}
.shv-photo-card.is-menu-open .shv-toolbar-menu__panel--card{z-index:120}
.shv-photo-card__headrow{position:relative;z-index:3}
.shv-photo-card__body{position:relative;z-index:2}
.shv-toolbar-menu__panel--card{box-shadow:0 18px 36px rgba(0,0,0,.28)}
.shv-photo-grid.is-selection-mode .shv-toolbar-menu--card{display:none}


.shv-settings-form--sub{margin-top:var(--shv-space-md,16px);padding-top:var(--shv-space-md,16px);border-top:1px solid rgba(127,141,153,.18);}
.shv-subhead{font-size:13px;font-weight:700;color:var(--shv-text,inherit);margin:0 0 8px;}


/* v0.5.33 action motion polish */
.shv-toolbar-menu > summary,
.shv-toolbar-menu--card > summary{
  transition:
    transform var(--shv-motion-fast,.16s) var(--shv-motion-ease,cubic-bezier(.22,.61,.36,1)),
    background-color var(--shv-motion-fast,.16s) ease,
    border-color var(--shv-motion-fast,.16s) ease,
    box-shadow var(--shv-motion-fast,.16s) ease;
}
.shv-toolbar-menu > summary:active,
.shv-toolbar-menu--card > summary:active{
  transform:scale(.97);
}
.shv-toolbar-menu__panel{
  visibility:hidden;
  transform-origin:top right;
  transition:
    opacity var(--shv-motion-fast,.16s) var(--shv-motion-ease,cubic-bezier(.22,.61,.36,1)),
    transform var(--shv-motion-fast,.16s) var(--shv-motion-ease,cubic-bezier(.22,.61,.36,1)),
    visibility 0s linear var(--shv-motion-fast,.16s);
}
.shv-toolbar-menu[open] .shv-toolbar-menu__panel{
  visibility:visible;
  transition-delay:0s;
}
.shv-toolbar-menu--card.is-dropup .shv-toolbar-menu__panel--card{
  transform-origin:bottom right;
}
.shv-photo-card{
  transition:
    border-color var(--shv-motion-fast,.16s) ease,
    background-color var(--shv-motion-fast,.16s) ease,
    box-shadow var(--shv-motion-fast,.16s) ease;
}
.shv-photo-card__thumb{
  transition:transform var(--shv-motion-fast,.16s) var(--shv-motion-ease,cubic-bezier(.22,.61,.36,1));
}
.shv-photo-card__thumb.is-tapped{
  transform:scale(.988);
}
.shv-photo-card__thumb img{
  transition:
    transform var(--shv-motion-mid,.22s) var(--shv-motion-ease,cubic-bezier(.22,.61,.36,1)),
    filter var(--shv-motion-mid,.22s) var(--shv-motion-ease,cubic-bezier(.22,.61,.36,1));
  will-change:transform;
}
.shv-photo-card:hover .shv-photo-card__thumb img{
  transform:scale(1.018);
}
.shv-btn,
.shv-iconbtn{
  transition:
    transform var(--shv-motion-fast,.16s) var(--shv-motion-ease,cubic-bezier(.22,.61,.36,1)),
    background-color .16s ease,
    border-color .16s ease,
    color .16s ease,
    box-shadow .16s ease;
}
.shv-btn:active,
.shv-iconbtn:active{
  transform:scale(.985);
}
@media (prefers-reduced-motion: reduce){
  .shv-toolbar-menu > summary,
  .shv-toolbar-menu--card > summary,
  .shv-toolbar-menu__panel,
  .shv-photo-card,
  .shv-photo-card__thumb,
  .shv-photo-card__thumb img,
  .shv-btn,
  .shv-iconbtn{
    transition:none !important;
  }
  .shv-photo-card:hover .shv-photo-card__thumb img{
    transform:none !important;
  }
}
