.dialog{display:flex;flex-direction:column;justify-content:center;align-items:center;position:fixed;margin:0;padding:15px;left:50%;top:50%;transform:translate(-50%,-50%) scale(.95);opacity:0;box-shadow:0 0 10px rgba(0,0,0,.9);border:0;color:inherit;background-color:color-mix(in srgb,var(--surface) 90%,transparent);border-radius:12px;z-index:1000;min-height:5rem;min-width:10rem;max-height:calc(100vh - 50px);max-width:calc(100vh - 50px);transition:opacity .25s ease,transform .25s ease;animation:dialog-fade-in .25s ease forwards}@keyframes dialog-fade-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.dialog.closing{animation:dialog-fade-out .2s ease forwards}@keyframes dialog-fade-out{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.95)}}.darken{position:fixed;background-color:rgb(0,0,0,.6);height:100%;width:100%;top:0;left:0;z-index:999;opacity:0;animation:darken-fade-in .25s ease forwards}@keyframes darken-fade-in{0%{opacity:0}to{opacity:1}}.dialog .buttons{display:flex;justify-content:flex-end;align-items:center;flex-direction:row;margin-top:20px;margin-right:20px;width:100%}.dialog .buttons button{margin-left:10px}.dialog .dialog-title{font-weight:600;color:var(--primary);margin:0 0 5px;font-size:larger}.dialog .dialog-message{white-space:pre-wrap;margin:0 0 5px;font-size:medium}.dialog .ics{align-self:start;justify-self:start;justify-content:flex-end;align-items:center;display:flex;width:100%;height:100%;margin:0;padding:0}.dialog .ics button{border:0;color:var(--on-surface);background-color:transparent;font-size:large;margin:0;padding:0;cursor:pointer;transition:transform .15s ease,color .15s ease}.dialog .ics button:hover{transform:scale(1.1);color:var(--primary)}.dialog-input{background-color:var(--surface-elevated);padding:20px;border-width:0;border-color:#413f3f;text-shadow:#413f3f;border-radius:8px;user-select:text;color:var(--on-surface)}:root{--radius:10px;--transition-fast:0.2s ease-in-out;--transition-slow:0.4s ease;--font-main:1rem;--font-small:0.9rem;--icon-size:20px;--bg:var(--surface);--bg-hover:var(--on-surface);--bg-secondary:var(--surface-elevated);--text:var(--on-surface);--text-secondary:var(--on-surface);--accent:#3f8cff;--danger:#ff4c4c}.filesystem{display:flex;flex-direction:column;background-color:var(--bg);color:var(--text);border-radius:var(--radius);overflow:hidden;font-size:var(--font-main);max-height:calc(100vh - 150px);width:100%;border:1px solid #333}.filesystem .path{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid #444;background:var(--bg-secondary);gap:1rem}.filesystem .path h3{margin:0;font-size:1.2rem;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filesystem-checkbox{display:flex;align-items:center;gap:.5rem;font-size:var(--font-small);color:var(--text-secondary)}.filesystem-checkbox input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:16px;height:16px;transition:transform var(--transition-fast)}.filesystem-checkbox input:hover{transform:scale(1.1)}.filesystem .dir,.filesystem .file{display:flex;align-items:center;padding:0;gap:.75rem;border-bottom:1px solid #333;transition:background-color var(--transition-fast);fill:currentColor}.filesystem .dir .filesystem-name{padding:.75rem 1rem;height:100%;cursor:pointer}.filesystem .file{background-color:#222;color:var(--on-surface);cursor:default}.filesystem .dir .filesystem-name:hover{background-color:var(--bg-hover);color:var(--surface);transition:background-color var(--transition-fast);cursor:pointer}.filesystem .dir.file .filesystem-name:hover{cursor:default}.filesystem .dir.file .filesystem-name:hover,.filesystem .file:hover{background-color:#2b2b2b;color:var(--on-surface)}.filesystem button{all:unset;cursor:pointer;display:flex;align-items:center;gap:.75rem;width:100%}.filesystem button svg{width:var(--icon-size);height:var(--icon-size)}.filesystem button h3{margin:0;font-weight:400;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filesystem .dir-len,.filesystem .dir-time{font-size:var(--font-small);color:inherit;margin-left:auto;white-space:nowrap}.filesystem .delete:last-child{margin-right:.75rem}.filesystem .delete{width:36px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:6px;transition:background-color var(--transition-fast)}.filesystem .delete:hover{background-color:#3a3a3a}.filesystem .delete svg{width:var(--icon-size);height:var(--icon-size);fill:var(--text-secondary);transition:fill var(--transition-fast)}.filesystem .delete:hover svg{fill:var(--danger)}.filesystem .filesystem-body{overflow-y:auto;flex-grow:1}@media (max-width:600px){:root{--font-main:0.95rem;--font-small:0.85rem;--icon-size:18px}.filesystem .path{flex-direction:column;align-items:flex-start;gap:.5rem}.filesystem .dir,.filesystem .file{flex-wrap:wrap;gap:.5rem}}.filesystem-info-icon{width:auto;height:20px;fill:var(--primary)}.filesystem-info-icon:hover+.filesystem-info{display:flex}.filesystem-info{display:none;justify-content:center;align-items:center;position:absolute;padding:10px;background-color:var(--surface-elevated);border-radius:24px;flex-direction:column;transform:translate(5%,-125%);border-radius:24px 24px 24px 0;box-shadow:0 4px 10px rgba(0,0,0,.2)}.filesystem-info p{padding:0;margin:0}.service-edit-codemirror{background-color:var(--surface-elevated);border-radius:24px;padding:10px;max-width:inherit;border:0;outline:0;transition:box-shadow .3s ease,transform .2s ease;box-shadow:0 2px 8px rgba(0,0,0,.1)}.service-edit-codemirror:hover{box-shadow:0 4px 16px rgba(0,0,0,.15);transform:translateY(-1px)}.service-edit-codemirror .cm-editor{background-color:var(--surface-elevated);color:var(--on-surface);border:0;outline:0;border-radius:24px;transition:background-color .2s ease}.service-edit-codemirror .cm-editor.cm-focused{outline:0;box-shadow:0 0 0 2px rgba(99,102,241,.2)}.service-edit-codemirror .cm-content{color:var(--on-surface);padding:12px;caret-color:var(--on-surface);font-family:Fira Code,Monaco,Menlo,Consolas,monospace;font-size:14px;line-height:1.6;font-variant-ligatures:common-ligatures}.service-edit-codemirror .cm-scroller{background-color:transparent;border-radius:24px;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}.service-edit-codemirror .cm-scroller::-webkit-scrollbar{width:8px;height:8px}.service-edit-codemirror .cm-scroller::-webkit-scrollbar-track{background:transparent;border-radius:24px}.service-edit-codemirror .cm-scroller::-webkit-scrollbar-thumb{background-color:rgba(255,255,255,.2);border-radius:24px;transition:background-color .2s ease}.service-edit-codemirror .cm-scroller::-webkit-scrollbar-thumb:hover{background-color:rgba(255,255,255,.3)}.service-edit-codemirror .cm-gutters{background-color:var(--surface-elevated);color:rgba(var(--on-surface-rgb,255,255,255),.5);border:0;border-radius:24px 0 0 24px;padding-left:12px;padding-right:8px;font-size:13px;min-width:40px}.service-edit-codemirror .cm-gutterElement{transition:color .2s ease}.service-edit-codemirror .cm-gutterElement:hover{color:var(--on-surface)}.service-edit-codemirror .cm-activeLine{background-color:rgba(255,255,255,.04);transition:background-color .2s ease}.service-edit-codemirror .cm-activeLineGutter{background-color:transparent;color:var(--on-surface);font-weight:600}.service-edit-codemirror .cm-content ::selection,.service-edit-codemirror .cm-selectionBackground{background-color:rgba(99,102,241,.3)}.service-edit-codemirror .cm-line{padding:2px 0}.service-edit-codemirror .cm-cursor,.service-edit-codemirror .cm-dropCursor{border-left-color:var(--on-surface);border-left-width:2px;animation:blink 1.2s step-end infinite}@keyframes blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.service-edit-codemirror .cm-matchingBracket{background-color:rgba(99,102,241,.2);outline:1px solid rgba(99,102,241,.4);border-radius:2px;transition:background-color .2s ease}.service-edit-codemirror .cm-nonmatchingBracket{background-color:rgba(239,68,68,.2);outline:1px solid rgba(239,68,68,.4);border-radius:2px}.service-edit-codemirror .cm-searchMatch{background-color:rgba(251,191,36,.3);outline:1px solid rgba(251,191,36,.6);border-radius:2px}.service-edit-codemirror .cm-searchMatch-selected{background-color:rgba(251,191,36,.5)}.service-edit-codemirror .cm-placeholder{color:rgba(var(--on-surface-rgb,255,255,255),.4);font-style:italic}.service-edit-codemirror .cm-panel{background-color:var(--surface-elevated);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:8px;margin:8px}.service-edit-codemirror .cm-tooltip{background-color:var(--surface-elevated);border:1px solid rgba(255,255,255,.1);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.2);padding:6px 10px;font-size:13px}