:root{--sod-color-surface: #fff;--sod-color-text: #212529;--sod-color-muted: #6c757d;--sod-color-border: #dee2e6;--sod-focus-ring: #86b7fe;--sod-backdrop-bg: rgb(0 0 0 / 50%);--sod-panel-radius: .5rem;--sod-panel-shadow: 0 .5rem 1rem rgb(0 0 0 / 25%);--sod-panel-width: 520px;--sod-btn-primary-bg: #0d6efd;--sod-btn-primary-hover-bg: #0b5ed7;--sod-btn-primary-hover-border: #0a58ca;--sod-btn-outline-color: #6c757d;--sod-btn-outline-hover-bg: #6c757d;--sod-btn-outline-hover-color: #fff;--sod-btn-danger-bg: #dc3545;--sod-btn-danger-hover-bg: #bb2d3b;--sod-btn-danger-hover-border: #b02a37;--sod-btn-success-bg: #198754;--sod-btn-success-hover-bg: #157347;--sod-btn-success-hover-border: #146c43;--sod-btn-ghost-color: #495057;--sod-btn-ghost-hover-bg: #e9ecef;--sod-btn-link-color: #0d6efd;--sod-btn-link-hover-color: #0a58ca;--sod-toast-border: #dee2e6;--sod-toast-shadow: 0 .5rem 1rem rgb(0 0 0 / 18%);--sod-toast-default-accent: #6c757d;--sod-toast-info-accent: #0dcaf0;--sod-toast-success-accent: #198754;--sod-toast-warning-accent: #ffc107;--sod-toast-danger-accent: #dc3545;--sod-menu-bg: #fff;--sod-menu-border: #dee2e6;--sod-menu-shadow: 0 .6rem 1.4rem rgb(0 0 0 / 18%);--sod-menu-item-hover-bg: #f1f3f5}.sod-dialog{border:0;padding:0;margin:auto;background:transparent;max-width:none;max-height:none;overflow:visible}.sod-dialog::backdrop{background:var(--sod-backdrop-bg)}.sod-panel{box-sizing:border-box;background:var(--sod-color-surface);color:var(--sod-color-text);border-radius:var(--sod-panel-radius);box-shadow:var(--sod-panel-shadow);min-width:min(var(--sod-panel-width),calc(100vw - 2rem));max-width:min(var(--sod-panel-width),calc(100vw - 2rem))}.sod-modal .sod-panel{position:relative;margin:0}.sod-modal[open]{width:100vw;height:100vh;display:flex;justify-content:center;align-items:center}.sod-modal[open].sod-modal-viewport-scroll{align-items:flex-start;overflow:auto;padding:1rem 0}.sod-modal .sod-panel.sod-modal-pos-center{align-self:center}.sod-modal .sod-panel.sod-modal-pos-top{align-self:flex-start;margin-top:1rem}.sod-modal .sod-panel.sod-modal-pos-bottom{align-self:flex-end;margin-bottom:1rem}.sod-modal .sod-panel.sod-modal-autofit{min-width:0;width:auto;height:auto;max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem);display:flex;flex-direction:column}.sod-modal .sod-panel.sod-modal-draggable{touch-action:none}.sod-modal .sod-panel.sod-is-dragging{animation:none!important;transition:none!important}.sod-modal .sod-panel .sod-drag-handle{cursor:move;-webkit-user-select:none;user-select:none}.sod-modal .sod-panel .sod-drag-handle.is-dragging{cursor:grabbing}.sod-modal .sod-panel.sod-modal-anim-fade{animation:sod-fade-in .18s ease-out}.sod-modal .sod-panel.sod-modal-anim-fade.is-closing{animation:sod-fade-out .18s ease-in forwards}.sod-modal .sod-panel.sod-modal-anim-zoom{animation:sod-modal-zoom-in .18s ease-out}.sod-modal .sod-panel.sod-modal-anim-zoom.is-closing{animation:sod-modal-zoom-out .18s ease-in forwards}.sod-modal .sod-panel.sod-modal-anim-slide{animation:sod-modal-slide-in .18s ease-out}.sod-modal .sod-panel.sod-modal-anim-slide.is-closing{animation:sod-modal-slide-out .18s ease-in forwards}.sod-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .75rem;border-bottom:1px solid var(--sod-color-border)}.sod-title{margin:0;font-size:1.1rem}.sod-close{border:0;background:transparent;color:var(--sod-color-muted);font-size:1.5rem;line-height:1;cursor:pointer}.sod-body{box-sizing:border-box;padding:1rem;overflow-wrap:anywhere;word-break:break-word}.sod-body>*{max-width:100%}.sod-body input,.sod-body select,.sod-body textarea,.sod-body button{max-width:100%;box-sizing:border-box}.sod-body img,.sod-body video,.sod-body canvas,.sod-body iframe,.sod-body table{max-width:100%}.sod-modal .sod-panel.sod-modal-autofit .sod-body{flex:1 1 auto;min-height:0}.sod-body p{margin:0 0 .5rem}.sod-prompt-wrap{display:grid;gap:.55rem}.sod-prompt-intro{display:grid;gap:.35rem}.sod-prompt-input{width:100%;min-height:2.3rem;border:1px solid var(--sod-color-border);border-radius:.4rem;font-size:.95rem;padding:.45rem .6rem}.sod-prompt-input:focus-visible{outline:2px solid var(--sod-focus-ring);outline-offset:1px;border-color:var(--sod-focus-ring)}.sod-prompt-error{margin:0;color:#b02a37;font-size:.84rem}.sod-form-wrap{display:grid;gap:.65rem}.sod-form-intro{display:grid;gap:.35rem}.sod-form-grid{display:grid;gap:.7rem}.sod-form-field{display:grid;gap:.35rem}.sod-form-label{font-size:.92rem;color:#495057}.sod-form-control{width:100%;min-height:2.3rem;border:1px solid var(--sod-color-border);border-radius:.4rem;font-size:.95rem;padding:.45rem .6rem}.sod-form-textarea{resize:vertical}.sod-form-control:focus-visible,.sod-form-checkbox:focus-visible{outline:2px solid var(--sod-focus-ring);outline-offset:1px;border-color:var(--sod-focus-ring)}.sod-form-field-checkbox{grid-template-columns:auto 1fr;align-items:center;gap:.45rem .55rem}.sod-form-checkbox{width:1rem;height:1rem;margin:0}.sod-form-field-checkbox .sod-form-help,.sod-form-field-checkbox .sod-form-error{grid-column:1 / -1}.sod-form-help{color:var(--sod-color-muted);font-size:.8rem}.sod-form-error{margin:0;color:#b02a37;font-size:.84rem}.sod-body ul{margin:.5rem 0 0;padding-left:1.2rem}.sod-footer{padding:.75rem 1rem 1rem;border-top:1px solid var(--sod-color-border);display:flex;justify-content:flex-end;gap:.5rem}.sod-footer[data-align=start]{justify-content:flex-start}.sod-footer[data-align=center]{justify-content:center}.sod-footer[data-align=between]{justify-content:space-between}.sod-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border:1px solid transparent;padding:.5rem 1rem;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .15s ease-in-out}.sod-btn:focus-visible{outline:2px solid var(--sod-focus-ring);outline-offset:1px}.sod-btn-primary{background:var(--sod-btn-primary-bg);color:#fff;border-color:var(--sod-btn-primary-bg)}.sod-btn-primary:hover{background:var(--sod-btn-primary-hover-bg);border-color:var(--sod-btn-primary-hover-border)}.sod-btn-outline{background:transparent;color:var(--sod-btn-outline-color);border-color:var(--sod-btn-outline-color)}.sod-btn-outline:hover{color:var(--sod-btn-outline-hover-color);background:var(--sod-btn-outline-hover-bg)}.sod-btn-danger{background:var(--sod-btn-danger-bg);color:#fff;border-color:var(--sod-btn-danger-bg)}.sod-btn-danger:hover{background:var(--sod-btn-danger-hover-bg);border-color:var(--sod-btn-danger-hover-border)}.sod-btn-success{background:var(--sod-btn-success-bg);color:#fff;border-color:var(--sod-btn-success-bg)}.sod-btn-success:hover{background:var(--sod-btn-success-hover-bg);border-color:var(--sod-btn-success-hover-border)}.sod-btn-ghost{background:transparent;color:var(--sod-btn-ghost-color);border-color:transparent}.sod-btn-ghost:hover{background:var(--sod-btn-ghost-hover-bg)}.sod-btn-link{background:transparent;color:var(--sod-btn-link-color);border-color:transparent;text-decoration:underline;text-underline-offset:2px}.sod-btn-link:hover{color:var(--sod-btn-link-hover-color)}.legacy-skin .sod-dialog .sod-panel,.legacy-skin .sod-context-menu,.legacy-skin .sod-toast{border-radius:.375rem}.legacy-skin .sod-dialog .sod-header{padding:.75rem .875rem .625rem}.legacy-skin .sod-dialog .sod-title{font-size:1rem}.legacy-skin .sod-dialog .sod-body{padding:.875rem}.legacy-skin .sod-dialog .sod-footer{padding:.625rem .875rem .875rem;gap:.375rem}.legacy-skin .sod-dialog .sod-footer[data-align=end]{justify-content:center}.legacy-skin .sod-dialog .sod-btn{min-height:2.15rem;padding:.4rem .85rem;font-size:.9rem;border-radius:.25rem}.legacy-skin .sod-dialog .sod-btn-primary{background:#1677ff;border-color:#1677ff}.legacy-skin .sod-dialog .sod-btn-primary:hover{background:#0958d9;border-color:#0958d9}.legacy-skin .sod-dialog .sod-btn-primary:active{background:#003eb3;border-color:#003eb3}.legacy-skin .sod-dialog .sod-btn-outline{color:#4b5563;border-color:#9ca3af}.legacy-skin .sod-dialog .sod-btn-outline:hover{color:#111827;background:#f3f4f6}.legacy-skin .sod-dialog .sod-btn:focus-visible{outline:2px solid #91caff}.sod-offcanvas[open]{width:100vw;height:100vh}.sod-offcanvas .sod-panel{position:fixed;margin:0;min-width:0;max-width:none;border-radius:0;width:min(360px,90vw);height:100vh}.sod-offcanvas .sod-panel.sod-placement-start{left:0;top:0}.sod-offcanvas .sod-panel.sod-placement-end{right:0;top:0}.sod-offcanvas .sod-panel.sod-placement-top{top:0;left:0;width:100vw;height:300px}.sod-offcanvas .sod-panel.sod-placement-bottom{bottom:0;left:0;width:100vw;height:300px}.sod-offcanvas .sod-panel.sod-anim-slide.sod-placement-start{animation:sod-slide-in-start .18s ease-out}.sod-offcanvas .sod-panel.sod-anim-slide.sod-placement-start.is-closing{animation:sod-slide-out-start .18s ease-in forwards}.sod-offcanvas .sod-panel.sod-anim-slide.sod-placement-end{animation:sod-slide-in-end .18s ease-out}.sod-offcanvas .sod-panel.sod-anim-slide.sod-placement-end.is-closing{animation:sod-slide-out-end .18s ease-in forwards}.sod-offcanvas .sod-panel.sod-anim-slide.sod-placement-top{animation:sod-slide-in-top .18s ease-out}.sod-offcanvas .sod-panel.sod-anim-slide.sod-placement-top.is-closing{animation:sod-slide-out-top .18s ease-in forwards}.sod-offcanvas .sod-panel.sod-anim-slide.sod-placement-bottom{animation:sod-slide-in-bottom .18s ease-out}.sod-offcanvas .sod-panel.sod-anim-slide.sod-placement-bottom.is-closing{animation:sod-slide-out-bottom .18s ease-in forwards}.sod-offcanvas .sod-panel.sod-anim-fade{animation:sod-fade-in .18s ease-out}.sod-offcanvas .sod-panel.sod-anim-fade.is-closing{animation:sod-fade-out .18s ease-in forwards}.sod-offcanvas .sod-panel.sod-anim-zoom{animation:sod-zoom-in .18s ease-out}.sod-offcanvas .sod-panel.sod-anim-zoom.is-closing{animation:sod-zoom-out .18s ease-in forwards}@keyframes sod-modal-zoom-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes sod-modal-zoom-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}@keyframes sod-modal-slide-in{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes sod-modal-slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}@keyframes sod-slide-in-start{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes sod-slide-out-start{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes sod-slide-in-end{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sod-slide-out-end{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes sod-slide-in-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes sod-slide-out-top{0%{transform:translateY(0)}to{transform:translateY(-100%)}}@keyframes sod-slide-in-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sod-slide-out-bottom{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes sod-fade-in{0%{opacity:0}to{opacity:1}}@keyframes sod-fade-out{0%{opacity:1}to{opacity:0}}@keyframes sod-zoom-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.sod-toast-layer{position:fixed;z-index:1200;display:flex;flex-direction:column;gap:.5rem;width:min(360px,calc(100vw - 1.5rem));pointer-events:none}.sod-toast-layer-top-start{top:.75rem;left:.75rem;align-items:flex-start}.sod-toast-layer-top-center{top:.75rem;left:50%;transform:translate(-50%);align-items:center}.sod-toast-layer-top-end{top:.75rem;right:.75rem;align-items:flex-end}.sod-toast-layer-bottom-start{bottom:.75rem;left:.75rem;align-items:flex-start}.sod-toast-layer-bottom-center{bottom:.75rem;left:50%;transform:translate(-50%);align-items:center}.sod-toast-layer-bottom-end{bottom:.75rem;right:.75rem;align-items:flex-end}.sod-toast{--sod-toast-accent: var(--sod-toast-default-accent);pointer-events:auto;width:100%;box-sizing:border-box;border-radius:.5rem;border:1px solid var(--sod-toast-border);background:var(--sod-color-surface);color:var(--sod-color-text);box-shadow:var(--sod-toast-shadow);overflow:hidden;animation:sod-toast-enter .18s ease-out}.sod-toast.is-closing{animation:sod-toast-exit .18s ease-in forwards}.sod-toast-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem 0}.sod-toast-title{font-size:.92rem;font-weight:700}.sod-toast-close{border:0;background:transparent;color:var(--sod-color-muted);font-size:1.15rem;line-height:1;cursor:pointer;padding:0}.sod-toast-body{padding:.55rem .75rem .75rem;font-size:.92rem;line-height:1.45;overflow-wrap:anywhere;word-break:break-word}.sod-toast-progress{width:100%;height:3px;background:var(--sod-toast-accent);opacity:.9;transform-origin:left center;animation:sod-toast-progress-countdown 3s linear forwards}.sod-toast-default{--sod-toast-accent: var(--sod-toast-default-accent);border-left:4px solid var(--sod-toast-default-accent)}.sod-toast-info{--sod-toast-accent: var(--sod-toast-info-accent);border-left:4px solid var(--sod-toast-info-accent)}.sod-toast-success{--sod-toast-accent: var(--sod-toast-success-accent);border-left:4px solid var(--sod-toast-success-accent)}.sod-toast-warning{--sod-toast-accent: var(--sod-toast-warning-accent);border-left:4px solid var(--sod-toast-warning-accent)}.sod-toast-danger{--sod-toast-accent: var(--sod-toast-danger-accent);border-left:4px solid var(--sod-toast-danger-accent)}@keyframes sod-toast-enter{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes sod-toast-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}@keyframes sod-toast-progress-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.sod-context-menu{position:fixed;z-index:1300;display:grid;gap:.25rem;min-width:180px;max-width:min(320px,calc(100vw - 1rem));max-height:320px;padding:.35rem;border:1px solid var(--sod-menu-border);border-radius:.45rem;background:var(--sod-menu-bg);box-shadow:var(--sod-menu-shadow);overflow:auto}.sod-context-menu-item{border:0;border-radius:.35rem;background:transparent;color:var(--sod-color-text);text-align:left;padding:.5rem .6rem;font-size:.92rem;line-height:1.35;cursor:pointer}.sod-context-menu-item-content{display:inline-flex;align-items:center;gap:.45rem;width:100%}.sod-context-menu-label{flex:1 1 auto}.sod-context-menu-icon{display:inline-flex;align-items:center;justify-content:center;width:1rem;min-width:1rem;line-height:1}.sod-context-menu-item:hover{background:var(--sod-menu-item-hover-bg)}.sod-context-menu-item:focus-visible{outline:2px solid var(--sod-focus-ring);outline-offset:1px}.sod-context-menu-item:focus{outline:2px solid var(--sod-focus-ring);outline-offset:1px}.sod-context-menu-item:disabled{color:#adb5bd;cursor:not-allowed;background:transparent}@keyframes sod-zoom-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}
