/* Shared containers for every installed application, in both panel styles. */
.plugin-editor{height:fit-content;max-height:calc(100dvh - 48px);background:var(--surface);border:1px solid var(--outline-variant)}
.plugin-editor__head{padding:18px 22px}.plugin-editor__head h2{font-size:21px;font-weight:600}
.plugin-card__body{gap:18px}.plugin-card__body>p{margin:0;max-width:80ch;font-size:13px;line-height:1.65}.plugin-card__body>.row{gap:8px}
.plugin-editor>.plugin-card__body{padding:22px}
.plugin-controls{min-width:0;display:grid;gap:16px}.plugin-controls:empty{display:none}
.plugin-controls>:is(.tuya-panel,.findmy-panel,.myschool-panel,.package-panel){min-width:0;padding:18px;border:1px solid var(--outline-variant);border-radius:18px;background:var(--surface-1);display:grid;gap:16px}
.plugin-controls :is(h3,h4,p){margin-top:0}.plugin-controls :is(.tuya-heading,.row){min-width:0}
.plugin-controls .tuya-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:12px;align-items:start}
.plugin-controls .tuya-device{padding:16px;border-radius:14px;background:var(--surface-2);border:1px solid color-mix(in srgb,var(--outline-variant) 65%,transparent);min-width:0;gap:12px}
.plugin-controls :is(.tuya-controls,.package-function,.setup-guide){border-radius:14px;padding:16px;background:var(--surface-2);border:1px solid var(--outline-variant);min-width:0}
.plugin-controls .tuya-control>.row{gap:10px}.plugin-controls .findmy-device>.btn{width:100%}
.plugin-controls .package-frame{display:block;width:100%;min-height:120px;border:0;border-radius:12px;background:var(--surface-1)}
.package-panel>a.btn{justify-self:start}.package-result:empty{display:none}
.plugin-functions{padding:0;border:1px solid var(--outline-variant);border-radius:14px;overflow:hidden;background:var(--surface-1)}
.plugin-functions>summary{padding:14px 16px;gap:10px;font-size:13px;min-width:0;align-items:center}.plugin-functions>div{padding:0 14px 14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:10px}
.plugin-function{margin:0;padding:14px;border:1px solid var(--outline-variant);border-radius:12px;background:var(--surface-2);min-width:0}.plugin-function .row{align-items:start}.plugin-function b{overflow-wrap:anywhere}.plugin-function p{line-height:1.6}.plugin-phrases{margin-top:10px}
.plugin-editor,.plugin-controls :is(.list,pre),.package-frame{scrollbar-width:thin;scrollbar-color:var(--outline) transparent}.plugin-editor::-webkit-scrollbar{width:5px}.plugin-editor::-webkit-scrollbar-thumb{background:var(--outline);border-radius:8px}
:root[data-panel-style=studio] .plugin-controls>:is(.tuya-panel,.findmy-panel,.myschool-panel,.package-panel),:root[data-panel-style=studio] .plugin-functions{border-radius:12px}
:root[data-panel-style=studio] .plugin-controls :is(.tuya-device,.package-function,.tuya-control),:root[data-panel-style=studio] .plugin-function{border-radius:10px}
@media(max-width:600px){.plugin-editor{width:100vw;max-height:100dvh;height:100dvh;border-radius:0}.plugin-editor__head,.plugin-editor>.plugin-card__body{padding:16px}.plugin-controls>:is(.tuya-panel,.findmy-panel,.myschool-panel,.package-panel){padding:12px;gap:14px;border-radius:14px}.plugin-controls .tuya-device{padding:12px}.plugin-functions>summary{padding:12px;flex-wrap:wrap}.plugin-functions>div{grid-template-columns:minmax(0,1fr);padding:0 10px 10px}.plugin-function{padding:12px}.plugin-controls .row>.btn{max-width:100%}}

