.osshp-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2xs);font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-snug);padding:var(--space-2xs) var(--space-s);border:0;border-radius:var(--radius-md);background-color:var(--accent-solid,transparent);color:var(--on-accent,currentColor);cursor:pointer;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.osshp-button:disabled{opacity:.55;cursor:not-allowed}.osshp-link{color:var(--accent-text,currentColor);text-decoration:underline;text-underline-offset:.15em;border-radius:var(--radius-sm)}.osshp-prose{max-width:var(--measure-prose);font-family:var(--font-body);font-size:var(--text-prose);line-height:var(--leading-normal);color:var(--text,inherit)}.osshp-button--danger{background-color:transparent;color:var(--danger-text,currentColor);box-shadow:inset 0 0 0 var(--border-thick) var(--danger-text,currentColor)}.osshp-button--danger:hover:not(:disabled){background-color:var(--danger-text,currentColor);color:var(--surface,currentColor)}.osshp-dropzone{border:var(--border-thick) dashed var(--border-ui);border-radius:var(--radius-md);background:var(--surface,transparent);padding:var(--space-m);display:flex;flex-direction:column;align-items:center;gap:var(--space-2xs);text-align:center;cursor:default;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.osshp-dropzone[data-drag-over]{border-color:var(--accent-text,currentColor);background-color:var(--surface-2,var(--surface,transparent))}.osshp-dropzone[data-busy]{cursor:wait}.osshp-dropzone[data-disabled]{opacity:.55;cursor:not-allowed}.osshp-dropzone__input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.osshp-dropzone__hint{font-size:var(--text-sm);color:var(--text-muted,currentColor)}.osshp-dialog{background:var(--surface,white);color:var(--text,inherit);border:var(--border-hairline) solid var(--border);border-radius:var(--radius-lg);padding:var(--space-l);max-width:min(90vw,28rem);width:100%;box-sizing:border-box;box-shadow:0 var(--space-2xs) var(--space-m) rgb(0 0 0/16%)}.osshp-dialog::-webkit-backdrop{background:rgb(0 0 0/40%)}.osshp-dialog::backdrop{background:rgb(0 0 0/40%)}.osshp-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-xs);margin-bottom:var(--space-xs)}.osshp-dialog-title{margin:0;font-size:var(--text-lg);font-weight:var(--weight-bold);line-height:var(--leading-snug)}.osshp-dialog-desc{margin:0 0 var(--space-m);color:var(--text-muted,currentColor);font-size:var(--text-base);line-height:var(--leading-normal)}.osshp-dialog-actions{display:flex;gap:var(--space-2xs);justify-content:flex-end;flex-wrap:wrap}.osshp-md-help-btn{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:var(--radius-full);border:var(--border-hairline) solid var(--border);background:transparent;color:var(--text-muted,currentColor);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;flex-shrink:0;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.osshp-md-help-btn:hover{background:var(--surface-2,transparent);color:var(--text,currentColor)}.osshp-md-help-dialog{max-width:min(90vw,36rem);max-height:75vh;overflow-y:auto}.osshp-md-help-section{margin-bottom:var(--space-m)}.osshp-md-help-section:last-of-type{margin-bottom:var(--space-s)}.osshp-md-help-section h3{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-muted,currentColor);text-transform:uppercase;letter-spacing:.06em;margin:0 0 var(--space-3xs)}.osshp-md-help-row{display:flex;gap:var(--space-s);align-items:baseline;padding:var(--space-3xs) 0}.osshp-md-help-syntax{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted,currentColor);flex:0 0 auto;min-width:10rem}.osshp-md-help-desc{font-size:var(--text-sm);color:var(--text,inherit)}:root{--bg:#fbfbfa;--surface:#ffffff;--surface-2:#f3f3f1;--text:#16181d;--text-muted:#54585f;--border:#d9d9d6;--border-ui:#8e8e8e;--border-ui-2:#858585;--accent-solid:#1d4ed8;--on-accent:#ffffff;--accent-text:#1d4ed8;--focus:var(--accent-text);--danger-text:#b42318}@media (prefers-color-scheme:dark){:root{--bg:#131417;--surface:#1b1c20;--surface-2:#23252b;--text:#ecedef;--text-muted:#a3a7af;--border:#34373d;--border-ui:#6c6c6c;--border-ui-2:#808080;--accent-solid:#3b6ae0;--on-accent:#ffffff;--accent-text:#9bb6ff;--danger-text:#ff9b8f}}html{color-scheme:light dark}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--accent-text)}.shell{min-height:100vh;display:grid;grid-template-columns:16rem 1fr}@media (max-width:48rem){.shell{grid-template-columns:1fr}}.shell-nav{background:var(--surface);border-right:var(--border-hairline) solid var(--border);padding:var(--space-m);display:flex;flex-direction:column;gap:var(--space-s);min-width:0}@media (max-width:48rem){.shell-nav{border-right:0;border-bottom:var(--border-hairline) solid var(--border)}}.shell-nav-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2xs)}.shell-brand{font-weight:var(--weight-bold);font-size:var(--text-lg);margin:0}.shell-nav-toggle{display:none}.shell-nav-links{display:flex;flex-direction:column;gap:var(--space-2xs);flex:1 1;min-height:0}.shell-nav-links a{display:block;padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-md);text-decoration:none;color:var(--text)}.shell-nav-links a:hover{background:var(--surface-2)}.shell-nav-links a[aria-current=page]{background:var(--surface-2);font-weight:var(--weight-semibold)}@media (max-width:48rem){.shell-nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;flex:none;border:var(--border-hairline) solid var(--border-ui);border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer}.shell-nav-toggle-bars,.shell-nav-toggle-bars:after,.shell-nav-toggle-bars:before{content:"";display:block;width:1.1rem;height:2px;background:currentColor;border-radius:var(--radius-full)}.shell-nav-toggle-bars{position:relative}.shell-nav-toggle-bars:before{position:absolute;left:0;top:-5px}.shell-nav-toggle-bars:after{position:absolute;left:0;top:5px}.shell-nav-links{display:none;flex:none}.shell-nav[data-nav-open=true] .shell-nav-links{display:flex;padding-top:var(--space-xs)}}.shell-main{box-sizing:border-box;padding:var(--space-l);max-width:var(--measure-content);width:100%;min-width:0}.shell-card{background:var(--surface);border:var(--border-hairline) solid var(--border);border-radius:var(--radius-lg);padding:var(--space-m)}.field{display:flex;flex-direction:column;gap:var(--space-3xs);margin-bottom:var(--space-s)}.field label{font-weight:var(--weight-semibold);font-size:var(--text-sm)}.field input,.field select,.field textarea{font:inherit;color:var(--text);background:var(--surface);border:var(--border-hairline) solid var(--border);border-radius:var(--radius-md);padding:var(--space-2xs) var(--space-xs);width:100%;box-sizing:border-box}.field textarea{min-height:12rem;resize:vertical;font-family:var(--font-mono)}.field-hint{font-size:var(--text-xs);color:var(--text-muted)}.field-check{display:flex;align-items:center;gap:var(--space-2xs);font-weight:var(--weight-regular);font-size:var(--text-sm);cursor:pointer}.field-check input[type=checkbox]{inline-size:1rem;block-size:1rem;width:auto;flex:none;margin:0;padding:0;accent-color:var(--accent-solid)}.row{display:flex;gap:var(--space-2xs);flex-wrap:wrap;align-items:center}.row-between{justify-content:space-between}.muted{color:var(--text-muted)}.error{color:var(--danger-text)}.stack>*+*{margin-top:var(--space-s)}.plain-list{list-style:none;padding:0}.shell-nav-footer{margin-top:auto;padding-top:var(--space-m)}.accent-row{display:flex;gap:var(--space-2xs);align-items:center}.accent-swatch{width:1.75rem;height:1.75rem;border-radius:var(--radius-full);border:var(--border-hairline) solid var(--border);flex:none}.accent-value{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted)}.accent-row input[type=color]{width:1.75rem;height:1.75rem;padding:0;border:var(--border-hairline) solid var(--border-ui);border-radius:var(--radius-md);background:none;cursor:pointer;flex:none}.accent-row input[type=color]::-webkit-color-swatch-wrapper{padding:0}.accent-row input[type=color]::-webkit-color-swatch{border:none;border-radius:calc(var(--radius-md) - 1px)}.accent-row input[type=color]::-moz-color-swatch{border:none;border-radius:calc(var(--radius-md) - 1px)}.wizard{max-width:40rem;margin:var(--space-2xl) auto;padding:0 var(--space-s)}.wizard-steps{display:flex;gap:var(--space-2xs);list-style:none;padding:0;margin:0 0 var(--space-l);font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap}.wizard-steps li[aria-current=step]{color:var(--text);font-weight:var(--weight-semibold)}.choice{display:flex;gap:var(--space-2xs);align-items:flex-start;padding:var(--space-xs);border:var(--border-hairline) solid var(--border);border-radius:var(--radius-md)}.choice+.choice{margin-top:var(--space-2xs)}.admin-table{width:100%;border-collapse:collapse}.admin-table td,.admin-table th{text-align:left;padding:var(--space-2xs) var(--space-xs);border-bottom:var(--border-hairline) solid var(--border)}@media (max-width:48rem){.admin-table{table-layout:fixed}.admin-table td,.admin-table th{overflow-wrap:break-word;word-break:break-word}.admin-table code{overflow-wrap:anywhere;word-break:break-word}}.status-pill{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:0 var(--space-2xs);border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-muted)}.status-pill[data-status=published]{color:var(--on-accent);background:var(--accent-solid)}.analytics-window-nav{display:flex;gap:var(--space-2xs);flex-wrap:wrap}.analytics-window-nav a{padding:var(--space-3xs) var(--space-xs);border-radius:var(--radius-md);border:var(--border-hairline) solid var(--border-ui);color:var(--text-muted);text-decoration:none;font-size:var(--text-sm)}.analytics-window-nav a[aria-current=page]{color:var(--on-accent);background:var(--accent-solid);border-color:var(--accent-solid);font-weight:var(--weight-semibold)}.analytics-stats{display:flex;gap:var(--space-m);flex-wrap:wrap}.analytics-stat{padding:var(--space-s);border:var(--border-hairline) solid var(--border);border-radius:var(--radius-lg);background:var(--surface-2);min-width:10rem}.analytics-stat-value{font-size:var(--text-xl);font-weight:var(--weight-semibold);margin:0}.analytics-stat-label{color:var(--text-muted);font-size:var(--text-sm);margin:var(--space-3xs) 0 0}.analytics-chart{display:flex;align-items:flex-end;gap:var(--space-3xs);height:8rem;padding:var(--space-2xs);border:var(--border-hairline) solid var(--border);border-radius:var(--radius-md);background:var(--surface-2)}.analytics-bar{flex:1 1;min-height:2px;background:var(--accent-solid);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.md-editor-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-s);gap:var(--space-s);align-items:start}@media (max-width:48rem){.md-editor-grid{grid-template-columns:1fr}}.md-pane{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.md-pane-label{font-weight:var(--weight-semibold);font-size:var(--text-sm)}.md-pane-label-row{display:flex;gap:var(--space-2xs);align-items:center}.photo-primary-field{padding:var(--space-m);background:var(--surface-2);border-radius:var(--radius-md)}.md-preview,.md-source-wrap{border:var(--border-hairline) solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-sizing:border-box;min-height:18rem;max-height:32rem;overflow:auto}.md-source-wrap:focus-within{outline:2px solid var(--focus);outline-offset:2px}.md-source.ProseMirror{font-family:var(--font-mono);font-size:var(--text-sm);padding:var(--space-xs);min-height:18rem;white-space:pre-wrap;word-break:break-word;outline:none}.md-source.ProseMirror pre{margin:0;white-space:pre-wrap;word-break:break-word}.md-source.ProseMirror code{font-family:inherit}.md-preview{padding:var(--space-xs)}.md-preview>:first-child{margin-top:0}.md-preview img{max-width:100%;height:auto}.md-preview pre{max-width:100%;overflow-x:auto}.media-count{color:var(--text-muted);font-size:var(--text-sm)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:var(--space-m);gap:var(--space-m);list-style:none;padding:0;margin:0}@media (max-width:24rem){.media-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.media-card,.media-card__button{display:flex;flex-direction:column;gap:var(--space-3xs);min-width:0}.media-card__button{padding:0;border:none;background:none;cursor:pointer;text-align:left}.media-card__button,.media-card__thumb{width:100%;border-radius:var(--radius-md)}.media-card__thumb{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--surface-2);box-shadow:inset 0 0 0 var(--border-hairline) var(--border-ui-2)}.media-card__thumb img{width:100%;height:100%;object-fit:cover;display:block}.media-card__button[aria-selected=true] .media-card__thumb{box-shadow:inset 0 0 0 var(--border-thick) var(--accent-text)}.media-card__check{position:absolute;top:var(--space-3xs);right:var(--space-3xs);inline-size:1.4rem;block-size:1.4rem;display:none;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--accent-solid);color:var(--on-accent);font-size:var(--text-xs);line-height:1}.media-card__button[aria-selected=true] .media-card__check{display:inline-flex}.media-card__alt{display:block;max-width:100%;font-size:var(--text-sm);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-card__alt--empty,.media-card__meta{color:var(--text-muted)}.media-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2xs);font-family:var(--font-mono);font-size:var(--text-xs);max-width:100%;min-width:0}.media-card__dims{white-space:nowrap}.media-dialog{max-width:min(94vw,44rem);max-height:88vh;overflow-y:auto}.media-dialog__preview{width:100%;max-height:40vh;object-fit:contain;background:var(--surface-2);border-radius:var(--radius-md);display:block;margin-bottom:var(--space-s)}.media-meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);display:flex;flex-direction:column;gap:var(--space-3xs);margin-bottom:var(--space-s)}.media-meta code{overflow-wrap:anywhere;word-break:break-word}.media-usage-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-3xs)}.media-section{margin-bottom:var(--space-m)}.media-section h3{font-size:var(--text-sm);font-weight:var(--weight-semibold);margin:0 0 var(--space-3xs)}.media-saved{color:var(--accent-text);font-size:var(--text-xs)}.media-tabs{display:flex;gap:var(--space-2xs);margin-bottom:var(--space-s)}.media-tab{font:inherit;font-size:var(--text-sm);padding:var(--space-3xs) var(--space-xs);border:var(--border-hairline) solid var(--border-ui);border-radius:var(--radius-md);background:var(--surface);color:var(--text-muted);cursor:pointer}.media-tab[aria-selected=true]{background:var(--accent-solid);color:var(--on-accent);border-color:var(--accent-solid)}.media-grid-scroll{max-height:46vh;overflow-y:auto;margin-bottom:var(--space-s)}.media-empty{text-align:center;padding:var(--space-2xl) var(--space-m)}.media-empty h2{margin:0 0 var(--space-2xs)}.field-label-text{font-weight:var(--weight-semibold);font-size:var(--text-sm)}.seg{display:inline-flex;border:var(--border-hairline) solid var(--border-ui);border-radius:var(--radius-md);overflow:hidden;width:max-content}.seg button{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;background:var(--surface);color:var(--text-muted);border:0;padding:var(--space-2xs) var(--space-m);cursor:pointer}.seg button+button{border-left:var(--border-hairline) solid var(--border-ui)}.seg button[aria-pressed=true]{background:var(--accent-solid);color:var(--on-accent)}.gallery-manager .man-head{display:flex;align-items:center;gap:var(--space-s);flex-wrap:wrap;margin-bottom:var(--space-xs)}.gallery-manager .man-head .count{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted)}.gallery-warn{color:var(--text-muted)}.man-grid{list-style:none;margin:0 0 var(--space-s);padding:0;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-s);gap:var(--space-s)}@media (max-width:700px){.man-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:420px){.man-grid{grid-template-columns:1fr}}.thumb{border:var(--border-hairline) solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}.thumb .im{position:relative;aspect-ratio:4/3;background:var(--surface-2)}.thumb .im img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1)}.thumb .plno{top:var(--space-3xs);left:var(--space-3xs);color:var(--text);background:var(--surface);border:var(--border-hairline) solid var(--border);padding:0 var(--space-3xs);border-radius:var(--radius-sm)}.thumb .plno,.thumb .up-state{position:absolute;font-family:var(--font-mono);font-size:var(--text-xs)}.thumb .up-state{inset:0;display:grid;place-items:center;color:var(--on-accent);background:rgba(0,0,0,.55)}.thumb .body{padding:var(--space-xs);display:flex;flex-direction:column;gap:var(--space-3xs)}.thumb input[type=radio]{width:auto;margin:0}.thumb input.altwarn{border-color:var(--danger-text)}.thumb .warn{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--danger-text);margin:0}.thumb .ctl{display:flex;align-items:center;gap:var(--space-3xs);flex-wrap:wrap;margin-top:var(--space-3xs)}.thumb .ctl button{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--surface);border:var(--border-hairline) solid var(--border-ui);color:var(--text);border-radius:var(--radius-sm);padding:var(--space-3xs) var(--space-2xs);cursor:pointer}.thumb .ctl button:disabled{opacity:.5;cursor:not-allowed}.thumb .cover{display:inline-flex;align-items:center;gap:var(--space-3xs);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);margin-left:auto}.thumb.is-cover{border-color:var(--accent-solid);box-shadow:0 0 0 1px var(--accent-solid)}.gallery-dropzone .hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);margin:var(--space-2xs) 0 0}.nav-suggestions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2xs);margin-top:var(--space-xs)}.nav-suggestions-label{font-size:var(--text-xs);color:var(--text-muted)}.nav-suggestions-chips{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}.nav-suggestion-chip{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text);background:var(--surface-2);border:var(--border-hairline) solid var(--border-ui-2);border-radius:var(--radius-full);padding:var(--space-3xs) var(--space-xs);cursor:pointer}.nav-suggestion-chip:disabled{opacity:.5;cursor:not-allowed}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.media-toolbar{justify-content:space-between;gap:var(--space-s)}.media-bulkbar,.media-toolbar{display:flex;flex-wrap:wrap;align-items:center}.media-bulkbar{gap:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);background:var(--surface-2);border:var(--border-hairline) solid var(--border-ui-2);border-radius:var(--radius-md)}.media-bulkbar__count{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.media-grid--select .media-card{position:relative}.media-card__select{position:absolute;top:var(--space-3xs);left:var(--space-3xs);z-index:1;inline-size:1.5rem;block-size:1.5rem;display:inline-flex;align-items:center;justify-content:center;padding:0;border:var(--border-thick) solid var(--border-ui-2);border-radius:var(--radius-sm);background:var(--surface);color:transparent;font-size:var(--text-xs);line-height:1;cursor:pointer}.media-card__select[data-checked=true]{background:var(--accent-solid);border-color:var(--accent-solid);color:var(--on-accent)}.media-grid--select .media-card__button[aria-selected=true] .media-card__check{display:none}.media-grid--select .media-card__button[aria-selected=true] .media-card__thumb{box-shadow:inset 0 0 0 var(--border-thick) var(--accent-text)}.media-cleanup-option{display:flex;align-items:flex-start;gap:var(--space-2xs);font-size:var(--text-sm);margin:var(--space-2xs) 0;cursor:pointer}.media-cleanup-option input[type=checkbox]{inline-size:1rem;block-size:1rem;width:auto;flex:none;margin:.15rem 0 0;accent-color:var(--accent-solid)}.media-cleanup-note{margin:var(--space-2xs) 0}.batch-alt__progress{font-size:var(--text-sm);color:var(--text-muted);margin:0 0 var(--space-2xs)}.batch-alt__actions{flex-wrap:wrap}