:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--text-xs:12px;--text-sm:13px;--text-md:15px;--text-lg:18px;--text-xl:22px;--leading:1.45;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--sidebar-width:264px;--topbar-height:56px;--tap-size:44px;--color-bg:#f6f7f9;--color-surface:#fff;--color-surface-2:#f0f2f5;--color-border:#dfe3e8;--color-border-strong:#c3c9d1;--color-text:#1b1f24;--color-text-muted:#5d6673;--color-accent:#2563eb;--color-accent-hover:#1d4fd8;--color-accent-contrast:#fff;--color-accent-soft:#e7eefd;--color-success:#15803d;--color-success-soft:#e6f4ea;--color-warning:#a15c07;--color-warning-soft:#fdf3e1;--color-danger:#c62828;--color-danger-soft:#fdecec;--color-focus:#2563eb;--color-overlay:#0f141c73;--shadow-sm:0 1px 2px #0f141c0f;--shadow-md:0 4px 16px #0f141c1a;--shadow-lg:0 12px 40px #0f141c2e}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#111418;--color-surface:#181c21;--color-surface-2:#20252c;--color-border:#2c323a;--color-border-strong:#3b434d;--color-text:#e8ebef;--color-text-muted:#9aa4b1;--color-accent:#5b8def;--color-accent-hover:#7aa3f3;--color-accent-contrast:#0b1220;--color-accent-soft:#1c2a44;--color-success:#4ade80;--color-success-soft:#13291b;--color-warning:#f2b450;--color-warning-soft:#2e2311;--color-danger:#f87171;--color-danger-soft:#331718;--color-focus:#7aa3f3;--color-overlay:#0009;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 16px #00000073;--shadow-lg:0 12px 40px #0000008c}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--color-bg);min-width:320px;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}#root{min-height:100vh;min-height:100dvh}h1,h2,h3{margin:0 0 var(--space-3);line-height:1.25}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}p{margin:0 0 var(--space-3)}a{color:var(--color-accent)}img{max-width:100%}code,pre{font-family:var(--font-mono);font-size:.92em}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.muted{color:var(--color-text-muted)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--text-sm);cursor:pointer;white-space:nowrap;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--color-surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-contrast)}.btn-primary:hover:not(:disabled){border-color:var(--color-accent-hover);background:var(--color-accent-hover)}.btn-danger{border-color:var(--color-danger);background:var(--color-danger);color:#fff}.btn-ghost{background:0 0;border-color:#0000}.btn-icon{width:var(--tap-size);min-height:var(--tap-size);padding:0}.input,.select,.textarea{width:100%;min-height:40px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit}.field{gap:var(--space-1);margin-bottom:var(--space-4);display:grid}.field-label{font-size:var(--text-sm);font-weight:600}.field-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4)}.badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);background:var(--color-surface-2);color:var(--color-text-muted);font-size:var(--text-xs);border-radius:999px;font-weight:600;display:inline-flex}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge-danger{background:var(--color-danger-soft);color:var(--color-danger)}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface-2);font-size:var(--text-sm)}.notice-warning{background:var(--color-warning-soft);color:var(--color-warning)}.notice-danger{background:var(--color-danger-soft);color:var(--color-danger)}.page{max-width:1200px}.page-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.filter-bar{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.filter-search{flex:260px;min-width:0;position:relative}.filter-search .input{padding-inline-start:36px}.filter-search-icon{color:var(--color-text-muted);pointer-events:none;margin-block:auto;position:absolute;inset-block:0;inset-inline-start:10px}.filter-field{flex:0 auto}.filter-field .select{width:auto;min-width:150px}.filter-check{align-items:center;gap:var(--space-2);min-height:40px;font-size:var(--text-sm);white-space:nowrap;font-weight:600;display:inline-flex}.filter-check input{width:18px;height:18px}.tag-input{gap:var(--space-1);margin-bottom:var(--space-4);display:grid}.tag-box{align-items:center;gap:var(--space-1);min-height:40px;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);flex-wrap:wrap;display:flex}.tag-box[data-focused=true]{outline:2px solid var(--color-focus);outline-offset:1px}.tag-chip{max-width:100%;padding:2px 4px 2px var(--space-2);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-sm);overflow-wrap:anywhere;border-radius:999px;align-items:center;gap:2px;font-weight:600;display:inline-flex}.tag-remove{width:22px;height:22px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.tag-remove:hover{background:color-mix(in srgb, var(--color-accent) 18%, transparent)}.tag-field{min-width:120px;min-height:30px;color:var(--color-text);font:inherit;background:0 0;border:0;flex:140px}.tag-field:focus{outline:none}.tag-suggest{padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-md);margin:0;list-style:none}.tag-suggest-item{justify-content:space-between;gap:var(--space-3);width:100%;min-height:36px;padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;font-size:var(--text-sm);text-align:start;cursor:pointer;background:0 0;border:0;align-items:center;display:flex}.tag-suggest-item:hover{background:var(--color-surface-2)}.tag-error{color:var(--color-danger);margin:0}@media (max-width:768px){.filter-field{flex:140px}.filter-field .select{width:100%}.tag-suggest-item{min-height:var(--tap-size)}}.grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin:0;padding:0;list-style:none;display:grid}@media (min-width:900px){.grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}.tile{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-width:0;box-shadow:var(--shadow-sm);flex-direction:column;display:flex;position:relative}.tile[draggable=true]{cursor:grab}.tile[data-busy=true]{opacity:.6;pointer-events:none}.tile:hover{border-color:var(--color-border-strong)}.tile-thumb{aspect-ratio:4/3;border-radius:var(--radius-md) var(--radius-md) 0 0;background-color:var(--color-surface-2);background-image:linear-gradient(45deg, var(--color-border) 25%, transparent 25%, transparent 75%, var(--color-border) 75%), linear-gradient(45deg, var(--color-border) 25%, transparent 25%, transparent 75%, var(--color-border) 75%);background-position:0 0,8px 8px;background-size:16px 16px;display:block;overflow:hidden}.tile-thumb img{object-fit:contain;width:100%;height:100%;display:block}.tile-placeholder{background:var(--color-surface-2);width:100%;height:100%;color:var(--color-text-muted);place-items:center;display:grid}.tile-badges{gap:var(--space-1);pointer-events:none;flex-wrap:wrap;max-width:calc(100% - 56px);display:flex;position:absolute;inset-block-start:var(--space-2);inset-inline-start:var(--space-2)}.tile-badges .badge{box-shadow:var(--shadow-sm)}.tile-menu{position:absolute;inset-block-start:var(--space-1);inset-inline-end:var(--space-1)}.tile-menu .menu-button{background:color-mix(in srgb, var(--color-surface) 90%, transparent);width:36px;min-height:36px;box-shadow:var(--shadow-sm)}.tile-body{padding:var(--space-2) var(--space-3) var(--space-3);gap:2px;display:grid}.tile-title{text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-size:var(--text-sm);font-weight:700;text-decoration:none;overflow:hidden}.tile-title:hover{text-decoration:underline}.tile-meta{gap:0 var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.tile-meta>span+span:before{content:"·";margin-inline-end:var(--space-2)}.tile-format{color:var(--color-text);font-weight:700}.tile-tags{text-overflow:ellipsis;white-space:nowrap;color:var(--color-accent);font-size:var(--text-xs);overflow:hidden}.tile-restore{margin-top:var(--space-2);min-height:var(--tap-size)}.grid-notice{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.pager{justify-content:center;align-items:center;gap:var(--space-2);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.pager-list{gap:var(--space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.pager .btn{min-width:40px;min-height:40px;padding:0 var(--space-2)}.pager-number[aria-current=page]{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-contrast)}.pager-step[data-disabled=true]{opacity:.45;cursor:default}.pager-gap{min-width:24px;color:var(--color-text-muted);place-items:center;display:grid}.pager-info{text-align:center;font-size:var(--text-sm);flex-basis:100%}@media (max-width:768px){.pager .btn{min-width:var(--tap-size);min-height:var(--tap-size)}}.menu{position:relative}.menu-button{border-color:var(--color-border)}.menu-list{z-index:30;min-width:min(220px,100vw - 16px);max-width:calc(100vw - 16px);padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md);margin:0;list-style:none;position:absolute;inset-block-start:calc(100% + 4px);inset-inline-end:0}.menu-item{width:100%;min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;font-size:var(--text-sm);text-align:start;white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;display:flex}.menu-item:hover:not(:disabled){background:var(--color-surface-2)}.menu-item:disabled{opacity:.5;cursor:default}.menu-item-danger{color:var(--color-danger)}@media (max-width:768px){.menu-item{min-height:var(--tap-size)}}.modal{width:min(520px, calc(100vw - 2 * var(--space-4)));max-height:calc(100dvh - 2 * var(--space-4));border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-lg);padding:0}.modal::backdrop{background:var(--color-overlay)}.modal-panel{max-height:calc(100dvh - 2 * var(--space-4));flex-direction:column;display:flex}.modal-head{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-3) 0 var(--space-4);display:flex}.modal-head h2{overflow-wrap:anywhere;margin:0}.modal-body{padding:var(--space-3) var(--space-4);overflow-y:auto}.modal-foot,.modal-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.modal-foot{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);justify-content:flex-end}.modal-actions{margin-top:var(--space-3)}.empty{justify-items:center;gap:var(--space-2);max-width:520px;margin:var(--space-6) auto;padding:var(--space-5) var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);color:var(--color-text-muted);text-align:center;display:grid}.empty p{margin:0}.empty-lead{color:var(--color-text);font-size:var(--text-lg);font-weight:700}.ft{gap:var(--space-2);display:grid}.ft-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.ft-title{font-size:var(--text-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0}.ft-add{min-height:32px;padding:0 var(--space-2);color:var(--color-accent)}.ft-list{gap:1px;margin:0;padding:0;list-style:none;display:grid}.ft-row{border-radius:var(--radius-sm);align-items:center;gap:2px;min-height:36px;padding-inline-end:2px;display:flex;position:relative}.ft-row:hover{background:var(--color-surface-2)}.ft-row[data-active=true]{background:var(--color-accent-soft)}.ft-row[data-active=true] .ft-link{color:var(--color-accent)}.ft-row[data-drop=true]{outline:2px dashed var(--color-accent);outline-offset:-2px;background:var(--color-accent-soft)}.ft-toggle,.ft-toggle-space{flex:0 0 24px;width:24px;height:28px}.ft-toggle{border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.ft-toggle:hover{color:var(--color-text)}.ft-link{align-items:center;gap:var(--space-2);min-width:0;min-height:36px;color:var(--color-text);font-size:var(--text-sm);flex:auto;font-weight:600;text-decoration:none;display:flex}.ft-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ft-count{padding:0 var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs);margin-inline-start:auto;font-weight:500}.ft-menu{flex:none}.ft-menu .menu-button{opacity:0;background:0 0;border-color:#0000;width:32px;min-height:32px}.ft-row:hover .menu-button,.ft-row:focus-within .menu-button,.ft-menu[data-open=true] .menu-button{opacity:1}@media (hover:none){.ft-menu .menu-button{opacity:1}}.ft-form{gap:var(--space-2);padding-block:var(--space-2);padding-inline-end:var(--space-1);display:grid}.ft-form-actions{gap:var(--space-2);display:flex}.ft-empty,.ft-hint{margin:0}.pick-list{gap:2px;max-height:min(60vh,420px);margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.pick-row{align-items:center;gap:var(--space-2);width:100%;min-height:var(--tap-size);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;padding-block:0;padding-inline-end:var(--space-3);display:flex}.pick-row:hover:not(:disabled){background:var(--color-surface-2)}.pick-row:disabled{cursor:default;color:var(--color-text-muted)}.pick-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}@media (max-width:768px){.ft-row,.ft-link{min-height:var(--tap-size)}.ft-toggle,.ft-toggle-space{width:32px;height:var(--tap-size);flex-basis:32px}.ft-menu .menu-button{width:var(--tap-size);min-height:var(--tap-size)}}.library .page-header h1{margin-bottom:var(--space-1);overflow-wrap:anywhere}.library-count{font-size:var(--text-sm);margin:0}.library-notice{margin-bottom:var(--space-3)}@media (max-width:768px){.library .page-header{margin-bottom:var(--space-3)}}.asset-page{max-width:1280px}.asset-back{align-items:center;gap:var(--space-1);min-height:var(--tap-size);margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:600;text-decoration:none;display:inline-flex}.asset-layout{gap:var(--space-4);grid-template:"details insert""versions insert"1fr/minmax(0,1fr) minmax(320px,420px);align-items:start;display:grid}.asset-area-details{grid-area:details;min-width:0}.asset-area-insert{top:calc(var(--topbar-height) + var(--space-3));grid-area:insert;min-width:0;position:sticky}.asset-area-versions{grid-area:versions;min-width:0}.asset-notice{margin-bottom:var(--space-3)}.asset-details{gap:var(--space-3);display:grid}.asset-preview{min-height:160px;padding:var(--space-3);border-radius:var(--radius-sm);background-color:var(--color-surface-2);background-image:linear-gradient(45deg,#7f7f7f1f 25%,#0000 25% 75%,#7f7f7f1f 75%),linear-gradient(45deg,#7f7f7f1f 25%,#0000 25% 75%,#7f7f7f1f 75%);background-position:0 0,8px 8px;background-size:16px 16px;place-items:center;display:grid}.asset-preview img{object-fit:contain;max-width:100%;height:auto;max-height:60vh;display:block}.title-input{width:100%;min-height:var(--tap-size);padding:var(--space-1) var(--space-2);margin:0 calc(-1 * var(--space-2));border-radius:var(--radius-sm);color:var(--color-text);font:inherit;font-size:var(--text-xl);background:0 0;border:1px solid #0000;font-weight:700}.title-input:hover{border-color:var(--color-border)}.title-input:focus{border-color:var(--color-border-strong);background:var(--color-surface)}.asset-badges{gap:var(--space-1);flex-wrap:wrap;display:flex}.asset-badges:empty{display:none}.asset-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.asset-facts{gap:var(--space-1) var(--space-4);font-size:var(--text-sm);grid-template-columns:max-content minmax(0,1fr);margin:0;display:grid}.asset-facts dt{color:var(--color-text-muted)}.asset-facts dd{overflow-wrap:anywhere;margin:0}.versions-card h2{margin-bottom:var(--space-2)}.version-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.version{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.version[data-selected=true]{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.version-head{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.version-thumb{object-fit:contain;border-radius:var(--radius-sm);background:var(--color-surface-2);width:64px;height:64px}.version-title{align-items:center;gap:var(--space-2);flex-wrap:wrap;flex:auto;display:flex}.version-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.version-recipe,.version-meta{margin:var(--space-2) 0 0;font-size:var(--text-sm)}.versions-previous{margin-top:var(--space-3)}.versions-previous summary{min-height:var(--tap-size);align-items:center;gap:var(--space-2);cursor:pointer;font-weight:600;list-style:none;display:flex}.versions-previous summary::-webkit-details-marker{display:none}.versions-previous summary:before{content:"▸";transition:transform .15s}.versions-previous[open] summary:before{transform:rotate(90deg)}.file-list{gap:var(--space-2);margin:var(--space-3) 0 0;padding:0;list-style:none;display:grid}.file-row{gap:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--color-border);font-size:var(--text-sm);display:grid}.file-main,.file-facts{align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.file-width{font-weight:700}.file-facts{color:var(--color-text-muted)}.file-heavy{margin:0}.file-url{font-family:var(--font-mono);font-size:var(--text-xs);overflow-wrap:anywhere}@media (max-width:1024px){.asset-layout{grid-template:"details""insert""versions"/minmax(0,1fr)}.asset-area-insert{position:static}}@media (max-width:768px){.asset-page{margin:calc(-1 * var(--space-4)) calc(-1 * var(--space-4)) 0}.asset-back{margin-left:var(--space-3)}.asset-layout{gap:var(--space-2)}.asset-page .card{padding:var(--space-3);border-left:0;border-right:0;border-radius:0}.asset-actions .btn,.version-actions .btn{min-height:var(--tap-size);flex:1 1 calc(50% - var(--space-2))}.asset-facts{grid-template-columns:minmax(0,1fr);gap:0}.asset-facts dd{margin-bottom:var(--space-2)}}.danger-zone{gap:var(--space-3);margin-top:var(--space-4);display:grid}.danger-zone h2{margin:0}.danger-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.danger-hint{font-size:var(--text-sm);margin:0}.btn-danger-outline{border-color:var(--color-danger);color:var(--color-danger)}.btn-danger-outline:hover:not(:disabled){background:var(--color-danger-soft)}.danger-banner{margin-bottom:var(--space-3);overflow-wrap:anywhere;font-weight:600}.danger-form .notice,.danger-delete .notice{margin-bottom:var(--space-3)}.danger-reason{resize:vertical;min-height:80px}.danger-text{margin:0 0 var(--space-2);font-size:var(--text-sm)}.danger-subtitle{margin:var(--space-3) 0 var(--space-2);font-size:var(--text-md)}.danger-table-wrap{margin-bottom:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow-x:auto}.danger-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.danger-table th,.danger-table td{padding:var(--space-2);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.danger-table tr:last-child td{border-bottom:0}.danger-table th{font-size:var(--text-xs);color:var(--color-text-muted)}.danger-table td>span{display:block}.danger-table td:last-child{white-space:nowrap}.danger-url{font-family:var(--font-mono);font-size:var(--text-xs);overflow-wrap:anywhere;word-break:break-all}.danger-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.danger-block-first{gap:var(--space-2);justify-items:start;display:grid}.danger-block-first p{margin:0}@media (max-width:768px){.danger-actions .btn{min-height:var(--tap-size);flex:100%}.danger-table td:last-child{white-space:normal}}.cropper-container{-ms-touch-action:none;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;direction:ltr;font-size:0;line-height:0;position:relative}.cropper-container img{backface-visibility:hidden;image-orientation:0deg;width:100%;height:100%;display:block;min-width:0!important;max-width:none!important;min-height:0!important;max-height:none!important}.cropper-wrap-box,.cropper-canvas,.cropper-drag-box,.cropper-crop-box,.cropper-modal{position:absolute;inset:0}.cropper-wrap-box,.cropper-canvas{overflow:hidden}.cropper-drag-box{opacity:0;background-color:#fff}.cropper-modal{opacity:.5;background-color:#000}.cropper-view-box{border-radius:inherit;outline:1px solid #3399ffbf;width:100%;height:100%;display:block;overflow:hidden}.cropper-dashed{opacity:.5;border:0 dashed #eee;display:block;position:absolute}.cropper-dashed.dashed-h{border-top-width:1px;border-bottom-width:1px;width:100%;height:33.3333%;top:33.3333%;left:0}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;width:33.3333%;height:100%;top:0;left:33.3333%}.cropper-center{opacity:.75;width:0;height:0;display:block;position:absolute;top:50%;left:50%}.cropper-center:before,.cropper-center:after{content:" ";background-color:#eee;display:block;position:absolute}.cropper-center:before{width:7px;height:1px;top:0;left:-3px}.cropper-center:after{width:1px;height:7px;top:-3px;left:0}.cropper-face,.cropper-line,.cropper-point{opacity:.1;width:100%;height:100%;display:block;position:absolute}.cropper-face{border-radius:inherit;background-color:#fff;top:0;left:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;width:5px;top:0;right:-3px}.cropper-line.line-n{cursor:ns-resize;height:5px;top:-3px;left:0}.cropper-line.line-w{cursor:ew-resize;width:5px;top:0;left:-3px}.cropper-line.line-s{cursor:ns-resize;height:5px;bottom:-3px;left:0}.cropper-point{opacity:.75;background-color:#39f;width:5px;height:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;top:50%;right:-3px}.cropper-point.point-n{cursor:ns-resize;margin-left:-3px;top:-3px;left:50%}.cropper-point.point-w{cursor:ew-resize;margin-top:-3px;top:50%;left:-3px}.cropper-point.point-s{cursor:s-resize;margin-left:-3px;bottom:-3px;left:50%}.cropper-point.point-ne{cursor:nesw-resize;top:-3px;right:-3px}.cropper-point.point-nw{cursor:nwse-resize;top:-3px;left:-3px}.cropper-point.point-sw{cursor:nesw-resize;bottom:-3px;left:-3px}.cropper-point.point-se{cursor:nwse-resize;opacity:1;width:20px;height:20px;bottom:-3px;right:-3px}@media (min-width:768px){.cropper-point.point-se{width:15px;height:15px}}@media (min-width:992px){.cropper-point.point-se{width:10px;height:10px}}@media (min-width:1200px){.cropper-point.point-se{opacity:.75;width:5px;height:5px}}.cropper-point.point-se:before{content:" ";opacity:0;background-color:#39f;width:200%;height:200%;display:block;position:absolute;bottom:-50%;right:-50%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{width:0;height:0;display:block;position:absolute}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.modal:has(.version-editor){width:min(1040px, calc(100vw - 2 * var(--space-4)))}.version-editor{gap:var(--space-4);grid-template-columns:minmax(0,1fr) 300px;display:grid}.version-editor>.notice{grid-column:1/-1;margin:0}.editor-stage{border-radius:var(--radius-sm);background:var(--color-surface-2);height:min(62vh,560px);min-height:260px;overflow:visible}.editor-stage>img{max-width:100%;display:block}.editor-stage>p{padding:var(--space-4)}.editor-controls{gap:var(--space-3);align-content:start;display:grid}.editor-group{gap:var(--space-1);border:0;margin:0;padding:0;display:grid}.editor-group .notice{margin:var(--space-1) 0 0}.editor-chips{gap:var(--space-1);flex-wrap:wrap;display:flex}.editor-chip{min-height:36px;padding:0 var(--space-3)}.editor-chip[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent)}.editor-radio{align-items:flex-start;gap:var(--space-2);min-height:32px;padding-right:var(--space-3);font-size:var(--text-sm);cursor:pointer;display:flex}.editor-radio input{width:18px;height:18px;accent-color:var(--color-accent);margin:1px 0 0}.editor-qualities{gap:var(--space-1);display:grid}.editor-quality-hint{display:block}.editor-result{min-height:120px;padding:var(--space-2);border-radius:var(--radius-sm);background-color:var(--color-surface-2);background-image:linear-gradient(45deg,#7f7f7f24 25%,#0000 25% 75%,#7f7f7f24 75%),linear-gradient(45deg,#7f7f7f24 25%,#0000 25% 75%,#7f7f7f24 75%);background-position:0 0,8px 8px;background-size:16px 16px;place-items:center;display:grid}.editor-result-canvas{max-width:100%;height:auto;display:block}.editor-size{margin:var(--space-1) 0 0;font-weight:700}@media (max-width:768px){.modal:has(.version-editor){border-radius:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0}.modal:has(.version-editor) .modal-panel{height:100%;max-height:100dvh}.version-editor{grid-template-columns:minmax(0,1fr)}.editor-stage{height:52vh}.editor-chip,.editor-radio{min-height:var(--tap-size);align-items:center}}@media (pointer:coarse){.version-editor .cropper-point{opacity:.9;border-radius:50%;width:22px;height:22px}.version-editor .cropper-point.point-e{margin-top:-11px;right:-11px}.version-editor .cropper-point.point-w{margin-top:-11px;left:-11px}.version-editor .cropper-point.point-n{margin-left:-11px;top:-11px}.version-editor .cropper-point.point-s{margin-left:-11px;bottom:-11px}.version-editor .cropper-point.point-ne{top:-11px;right:-11px}.version-editor .cropper-point.point-nw{top:-11px;left:-11px}.version-editor .cropper-point.point-sw{bottom:-11px;left:-11px}.version-editor .cropper-point.point-se{opacity:.9;width:22px;height:22px;bottom:-11px;right:-11px}.version-editor .cropper-line.line-e{width:20px;right:-10px}.version-editor .cropper-line.line-w{width:20px;left:-10px}.version-editor .cropper-line.line-n{height:20px;top:-10px}.version-editor .cropper-line.line-s{height:20px;bottom:-10px}}.insert-panel{gap:var(--space-2);align-content:start;display:grid}.insert-panel h2{margin-bottom:var(--space-1)}.insert-panel .field{margin-bottom:var(--space-2)}.insert-width{max-width:160px}.insert-missing{gap:var(--space-1);justify-items:start;display:grid}.insert-files{gap:var(--space-1);border:0;margin:0;padding:0;display:grid}.insert-file,.insert-link-toggle{align-items:center;gap:var(--space-2);min-height:36px;font-size:var(--text-sm);cursor:pointer;display:flex}.insert-file input,.insert-link-toggle input{width:18px;height:18px;accent-color:var(--color-accent);margin:0}.field-error{font-size:var(--text-xs);color:var(--color-danger)}.public-notice{align-items:center;gap:var(--space-2) var(--space-3);margin:var(--space-2) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-2);color:var(--color-text-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.public-notice[data-acknowledged=false]{background:var(--color-warning-soft);color:var(--color-warning);outline:1px solid color-mix(in srgb, var(--color-warning) 40%, transparent);font-weight:600}.public-notice span{flex:220px}.public-notice-ok{min-height:32px}.copy-buttons{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.copy-button{min-height:var(--tap-size);font-size:var(--text-md)}.copy-toast{min-height:1.4em;color:var(--color-success);font-size:var(--text-sm);margin:0;font-weight:600}.insert-hint{font-size:var(--text-xs)}.manual-copy{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);justify-items:start;display:grid}.manual-copy-hint{font-size:var(--text-sm);margin:0;font-weight:600}.manual-copy-text{font-family:var(--font-mono);font-size:var(--text-xs)}.code-preview{gap:var(--space-1);display:grid}.code-block{margin:0 0 var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-2);font-size:var(--text-xs);white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}@media (max-width:768px){.insert-file,.insert-link-toggle,.public-notice-ok{min-height:var(--tap-size)}}.auth-card h1{margin-bottom:var(--space-2)}.auth-card form{margin-top:var(--space-4)}.check-row{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);font-size:var(--text-sm);min-height:var(--tap-size);display:flex}.check-row input{width:18px;height:18px}.btn-block{width:100%}.form-error{margin-bottom:var(--space-3)}.form-success{margin-bottom:var(--space-3);background:var(--color-success-soft);color:var(--color-success)}.settings-section{margin-bottom:var(--space-5)}.settings-section>h2{margin-bottom:var(--space-2)}.settings-section .card{max-width:720px}.form-narrow{max-width:420px}.form-row{gap:var(--space-3);flex-wrap:wrap;align-items:flex-end;display:flex}.form-row>.field{margin-bottom:var(--space-3);flex:200px}.form-row>.btn{margin-bottom:var(--space-3)}.actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.link-box{gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-3);border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-2);display:grid}.link-box .input{font-family:var(--font-mono);font-size:var(--text-sm)}.link-box-row{gap:var(--space-2);display:flex}.link-box-row .input{flex:auto;min-width:0}.totp-setup{gap:var(--space-3);justify-items:start;display:grid}.totp-qr{border-radius:var(--radius-sm);width:200px;height:200px;padding:var(--space-2);background:#fff}.totp-secret{font-family:var(--font-mono);word-break:break-all;letter-spacing:.06em}.code-grid{gap:var(--space-2);margin:0 0 var(--space-3);font-family:var(--font-mono);grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;display:grid}.code-grid li{padding:var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-2);text-align:center}.item-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.item{gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.item-head{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.item-title{overflow-wrap:anywhere;font-weight:600}.item-meta{color:var(--color-text-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.item[data-disabled=true] .item-title{color:var(--color-text-muted)}.item-controls{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.item-controls .select,.item-controls .input{width:auto;min-width:0}.quota-input{width:110px!important}.filters{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.filters .field{flex:200px;margin-bottom:0}.pager{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.audit-when{color:var(--color-text-muted);font-size:var(--text-sm);white-space:nowrap}@media (max-width:480px){.item{padding:var(--space-3)}.item-controls>*{flex:auto}.item-controls .quota-input{flex:90px}.code-grid{grid-template-columns:1fr}}.test-email{max-width:880px}.test-email-bar{top:calc(var(--topbar-height) + var(--space-2));z-index:5;gap:var(--space-2);margin-bottom:var(--space-4);display:grid;position:sticky}.test-email-count{font-weight:700}.test-email-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.test-email-actions .btn{min-height:var(--tap-size)}.test-email-picked{gap:var(--space-1);padding-left:var(--space-5);font-size:var(--text-sm);margin:0;display:grid}.test-email-picked li span{margin-right:var(--space-2)}.test-email-list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.test-email-item label{align-items:center;gap:var(--space-3);min-height:var(--tap-size);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;display:flex}.test-email-item[data-disabled=true] label{opacity:.6;cursor:not-allowed}.test-email-item input{width:20px;height:20px;accent-color:var(--color-accent);margin:0}.test-email-item img,.test-email-thumb{object-fit:cover;border-radius:var(--radius-sm);background:var(--color-surface-2);width:56px;height:56px}.test-email-name{min-width:0;font-size:var(--text-sm);display:grid}.test-email-name strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-button{align-items:stretch;display:inline-flex;position:relative}.upload-button-main{border-top-right-radius:0;border-bottom-right-radius:0}.upload-button-more{min-width:32px;padding:0 var(--space-2);border-left:1px solid #ffffff59;border-top-left-radius:0;border-bottom-left-radius:0}.upload-popover{top:calc(100% + var(--space-2));z-index:60;width:min(320px, calc(100vw - 2 * var(--space-4)));padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg);position:absolute;right:0}.upload-mode{border:0;min-width:0;margin:0;padding:0}.upload-mode-legend{margin-bottom:var(--space-2);font-size:var(--text-sm);padding:0;font-weight:600}.upload-mode-options{gap:var(--space-1);display:grid}.upload-mode-compact .upload-mode-options{gap:var(--space-2);grid-template-columns:1fr 1fr}.upload-mode-option{align-items:center;gap:var(--space-2);min-height:36px;font-size:var(--text-sm);cursor:pointer;display:flex}.upload-mode-compact .upload-mode-option{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.upload-mode-option input{flex:none;margin:0}.upload-mode:disabled .upload-mode-option{cursor:not-allowed;opacity:.7}.upload-mode-note{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--color-warning)}.upload-tray{right:var(--space-4);bottom:var(--space-4);z-index:45;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);width:400px;max-height:min(70vh,640px);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:fixed;overflow:hidden}.upload-tray-head{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);display:flex}.upload-tray[data-collapsed=true] .upload-tray-head{border-bottom:0}.upload-tray-title{min-width:0;font-size:var(--text-sm);flex:1;display:grid}.upload-tray-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-tray-count{font-size:var(--text-xs)}.upload-tray-body{gap:var(--space-3);min-height:0;padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.upload-notice{align-items:center;gap:var(--space-2);margin:0;display:flex}.upload-notice .btn-icon{width:28px;min-height:28px;margin-left:auto}.upload-list{gap:var(--space-2);min-height:0;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.upload-row{align-items:center;gap:var(--space-3);min-height:52px;display:flex}.upload-thumb{border-radius:var(--radius-sm);background:var(--color-surface-2);width:48px;height:48px;color:var(--color-text-muted);flex:none;place-items:center;display:grid;overflow:hidden}.upload-thumb img{object-fit:cover;width:100%;height:100%}.upload-row-main{flex:1;gap:2px;min-width:0;display:grid}.upload-name{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.upload-status{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;display:inline-flex}.upload-status-ok{color:var(--color-success)}.upload-status-error{color:var(--color-danger)}.upload-progress{background:var(--color-surface-2);border-radius:2px;height:4px;display:block;overflow:hidden}.upload-progress span{background:var(--color-accent);height:100%;transition:width .2s linear;display:block}.upload-spin{animation:1s linear infinite upload-spin}@keyframes upload-spin{to{transform:rotate(360deg)}}.upload-row-actions{flex:none;align-items:center;display:flex}.upload-retry{min-height:32px;padding:0 var(--space-2);font-size:var(--text-xs)}.upload-remove{width:32px;min-height:32px}.upload-manual{gap:var(--space-1);display:grid}.upload-tray-foot{gap:var(--space-2);flex-wrap:wrap;display:flex}.upload-tray-foot .btn{flex:160px}.drop-overlay{z-index:70;padding:var(--space-5);background:var(--color-overlay);pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.drop-overlay-card{justify-items:center;gap:var(--space-2);padding:var(--space-6);border:2px dashed var(--color-accent);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-accent);text-align:center;display:grid}.drop-overlay-card p{margin:0}.drop-overlay-title{font-size:var(--text-lg);color:var(--color-text);font-weight:700}@media (max-width:768px){.upload-tray{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:auto;max-height:65vh;padding-bottom:env(safe-area-inset-bottom);border-bottom:0;border-left:0;border-right:0;bottom:0;left:0;right:0}.upload-mode-compact .upload-mode-options{grid-template-columns:1fr}}@media (max-width:420px){.upload-button-label{display:none}.upload-button-main{padding:0 var(--space-3)}}@media (prefers-reduced-motion:reduce){.upload-spin{animation:none}.upload-progress span{transition:none}}.app-shell{min-height:100vh;min-height:100dvh;display:flex}.sidebar{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);height:100vh;gap:var(--space-4);height:100dvh;padding:var(--space-4) var(--space-3);background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-head{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:40px;display:flex}.brand{align-items:center;gap:var(--space-2);padding:0 var(--space-2);color:var(--color-text);font-weight:700;text-decoration:none;display:flex}.brand-mark{border-radius:var(--radius-sm);background:var(--color-accent);width:32px;height:32px;color:var(--color-accent-contrast);place-items:center;display:grid}.nav{gap:2px;display:grid}.nav-link{align-items:center;gap:var(--space-3);min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-sm);font-weight:600;text-decoration:none;display:flex}.nav-link:hover{background:var(--color-surface-2)}.nav-link.active{background:var(--color-accent-soft);color:var(--color-accent)}.sidebar-section{border-top:1px solid var(--color-border);padding-top:var(--space-3)}.sidebar .sidebar-close{display:none}.main-col{flex-direction:column;flex:auto;min-width:0;display:flex}.topbar{z-index:20;align-items:center;gap:var(--space-3);height:var(--topbar-height);padding:0 var(--space-5);background:color-mix(in srgb, var(--color-bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);display:flex;position:sticky;top:0}.topbar .topbar-burger{display:none}.topbar-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:700;overflow:hidden}.topbar-actions{align-items:center;gap:var(--space-2);display:flex}.user-chip{align-items:center;gap:var(--space-2);max-width:220px;font-size:var(--text-sm);display:flex}.user-chip-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.content{min-width:0;padding:var(--space-5);flex:auto}.sidebar-backdrop{display:none}.settings-tabs{gap:var(--space-1);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border);scrollbar-width:none;display:flex;overflow-x:auto}.settings-tab{padding:var(--space-2) var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm);border-bottom:2px solid #0000;flex:none;font-weight:600;text-decoration:none}.settings-tab.active{border-bottom-color:var(--color-accent);color:var(--color-accent)}.center-screen{min-height:100vh;min-height:100dvh;padding:var(--space-4);place-items:center;display:grid}.center-card{width:100%;max-width:400px}@media (max-width:768px){.sidebar{z-index:50;width:min(86vw,320px);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar[data-open=true]{box-shadow:var(--shadow-lg);transform:translate(0)}.sidebar .sidebar-close{display:inline-flex}.sidebar-backdrop[data-open=true]{z-index:40;background:var(--color-overlay);display:block;position:fixed;inset:0}.topbar{padding:0 var(--space-3)}.topbar .topbar-burger{display:inline-flex}.user-chip-name{display:none}.content{padding:var(--space-4)}}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}