/* Compact application settings; content determines height on every screen. */
dialog.plugin-editor{width:min(760px,calc(100vw - 32px));height:fit-content;max-height:calc(100dvh - 32px);padding:0;margin:auto;border-radius:20px;box-sizing:border-box}
.plugin-editor .plugin-editor__head{padding:12px 18px;gap:12px}.plugin-editor .plugin-editor__head h2{font-size:19px}.plugin-editor .plugin-editor__head .icon-btn{width:36px;height:36px}
.plugin-editor>.plugin-card__body{padding:16px 18px;gap:12px}.plugin-editor>.plugin-card__body>p{font-size:12px;line-height:1.5}.plugin-editor .plugin-controls{gap:10px}
.plugin-editor .plugin-controls>.package-panel{padding:12px;gap:10px;border-radius:12px}.plugin-editor .plugin-controls>.credential-card{padding:12px!important;border-radius:12px}
.plugin-editor .btn{min-height:36px;height:auto;padding:8px 12px;font-size:12px}.plugin-editor .plugin-functions>summary{padding:10px 12px}.plugin-editor .plugin-functions>div{grid-template-columns:1fr;padding:0 10px 10px;gap:8px}.plugin-editor .plugin-function{padding:10px}
.plugin-editor .package-panel>a.btn{font-size:11px;padding:4px 8px;min-height:30px}.plugin-editor .credential-list{max-height:176px}
@media(max-width:600px){dialog.plugin-editor{width:calc(100vw - 20px);height:fit-content;max-height:calc(100dvh - 20px);margin:auto;border-radius:16px}.plugin-editor .plugin-editor__head{padding:10px 14px}.plugin-editor>.plugin-card__body{padding:12px 14px}.plugin-editor>.plugin-card__body>.row{flex-wrap:wrap}}

/* Settings first; diagnostics and full function descriptions stay folded. */
dialog.plugin-editor:has(.application-settings){width:min(520px,calc(100vw - 24px))}
.application-settings .dialog__form{display:grid;gap:12px}.application-settings .field{margin:0}.application-settings .input{width:100%;box-sizing:border-box}.application-save{display:flex;justify-content:flex-end;padding-top:2px}
.application-advanced{border-top:1px solid var(--outline-variant);padding-top:10px}.application-advanced>summary{cursor:pointer;font-size:12px;color:var(--on-surface-variant);padding:4px 0;list-style:none}.application-advanced>summary::after{content:' +';color:var(--primary)}.application-advanced[open]>summary::after{content:' -'}.application-advanced[open]{display:grid;gap:10px}.application-advanced>.row{justify-content:flex-end}

/* Wide, shallow settings with immediately visible function controls. */
dialog.plugin-editor,dialog.plugin-editor:has(.application-settings){width:min(1080px,calc(100vw - 32px));height:fit-content}
.plugin-editor>.application-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start;gap:18px}.application-layout>.plugin-controls:empty{display:none}.application-layout:has(>.plugin-controls:empty)>.application-functions{grid-column:1/-1}
.application-footer{grid-column:1/-1;display:flex;justify-content:flex-end;border-top:1px solid var(--outline-variant);padding-top:8px}
.plugin-editor .application-functions{padding:12px;border:1px solid var(--outline-variant);border-radius:14px;background:var(--surface-1);min-width:0}.application-functions-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.application-functions-head h3{margin:0;font-size:14px}.application-functions-head .grow{flex:1}
.plugin-editor .application-functions>.application-function-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0}.plugin-editor .application-functions .plugin-function{padding:10px;min-width:0}.application-function-grid .row{gap:8px;align-items:center}.application-function-grid b{font-size:12px;line-height:1.4;flex:1;min-width:0}.application-function-grid .switch{flex:none;transform:scale(.8);transform-origin:right center}.application-function-info{margin-top:8px}.application-function-info summary{font-size:11px;color:var(--on-surface-variant);cursor:pointer}.application-function-info p{font-size:12px;line-height:1.5;margin:10px 0}.application-function-info .phrase-list{font-size:11px;gap:4px}
@media(max-width:760px){dialog.plugin-editor,dialog.plugin-editor:has(.application-settings){width:calc(100vw - 20px)}.plugin-editor>.application-layout{grid-template-columns:minmax(0,1fr);gap:12px}.application-layout>*{grid-column:1!important}.plugin-editor .application-functions>.application-function-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.plugin-editor .application-functions>.application-function-grid{grid-template-columns:1fr}}

.plugin-editor .application-functions>.application-functions-head{display:flex;grid-template-columns:none;padding:0;gap:10px;margin:0 0 10px}.plugin-editor .application-function-grid>.plugin-function,.plugin-editor .application-function-grid>.plugin-function:first-child{margin:0;gap:6px}.plugin-editor .application-function-info{margin-top:2px}
