.modal-overlay{z-index:9999;background:#0006;justify-content:center;align-items:flex-start;padding-top:15vh;display:flex;position:fixed;inset:0}.modal-overlay-centered{align-items:center;padding-top:0}.modal-w-sm{width:400px}.modal-w-md{width:520px}.modal-w-lg{width:700px}.modal{--modal-px:16px;background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--border-soft);padding:12px var(--modal-px);flex-direction:column;max-width:90vw;max-height:90vh;display:flex;position:relative;overflow:hidden}.modal-header-unified{justify-content:space-between;align-items:center;gap:12px;padding-bottom:16px;display:flex}.modal-header-unified .icon-btn{flex-shrink:0;padding:2px}.modal-back{appearance:none;cursor:pointer;border-radius:var(--r-sm);color:var(--text-2);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:4px;display:flex}.modal-back:hover{color:var(--text-1)}.modal-header-border{border-bottom:1px solid var(--border-soft);margin:-12px calc(-1 * var(--modal-px)) 12px;padding:12px var(--modal-px) 12px}.modal-header-content{min-width:0;font-size:var(--font-size-l);font-weight:var(--font-weight-m);line-height:var(--line-height-condensed);color:var(--grey-900);flex:1;margin:0}.modal-body{flex-direction:column;flex:1;gap:16px;min-height:0;display:flex}.modal-body-scrollable{margin-right:calc(-1 * var(--modal-px) + 2px)}.modal-body-scrollable>.scroll-area-viewport{padding-right:calc(var(--modal-px) - 2px)}.modal-actions-unified{justify-content:flex-end;align-items:center;gap:6px;padding-top:16px;display:flex}.modal-close-standalone{align-self:flex-end}.modal-kv-grid{grid-template-columns:auto 1fr;gap:6px 16px;display:grid}.modal-confirm-message{font-size:var(--font-size-m);line-height:var(--line-height-condensed);color:var(--grey-700);margin:0}.modal-error{border-radius:var(--r);background:var(--semantic-negative-soft);color:var(--semantic-negative-ui);margin:0;padding:10px 14px;font-size:13px}.modal-btn-cancel{border-radius:var(--r);border:1px solid var(--border);color:var(--text-2);cursor:pointer;transition:all .15s var(--ease);background:0 0;padding:6px 12px;font-size:13px;font-weight:500}.modal-btn-cancel:hover{background:var(--surface-dim)}.modal-btn-submit{border-radius:var(--r);background:var(--accent);color:#fff;cursor:pointer;transition:background .15s var(--ease);border:1px solid #0000;padding:6px 12px;font-size:13px;font-weight:600}.modal-btn-submit:hover{background:color-mix(in srgb, var(--accent) 85%, black)}.modal-btn-submit:disabled{opacity:.5;cursor:not-allowed}.modal-btn-secondary{border-radius:var(--r);border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);cursor:pointer;transition:all .15s var(--ease);align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.modal-btn-secondary:hover{background:color-mix(in srgb, var(--accent-soft) 80%, var(--accent))}.modal-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.modal-btn-danger{border-radius:var(--r);background:var(--semantic-negative-strong);color:#fff;cursor:pointer;transition:background .15s var(--ease);border:1px solid #0000;padding:6px 12px;font-size:13px;font-weight:600}.modal-btn-danger:hover{background:var(--semantic-negative-text-strong)}.modal-btn-danger:disabled{opacity:.5;cursor:not-allowed}:root[data-theme=dark] .modal .modal-btn-submit{background:color-mix(in srgb, var(--accent) 20%, var(--surface));color:var(--link);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent)}:root[data-theme=dark] .modal .modal-btn-submit:hover{background:color-mix(in srgb, var(--accent) 30%, var(--surface))}:root[data-theme=dark] .modal .modal-btn-danger{background:var(--semantic-negative-soft);color:var(--semantic-negative-ui);border:1px solid var(--semantic-negative-border)}:root[data-theme=dark] .modal .modal-btn-danger:hover{background:var(--semantic-negative-hover)}@media (width<=768px){.modal-w-sm,.modal-w-md,.modal-w-lg{width:100%;max-width:calc(100vw - 32px)}}@media (width<=480px){.modal-actions-unified{flex-direction:column-reverse;align-items:stretch;gap:8px}.modal-actions-unified>button{justify-content:center;width:100%}}.btn{appearance:none;box-sizing:border-box;border-radius:var(--br-m);font-family:inherit;font-weight:var(--font-weight-m);line-height:var(--line-height-condensed);cursor:pointer;transition:all .15s var(--ease);white-space:nowrap;justify-content:center;align-items:center;gap:4px;display:inline-flex}.btn-icon{flex-shrink:0;justify-content:center;align-items:center;line-height:0;display:inline-flex}.btn-icon svg{display:block}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-xsmall{height:28px;font-size:var(--font-size-s);font-weight:var(--font-weight-m);line-height:var(--line-height-s);padding:0 8px}.btn-small{height:32px;font-size:var(--font-size-m);font-weight:var(--font-weight-m);line-height:var(--line-height-condensed);padding:0 12px}.btn-medium{height:36px;font-size:var(--font-size-m);font-weight:var(--font-weight-m);line-height:var(--line-height-condensed);padding:0 14px}.btn-default{border:1px solid var(--border);background:var(--surface);color:var(--grey-900)}.btn-default:hover:not(:disabled){background:var(--grey-100)}.btn-primary{border:1px solid var(--accent);background:var(--accent);color:var(--bg)}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 85%, black)}:root[data-theme=dark] .btn-primary{background:color-mix(in srgb, var(--accent) 15%, var(--surface));color:var(--link);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}:root[data-theme=dark] .btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 25%, var(--surface));border-color:color-mix(in srgb, var(--accent) 50%, transparent)}.btn-danger{border:1px solid var(--semantic-negative-ui);color:var(--semantic-negative-ui);background:0 0}.btn-danger:hover:not(:disabled){background:var(--semantic-negative-hover)}.btn-ghost{color:var(--text-2);background:0 0;border:none}.btn-ghost:hover:not(:disabled){background:var(--surface-dim);color:var(--text-1)}.split-btn{display:inline-flex;position:relative}.split-btn>.split-btn-main{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.split-btn>.split-btn-chevron{color:var(--surface);border-left:none;border-top-left-radius:0;border-bottom-left-radius:0;padding-left:6px;padding-right:6px;position:relative}.split-btn-chevron:before{content:"";background:var(--surface);width:1px;position:absolute;top:0;bottom:0;left:0}.split-btn .btn-default+.split-btn-chevron:before{background:var(--border)}:root[data-theme=dark] .split-btn>.split-btn-chevron{color:var(--link)}:root[data-theme=dark] .split-btn-chevron:before{background:color-mix(in srgb, var(--accent) 40%, transparent)}.split-btn-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--br-m);z-index:100;min-width:200px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 4px 12px #0000001a}.split-btn-menu-item{width:100%;font-size:var(--font-size-s);line-height:var(--line-height-condensed);color:var(--grey-700);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:6px 8px;display:flex}.split-btn-menu-item+.split-btn-menu-item{border-top:1px solid var(--border-soft)}.split-btn-menu-item:hover{background:var(--surface-dim)}.split-btn-menu-item.is-active{color:var(--accent);font-weight:var(--font-weight-db)}.split-btn-menu-item .badge{margin-left:auto}.split-btn-menu-icon{color:var(--text-3);align-items:center;display:flex}.split-btn-menu-label{flex:1;align-items:center;gap:8px;display:flex}.split-btn-menu-desc{font-size:var(--font-size-s);color:var(--text-3)}.split-btn-menu-footer{border-top:1px solid var(--border-soft);font-size:var(--font-size-caption);line-height:var(--line-height-condensed);color:var(--grey-700);align-items:center;gap:4px;padding:6px 8px;display:flex}.appearance-color-popover{box-sizing:border-box;z-index:10001;border:1px solid var(--border-soft);border-radius:var(--r-lg);background:var(--surface);width:244px;max-width:calc(100vw - 24px);box-shadow:0 12px 32px color-mix(in srgb, var(--text-1) 18%, transparent);padding:10px;overflow:auto}.appearance-color-popover-title{color:var(--text-1);font-size:var(--font-size-s);font-weight:var(--font-weight-db);line-height:var(--line-height-s);text-overflow:ellipsis;white-space:nowrap;margin-bottom:8px;overflow:hidden}.appearance-color-popover .react-colorful{width:100%;height:148px}.appearance-color-popover .react-colorful__saturation{border-radius:var(--r) var(--r) 0 0}.appearance-color-popover .react-colorful__last-control{border-radius:0 0 var(--r) var(--r)}.appearance-color-popover .react-colorful__pointer{border-color:var(--surface);background:var(--surface);width:18px;height:18px;box-shadow:0 0 0 1px var(--border), var(--shadow-card)}.appearance-color-popover .react-colorful__hue{height:16px}.appearance-color-popover-value{grid-template-columns:32px minmax(0,1fr);gap:4px;margin-top:8px;display:grid}.appearance-color-popover-preview{border-radius:var(--r-sm);background:var(--appearance-picker-preview);width:32px;height:32px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text-1) 12%, transparent);display:block}.appearance-color-popover-hex{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);width:100%;height:32px;color:var(--text-1);font:inherit;font-size:var(--font-size-s);line-height:var(--line-height-s);text-transform:uppercase;outline:none;padding:0 9px}.appearance-color-popover-hex:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent)}.appearance-color-popover-hex.invalid{border-color:var(--semantic-negative-ui)}.appearance-color-popover-error{color:var(--semantic-negative-ui);font-size:var(--font-size-caption);line-height:var(--line-height-caption);grid-column:1/-1}.appearance-color-popover-actions{gap:8px;margin-top:8px;display:flex}.appearance-color-popover-actions .btn{flex:1}@media (width<=480px){.appearance-color-popover{width:232px;padding:8px}.appearance-color-popover .react-colorful{height:116px}}.appearance-modal{--modal-px:24px;width:min(960px,100vw - 32px)}.appearance-form{gap:16px;display:grid}.appearance-section{gap:8px;display:grid}.appearance-section-copy h2,.appearance-section-copy p{margin:0}.appearance-section-copy h2{color:var(--text-1);font-size:var(--font-size-m);font-weight:var(--font-weight-db);line-height:var(--line-height-condensed)}.appearance-section-copy p{color:var(--text-3);font-size:var(--font-size-s);line-height:var(--line-height-body);margin-top:2px}.appearance-mode-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.appearance-mode-card{cursor:pointer;border:1px solid var(--border-soft);border-radius:var(--r-lg);background:var(--surface);transition:border-color .15s var(--ease), background .15s var(--ease), box-shadow .15s var(--ease);gap:6px;padding:12px;display:grid;position:relative}.appearance-mode-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border-soft));background:color-mix(in srgb, var(--accent) 3%, var(--surface))}.appearance-mode-card.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.appearance-mode-card input{accent-color:var(--accent);position:absolute;top:10px;right:10px}.appearance-mode-preview{border:1px solid var(--border-soft);border-radius:var(--r);background:var(--surface-dim);grid-template-rows:repeat(2,1fr);grid-template-columns:28% 1fr;gap:4px;height:72px;padding:8px;display:grid;overflow:hidden}.appearance-mode-preview>span:not(.appearance-mode-preview-half),.appearance-mode-preview-half>span{border-radius:var(--spacing-2xs);background:var(--border)}.appearance-mode-preview>span:not(.appearance-mode-preview-half):first-child,.appearance-mode-preview-half>span:first-child{background:var(--grey-200);grid-row:1/-1}.appearance-modal [data-preview-theme=light]{--preview-bg:var(--appearance-preview-light-bg);--preview-block:var(--appearance-preview-light-block);--preview-sidebar:var(--appearance-preview-light-sidebar);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.appearance-modal [data-preview-theme=dark]{--preview-bg:var(--appearance-preview-dark-bg);--preview-block:var(--appearance-preview-dark-block);--preview-sidebar:var(--appearance-preview-dark-sidebar);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.appearance-modal [data-preview-theme]{background:var(--preview-bg)}.appearance-modal [data-preview-theme]>span{background:var(--preview-block)}.appearance-modal [data-preview-theme]>span:first-child{background:var(--preview-sidebar)}.appearance-mode-preview-system{grid-template-rows:1fr;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:0}.appearance-mode-preview-half{border:0;border-radius:0;grid-template-rows:repeat(2,1fr);grid-template-columns:28% 1fr;gap:4px;min-width:0;padding:8px;display:grid}.appearance-mode-label{color:var(--text-1);font-size:var(--font-size-m);font-weight:var(--font-weight-db)}.appearance-mode-description{color:var(--text-3);font-size:var(--font-size-s);line-height:var(--line-height-body)}.appearance-colors-header,.appearance-color-row{grid-template-columns:minmax(190px,1fr) minmax(220px,1fr) minmax(220px,1fr);align-items:start;gap:12px;display:grid}.appearance-colors-header{color:var(--text-3);font-size:var(--font-size-s);font-weight:var(--font-weight-m);padding:0 12px}.appearance-color-row{background:var(--surface);min-height:58px;padding:10px 12px}.appearance-color-role{min-height:36px;color:var(--text-1);font-size:var(--font-size-m);font-weight:var(--font-weight-m);align-items:center;gap:8px;display:flex}.appearance-color-role-dot{background:var(--appearance-preview);width:10px;height:10px;box-shadow:0 0 0 3px color-mix(in srgb, var(--appearance-preview) 14%, var(--surface));border-radius:50%;flex:none}.appearance-color-control{grid-template-columns:36px minmax(0,1fr);gap:8px;display:grid;position:relative}.appearance-color-picker{cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0;width:36px;height:36px;padding:0;display:block}.appearance-color-picker-swatch{border-radius:var(--r-sm);background:var(--appearance-picker-color);width:100%;height:100%;display:block}.appearance-color-picker:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.appearance-hex-input{border-style:solid;border-width:1px;border-color:var(--border);border-radius:var(--r-sm);background:var(--surface);min-width:0;height:36px;color:var(--text-1);font:inherit;font-size:var(--font-size-m);text-transform:uppercase;outline:none;padding:0 10px}.appearance-hex-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent)}.appearance-hex-input.invalid{border-color:var(--semantic-negative-strong)}.appearance-field-error{color:var(--semantic-negative-strong);font-size:var(--font-size-caption);line-height:var(--line-height-s);grid-column:1/-1}.appearance-save-error{border:1px solid var(--semantic-negative-border);border-radius:var(--r);background:var(--semantic-negative-soft);color:var(--semantic-negative-strong);font-size:var(--font-size-s);padding:10px 12px}.appearance-actions{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.appearance-actions-primary{gap:8px;display:flex}.appearance-reset{cursor:pointer;color:var(--text-2);font:inherit;font-size:var(--font-size-s);font-weight:var(--font-weight-m);background:0 0;border:0;padding:6px 0}.appearance-reset:hover{color:var(--accent)}.appearance-reset:disabled{cursor:not-allowed;opacity:.5}@media (width<=768px){.appearance-mode-grid{grid-template-columns:1fr}.appearance-mode-preview{height:56px}.appearance-colors-header{display:none}.appearance-color-row{grid-template-columns:1fr}.appearance-color-control:before{color:var(--text-3);content:"Light";font-size:var(--font-size-s);align-self:center}.appearance-color-control:last-child:before{content:"Dark"}.appearance-color-control{grid-template-columns:48px 36px minmax(0,1fr)}.appearance-field-error{grid-column:2/-1}}@media (width<=480px){.appearance-modal{--modal-px:16px}.appearance-actions,.appearance-actions-primary{flex-direction:column-reverse;align-items:stretch}.appearance-actions button{width:100%}}
