:root{
  --bg:#08111f;--panel:rgba(14,24,39,.78);--panel-solid:#101b2b;--text:#eef5ff;--muted:#9fb0c4;
  --accent:#ff7a1a;--accent2:#45b8ff;--line:rgba(255,255,255,.10);--shadow:0 22px 60px rgba(0,0,0,.34);
  --radius:20px;--blur:22px;--taskbar-h:54px;--topbar-h:54px
}
body.theme-aurora{
  --bg:#e9f1f8;--panel:rgba(255,255,255,.78);--panel-solid:#ffffff;--text:#15243a;--muted:#66788d;
  --accent:#f26a16;--accent2:#2f86c9;--line:rgba(26,56,89,.13);--shadow:0 24px 60px rgba(52,82,112,.18)
}
*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);overflow:hidden}

/* Desktop behavior / shell layout */
body.shell-desktop .app-window{border-radius:18px}
body.shell-desktop .taskbar{left:0;right:0;bottom:0}

@media(min-width:701px){
  /* Windows-like: classic bottom bar and squarer windows */
  body.shell-windows .topbar{height:46px}
  body.shell-windows{--topbar-h:46px;--taskbar-h:48px}
  body.shell-windows .app-window{border-radius:7px}
  body.shell-windows .window-titlebar{height:40px;padding-left:11px}
  body.shell-windows .window-content{height:calc(100% - 40px)}
  body.shell-windows .window-controls button{width:46px}
  body.shell-windows .taskbar{height:48px;padding:0 7px;gap:5px}
  body.shell-windows .start-button{height:36px;border-radius:6px}
  body.shell-windows .task-button{height:36px;border-radius:6px}
  body.shell-windows .start-menu.start-menu-xp{left:7px;bottom:54px;border-radius:8px 8px 3px 3px}

  /* macOS-like: dock centered and traffic-light style controls on the left */
  body.shell-mac{--taskbar-h:68px}
  body.shell-mac .taskbar{
    left:50%;right:auto;bottom:10px;transform:translateX(-50%);
    width:max-content;max-width:calc(100vw - 24px);height:54px;
    padding:7px 10px;border:1px solid var(--line);border-radius:18px;
    box-shadow:var(--shadow)
  }
  body.shell-mac .taskbar-status,body.shell-mac .taskbar-clock{display:none}
  body.shell-mac .taskbar-right{margin-left:4px}
  body.shell-mac .start-button{border-radius:13px;padding:0 10px}
  body.shell-mac .task-button{border-radius:12px}
  body.shell-mac .app-window{
    border-radius:14px;
    border:1px solid color-mix(in srgb,var(--line) 82%,transparent);
    outline:0;
    box-shadow:0 18px 44px rgba(0,0,0,.28)
  }
  body.shell-mac .window-titlebar{justify-content:flex-start;padding-left:10px}
  body.shell-mac .window-controls{order:-1;height:100%;margin-right:10px;gap:7px;align-items:center}
  body.shell-mac .window-controls button{
    flex:0 0 14px!important;
    width:14px!important;height:14px!important;min-width:14px!important;max-width:14px!important;
    margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;
    font-size:0;line-height:14px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);
    background:#f6c344
  }
  body.shell-mac .window-controls button[data-a="min"]{background:#f6c344}
  body.shell-mac .window-controls button[data-a="max"]{background:#55c96a}
  body.shell-mac .window-controls button.close{background:#ef5b55}
  body.shell-mac .window-controls .window-help-button{
    flex-basis:16px!important;width:16px!important;height:16px!important;min-width:16px!important;max-width:16px!important;
    background:color-mix(in srgb,var(--accent) 86%,#fff)!important;color:#fff!important;
    font-size:11px!important;font-weight:900!important;line-height:16px!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.32),0 0 0 1px rgba(0,0,0,.08)
  }
  body.shell-mac .window-controls button:hover{filter:brightness(1.08)}
  body.shell-mac .window-title{flex:1;justify-content:center;margin-right:86px}
  body.shell-mac .start-menu.start-menu-xp{left:50%;bottom:76px;transform:translateX(-50%)}

  /* Ubuntu-like: launcher on the left */
  body.shell-ubuntu{--taskbar-h:0px}
  body.shell-ubuntu .taskbar{
    top:var(--topbar-h);bottom:0;left:0;right:auto;width:64px;height:auto;
    flex-direction:column;align-items:center;padding:9px 6px;gap:7px;
    border-top:0;border-right:1px solid var(--line)
  }
  body.shell-ubuntu .start-button{width:50px;height:46px;padding:0;justify-content:center}
  body.shell-ubuntu .start-button>span:last-child{display:none}
  body.shell-ubuntu .task-buttons{
    flex-direction:column;
    flex:0 0 auto;
    width:100%;
    max-width:none;
    overflow:visible;
    align-items:center;
    gap:6px;
    padding:0;
    border:0
  }
  body.shell-ubuntu .pinned-task-buttons,
  body.shell-ubuntu .running-task-buttons{
    flex:0 0 auto;
    width:100%;
    max-width:none;
    min-width:0;
    overflow:visible;
    align-items:center
  }
  body.shell-ubuntu .task-button{
    width:50px;height:50px;min-width:50px;min-height:50px;padding:5px;
    border:1px solid transparent;border-radius:12px;
    display:grid;place-items:center;overflow:visible;background:transparent
  }
  body.shell-ubuntu .task-button:hover{background:rgba(127,147,174,.12);border-color:var(--line)}
  body.shell-ubuntu .task-button.active{background:rgba(127,147,174,.18);border-color:var(--line)}
  body.shell-ubuntu .task-button-label{display:none}
  body.shell-ubuntu .task-button .program-glyph,
  body.shell-ubuntu .task-button .task-app-glyph,
  body.shell-ubuntu .task-button .pinned-glyph,
  body.shell-ubuntu .task-button .file-icon{
    width:36px!important;height:36px!important;min-width:36px!important;
    margin:0!important;transform:none!important;flex:none!important
  }
  body.shell-ubuntu .task-button .program-glyph,
  body.shell-ubuntu .task-button .task-app-glyph,
  body.shell-ubuntu .task-button .pinned-glyph{
    border-radius:9px;display:grid;place-items:center;font-size:13px;font-weight:800;
    color:white;background:linear-gradient(145deg,color-mix(in srgb,var(--accent2) 72%,#fff),color-mix(in srgb,var(--accent) 72%,#222))
  }
  body.shell-ubuntu .task-button .task-app-office{background:#2f7bdc}
  body.shell-ubuntu .task-button .task-app-drawio{background:#e99a19}
  body.shell-ubuntu .task-button .task-app-text{background:#65778a;font-size:9px}
  body.shell-ubuntu .task-button .task-app-pdf{background:#d94855;font-size:8px}
  body.shell-ubuntu .task-button .task-app-image{background:#557da6;font-size:8px}
  body.shell-ubuntu .taskbar-right{margin-top:auto;display:flex;flex-direction:column}
  body.shell-ubuntu .taskbar-status,body.shell-ubuntu .taskbar-clock{display:none}
  body.shell-ubuntu .window-layer{left:64px;bottom:0}
  body.shell-ubuntu .desktop-icons{left:84px}
  body.shell-ubuntu .start-menu.start-menu-xp{
    left:70px;
    top:calc(var(--topbar-h) + 8px);
    bottom:auto;
  }
  body.shell-ubuntu .app-window{border-radius:9px}

  /* Office-like: compact, neutral document workspace */
  body.shell-office{--topbar-h:44px;--taskbar-h:44px}
  body.shell-office .topbar{height:44px}
  body.shell-office .app-window{border-radius:4px}
  body.shell-office .window-titlebar{height:38px}
  body.shell-office .window-content{height:calc(100% - 38px)}
  body.shell-office .taskbar{height:44px;padding:0 6px}
  body.shell-office .start-button,body.shell-office .task-button{height:34px;border-radius:4px}
  body.shell-office .start-menu.start-menu-xp{bottom:50px;border-radius:5px}
}
button,input,select{font:inherit}body.theme-aurora select{color-scheme:light}body.theme-aurora-dark select{color-scheme:dark}select option,select optgroup{background:var(--panel-solid);color:var(--text)}
button{cursor:pointer}
.hidden{display:none!important}
.auth-view,.desktop-view{position:relative;width:100%;height:100%}
.auth-backdrop,.wallpaper{position:absolute;inset:0;background-image:
  radial-gradient(circle at 18% 20%,rgba(69,184,255,.24),transparent 30%),
  radial-gradient(circle at 82% 12%,rgba(255,122,26,.24),transparent 28%),
  radial-gradient(circle at 64% 78%,rgba(110,75,255,.18),transparent 35%),
  linear-gradient(135deg,#07101e,#101e34 55%,#0b1422);background-size:cover;background-position:center;background-repeat:no-repeat}
.theme-aurora .auth-backdrop,.theme-aurora .wallpaper{background-image:
  radial-gradient(circle at 18% 20%,rgba(69,184,255,.22),transparent 30%),
  radial-gradient(circle at 82% 12%,rgba(255,122,26,.20),transparent 28%),
  linear-gradient(135deg,#eff6fb,#dbeaf5 55%,#eef4f8)}
.login-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(430px,calc(100vw - 40px));padding:34px;border:1px solid var(--line);border-radius:28px;background:var(--panel);backdrop-filter:blur(var(--blur));box-shadow:var(--shadow)}
.brand-lockup{display:flex;gap:14px;align-items:center;margin-bottom:28px}
.brand-mark,.mini-mark{display:inline-grid;place-items:center;background:linear-gradient(135deg,var(--accent),#ffae42);color:#fff;font-weight:800;letter-spacing:-.06em}
.brand-mark{width:56px;height:56px;border-radius:17px;font-size:22px}
.mini-mark{width:28px;height:28px;border-radius:9px;font-size:11px}
.mini-mark.large{width:40px;height:40px;border-radius:12px}
.brand-name{font-size:20px;font-weight:750}.brand-sub{color:var(--muted);font-size:13px}
.login-tools{position:absolute;right:24px;top:24px;display:flex;gap:8px}
.login-tools select,.icon-button,.top-select,.top-icon{border:1px solid var(--line);background:rgba(127,147,174,.12);color:var(--text);border-radius:12px;height:36px}
.login-tools select,.top-select{padding:0 10px}.login-tools select option,.top-select option{background:var(--panel-solid);color:var(--text)}.icon-button,.top-icon{width:36px}
.auth-panel h1{font-size:32px;margin:3px 0 8px;letter-spacing:-.04em}.eyebrow{margin:0;color:var(--accent);font-weight:800;text-transform:uppercase;font-size:11px;letter-spacing:.16em}.muted{color:var(--muted);line-height:1.5}
.auth-panel form{display:grid;gap:14px;margin-top:24px}.auth-panel label{display:grid;gap:7px;color:var(--muted);font-size:13px}
.auth-panel input{height:46px;border-radius:13px;border:1px solid var(--line);padding:0 14px;background:rgba(120,140,165,.10);color:var(--text);outline:none}
.auth-panel input:focus{border-color:var(--accent2);box-shadow:0 0 0 3px rgba(69,184,255,.12)}
.primary-button{height:48px;border:0;border-radius:14px;background:linear-gradient(135deg,var(--accent),#ff9f3e);color:white;font-weight:800;box-shadow:0 12px 28px rgba(242,106,22,.24)}
.auth-error{margin-top:14px;padding:11px 13px;border-radius:12px;background:rgba(220,50,70,.12);color:#ff8794;font-size:13px}.build-tag{margin-top:22px;color:var(--muted);font-size:11px}
.topbar{position:absolute;z-index:900;top:0;left:0;right:0;height:var(--topbar-h);display:flex;align-items:center;padding:0 14px;gap:14px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 82%,transparent);backdrop-filter:blur(var(--blur))}
.brand-pill,.profile-button,.search-pill,.top-icon{border:0;color:var(--text);background:transparent}
.brand-pill{display:flex;align-items:center;gap:9px;font-weight:750}.topbar-center{flex:1;display:flex;justify-content:center}
.search-pill{width:min(420px,35vw);height:34px;border:1px solid var(--line);border-radius:12px;text-align:left;padding:0 14px;color:var(--muted);background:rgba(120,140,165,.08)}
.topbar-actions{display:flex;align-items:center;gap:8px}.clock{font-size:12px;color:var(--muted);margin-right:4px}
.profile-button{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:12px}.profile-button:hover,.brand-pill:hover,.top-icon:hover{background:rgba(127,147,174,.12)}
.avatar-fallback,.profile-avatar-large{display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--accent2),#7658ff);color:white;background-size:cover;background-position:center}
.avatar-fallback{width:30px;height:30px;font-size:12px;font-weight:800}
.desktop-icons{position:absolute;z-index:30;top:76px;left:22px;display:grid;grid-auto-flow:column;grid-template-rows:repeat(6,90px);gap:4px 10px}
.desktop-icon{width:92px;height:86px;border:0;background:transparent;color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border-radius:14px;text-shadow:0 2px 8px rgba(0,0,0,.35)}
.desktop-icon:hover{background:rgba(255,255,255,.10);backdrop-filter:blur(8px)}.theme-aurora .desktop-icon{text-shadow:none}
.app-glyph{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,color-mix(in srgb,var(--accent2) 72%,#fff),color-mix(in srgb,var(--accent) 72%,#222));box-shadow:0 8px 20px rgba(0,0,0,.18);color:white;font-size:22px;font-weight:700}
.desktop-label{font-size:12px;max-width:86px;text-align:center;line-height:1.2}
.window-layer{position:absolute;z-index:100;top:var(--topbar-h);left:0;right:0;bottom:var(--taskbar-h);pointer-events:none}
body.nx-window-maximized .window-layer{top:0;z-index:950}
.app-window{position:absolute;min-width:420px;min-height:280px;width:720px;height:480px;border:1px solid var(--line);outline:0;border-radius:18px;background:var(--panel);backdrop-filter:blur(var(--blur));box-shadow:0 14px 34px rgba(0,0,0,.20);overflow:hidden;pointer-events:auto;resize:both}.app-window.window-focused{border-color:color-mix(in srgb,var(--accent) 24%,var(--line));box-shadow:0 20px 46px rgba(0,0,0,.28)}
.app-window.maximized{inset:0!important;width:auto!important;height:auto!important;resize:none;border-radius:0}
.app-window.minimized{display:none}
.window-titlebar{height:45px;display:flex;align-items:center;justify-content:space-between;padding-left:14px;border-bottom:1px solid var(--line);background:rgba(120,140,165,.07);user-select:none;cursor:grab}
.window-title{display:flex;align-items:center;gap:8px;font-weight:700}.window-app-icon{font-size:15px;color:var(--accent)}
.window-controls{height:100%;display:flex}.window-controls button{width:44px;border:0;background:transparent;color:var(--text)}.window-controls button:hover{background:rgba(127,147,174,.16)}.window-controls .close:hover{background:#d84655;color:white}
.window-content{height:calc(100% - 45px);padding:22px;overflow:auto}
.taskbar{position:absolute;z-index:1000;left:0;right:0;bottom:0;height:var(--taskbar-h);display:flex;align-items:center;padding:0 10px;gap:8px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--panel) 88%,transparent);backdrop-filter:blur(var(--blur))}
.start-button{height:38px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:rgba(127,147,174,.10);color:var(--text);font-weight:700}
.task-buttons{display:flex;gap:6px;flex:1}.task-button{height:38px;max-width:180px;padding:0 12px;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-button.active{background:rgba(127,147,174,.14);border-color:var(--line)}
.taskbar-status{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;padding:0 9px}.status-dot{width:8px;height:8px;border-radius:50%;background:#38d98b;box-shadow:0 0 12px rgba(56,217,139,.7)}
.start-menu,.profile-panel{position:absolute;z-index:1200;border:1px solid var(--line);background:var(--panel);backdrop-filter:blur(var(--blur));box-shadow:var(--shadow)}
.start-menu{left:12px;bottom:64px;width:420px;max-width:calc(100vw - 24px);border-radius:22px;padding:16px}
.start-head{display:flex;align-items:center;gap:11px;padding:6px 7px 14px}.start-head small{display:block;color:var(--muted);margin-top:2px}
.start-app-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.start-app{border:0;border-radius:14px;background:transparent;color:var(--text);padding:11px 6px;display:flex;flex-direction:column;align-items:center;gap:7px;font-size:11px}.start-app:hover{background:rgba(127,147,174,.12)}
.start-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:14px;padding:12px 6px 0}.start-foot button{border:0;background:transparent;color:var(--muted)}
.profile-panel{right:12px;top:64px;width:310px;border-radius:20px;padding:16px}.profile-hero{display:flex;gap:13px;align-items:center;padding:6px 4px 16px}.profile-hero small{display:block;color:var(--muted);margin-top:3px}
.profile-avatar-large{width:58px;height:58px;font-weight:800;background-size:cover;background-position:center;cursor:pointer}
.panel-action{width:100%;text-align:left;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);padding:13px 5px}.panel-action.danger{color:#ff7280}
.dashboard-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:8px 2px 22px}.dashboard-hero h2{font-size:28px;margin:0;letter-spacing:-.035em}.dashboard-hero p{margin:6px 0 0;color:var(--muted)}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px}.kpi-card,.settings-card,.empty-card{border:1px solid var(--line);border-radius:16px;background:rgba(127,147,174,.07);padding:16px}.kpi-card strong{font-size:24px}.kpi-card span{display:block;color:var(--muted);font-size:12px;margin-top:5px}
.empty-card{margin-top:14px;min-height:160px;display:grid;place-items:center;text-align:center;color:var(--muted)}.empty-card strong{display:block;color:var(--text);font-size:17px;margin-bottom:5px}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:14px}.settings-card h3{margin:0 0 8px}.settings-card p{margin:0 0 15px;color:var(--muted);font-size:13px;line-height:1.45}
.theme-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choice{border:1px solid var(--line);border-radius:13px;padding:12px;background:rgba(127,147,174,.06);color:var(--text);text-align:left}.choice.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}
.choice-preview{height:58px;border-radius:9px;margin-bottom:9px}.preview-light{background:linear-gradient(145deg,#eef6fb,#dcecf8)}.preview-dark{background:linear-gradient(145deg,#0a1423,#192c47)}
.form-row{display:grid;gap:6px;margin-top:12px}.form-row select{height:40px;border:1px solid var(--line);border-radius:11px;background:rgba(127,147,174,.08);color:var(--text);padding:0 10px}
@media(max-width:800px){.topbar-center,.profile-button span:last-child{display:none}.desktop-icons{grid-template-rows:repeat(6,82px)}.kpi-grid{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}.start-menu{width:calc(100vw - 24px)}}
@media(max-width:599px){.app-window{left:5px!important;top:5px!important;width:calc(100% - 10px)!important;height:calc(100% - 10px)!important;min-width:0;resize:none}}

.wallpaper-library{padding:8px 4px 12px;border-top:1px solid var(--line)}
.wallpaper-library-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.wallpaper-library-head strong{display:block;font-size:13px}.wallpaper-library-head small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.wallpaper-add{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:rgba(127,147,174,.10);color:var(--text);font-size:20px;line-height:1}.wallpaper-add:disabled{opacity:.35;cursor:not-allowed}
.wallpaper-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;min-height:4px}
.wallpaper-thumb{position:relative;aspect-ratio:16/10;border:2px solid transparent;border-radius:10px;overflow:hidden;background:rgba(127,147,174,.08)}
.wallpaper-thumb.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}
.wallpaper-select{position:absolute;inset:0;width:100%;height:100%;border:0;background-size:cover;background-position:center;background-repeat:no-repeat}
.wallpaper-remove{position:absolute;right:3px;top:3px;width:20px;height:20px;border:0;border-radius:7px;background:rgba(0,0,0,.62);color:#fff;font-size:14px;line-height:18px;opacity:0;transition:opacity .12s}
.wallpaper-thumb:hover .wallpaper-remove{opacity:1}

.settings-home-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:14px}
.settings-home-card{display:flex;align-items:center;gap:14px;text-align:left;border:1px solid var(--line);border-radius:16px;background:rgba(127,147,174,.07);color:var(--text);padding:18px}
.settings-home-card:hover{background:rgba(127,147,174,.12);transform:translateY(-1px)}
.settings-home-card.disabled{opacity:.55;cursor:default}.settings-home-card.disabled:hover{transform:none}
.settings-home-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,color-mix(in srgb,var(--accent2) 72%,#fff),color-mix(in srgb,var(--accent) 72%,#222));color:#fff;font-size:20px}
.settings-home-card strong{display:block;font-size:15px}.settings-home-card small{display:block;color:var(--muted);margin-top:4px}
.background-settings-window{max-width:760px;margin:0 auto;padding:4px}
.settings-page-head h2{font-size:30px;margin:0 0 5px;letter-spacing:-.04em}.settings-page-head p{margin:0 0 22px;color:var(--muted)}
.background-preview{width:min(520px,100%);aspect-ratio:16/9;border:1px solid var(--line);border-radius:14px;background-color:#111;background-position:center;background-size:cover;background-repeat:no-repeat;box-shadow:0 12px 32px rgba(0,0,0,.18);margin-bottom:24px}
.settings-field{display:grid;gap:9px;margin:20px 0}.settings-field>label{font-size:13px;font-weight:700}
.settings-field select{width:min(360px,100%);height:42px;border:1px solid var(--line);border-radius:10px;background:rgba(127,147,174,.08);color:var(--text);padding:0 12px}
.settings-wallpaper-strip{display:grid;grid-template-columns:repeat(5,92px);gap:8px;min-height:62px}
.settings-wallpaper-wrap{position:relative;width:92px;height:62px;border:2px solid transparent;border-radius:10px;overflow:hidden;background:rgba(127,147,174,.08)}
.settings-wallpaper-wrap.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}
.settings-wallpaper-thumb{position:absolute;inset:0;width:100%;height:100%;border:0;background-size:cover;background-position:center;background-repeat:no-repeat}
.settings-wallpaper-delete{position:absolute;right:4px;top:4px;width:22px;height:22px;border:0;border-radius:7px;background:rgba(0,0,0,.68);color:#fff;opacity:0}
.settings-wallpaper-wrap:hover .settings-wallpaper-delete{opacity:1}.settings-wallpaper-source-hint{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(127,147,174,.055);color:var(--muted);font-size:10px;line-height:1.45}
.settings-browse{width:max-content;height:38px;border:1px solid var(--line);border-radius:10px;background:rgba(127,147,174,.10);color:var(--text);padding:0 14px}.settings-browse:disabled{opacity:.35;cursor:not-allowed}
.profile-settings-card{display:grid;grid-template-columns:150px minmax(260px,1fr);gap:22px;align-items:start;max-width:720px;padding:18px;border:1px solid var(--line);border-radius:18px;background:rgba(127,147,174,.06)}
.profile-settings-avatar{width:128px;height:128px;border:1px solid var(--line);border-radius:24px;background:rgba(127,147,174,.08);padding:0;overflow:hidden;display:grid;place-items:center}
.profile-settings-avatar span{width:100%;height:100%;display:grid;place-items:center;background-size:cover;background-position:center;font-size:28px;font-weight:800}
.profile-settings-fields{display:grid;gap:14px}
.profile-settings-fields .settings-field{display:grid;gap:7px}
.profile-settings-fields input{height:40px;border:1px solid var(--line);border-radius:11px;background:rgba(127,147,174,.08);color:var(--text);padding:0 11px}
.profile-settings-fields input[readonly]{opacity:.7}
.profile-settings-fields .primary-button{width:max-content;min-width:110px;padding:0 18px}
@media(max-width:700px){.profile-settings-card{grid-template-columns:1fr}.profile-settings-avatar{width:96px;height:96px}}
.users-admin-page{padding:4px;min-width:0}
.users-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.users-admin-head .primary-button{flex:0 0 auto;padding:0 16px}
.users-admin-layout{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:430px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:rgba(127,147,174,.035)}
.users-admin-list{border-right:1px solid var(--line);padding:8px;overflow:auto;background:rgba(127,147,174,.025)}
.users-admin-item{width:100%;min-height:62px;border:0;border-radius:11px;background:transparent;color:var(--text);display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px;text-align:left}
.users-admin-item:hover,.users-admin-item.selected{background:rgba(127,147,174,.12)}
.users-admin-avatar{width:38px;height:38px;border-radius:11px;background:rgba(127,147,174,.18);display:grid;place-items:center;font-weight:800;overflow:hidden}
.users-admin-avatar img{width:100%;height:100%;object-fit:cover}
.users-admin-item strong,.users-admin-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.users-admin-item small{color:var(--muted);font-size:10px;margin-top:3px}
.users-admin-item i{font-style:normal;font-size:10px;padding:4px 7px;border-radius:999px;background:rgba(127,147,174,.12)}
.users-admin-item i.active{color:#45b878}.users-admin-item i.inactive{color:#d06b73}
.users-admin-editor{padding:22px;overflow:auto}
.users-admin-empty{min-height:330px;display:grid;place-items:center;color:var(--muted);text-align:center}
.users-admin-form{max-width:620px;display:grid;gap:15px}
.users-admin-form>label,.users-admin-row label{display:grid;gap:7px;font-size:12px;color:var(--muted)}
.users-admin-form input,.users-admin-form select{height:40px;border:1px solid var(--line);border-radius:10px;background:rgba(127,147,174,.06);color:var(--text);padding:0 10px}
.users-admin-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.users-admin-active{display:flex!important;grid-auto-flow:column;justify-content:start;align-items:center;gap:9px!important}
.users-admin-active input{width:18px;height:18px}
.users-admin-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.users-admin-actions button{height:38px;padding:0 16px;border:1px solid var(--line);border-radius:10px;background:rgba(127,147,174,.08);color:var(--text)}
.users-admin-actions .primary-button{background:var(--accent);border-color:transparent;color:#fff}
@media(max-width:760px){.users-admin-layout{grid-template-columns:1fr}.users-admin-list{border-right:0;border-bottom:1px solid var(--line);max-height:210px}.users-admin-row{grid-template-columns:1fr}}
.users-admin-security{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:11px;padding:11px;background:rgba(127,147,174,.04)}
.users-admin-security strong,.users-admin-security small{display:block}.users-admin-security small{color:var(--muted);font-size:10px;margin-top:3px}
.users-admin-security button{height:32px;border:1px solid var(--line);border-radius:8px;background:rgba(127,147,174,.07);color:var(--muted);padding:0 10px}
.user-admin-sessions{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px}.user-admin-sessions h4{margin:0 0 3px}
.session-page{min-width:0}.session-policy{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:rgba(127,147,174,.05)}.session-policy strong{font-size:17px}.session-policy span{color:var(--muted);font-size:11px}
.session-list{display:grid;gap:9px}
.session-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:11px 12px;background:rgba(127,147,174,.035)}
.session-card.current{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:rgba(127,147,174,.07)}
.session-device-icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:rgba(127,147,174,.13);font-size:21px}
.session-main{min-width:0}.session-main strong,.session-main span,.session-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-main strong{font-size:13px}.session-main span,.session-main small{color:var(--muted);font-size:10px;margin-top:2px}.session-user{color:var(--accent)!important;margin-bottom:3px}
.session-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.session-actions button{height:30px;border:1px solid var(--line);border-radius:8px;background:rgba(127,147,174,.07);color:var(--text);padding:0 9px;font-size:10px}.session-actions button.danger{color:#d56a72}.session-current{font-size:9px;padding:4px 7px;border-radius:999px;background:rgba(127,147,174,.13);color:var(--accent)}
.session-empty{padding:18px;border:1px dashed var(--line);border-radius:11px;text-align:center;color:var(--muted);font-size:11px}
@media(max-width:700px){.session-card{grid-template-columns:42px minmax(0,1fr)}.session-actions{grid-column:1/-1;justify-content:flex-start}.session-main span,.session-main small{white-space:normal}.session-policy{align-items:flex-start;flex-direction:column}}
@media(max-width:720px){.settings-home-grid{grid-template-columns:1fr}.settings-wallpaper-strip{grid-template-columns:repeat(3,1fr)}.settings-wallpaper-wrap{width:100%;height:auto;aspect-ratio:16/10}}

.customer-page,.staging-page{height:100%;overflow:auto;padding:20px;background:var(--panel-solid);color:var(--text)}
.customer-head,.staging-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.customer-head h2,.staging-head h2{margin:0}.customer-head p,.staging-head p{margin:6px 0 0;color:var(--muted)}
.customer-head button,.customer-actions button,.staging-section-head button{height:36px;border:1px solid var(--line);border-radius:9px;background:rgba(127,147,174,.08);color:var(--text);padding:0 12px}.customer-head .primary-button,.customer-actions .primary-button,.staging-section-head .primary-button{background:var(--accent);color:#fff;border-color:transparent}
.customer-lookup{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin:14px 0}.customer-existing-search{grid-template-columns:minmax(0,1fr)}.customer-new-lookup{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin:0 0 12px}.customer-lookup input,.customer-lookup button,.customer-new-lookup input,.customer-new-lookup button{height:38px;min-width:0;border:1px solid var(--line);border-radius:9px;background:rgba(127,147,174,.06);color:var(--text);padding:0 10px}.customer-editor-mode{font-size:12px;font-weight:700;color:var(--accent);margin:0 0 10px}.customer-lookup-results{display:grid;gap:6px;margin-bottom:12px}.customer-lookup-results button{display:grid;gap:3px;text-align:left;border:1px solid var(--line);border-radius:9px;background:rgba(127,147,174,.08);color:var(--text);padding:9px}.customer-lookup-results small{color:var(--muted)}
.customer-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:12px;min-height:430px}.customer-list{border:1px solid var(--line);border-radius:12px;padding:8px;display:grid;align-content:start;gap:6px;overflow:auto;background:rgba(127,147,174,.08)}.customer-list-item{display:grid;gap:3px;text-align:left;border:0;border-radius:9px;background:rgba(127,147,174,.10);color:var(--text);padding:10px}.customer-list-item:hover{background:rgba(127,147,174,.18)}.customer-list-item span,.customer-list-item small{font-size:10px;color:var(--muted)}
.customer-editor{border:1px solid var(--line);border-radius:12px;padding:14px;overflow:auto;background:rgba(127,147,174,.08);min-width:0}.customer-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;min-width:0}.customer-form>label,.customer-address-row label{display:grid;gap:5px;font-size:10px;color:var(--muted);min-width:0}.customer-form input,.customer-form select,.customer-form textarea{box-sizing:border-box;width:100%;min-width:0}.customer-form input{height:36px;border:1px solid var(--line);border-radius:9px;background:rgba(127,147,174,.06);color:var(--text);padding:0 9px}.customer-address-row{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(64px,90px);gap:8px;min-width:0}.customer-address-row>*{min-width:0}.customer-address-row.three{grid-template-columns:minmax(72px,110px) minmax(0,1fr) minmax(56px,90px)}.customer-form fieldset{grid-column:1/-1;border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;gap:14px;flex-wrap:wrap}.customer-form legend{font-size:10px;color:var(--muted)}.customer-check{display:flex!important;align-items:center;gap:7px!important;color:var(--text)!important}.customer-check input{width:17px;height:17px}.customer-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.customer-empty{padding:18px;text-align:center;color:var(--muted)}
.customer-history-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:12px;margin-top:12px}.customer-history-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:rgba(127,147,174,.025);min-width:0}.customer-history-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.customer-history-head h3{margin:0 0 10px;font-size:13px}.customer-event-form{display:grid;grid-template-columns:150px minmax(160px,1fr) auto;gap:7px;margin-bottom:10px}.customer-event-form textarea{grid-column:1/3;min-height:58px;resize:vertical}.customer-event-form input,.customer-event-form select,.customer-event-form textarea{border:1px solid var(--line);border-radius:8px;background:rgba(127,147,174,.06);color:var(--text);padding:8px}.customer-event-form button{grid-column:3;grid-row:1/3;border:1px solid var(--line);border-radius:8px;background:rgba(127,147,174,.08);color:var(--text);padding:0 10px}.customer-activity-list,.customer-development-list{display:grid;gap:7px;max-height:320px;overflow:auto}.customer-event{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;border-top:1px solid var(--line);padding-top:8px}.customer-event:first-child{border-top:0}.customer-event-type{font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);overflow-wrap:anywhere}.customer-event strong,.customer-event p,.customer-event small{display:block}.customer-event p{margin:3px 0;font-size:10px;color:var(--muted);white-space:pre-wrap}.customer-event small{font-size:8px;color:var(--muted)}
.customer-development-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:9px;padding:9px;background:rgba(127,147,174,.035)}.customer-development-item>div{min-width:0}.customer-development-item strong,.customer-development-item small{display:block}.customer-development-item strong{font-size:11px;margin-top:4px}.customer-development-item small{font-size:8px;color:var(--muted);margin-top:2px}.customer-development-item button{flex:none;border:1px solid var(--line);border-radius:8px;background:rgba(127,147,174,.08);color:var(--text);padding:7px 9px;font-size:9px}.development-badge{display:inline-block;padding:3px 6px;border-radius:999px;background:rgba(218,137,52,.18);border:1px solid rgba(218,137,52,.55);color:#d98b35;font-size:8px;font-weight:700;letter-spacing:.06em}
.development-consent-modal{max-width:620px}.development-warning{border:1px solid rgba(218,137,52,.45);background:rgba(218,137,52,.08);border-radius:10px;padding:12px}.development-warning strong{color:#d98b35}.development-warning p{margin:7px 0 0;line-height:1.45}.development-confirm{display:flex;align-items:flex-start;gap:8px;margin-top:12px}.development-confirm input{width:18px;height:18px;flex:none}
.staging-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.staging-kpis>div{border:1px solid var(--line);border-radius:12px;padding:12px;background:rgba(127,147,174,.04)}.staging-kpis small,.staging-kpis strong,.staging-kpis span{display:block}.staging-kpis small{font-size:10px;color:var(--muted)}.staging-kpis strong{font-size:15px;margin-top:5px}.staging-kpis span{font-size:9px;color:var(--muted);margin-top:4px}
.staging-modules{border:1px solid var(--line);border-radius:12px;padding:14px}.staging-section-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.staging-section-head h3{margin:0}.staging-module-list{display:grid;gap:8px;margin-top:12px}.staging-module{display:grid;grid-template-columns:minmax(180px,1.35fr) 105px 105px 125px minmax(220px,2fr);gap:8px;align-items:start;border:1px solid var(--line);border-radius:10px;padding:10px;background:rgba(127,147,174,.035)}.staging-module.is-development{border-color:rgba(218,137,52,.5);background:rgba(218,137,52,.045)}.staging-module label{display:grid;gap:5px;font-size:9px;color:var(--muted)}.staging-module input,.staging-module select,.staging-module textarea{border:1px solid var(--line);border-radius:8px;background:rgba(127,147,174,.06);color:var(--text);padding:7px}.staging-module input,.staging-module select{height:34px}.staging-module textarea{min-height:58px;resize:vertical}.staging-module-select{display:flex!important;align-items:center;gap:8px!important;color:var(--text)!important}.staging-module-select input{width:18px;height:18px}.staging-module-select strong,.staging-module-select small{display:block}.staging-module-select small{color:var(--muted);font-size:9px}
@media(max-width:850px){.customer-layout,.customer-history-grid{grid-template-columns:1fr}.customer-list{max-height:210px}.staging-module{grid-template-columns:1fr 1fr}.staging-description{grid-column:1/-1}}
@media(max-width:600px){.customer-page,.staging-page{padding:10px}.customer-head,.staging-head{align-items:flex-start}.customer-lookup,.customer-new-lookup{grid-template-columns:1fr 1fr}.customer-lookup input,.customer-new-lookup input{grid-column:1/-1}.customer-form{grid-template-columns:1fr}.customer-address-row,.customer-address-row.three{grid-column:1;grid-template-columns:minmax(0,1fr) minmax(62px,82px)}.customer-address-row.three{grid-template-columns:minmax(68px,90px) minmax(0,1fr) minmax(54px,68px)}.customer-form fieldset,.customer-actions{grid-column:1}.customer-event-form{grid-template-columns:1fr}.customer-event-form textarea,.customer-event-form button{grid-column:1;grid-row:auto}.customer-event{grid-template-columns:1fr}.customer-development-item{align-items:flex-start;flex-direction:column}.staging-kpis{grid-template-columns:1fr}.staging-section-head{align-items:flex-start;flex-direction:column}.staging-module{grid-template-columns:1fr}.staging-description{grid-column:1}}
@media(max-width:430px){.customer-address-row,.customer-address-row.three{grid-template-columns:1fr}.customer-address-row>*{grid-column:1}.customer-head{flex-direction:column}.customer-head button{width:100%}}
.logcenter-page{height:100%;overflow:auto;padding:20px;background:var(--panel-solid);color:var(--text)}
.logcenter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.logcenter-head h2{margin:0}.logcenter-head p{margin:6px 0 0;color:var(--muted)}
.logcenter-filters{display:grid;grid-template-columns:minmax(180px,2fr) repeat(3,minmax(120px,1fr));gap:8px;margin:14px 0}.logcenter-filters input,.logcenter-filters select,.logcenter-filters button{height:36px;min-width:0;border:1px solid var(--line);border-radius:9px;background:rgba(127,147,174,.07);color:var(--text);padding:0 9px}.logcenter-filters button{white-space:nowrap}.log-time-filter{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;min-width:0;border:1px solid var(--line);border-radius:9px;background:rgba(127,147,174,.045);padding:0 7px}.log-time-filter span{font-size:8px;color:var(--muted);white-space:nowrap}.log-time-filter input{border:0;background:transparent;padding:0;height:34px}
.log-export-result{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:rgba(127,147,174,.08);font-size:10px;margin-bottom:10px}.log-export-result button{height:30px;border:1px solid var(--line);border-radius:8px;background:rgba(127,147,174,.08);color:var(--text);padding:0 9px}
.logcenter-summary{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:9px;margin:8px 0}.logcenter-summary span:first-child{color:var(--text);font-weight:700}
.log-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 2px;padding-top:10px;border-top:1px solid var(--line)}.log-pagination>label{display:flex;align-items:center;gap:7px;font-size:9px;color:var(--muted)}.log-pagination select,.log-page-controls button{height:32px;border:1px solid var(--line);border-radius:8px;background:rgba(127,147,174,.07);color:var(--text);padding:0 9px}.log-page-controls{display:flex;align-items:center;gap:8px}.log-page-controls span{min-width:90px;text-align:center;font-size:9px;color:var(--muted)}.log-page-controls button:disabled{opacity:.35}
.log-list{display:grid;gap:7px}.log-row{display:grid;grid-template-columns:220px minmax(0,1fr);gap:10px;border:1px solid var(--line);border-radius:10px;padding:9px;background:rgba(127,147,174,.035);min-width:0}.log-row.level-warn{border-color:rgba(221,164,65,.38)}.log-row.level-error,.log-row.level-critical{border-color:rgba(210,82,90,.45);background:rgba(210,82,90,.035)}
.log-row-meta{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;align-content:start;font-size:8px;color:var(--muted);min-width:0}.log-level{font-weight:800;color:var(--accent)}.level-warn .log-level{color:#c98a26}.level-error .log-level,.level-critical .log-level{color:#d45d68}.log-row-body{min-width:0}.log-row-body strong{font-size:10px}.log-row-body p{margin:3px 0;font-size:10px;white-space:pre-wrap;overflow-wrap:anywhere}.log-row-body small{display:block;font-size:8px;color:var(--muted);overflow-wrap:anywhere}.log-empty{padding:24px;border:1px dashed var(--line);border-radius:10px;text-align:center;color:var(--muted)}
@media(max-width:1000px){.logcenter-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.logcenter-filters #logSearch{grid-column:1/-1}.log-time-filter{grid-template-columns:1fr}.log-time-filter span{padding-top:4px}.log-row{grid-template-columns:180px minmax(0,1fr)}}
@media(max-width:650px){.logcenter-page{padding:10px}.logcenter-filters{grid-template-columns:1fr 1fr}.logcenter-filters #logSearch{grid-column:1/-1}.logcenter-filters button{width:100%}.log-time-filter{grid-template-columns:1fr}.log-time-filter span{padding-top:4px}.log-row{grid-template-columns:1fr}.log-row-meta{grid-template-columns:auto minmax(0,1fr)}.log-export-result{align-items:flex-start;flex-direction:column}.log-pagination{align-items:stretch;flex-direction:column}.log-pagination>label{justify-content:space-between}.log-page-controls{display:grid;grid-template-columns:1fr auto 1fr}.log-page-controls button{width:100%}}
.vmcenter-page{height:100%;overflow:auto;padding:20px;background:var(--panel-solid);color:var(--text)}
.vmcenter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.vmcenter-head h2{margin:0}.vmcenter-head p{margin:6px 0 0;color:var(--muted)}
.vmcenter-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}
.vmcenter-kpi{border:1px solid var(--line);border-radius:12px;padding:12px;background:rgba(127,147,174,.045);min-width:0}.vmcenter-kpi.warning{border-color:color-mix(in srgb,#d39b45 50%,var(--line))}
.vmcenter-kpi small,.vmcenter-kpi strong,.vmcenter-kpi span{display:block}.vmcenter-kpi small{font-size:10px;color:var(--muted)}.vmcenter-kpi strong{font-size:17px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vmcenter-kpi span{font-size:9px;color:var(--muted);margin-top:4px}
.vmcenter-development{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 14px;padding:15px 16px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--line));border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,transparent),rgba(127,147,174,.025))}.vmcenter-development h3{margin:4px 0 3px}.vmcenter-development p{margin:0;color:var(--muted);font-size:10px;max-width:760px}.vmcenter-development>.primary-button{flex:0 0 auto;min-height:38px}.vm-development-state{display:grid;gap:2px;margin-top:9px;font-size:9px;color:var(--muted)}.vm-development-state strong{color:var(--text);font-size:11px}.vm-development-state small{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}
.vmcenter-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:14px}.vmcenter-create,.vmcenter-machines{border:1px solid var(--line);border-radius:13px;background:rgba(127,147,174,.03);padding:14px;min-width:0}.vmcenter-create h3,.vmcenter-machines h3{margin:0 0 12px}
.vmcenter-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.vmcenter-form label{display:grid;gap:5px;font-size:10px;color:var(--muted)}.vmcenter-form label:nth-child(1),.vmcenter-form label:nth-child(4),.vmcenter-form label:nth-child(5),.vmcenter-create-button{grid-column:1/-1}.vmcenter-form input,.vmcenter-form select,.vm-route-form input,.vm-route-form select{height:36px;border:1px solid var(--line);border-radius:9px;background:rgba(127,147,174,.06);color:var(--text);padding:0 9px;min-width:0}
.vmcenter-create-button{height:38px;border:0;border-radius:9px;background:var(--accent);color:#fff}
.vmcenter-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.vmcenter-section-head button{height:34px;border:1px solid var(--line);border-radius:9px;background:rgba(127,147,174,.07);color:var(--text);padding:0 10px}
.vm-machine-list{display:grid;gap:10px}.vmcenter-empty{padding:22px;border:1px dashed var(--line);border-radius:11px;color:var(--muted);text-align:center}
.vm-machine-card{border:1px solid var(--line);border-radius:12px;background:rgba(127,147,174,.035);padding:12px}.vm-machine-card>header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.vm-machine-card>header small,.vm-machine-card>header strong,.vm-machine-card>header span{display:block}.vm-machine-card>header small{color:var(--accent);font-size:9px}.vm-machine-card>header strong{font-size:14px;margin-top:2px}.vm-machine-card>header span{font-size:10px;color:var(--muted);margin-top:2px}.vm-status{padding:4px 8px;border-radius:999px;background:rgba(127,147,174,.12);white-space:nowrap}
.vm-machine-meta{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:10px 0}.vm-machine-meta>span{border:1px solid var(--line);border-radius:9px;padding:7px;min-width:0;color:var(--muted);font-size:8px}.vm-machine-meta b{display:block;color:var(--text);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px}
.vm-provisioning-summary{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:start;margin:0 0 10px;padding:9px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--accent) 5%,transparent)}.vm-provisioning-state{padding:4px 7px;border-radius:999px;background:rgba(127,147,174,.12);font-size:8px;font-weight:700}.vm-provisioning-summary strong,.vm-provisioning-summary small,.vm-provisioning-summary code{display:block}.vm-provisioning-summary strong{font-size:10px}.vm-provisioning-summary small{margin-top:2px;color:var(--muted);font-size:9px}.vm-provisioning-summary code{margin-top:4px;color:var(--muted);font-size:7px;overflow-wrap:anywhere}
.vm-management-trust{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:8px;margin:0 0 10px;padding:8px 9px;border:1px solid var(--line);border-radius:9px;font-size:9px}.vm-management-trust strong{font-size:9px}.vm-management-trust span{font-weight:700}.vm-management-trust code{font-size:7px;color:var(--muted);overflow-wrap:anywhere}.vm-management-trust.trusted{border-color:rgba(64,180,120,.42)}.vm-management-trust.trusted span{color:#47b97d}.vm-management-trust.mismatch{border-color:rgba(214,91,99,.5)}.vm-management-trust.mismatch span{color:#d65b63}.vm-management-trust.unavailable span{color:var(--muted)}
.vm-routes{border-top:1px solid var(--line);padding-top:9px}.vm-routes>strong{font-size:10px}.vm-route-list{display:flex;gap:5px;flex-wrap:wrap;margin:7px 0}.vm-route-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border-radius:8px;background:rgba(127,147,174,.1);font-size:9px}.vm-route-chip button{border:0;background:transparent;color:var(--muted);padding:0}.vm-route-empty{color:var(--muted);font-size:10px}
.vm-route-form{display:grid;grid-template-columns:minmax(130px,1fr) 82px 80px auto;gap:6px}.vm-route-form button{border:1px solid var(--line);border-radius:9px;background:rgba(127,147,174,.08);color:var(--text);padding:0 10px}
.vm-machine-card>footer{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.vm-machine-card>footer button{height:31px;border:1px solid var(--line);border-radius:8px;background:rgba(127,147,174,.07);color:var(--text);padding:0 9px;font-size:9px}.vm-machine-card>footer button.danger{color:#d56a72;margin-left:auto}
.vm-proxy-preview{margin-top:10px;border:1px solid var(--line);border-radius:10px;background:#10151d;color:#d7e1ee;padding:12px;white-space:pre-wrap;overflow:auto;max-height:260px;font-size:10px}
@media(max-width:900px){.vmcenter-kpis{grid-template-columns:1fr 1fr}.vmcenter-layout{grid-template-columns:1fr}.vmcenter-form{grid-template-columns:1fr 1fr}.vm-machine-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.vmcenter-page{padding:10px}.vmcenter-kpis{grid-template-columns:1fr 1fr}.vmcenter-development{align-items:stretch;flex-direction:column}.vmcenter-development>.primary-button{width:100%}.vmcenter-form{grid-template-columns:1fr}.vmcenter-form label,.vmcenter-form label:nth-child(1),.vmcenter-form label:nth-child(4),.vmcenter-form label:nth-child(5),.vmcenter-create-button{grid-column:1}.vm-route-form{grid-template-columns:1fr 78px}.vm-route-form input[name="target_port"]{grid-column:1}.vm-route-form button{grid-column:2}.vm-machine-meta{grid-template-columns:1fr 1fr}.vm-provisioning-summary{grid-template-columns:1fr}.vm-machine-card>footer button.danger{margin-left:0}.vmcenter-head{align-items:flex-start}.vmcenter-kpi strong{font-size:14px}}

.desktop-context-menu{position:fixed;z-index:5000;width:292px;padding:7px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel-solid) 96%,transparent);box-shadow:0 18px 50px rgba(0,0,0,.32);backdrop-filter:blur(18px);color:var(--text);font-size:13px}
.ctx-item{position:relative;width:100%;min-height:34px;border:0;border-radius:8px;background:transparent;color:var(--text);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px;text-align:left}
.desktop-context-menu>button.ctx-item{justify-content:flex-start;text-align:left}
.ctx-item:hover:not(.disabled){background:rgba(127,147,174,.14)}
.ctx-item.disabled{opacity:.42;cursor:default}
.ctx-separator{height:1px;background:var(--line);margin:5px 3px}
.ctx-parent>.ctx-submenu{display:none;position:absolute;left:calc(100% - 4px);top:-7px;width:220px;padding:7px;border:1px solid var(--line);border-radius:11px;background:var(--panel-solid);box-shadow:0 18px 40px rgba(0,0,0,.28)}
.ctx-parent:hover>.ctx-submenu{display:block}
.ctx-submenu button{width:100%;height:34px;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;padding:0 10px}
.ctx-submenu button:hover{background:rgba(127,147,174,.14)}
.desktop-icons[data-size="small"]{grid-template-rows:repeat(8,72px);gap:2px 6px}.desktop-icons[data-size="small"] .desktop-icon{width:76px;height:68px}.desktop-icons[data-size="small"] .app-glyph{width:34px;height:34px;border-radius:11px;font-size:17px}.desktop-icons[data-size="small"] .desktop-label{font-size:10px;max-width:72px}
.desktop-icons[data-size="large"]{grid-template-rows:repeat(5,112px);gap:8px 14px}.desktop-icons[data-size="large"] .desktop-icon{width:112px;height:108px}.desktop-icons[data-size="large"] .app-glyph{width:58px;height:58px;border-radius:17px;font-size:28px}.desktop-icons[data-size="large"] .desktop-label{font-size:13px;max-width:108px}

.nx-explorer{height:100%;display:grid;grid-template-rows:34px 96px 42px 1fr;background:var(--panel-solid);color:var(--text)}
.explorer-ribbon-tabs{display:flex;align-items:end;padding:0 10px;border-bottom:1px solid var(--line);background:rgba(127,147,174,.05)}
.explorer-ribbon-tabs button{height:33px;padding:0 16px;border:0;border-radius:7px 7px 0 0;background:transparent;color:var(--text);font-size:12px}
.explorer-ribbon-tabs button.active{background:rgba(127,147,174,.14);border:1px solid var(--line);border-bottom-color:transparent}
.explorer-ribbon{display:flex;align-items:stretch;gap:0;border-bottom:1px solid var(--line);background:rgba(127,147,174,.045);overflow-x:auto}
.ribbon-group{position:relative;display:flex;gap:4px;align-items:flex-start;padding:8px 10px 20px;border-right:1px solid var(--line);min-width:max-content}
.ribbon-group>button{min-width:62px;height:58px;border:0;border-radius:8px;background:transparent;color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:18px}
.ribbon-group>button span{font-size:10px}.ribbon-group>button:hover:not(:disabled){background:rgba(127,147,174,.12)}.ribbon-group>button.disabled{opacity:.38}.ribbon-delete-icon{font-size:25px;line-height:18px;font-weight:800;color:var(--muted)}.ribbon-group>button[data-action="delete"]:not(:disabled) .ribbon-delete-icon{color:#df4f5d;text-shadow:0 0 10px rgba(223,79,93,.18)}.ribbon-new-folder-icon{position:relative;display:block;width:27px;height:18px;margin-top:2px;border-radius:3px 3px 5px 5px;background:#f5c842;border:1px solid #d7a91f;box-shadow:0 1px 3px rgba(0,0,0,.16),inset 0 1px rgba(255,255,255,.35)}.ribbon-new-folder-icon:before{content:"";position:absolute;left:2px;top:-5px;width:12px;height:6px;border-radius:3px 3px 0 0;background:#ffd95e;border:1px solid #d7a91f;border-bottom:0}.ribbon-new-folder-icon:after{content:"+";position:absolute;right:-5px;bottom:-5px;display:grid;place-items:center;width:13px;height:13px;border-radius:50%;background:#f0a92d;color:#fff;font-size:11px;font-weight:800;line-height:13px;border:1px solid rgba(255,255,255,.75)}
.ribbon-group>small{position:absolute;bottom:3px;left:0;right:0;text-align:center;color:var(--muted);font-size:9px}
.explorer-address{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--line);background:rgba(127,147,174,.035)}
.explorer-address>button{width:30px;height:30px;border:0;border-radius:7px;background:transparent;color:var(--text);font-size:16px}.explorer-address>button:hover{background:rgba(127,147,174,.12)}
.explorer-breadcrumb{height:30px;display:flex;align-items:center;gap:4px;flex:1;border:1px solid var(--line);border-radius:7px;padding:0 7px;overflow:hidden}
.explorer-breadcrumb button{border:0;background:transparent;color:var(--text);white-space:nowrap}.explorer-breadcrumb button:hover{text-decoration:underline}.explorer-breadcrumb span{color:var(--muted)}
.explorer-search{width:180px;height:30px;border:1px solid var(--line);border-radius:7px;padding:6px 10px;color:var(--muted);font-size:11px}
.explorer-body{display:grid;grid-template-columns:220px 1fr auto;min-height:0}
.explorer-tree{border-right:1px solid var(--line);padding:9px 7px;overflow:auto;background:rgba(127,147,174,.035)}
.tree-section{font-size:11px;font-weight:800;color:var(--muted);padding:7px 9px}.tree-item{width:100%;height:32px;border:0;border-radius:7px;background:transparent;color:var(--text);text-align:left;padding:0 10px;font-size:12px}.tree-item:hover,.tree-item.active{background:rgba(127,147,174,.13)}.tree-item.disabled{opacity:.42}.tree-separator{height:1px;background:var(--line);margin:7px}
.explorer-content{min-width:0;display:grid;grid-template-rows:1fr 28px}.explorer-items{min-height:0;overflow:auto;padding:8px}
.explorer-items.details .explorer-row,.explorer-items.details .explorer-entry{display:grid;grid-template-columns:34px minmax(180px,1.6fr) minmax(140px,.9fr) minmax(100px,.7fr) 90px;align-items:center;min-height:34px;width:100%;gap:4px}
.explorer-head{color:var(--muted);font-size:10px;border-bottom:1px solid var(--line);padding:0 5px}.explorer-entry{border:0;border-radius:6px;background:transparent;color:var(--text);text-align:left;padding:3px 5px;font-size:11px}.explorer-entry:hover,.explorer-entry:focus{background:rgba(127,147,174,.12);outline:none}.entry-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.explorer-items.list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-auto-rows:42px;gap:2px}.explorer-items.list .explorer-entry{display:grid;grid-template-columns:38px 1fr;grid-template-rows:20px 16px;align-items:center}.explorer-items.list .file-icon{grid-row:1/3}.explorer-items.list small{color:var(--muted);font-size:9px}
.explorer-items.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));align-content:start;gap:10px}.explorer-items.tiles .explorer-entry{height:108px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center}.explorer-items.tiles .file-icon{width:48px;height:54px}.explorer-items.tiles small{color:var(--muted);font-size:9px}
.explorer-status{border-top:1px solid var(--line);padding:6px 10px;color:var(--muted);font-size:10px}
.explorer-preview{width:240px;border-left:1px solid var(--line);padding:14px;background:rgba(127,147,174,.035)}.preview-file{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.preview-file .file-icon{width:72px;height:84px;font-size:18px}.preview-file small{color:var(--muted)}
.file-icon{width:28px;height:30px;border-radius:4px;display:grid;place-items:center;background:#c9d2de;color:#223047;font-size:7px;font-weight:900;box-shadow:inset 0 -4px 0 rgba(0,0,0,.08)}
.file-icon.folder{background:#f0c44e;color:#7b5b00;box-shadow:none;border-radius:3px 3px 5px 5px}.file-icon.word{background:#2b67d1;color:#fff}.file-icon.excel,.file-icon.calc{background:#17804c;color:#fff}.file-icon.powerpoint,.file-icon.impress{background:#c94b2d;color:#fff}.file-icon.pdf{background:#d73d46;color:#fff}.file-icon.drawio{background:#f49a24;color:#fff}.file-icon.image{background:#6b8fb3;color:#fff}.file-icon.text,.file-icon.markdown{background:#e8edf2;color:#334155}.file-icon.archive{background:#8b5aa8;color:#fff}.file-icon.mail{background:#3f8dd6;color:#fff}
@media(max-width:900px){.explorer-body{grid-template-columns:170px 1fr}.explorer-preview{display:none}.explorer-search{display:none}.explorer-items.details .explorer-row,.explorer-items.details .explorer-entry{grid-template-columns:30px 1fr 120px}.explorer-items.details .explorer-entry span:nth-child(4),.explorer-items.details .explorer-entry span:nth-child(5),.explorer-head span:nth-child(4),.explorer-head span:nth-child(5){display:none}}

.ctx-item.danger-text{color:#ff6b78}
.nx-dialog-backdrop{position:fixed;inset:0;z-index:9000;display:grid;place-items:center;background:rgba(4,8,14,.42);backdrop-filter:blur(4px)}
.nx-dialog{width:min(470px,calc(100vw - 32px));display:grid;grid-template-columns:54px 1fr;gap:14px;border:1px solid var(--line);border-radius:18px;background:var(--panel-solid);box-shadow:0 28px 80px rgba(0,0,0,.42);padding:22px;color:var(--text)}
.nx-dialog-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(255,95,105,.14);color:#ff6472;font-size:24px;font-weight:900}
.nx-dialog-body h3{margin:1px 0 8px;font-size:19px}.nx-dialog-body p{margin:0;color:var(--muted);line-height:1.5;font-size:13px}
.nx-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.nx-dialog-actions button{height:38px;padding:0 16px;border:1px solid var(--line);border-radius:10px;background:rgba(127,147,174,.08);color:var(--text)}.nx-dialog-actions button.danger{border-color:transparent;background:#d94b59;color:white}

.start-power-menu{min-width:250px}
.start-power-menu .ctx-item{display:grid;grid-template-columns:28px 1fr;align-items:center;text-align:left;gap:8px}
.desktop-context-menu .ctx-item:disabled,.desktop-context-menu .ctx-item.disabled{opacity:.32;color:var(--muted);cursor:default;filter:saturate(.2)}

.tree-node{display:grid;grid-template-columns:16px 22px minmax(0,1fr);align-items:center;gap:2px}
.tree-node .tree-caret{font-size:11px;color:var(--muted);text-align:center}
.tree-node .tree-folder{font-size:15px}
.tree-node .tree-label,.tree-node>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.image-viewer-content{height:100%;display:grid;grid-template-rows:1fr 30px;background:#111}
.image-viewer-stage{min-height:0;display:grid;place-items:center;overflow:auto;background:repeating-conic-gradient(#20242a 0 25%,#272c33 0 50%) 50%/20px 20px}
.image-viewer-stage img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.image-viewer-footer{display:flex;align-items:center;padding:0 12px;background:var(--panel-solid);color:var(--muted);font-size:10px;border-top:1px solid var(--line)}

.explorer-entry.selected{background:color-mix(in srgb,var(--accent) 13%,transparent);outline:1px solid color-mix(in srgb,var(--accent) 42%,transparent)}
.explorer-preview{width:360px;padding:0;min-width:280px;min-height:0;overflow:hidden}
.preview-document{height:100%;min-height:0;display:grid;grid-template-rows:auto 1fr;background:var(--panel-solid)}
.preview-document-head{padding:10px 12px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px;min-width:0}
.preview-document-head strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.preview-document-head small{font-size:9px;color:var(--muted)}
.image-preview-head{flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.image-preview-title{display:flex;flex-direction:column;gap:2px;min-width:0}.preview-gps-button{width:30px;height:30px;flex:0 0 auto;border:1px solid var(--line);border-radius:8px;background:rgba(127,147,174,.07);color:var(--text);font-size:17px;display:grid;place-items:center;cursor:pointer}.preview-gps-button:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.preview-document iframe{width:100%;height:100%;min-height:0;border:0;background:#fff}
.preview-image-stage{min-height:0;display:grid;place-items:center;overflow:auto;background:repeating-conic-gradient(#20242a 0 25%,#272c33 0 50%) 50%/18px 18px}
.preview-image-stage img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.audio-preview{background:var(--panel-solid)}
.audio-player-shell{min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:22px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent 40%)}
.audio-art{width:92px;height:92px;border-radius:24px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 18%,var(--panel-solid));border:1px solid color-mix(in srgb,var(--accent) 42%,var(--line));color:var(--accent);font-size:40px;font-weight:800;box-shadow:0 16px 36px rgba(0,0,0,.18)}
.audio-track-name{max-width:100%;font-size:13px;font-weight:700;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.audio-controls{width:100%;display:grid;grid-template-columns:38px 38px minmax(0,1fr) 38px;align-items:center;gap:7px}
.audio-play{width:38px;height:38px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:50%;background:color-mix(in srgb,var(--accent) 14%,var(--panel-solid));color:var(--accent);font-weight:800}
.audio-progress,.audio-volume{width:100%;accent-color:var(--accent)}
.audio-time{font-size:9px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:center}
.audio-volume-row{width:100%;display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;align-items:center}
.audio-status{font-size:9px;color:var(--muted);text-align:center}
.audio-project-shell p{max-width:320px;margin:0;color:var(--muted);font-size:11px;line-height:1.5;text-align:center}
.file-icon.nx-icon-audio .nx-file-badge{color:var(--accent)}
@media(max-width:900px){.explorer-body{position:relative}.explorer-preview.audio-active:not(.hidden){display:block;position:absolute;left:8px;right:8px;bottom:8px;width:auto!important;height:min(300px,48vh);min-width:0;z-index:8;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 45px rgba(0,0,0,.28)}.explorer-preview.audio-active+.explorer-preview-grip{display:none}}
.pdf-viewer-content{height:100%;min-height:0;background:#20242a}
.pdf-viewer-content iframe{width:100%;height:100%;border:0;background:#fff}

.explorer-preview-grip{width:7px;cursor:col-resize;position:relative;background:transparent;border-left:1px solid transparent;border-right:1px solid transparent;touch-action:none}
.explorer-preview-grip::after{content:"";position:absolute;top:0;bottom:0;left:2px;width:2px;background:color-mix(in srgb,var(--line) 75%,transparent);transition:background .12s,box-shadow .12s}
.explorer-preview-grip:hover::after,.resizing-preview .explorer-preview-grip::after{background:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent)}
.resizing-preview{cursor:col-resize!important;user-select:none}
.resizing-preview iframe{pointer-events:none}
.explorer-body{grid-template-columns:220px minmax(220px,1fr) auto auto}

/* Explorer search and collapsible Windows-style ribbon */
.nx-explorer{grid-template-rows:34px auto 42px 1fr}
.explorer-ribbon-wrap{min-height:96px;display:flex;align-items:stretch;border-bottom:1px solid var(--line);background:rgba(127,147,174,.045)}
.explorer-ribbon-wrap .explorer-ribbon{flex:1;min-width:0;border-bottom:0;background:transparent}
.explorer-ribbon-controls{width:38px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;padding:6px 4px;border-left:1px solid var(--line)}
.explorer-ribbon-controls button,.explorer-ribbon-collapsed button{border:0;background:transparent;color:var(--muted);border-radius:7px;cursor:pointer}
.explorer-ribbon-controls button{width:29px;height:29px;font-size:14px}
.explorer-ribbon-controls button:hover,.explorer-ribbon-controls button.active{background:rgba(127,147,174,.14);color:var(--text)}
.explorer-ribbon-controls .ribbon-pin.active{color:var(--accent)}
.explorer-ribbon-collapsed{height:22px;border-bottom:1px solid var(--line);background:rgba(127,147,174,.035);display:flex;align-items:center;justify-content:flex-end;padding:0 8px}
.explorer-ribbon-collapsed button{width:30px;height:18px;font-size:14px;line-height:16px}
.explorer-ribbon-collapsed button:hover{background:rgba(127,147,174,.14);color:var(--text)}
.explorer-search{background:rgba(127,147,174,.035);color:var(--text);outline:none}
.explorer-search::placeholder{color:var(--muted)}
.explorer-search:focus{border-color:color-mix(in srgb,var(--accent) 60%,var(--line));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent)}
.search-result-name{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;line-height:1.15}
.search-result-name>span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-result-name>small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:8px;margin-top:2px}
@media(max-width:900px){.explorer-body{grid-template-columns:170px minmax(180px,1fr) auto auto}}

/* Explorer drag and drop */
.explorer-entry[draggable="true"],.tree-node[draggable="true"]{cursor:grab}
.explorer-entry.dragging,.tree-node.dragging{opacity:.45;cursor:grabbing}
.explorer-entry.drop-target,.tree-node.drop-target{background:color-mix(in srgb,var(--accent) 18%,transparent)!important;outline:1px solid color-mix(in srgb,var(--accent) 58%,transparent)}
.explorer-items.drop-target{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 42%,transparent);background:color-mix(in srgb,var(--accent) 5%,transparent)}

/* NX native modal and Explorer properties */
.nx-modal-backdrop{position:fixed;inset:0;z-index:9500;display:grid;place-items:center;background:rgba(3,8,15,.44);backdrop-filter:blur(5px)}
.nx-modal{width:min(560px,calc(100vw - 28px));max-height:min(760px,calc(100vh - 28px));display:grid;grid-template-rows:42px minmax(0,1fr) 48px;border:1px solid var(--line);border-radius:15px;background:var(--panel-solid);box-shadow:0 30px 90px rgba(0,0,0,.48);overflow:hidden;color:var(--text)}
.nx-modal>header{display:flex;align-items:center;justify-content:space-between;padding:0 12px 0 16px;border-bottom:1px solid var(--line);background:rgba(127,147,174,.055)}
.nx-modal>header strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nx-modal>header button{width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--text);font-size:20px}.nx-modal>header button:hover{background:rgba(127,147,174,.13)}
.nx-modal-content{min-height:0;overflow:auto;padding:16px}
.nx-modal>footer{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:0 14px;border-top:1px solid var(--line);background:rgba(127,147,174,.035)}
.nx-modal>footer button,.props-section button{min-width:88px;height:32px;border:1px solid var(--line);border-radius:8px;background:rgba(127,147,174,.07);color:var(--text)}
.nx-modal>footer button.primary{background:var(--accent);border-color:transparent;color:white}.nx-modal button:disabled{opacity:.36}
.nx-prompt-label{display:grid;gap:8px;font-size:12px;color:var(--muted)}.nx-prompt-input,.props-path,.props-hero input{height:36px;border:1px solid var(--line);border-radius:8px;background:rgba(127,147,174,.045);color:var(--text);padding:0 10px;outline:none}.nx-prompt-input:focus{border-color:var(--accent)}
.nx-message{padding:8px 2px;line-height:1.5;font-size:13px}
.nx-saveas-modal{width:min(620px,calc(100vw - 28px));height:min(560px,calc(100vh - 28px))}
.nx-saveas-modal .nx-modal-content{display:grid;grid-template-rows:auto minmax(120px,1fr) auto;gap:12px;overflow:hidden}
.saveas-location{height:38px;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:8px}
.saveas-location button{height:34px;border:1px solid var(--line);border-radius:8px;background:rgba(127,147,174,.07);color:var(--text)}
.saveas-location span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--muted)}
.saveas-folders{min-height:120px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:6px;background:rgba(127,147,174,.03)}
.saveas-folder{width:100%;height:38px;border:0;border-radius:8px;background:transparent;color:var(--text);display:grid;grid-template-columns:28px minmax(0,1fr) 18px;align-items:center;text-align:left;gap:6px;padding:0 8px}
.saveas-folder:hover{background:rgba(127,147,174,.12)}
.saveas-folder strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.saveas-empty{padding:18px;color:var(--muted);font-size:12px;text-align:center}
.nx-properties-modal{width:min(650px,calc(100vw - 28px));height:min(620px,calc(100vh - 28px))}
.nx-properties-modal .nx-modal-content{padding:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
.nx-props-tabs{display:flex;flex-wrap:wrap;gap:0;padding:8px 10px 0;border-bottom:1px solid var(--line);background:rgba(127,147,174,.03)}
.nx-props-tabs button{height:31px;padding:0 14px;border:1px solid transparent;border-radius:8px 8px 0 0;background:transparent;color:var(--text);font-size:11px}
.nx-props-tabs button.active{background:var(--panel-solid);border-color:var(--line);border-bottom-color:var(--panel-solid);margin-bottom:-1px}
.nx-props-pane{padding:18px;overflow:auto}
.props-hero{display:grid;grid-template-columns:58px 1fr;align-items:center;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--line)}.props-hero .file-icon{width:52px;height:56px;font-size:12px}.props-hero input{width:100%}
.props-grid{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px 16px;padding:18px 4px;font-size:12px}.props-grid span{color:var(--muted)}.props-grid strong{font-weight:600;overflow-wrap:anywhere}
.props-section{display:flex;flex-direction:column;align-items:flex-start;gap:12px;font-size:12px}.props-section h3{margin:0;font-size:15px}.props-section p{margin:0;color:var(--muted);line-height:1.45}.props-section small{color:var(--muted);line-height:1.45}
.photo-props{width:100%}.photo-meta-grid{width:100%;padding:4px 0 8px}.photo-gps-empty{width:100%;box-sizing:border-box;padding:12px;border:1px solid var(--line);border-radius:9px;background:rgba(127,147,174,.06);color:var(--muted)}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;width:100%;align-items:stretch}.swisstopo-frame{width:100%;height:285px;border:1px solid var(--line);border-radius:10px;background:rgba(127,147,174,.05)}.swisstopo-open{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:rgba(127,147,174,.07);color:var(--text);text-decoration:none;text-align:center}.swisstopo-open:hover{border-color:var(--accent);color:var(--accent)}.map-link-row{display:flex;flex-direction:column;gap:8px;justify-content:flex-start}.swisstopo-open.map-default{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 28%,transparent)}.map-provider-card{cursor:default}.map-provider-card>span:last-child{display:flex;flex-direction:column;gap:6px;min-width:0}.map-provider-card select{height:32px;border:1px solid var(--line);border-radius:8px;background:var(--panel-solid);color:var(--text);padding:0 9px;max-width:220px}@media(max-width:760px){.map-layout{grid-template-columns:1fr}.map-link-row{flex-direction:row;flex-wrap:wrap}.swisstopo-open{flex:1 1 180px}}
.props-path{width:100%}.props-actions{display:flex;gap:8px;flex-wrap:wrap}.versions-empty{width:100%;min-height:210px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:rgba(127,147,174,.025)}
.security-list{width:100%;border:1px solid var(--line);border-radius:9px;overflow:hidden}.security-list>div{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line)}.security-list>div:last-child{border-bottom:0}.security-list span{color:var(--muted)}
.permission-box{display:grid;grid-template-columns:1fr 30px;width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 12px;gap:7px;font-size:12px}.permission-box b{text-align:center;color:var(--accent)}
.custom-icon-preview{padding:18px}.custom-icon-preview .file-icon{width:64px;height:68px;font-size:13px}.props-summary{display:flex;flex-direction:column;gap:12px;padding:30px 8px}.props-summary strong{font-size:18px}.props-summary span{color:var(--muted)}
.preview-selection-summary{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;text-align:center}.preview-selection-summary small{color:var(--muted);line-height:1.45}
.explorer-entry.cut-pending{opacity:.48}

/* Explorer indexed content search */
.explorer-search-content{height:30px;display:flex;align-items:center;gap:6px;padding:0 8px;border:1px solid var(--line);border-radius:7px;background:rgba(127,147,174,.035);color:var(--muted);font-size:10px;white-space:nowrap;cursor:pointer}
.explorer-search-content input{margin:0;accent-color:var(--accent)}
.explorer-search-content:has(input:checked){color:var(--text);border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 8%,transparent)}
.search-result-name .search-excerpt{font-size:8px;line-height:1.2;opacity:.9;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.explorer-items.details .explorer-entry:has(.search-excerpt){min-height:48px}
@media(max-width:1050px){.explorer-search-content span{display:none}.explorer-search-content{width:30px;justify-content:center;padding:0}}

/* External Windows/macOS file drop into current NX Explorer folder */
.explorer-items{position:relative}
.explorer-items.external-file-drop::after{
  content:"Hier ablegen zum Hochladen";
  position:absolute;
  inset:10px;
  z-index:20;
  display:grid;
  place-items:center;
  border:2px dashed color-mix(in srgb,var(--accent) 70%,var(--line));
  border-radius:14px;
  background:color-mix(in srgb,var(--accent) 10%,var(--panel-solid));
  color:var(--text);
  font-size:15px;
  font-weight:700;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 10%,transparent);
}

.tree-node.external-file-drop-target{
  background:color-mix(in srgb,var(--accent) 18%,transparent)!important;
  outline:1px dashed color-mix(in srgb,var(--accent) 72%,transparent);
  color:var(--text);
}
.tree-node.external-file-drop-target .tree-folder{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--accent) 60%,transparent))}

/* Resizable Explorer navigation tree */
.explorer-body{grid-template-columns:var(--tree-width,220px) 7px minmax(220px,1fr) auto auto}
.explorer-tree{border-right:0;min-width:0}
.explorer-tree-grip{width:7px;cursor:col-resize;position:relative;background:transparent;touch-action:none;border-left:1px solid transparent;border-right:1px solid transparent}
.explorer-tree-grip::after{content:"";position:absolute;top:0;bottom:0;left:2px;width:2px;background:color-mix(in srgb,var(--line) 75%,transparent);transition:background .12s,box-shadow .12s}
.explorer-tree-grip:hover::after,.resizing-tree .explorer-tree-grip::after{background:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent)}
.resizing-tree{cursor:col-resize!important;user-select:none}
.resizing-tree iframe{pointer-events:none}
@media(max-width:900px){.explorer-body{grid-template-columns:var(--tree-width,170px) 7px minmax(180px,1fr) auto auto}}

/* NX Office provider window */
.office-editor-window{min-width:760px;min-height:520px}
.office-editor-content{position:relative;height:100%;padding:0!important;overflow:hidden;background:#111}
.office-editor-content iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.office-loading{position:absolute;inset:0;display:grid;place-items:center;background:var(--panel-solid);color:var(--muted);font-size:13px;pointer-events:none}

/* NX file icon library */
.file-icon{position:relative;width:28px;height:31px;display:inline-grid;place-items:center;border-radius:4px;background:transparent;color:var(--text);box-shadow:none;overflow:visible;flex:0 0 auto}
.file-icon.nx-icon-document{width:25px;height:30px;border:1px solid color-mix(in srgb,var(--muted) 52%,transparent);border-radius:3px;background:color-mix(in srgb,var(--panel-solid) 86%,white);box-shadow:0 1px 2px rgba(0,0,0,.12)}
.nx-file-fold{position:absolute;right:-1px;top:-1px;width:9px;height:9px;background:linear-gradient(225deg,transparent 49%,color-mix(in srgb,var(--muted) 38%,transparent) 50%);border-top-right-radius:2px}
.nx-file-badge{position:absolute;left:-3px;bottom:3px;min-width:20px;height:16px;padding:0 3px;border-radius:3px;display:grid;place-items:center;font-size:9px;font-weight:900;line-height:1;color:white;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.nx-icon-word .nx-file-badge{background:#2f6fce}
.nx-icon-sheet .nx-file-badge{background:#238657}
.nx-icon-slides .nx-file-badge{background:#d5633e}
.nx-icon-pdf .nx-file-badge{background:#d94855;font-size:7px}
.nx-icon-text .nx-file-badge{background:#69788b;font-size:7px}
.nx-icon-drawio .nx-file-badge{background:#ef9428}
.nx-icon-mail .nx-file-badge{background:#397fc2}
.nx-icon-archive .nx-file-badge{background:#8656a6;font-size:7px}
.file-icon.nx-icon-folder{width:29px;height:23px;margin-top:4px;border-radius:3px 4px 4px 4px;background:#e8b840;box-shadow:inset 0 1px rgba(255,255,255,.3)}
.file-icon.nx-icon-folder::before{content:"";position:absolute;left:2px;top:-5px;width:13px;height:7px;border-radius:3px 3px 0 0;background:#efc75b}
.file-icon.nx-icon-image{width:27px;height:27px;border-radius:4px;background:linear-gradient(145deg,#6f9fca,#516f9d);overflow:hidden}
.file-icon.nx-icon-image::before{content:"";position:absolute;width:7px;height:7px;border-radius:50%;right:5px;top:5px;background:rgba(255,255,255,.85)}
.file-icon.nx-icon-image::after{content:"";position:absolute;left:3px;right:3px;bottom:3px;height:12px;background:linear-gradient(145deg,transparent 30%,rgba(255,255,255,.8) 31% 54%,transparent 55%),linear-gradient(35deg,transparent 30%,rgba(255,255,255,.55) 31% 60%,transparent 61%)}
.explorer-items.tiles .file-icon.nx-icon-document{width:42px;height:50px}.explorer-items.tiles .nx-file-badge{min-width:28px;height:21px;font-size:12px}
.preview-file .file-icon.nx-icon-document,.props-hero .file-icon.nx-icon-document,.custom-icon-preview .file-icon.nx-icon-document{width:58px;height:70px}
.preview-file .file-icon .nx-file-badge,.props-hero .file-icon .nx-file-badge,.custom-icon-preview .file-icon .nx-file-badge{min-width:36px;height:25px;font-size:14px}

/* Explorer sorting and resizable detail columns */
.explorer-sort-control{height:30px;display:flex;align-items:center;gap:5px;padding:0 6px;border:1px solid var(--line);border-radius:7px;background:rgba(127,147,174,.035);color:var(--muted);font-size:9px;white-space:nowrap}
.explorer-sort-control select{height:24px;max-width:105px;border:0;background:transparent;color:var(--text);font-size:10px;outline:none}
.explorer-sort-direction{width:30px;height:30px;border:1px solid var(--line);border-radius:7px;background:rgba(127,147,174,.035);color:var(--text);font-size:15px}
.explorer-sort-direction:hover{background:rgba(127,147,174,.12)}
.explorer-items.details .explorer-row,.explorer-items.details .explorer-entry{grid-template-columns:34px var(--col-name,360px) var(--col-modified,175px) var(--col-type,150px) var(--col-size,105px);width:max-content;min-width:100%;gap:0}
.explorer-head{position:sticky;top:0;z-index:6;background:var(--panel-solid);padding:0 5px}
.explorer-col-head{position:relative;height:32px;border:0;border-right:1px solid color-mix(in srgb,var(--line) 65%,transparent);background:transparent;color:var(--muted);text-align:left;padding:0 9px;font-size:10px;cursor:pointer}
.explorer-col-head:hover{background:rgba(127,147,174,.07);color:var(--text)}
.column-resizer{position:absolute;right:-4px;top:0;width:8px;height:100%;cursor:col-resize;z-index:4;touch-action:none}
.column-resizer::after{content:"";position:absolute;right:3px;top:5px;bottom:5px;width:1px;background:transparent}
.column-resizer:hover::after,.resizing-column .column-resizer::after{background:var(--accent)}
.resizing-column{cursor:col-resize!important;user-select:none}
.resizing-column iframe{pointer-events:none}
.explorer-items.details .explorer-entry>span:not(.file-icon){padding:0 9px;min-width:0}
@media(max-width:1100px){.explorer-sort-control>span{display:none}}

@media(max-width:900px){
  .explorer-sort-control,.explorer-sort-direction{display:none}
  .explorer-items.details .explorer-row,.explorer-items.details .explorer-entry{grid-template-columns:30px var(--col-name,280px) var(--col-modified,140px)}
  .explorer-items.details .explorer-entry>span:nth-child(4),.explorer-items.details .explorer-entry>span:nth-child(5),
  .explorer-head .explorer-col-head:nth-child(4),.explorer-head .explorer-col-head:nth-child(5){display:none}
}

/* Text/Markdown/config preview */
.text-preview{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr)}
.text-preview pre{margin:0;padding:14px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;tab-size:4;font:11px/1.55 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;color:var(--text);background:rgba(127,147,174,.025);border-top:1px solid var(--line)}
.text-preview-loading{display:grid;place-items:center;color:var(--muted);font-size:11px;padding:24px}

/* Collabora read-only preview */
.office-preview{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);position:relative}
.office-preview iframe{width:100%;height:100%;border:0;background:#fff}
.office-preview-loading{position:absolute;inset:38px 0 0 0;display:grid;place-items:center;background:var(--panel-solid);color:var(--muted);font-size:11px;z-index:2}

/* Persistent taskbar and file shortcuts */
.pinned-task-buttons{display:flex;gap:4px;padding-left:4px;border-left:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.running-task-buttons{display:flex;gap:4px;min-width:0;overflow:hidden}
.task-button.pinned-shortcut{display:flex;align-items:center;gap:6px;max-width:170px}.task-button.pinned-shortcut.running{background:rgba(127,147,174,.12)}.task-button.pinned-shortcut.active{background:rgba(127,147,174,.18);border-color:var(--line)}
.task-button.pinned-shortcut .file-icon{transform:scale(.72);transform-origin:center;flex:0 0 24px}
.task-button.pinned-shortcut>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pinned-glyph{width:22px;display:grid;place-items:center;font-weight:700}
.desktop-file-shortcut .file-icon{width:34px;height:40px}

.pinned-task-buttons{flex:0 0 auto;max-width:45%;overflow-x:auto}
.running-task-buttons{flex:1 1 auto}

/* NX Start menu — Windows XP mental model, Aurora visual language */
.start-menu.start-menu-xp{
  left:10px;
  bottom:62px;
  width:min(620px,calc(100vw - 20px));
  padding:0;
  border-radius:18px 18px 10px 10px;
  overflow:visible;
  background:var(--panel-solid);
  border:1px solid var(--line);
  box-shadow:0 26px 70px rgba(0,0,0,.38);
  backdrop-filter:blur(var(--blur));
}
.start-menu-xp .start-head{
  min-height:66px;
  padding:11px 14px;
  margin:0;
  gap:11px;
  border-bottom:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 18%,var(--panel-solid)),color-mix(in srgb,var(--accent) 7%,var(--panel-solid)));
  border-radius:17px 17px 0 0;
}
.start-user-avatar{
  width:44px;height:44px;border-radius:10px;display:grid;place-items:center;
  background-size:cover;background-position:center;
  border:1px solid color-mix(in srgb,var(--accent) 46%,var(--line));
  background-color:rgba(127,147,174,.12);
  font-size:18px;font-weight:800;color:var(--text);
  box-shadow:0 2px 8px rgba(0,0,0,.18);
}
.start-menu-xp .start-head strong{font-size:15px}
.start-menu-xp .start-head small{font-size:10px;margin-top:3px;color:var(--muted)}
.start-menu-body{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(230px,.95fr);min-height:390px}
.start-program-column{position:relative;display:flex;flex-direction:column;padding:10px 10px 52px;background:color-mix(in srgb,var(--panel-solid) 94%,white 6%);border-right:1px solid var(--line)}
.start-system-column{padding:10px;background:color-mix(in srgb,var(--accent) 7%,var(--panel-solid))}
.start-section-title{padding:2px 8px 8px;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}
.start-program-list,.all-programs-list{display:flex;flex-direction:column;gap:2px}
.start-program{
  width:100%;min-height:56px;border:0;border-radius:9px;background:transparent;color:var(--text);
  display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:9px;
  padding:6px 8px;text-align:left;
}
.start-program:hover{background:rgba(127,147,174,.12)}
.start-program.unavailable{opacity:.44}
.start-program.unavailable:hover{background:rgba(127,147,174,.05)}
.start-program-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.start-program-copy strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.start-program-copy small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.program-glyph{
  width:34px;height:34px;border-radius:8px;display:grid;place-items:center;
  color:white;font-size:14px;font-weight:900;box-shadow:0 2px 7px rgba(0,0,0,.18)
}
.program-generic{color:var(--accent);background:rgba(222,137,45,.12);box-shadow:none;border:1px solid rgba(222,137,45,.28)}
.program-word{background:#2f6fce}.program-sheet{background:#238657}.program-slides{background:#d5633e}
.program-text{background:#69788b;font-size:9px}.program-drawio{background:#ef9428}
.start-all-wrap{position:absolute;left:10px;right:10px;bottom:9px;border-top:1px solid var(--line);padding-top:7px}
.start-all-programs{
  width:100%;height:34px;border:0;border-radius:8px;background:transparent;color:var(--text);
  display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:0 10px;font-size:10px
}
.start-all-programs:hover{background:rgba(127,147,174,.12)}
.start-all-programs span{color:var(--accent);font-size:13px}
.all-programs-panel{
  position:absolute;
  left:calc(100% + 6px);
  right:auto;
  bottom:0;
  top:auto;
  width:260px;
  max-height:370px;
  overflow:visible;
  padding:8px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--panel-solid);
  box-shadow:0 20px 50px rgba(0,0,0,.34);
  z-index:10030
}
.all-programs-panel .start-program{min-height:48px}
.start-system-group{display:flex;flex-direction:column;gap:2px}
.start-system-group button{
  width:100%;min-height:38px;border:0;border-radius:8px;background:transparent;color:var(--text);
  display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:7px;padding:4px 7px;text-align:left
}
.start-system-group button:hover{background:rgba(127,147,174,.12)}
.start-system-group button>span{font-size:16px;text-align:center}
.start-system-group button strong{font-size:10px}
.start-system-group.secondary button strong{font-weight:500}
.start-system-group button.disabled{opacity:.36}
.start-control-wrap{position:relative;width:100%}
.start-control-button{grid-template-columns:28px minmax(0,1fr) 18px!important}
.start-control-arrow{color:var(--accent);font-size:16px!important;text-align:center}
.start-control-panel{position:absolute;left:calc(100% + 6px);right:auto;top:auto;bottom:0;width:260px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--panel-solid);box-shadow:0 20px 50px rgba(0,0,0,.34);z-index:10045}
.start-control-panel button{min-height:42px;grid-template-columns:28px minmax(0,1fr);border-radius:8px}
.start-control-panel button:hover{background:rgba(127,147,174,.12)}
@media(max-width:700px){.start-control-panel{left:calc(100% + 6px);right:auto;bottom:0;width:250px}}
.start-system-separator{height:1px;background:var(--line);margin:7px 5px}
.start-menu-xp .start-foot{
  min-height:48px;margin:0;padding:7px 10px;border-top:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 7%,var(--panel-solid)),color-mix(in srgb,var(--accent) 14%,var(--panel-solid)));
  border-radius:0 0 9px 9px
}
.start-menu-xp .start-foot>div{display:flex;gap:6px}
.start-menu-xp .start-foot button{
  min-height:30px;padding:0 10px;border:1px solid var(--line);border-radius:7px;
  background:rgba(127,147,174,.08);color:var(--text);font-size:10px
}
.start-menu-xp .start-foot button:hover{background:rgba(127,147,174,.15)}
.start-menu-xp .start-foot button.disabled{opacity:.36}
@media(max-width:700px){
  .start-menu.start-menu-xp{width:min(390px,calc(100vw - 20px))}
  .start-menu-body{grid-template-columns:1fr}
  .start-system-column{display:none}
  .all-programs-panel{
    left:calc(100% + 6px);
    right:auto;
    bottom:0;
    width:260px;
  }
  .start-program-flyout{
    left:calc(100% + 6px);
    right:auto;
    top:auto;
    bottom:0;
    width:250px;
  }
}

/* Program glyphs inside the taskbar are compact versions of Start-menu icons. */
.task-button .program-glyph{width:22px;height:22px;border-radius:6px;font-size:10px;flex:0 0 auto}
.task-button .program-text{font-size:6px}

/* NX lightweight text editor */
.text-editor-window{min-width:620px;min-height:420px}
.text-editor-content{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:0!important;background:var(--panel-solid)}
.text-editor-toolbar{height:38px;display:flex;align-items:center;gap:10px;padding:0 10px;border-bottom:1px solid var(--line);background:rgba(127,147,174,.035)}
.text-editor-toolbar button{height:28px;padding:0 11px;border:1px solid var(--line);border-radius:7px;background:rgba(127,147,174,.06);color:var(--text)}
.text-editor-toolbar button:hover:not(:disabled){background:rgba(127,147,174,.14)}
.text-editor-toolbar button:disabled{opacity:.45}
.text-editor-path{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}
.text-editor-state{margin-left:auto;font-size:10px;color:var(--muted)}
.text-editor-area{width:100%;height:100%;resize:none;border:0;outline:0;padding:15px 17px;background:transparent;color:var(--text);font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;tab-size:4}
.text-editor-status{height:28px;display:flex;align-items:center;gap:16px;padding:0 12px;border-top:1px solid var(--line);color:var(--muted);font-size:9px;background:rgba(127,147,174,.025)}
.text-editor-type{font-weight:700;color:var(--text)}

/* NX Markdown editor */
.markdown-editor-window{min-width:760px;min-height:500px}
.markdown-editor-content{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:0!important;background:var(--panel-solid)}
.markdown-toolbar{min-height:42px;display:flex;align-items:center;gap:6px;padding:5px 8px;border-bottom:1px solid var(--line);background:rgba(127,147,174,.035);flex-wrap:wrap}
.markdown-toolbar>button,.markdown-view-switch button{height:29px;min-width:30px;padding:0 9px;border:1px solid var(--line);border-radius:7px;background:rgba(127,147,174,.06);color:var(--text);font-size:10px}
.markdown-toolbar>button:hover:not(:disabled),.markdown-view-switch button:hover{background:rgba(127,147,174,.14)}
.markdown-toolbar>button:disabled{opacity:.45}
.toolbar-separator{width:1px;height:22px;background:var(--line);margin:0 2px}
.toolbar-spacer{flex:1}
.markdown-view-switch{display:flex;gap:4px}
.markdown-view-switch button.active{background:rgba(127,147,174,.18);border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}
.markdown-state{font-size:10px;color:var(--muted);min-width:58px;text-align:right}
.markdown-workspace{min-height:0;display:grid;background:var(--panel-solid)}
.markdown-workspace.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.markdown-workspace.edit{grid-template-columns:1fr}
.markdown-workspace.preview{grid-template-columns:1fr}
.markdown-workspace.edit .markdown-preview{display:none}
.markdown-workspace.preview .markdown-source{display:none}
.markdown-source{width:100%;height:100%;resize:none;border:0;outline:0;padding:16px 18px;background:transparent;color:var(--text);font:12px/1.58 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;tab-size:4}
.markdown-preview{min-width:0;overflow:auto;padding:18px 22px;border-left:1px solid var(--line);background:color-mix(in srgb,var(--panel-solid) 96%,white);color:var(--text);font-size:12px;line-height:1.62}
.markdown-workspace.preview .markdown-preview{border-left:0}
.markdown-preview h1,.markdown-preview h2,.markdown-preview h3,.markdown-preview h4,.markdown-preview h5,.markdown-preview h6{margin:1.1em 0 .5em;color:var(--text);line-height:1.25}
.markdown-preview h1{font-size:26px}.markdown-preview h2{font-size:21px}.markdown-preview h3{font-size:17px}
.markdown-preview p{margin:.55em 0}
.markdown-preview ul,.markdown-preview ol{padding-left:24px;margin:.55em 0}
.markdown-preview blockquote{margin:.75em 0;padding:6px 12px;border-left:3px solid var(--accent);background:rgba(127,147,174,.05);color:var(--muted)}
.markdown-preview code{padding:1px 4px;border-radius:4px;background:rgba(127,147,174,.11);font:11px ui-monospace,SFMono-Regular,Consolas,monospace}
.markdown-preview pre{padding:12px;border:1px solid var(--line);border-radius:8px;overflow:auto;background:rgba(127,147,174,.06)}
.markdown-preview pre code{padding:0;background:transparent}
.markdown-preview table{border-collapse:collapse;width:100%;margin:12px 0}
.markdown-preview th,.markdown-preview td{border:1px solid var(--line);padding:6px 8px;text-align:left}
.markdown-preview th{background:rgba(127,147,174,.07)}
.markdown-preview a{color:var(--accent)}
.markdown-preview hr{border:0;border-top:1px solid var(--line);margin:16px 0}
.md-spacer{height:7px}
@media(max-width:900px){.markdown-workspace.split{grid-template-columns:1fr}.markdown-workspace.split .markdown-preview{display:none}.markdown-toolbar{gap:4px}.markdown-toolbar>button{padding:0 7px}}

/* NX Draw.io provider editor */
.drawio-editor-window{min-width:760px;min-height:520px}
.drawio-editor-content{position:relative;height:100%;min-height:0;padding:0!important;background:#fff;overflow:hidden}
.drawio-editor-content iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.drawio-loading{position:absolute;inset:0;display:grid;place-items:center;background:var(--panel-solid);color:var(--muted);font-size:11px;z-index:2}
.drawio-save-state{margin-left:9px;color:var(--muted);font-size:9px;font-weight:500}

/* Window chrome must always remain reachable */
.window-titlebar{position:relative;z-index:5;flex:0 0 45px}
.window-title{min-width:0;overflow:hidden}
.window-title>span:not(.window-app-icon){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.window-controls{flex:0 0 auto;position:relative;z-index:6}
.window-controls button{flex:0 0 44px}

/* Hard separation of NX window chrome from embedded Draw.io iframe */
.drawio-editor-window{position:absolute;overflow:hidden}
.drawio-editor-window>.window-titlebar{
  position:absolute!important;
  top:0;left:0;right:0;
  height:45px!important;
  z-index:10000!important;
  display:flex!important;
  background:var(--panel-solid)!important;
  border-bottom:1px solid var(--line)!important;
  backdrop-filter:blur(var(--blur));
}
.drawio-editor-window>.drawio-editor-content{
  position:absolute!important;
  top:45px!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  width:auto!important;
  height:auto!important;
  min-height:0!important;
  z-index:1!important;
}
.drawio-editor-window>.drawio-editor-content iframe{
  position:absolute;
  inset:0;
  width:100%!important;
  height:100%!important;
  z-index:1;
}
.drawio-editor-window>.window-titlebar .window-controls{
  display:flex!important;
  margin-left:auto;
  height:45px!important;
  z-index:10001!important;
}
.drawio-editor-window>.window-titlebar .window-controls button{
  display:block!important;
  width:44px!important;
  height:45px!important;
  font-size:16px;
}

/* Draw.io Explorer preview */
.drawio-preview{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr)}
.drawio-preview-stage{position:relative;min-height:0;display:grid;place-items:center;overflow:auto;padding:12px;background:color-mix(in srgb,var(--panel-solid) 97%,white)}
.drawio-preview-stage>img{display:block;max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 1px 5px rgba(0,0,0,.12);background:#fff}
.drawio-preview-loading{display:grid;place-items:center;color:var(--muted);font-size:11px}
.drawio-preview-worker{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;left:-10000px!important;top:-10000px!important;border:0!important}

/* Windows-like resize frame for NX desktop windows */
.app-window{resize:none!important}
.nx-resize-handle{position:absolute;z-index:20000;touch-action:none;user-select:none}
.nx-resize-n,.nx-resize-s{left:10px;right:10px;height:7px}
.nx-resize-n{top:0;cursor:ns-resize}
.nx-resize-s{bottom:0;cursor:ns-resize}
.nx-resize-e,.nx-resize-w{top:10px;bottom:10px;width:7px}
.nx-resize-e{right:0;cursor:ew-resize}
.nx-resize-w{left:0;cursor:ew-resize}
.nx-resize-ne,.nx-resize-nw,.nx-resize-se,.nx-resize-sw{width:14px;height:14px;z-index:20001}
.nx-resize-ne{top:0;right:0;cursor:nesw-resize}
.nx-resize-nw{top:0;left:0;cursor:nwse-resize}
.nx-resize-se{right:0;bottom:0;cursor:nwse-resize}
.nx-resize-sw{left:0;bottom:0;cursor:nesw-resize}
.app-window.maximized .nx-resize-handle{display:none}
.window-resizing,.window-resizing *{user-select:none!important}
.window-resizing iframe{pointer-events:none!important}

/* Explorer tree caret is an explicit expand/collapse target */
.tree-caret{display:inline-grid;place-items:center;width:18px;height:24px;margin-right:2px;border-radius:4px;cursor:pointer;flex:0 0 18px}
.tree-caret:hover{background:rgba(127,147,174,.14)}
.tree-node{display:flex;align-items:center;gap:2px}
.tree-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Keep outer resize hit zones strictly on the frame */
.nx-resize-e,.nx-resize-w{width:5px}
.nx-resize-n,.nx-resize-s{height:5px}

/* Explorer tree disclosure controls must win over window-edge interactions */
.tree-node{position:relative}
.tree-caret{
  display:inline-grid;
  place-items:center;
  width:20px;
  height:24px;
  margin-left:-4px;
  margin-right:2px;
  position:relative;
  z-index:3;
  cursor:pointer;
  border-radius:4px;
  pointer-events:auto;
}
.tree-caret:hover{background:rgba(127,147,174,.12)}
.nx-resize-w,.nx-resize-e{width:4px}

.tree-caret-empty{
  cursor:default;
  pointer-events:none;
  background:transparent!important;
}

/* BORGHESI DATALINK topbar branding */
.bdl-brand{
  min-width:180px;
  gap:7px;
  justify-content:flex-start;
  font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  letter-spacing:.02em;
}
.bdl-brand-main{font-size:18px;line-height:1;color:var(--text)}
.bdl-brand-sub{font-size:13px;line-height:1;color:var(--accent);letter-spacing:.08em}

/* Global NX search */
.global-search{position:relative;width:min(460px,38vw)}
.global-search .search-pill{
  width:100%;
  padding-left:36px;
  outline:none;
  font:inherit;
}
.global-search .search-pill:focus{
  border-color:color-mix(in srgb,var(--accent) 60%,var(--line));
  box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent);
}
.global-search-icon{
  position:absolute;
  z-index:2;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  color:var(--muted);
  pointer-events:none;
}
.global-search-results{
  position:absolute;
  z-index:2200;
  top:40px;
  left:0;
  right:0;
  max-height:min(520px,70vh);
  overflow:auto;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--panel-solid);
  box-shadow:var(--shadow);
  padding:7px;
}
.global-search-results.hidden{display:none}
.global-search-section+.global-search-section{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}
.global-search-heading{
  padding:5px 8px 7px;
  color:var(--muted);
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.global-search-result{
  width:100%;
  min-height:42px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--text);
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  align-items:center;
  gap:8px;
  padding:5px 8px;
  text-align:left;
}
.global-search-result:hover,.global-search-result:focus{background:rgba(127,147,174,.12);outline:none}
.global-search-result>span:last-child{min-width:0}
.global-search-result strong,.global-search-result small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-search-result strong{font-size:11px}
.global-search-result small{font-size:9px;color:var(--muted);margin-top:2px}
.global-search-glyph{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:rgba(127,147,174,.09);font-weight:800;color:var(--accent)}
.global-search-result .file-icon{transform:scale(.72);transform-origin:center}
.global-search-empty{padding:16px 12px;color:var(--muted);font-size:11px;text-align:center}

/* BORGHESI–DATALINK unified wordmark */
.bdl-brand{
  min-width:auto;
  gap:4px;
  font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  font-size:18px;
  line-height:1;
  letter-spacing:.03em;
  color:var(--accent);
}
.bdl-brand>span{font:inherit;color:var(--accent)}
.bdl-brand-sep{padding:0 1px}

/* Tablet-safe PDF viewer: keep NX chrome visible and render scrollable pages */
.pdf-tablet-window{overflow:hidden}
.pdf-tablet-window>.window-titlebar{
  position:relative;
  z-index:50;
  flex:0 0 45px;
}
.pdf-tablet-window>.window-titlebar .window-controls{
  display:flex!important;
  flex:0 0 auto;
  z-index:51;
}
.pdf-tablet-window>.window-titlebar .window-controls button{
  width:48px;
  min-width:48px;
  height:45px;
  touch-action:manipulation;
}
.pdf-tablet-window>.pdf-viewer-content{
  padding:0!important;
  overflow:hidden!important;
  height:calc(100% - 45px)!important;
}
.pdf-tablet-shell{
  height:100%;
  min-height:0;
  display:grid;
  grid-template-rows:46px minmax(0,1fr);
  background:#20242a;
}
.pdf-tablet-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:0 10px;
  border-bottom:1px solid rgba(255,255,255,.12);
  background:#2a3038;
  color:#eef3f8;
  font-size:11px;
  position:relative;
  z-index:2;
}
.pdf-zoom-controls{display:flex;align-items:center;gap:5px}
.pdf-zoom-controls button{
  min-width:42px;
  height:34px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:8px;
  background:rgba(255,255,255,.07);
  color:#fff;
  font-size:14px;
  touch-action:manipulation;
}
.pdf-zoom-controls button[data-pdf-zoom="reset"]{min-width:56px;font-size:11px}
.pdf-page-stack{
  min-height:0;
  overflow-y:auto;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  touch-action:pan-y pinch-zoom;
  padding:14px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
}
.pdf-page-card{
  margin:0;
  width:calc(100% * var(--pdf-scale,1));
  max-width:none;
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
}
.pdf-page-card img{
  display:block;
  width:100%;
  height:auto;
  background:#fff;
  box-shadow:0 4px 18px rgba(0,0,0,.35);
}
.pdf-page-card figcaption{
  color:#c4ccd5;
  font-size:10px;
}
.pdf-tablet-loading,.pdf-tablet-error{
  color:#d8dee6;
  padding:24px;
  text-align:center;
  font-size:12px;
}

/* Slightly slimmer BORGHESI-DATALINK wordmark while keeping Impact character */
.bdl-brand{
  font-weight:400;
  letter-spacing:.045em;
  transform:scaleX(.92);
  transform-origin:left center;
}

/* Search inside tablet PDF viewer */
.pdf-search-box{
  min-width:0;
  display:flex;
  align-items:center;
  gap:5px;
  flex:1 1 360px;
}
.pdf-search-input{
  min-width:100px;
  width:min(260px,32vw);
  height:34px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:8px;
  background:rgba(255,255,255,.07);
  color:#fff;
  padding:0 10px;
  outline:none;
  font-size:11px;
}
.pdf-search-input::placeholder{color:#aeb7c1}
.pdf-search-input:focus{
  border-color:color-mix(in srgb,var(--accent) 70%,white);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent);
}
.pdf-search-box button{
  min-width:36px;
  height:34px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:8px;
  background:rgba(255,255,255,.07);
  color:#fff;
  font-size:14px;
  touch-action:manipulation;
}
.pdf-search-status{
  min-width:38px;
  color:#d9e0e7;
  font-size:10px;
  text-align:center;
}
.pdf-page-card{
  transition:box-shadow .18s,transform .18s;
  scroll-margin-top:14px;
}
.pdf-page-card.search-hit{
  box-shadow:0 0 0 3px var(--accent),0 0 22px color-mix(in srgb,var(--accent) 45%,transparent);
  transform:translateY(-1px);
}
@media(max-width:900px){
  .pdf-tablet-toolbar{
    flex-wrap:wrap;
    height:auto;
    min-height:46px;
    padding:6px 8px;
  }
  .pdf-tablet-shell{grid-template-rows:auto minmax(0,1fr)}
  .pdf-search-box{order:1;flex-basis:100%}
  .pdf-search-input{width:min(100%,300px);flex:1}
  .pdf-page-status{order:2}
  .pdf-zoom-controls{order:3}
}

.pdf-print-button{
  min-width:68px!important;
  padding:0 10px;
  font-size:11px!important;
  font-weight:700;
  color:#fff;
}

/* Touch window movement + bottom-right clock/kiosk */
.window-titlebar{touch-action:none}
.window-controls button{touch-action:manipulation}
.taskbar-right{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:6px;
  flex:0 0 auto;
}
.taskbar-clock{
  min-width:78px;
  height:42px;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:center;
  padding:0 5px;
  line-height:1.05;
  color:var(--text);
  white-space:nowrap;
}
.taskbar-clock strong{font-size:12px;font-weight:700}
.taskbar-clock small{font-size:9px;color:var(--muted);margin-top:3px}
.kiosk-button{
  width:42px;
  height:38px;
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(127,147,174,.08);
  color:var(--text);
  font-size:18px;
  display:grid;
  place-items:center;
  touch-action:manipulation;
}
.kiosk-button:hover,.kiosk-button.active{
  background:rgba(127,147,174,.16);
  border-color:color-mix(in srgb,var(--accent) 55%,var(--line));
}
.nx-kiosk-active .kiosk-button{color:var(--accent)}
@media(pointer:coarse){
  .window-titlebar{min-height:48px;cursor:grab}
  .window-controls button{width:50px;min-width:50px}
  .taskbar{gap:5px}
  .taskbar-status{padding:0 5px}
  .taskbar-clock{min-width:74px}
  .kiosk-button{width:46px;height:42px}
}
@media(max-width:720px){
  .taskbar-status>span:last-child{display:none}
  .taskbar-clock{min-width:68px}
}

/* NX soft kiosk for iPad/tablet: no browser Fullscreen API, therefore no iPad swipe-to-exit gesture */
body.nx-soft-kiosk,
body.nx-soft-kiosk #app,
body.nx-soft-kiosk .desktop-view{
  width:100vw;
  height:100dvh;
  min-height:100dvh;
  overflow:hidden;
}
body.nx-soft-kiosk .desktop-view{
  position:fixed;
  inset:0;
}
body.nx-soft-kiosk .topbar{
  top:0;
}
body.nx-soft-kiosk .taskbar{
  bottom:0;
}

/* iPad/Home-Screen kiosk: hide only NX topbar, keep taskbar */
body.nx-soft-kiosk .topbar{
  transform:translateY(-100%);
  opacity:0;
  pointer-events:none;
  transition:transform .18s ease,opacity .18s ease;
}
body.nx-soft-kiosk .window-layer{
  top:0;
}
body.nx-soft-kiosk .desktop-icons{
  top:18px;
}

/* Tablet maximized window uses the topbar space, taskbar stays visible */
body.nx-tablet-maximized .topbar{
  transform:translateY(-100%);
  opacity:0;
  pointer-events:none;
  transition:transform .18s ease,opacity .18s ease;
}
body.nx-tablet-maximized .window-layer{
  top:0;
}
body.nx-tablet-maximized .desktop-icons{
  top:18px;
}

.office-save-state{
  margin-left:8px;
  padding:2px 7px;
  border-radius:999px;
  background:rgba(127,147,174,.10);
  color:var(--muted);
  font-size:9px;
  font-weight:700;
  white-space:nowrap;
}

/* Start menu favorites and grouped program folders */
.start-favorites-empty{
  padding:18px 10px;
  color:var(--muted);
  font-size:10px;
  text-align:center;
}
.start-program-folder{
  position:relative;
  display:block;
  width:100%;
  border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);
}
.start-program-folder-toggle{
  width:100%;
  min-height:42px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--text);
  display:grid;
  grid-template-columns:26px minmax(0,1fr) 18px;
  align-items:center;
  gap:6px;
  padding:5px 7px;
  text-align:left;
}
.start-program-folder-toggle:hover,.start-program-folder-toggle.open{background:rgba(127,147,174,.12)}.start-program-folder-toggle{cursor:default;visibility:visible;opacity:1}.all-programs-list{display:flex;flex-direction:column;gap:2px;min-height:84px}.all-programs-list>.start-program-folder{flex:0 0 auto}
.start-program-folder-toggle strong{font-size:11px}
.start-program-folder-toggle .folder-arrow{color:var(--accent);text-align:center}
.start-program-folder-items{padding:2px 0 5px 18px}
.start-program-folder-items.hidden{display:none}
.program-markdown{background:#58677a;font-size:9px}

/* Start menu Help / Search dialogs */
.start-support-modal{width:min(430px,calc(100vw - 28px))}
.start-support-content{display:grid;gap:16px;line-height:1.55;font-size:12px}
.start-support-content .support-brand{
  font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  font-size:20px;
  letter-spacing:.035em;
  color:var(--accent);
}
.start-support-content a{color:var(--accent);text-decoration:none}
.start-support-content a:hover{text-decoration:underline}
.start-search-modal{width:min(620px,calc(100vw - 28px))}
.start-search-modal .nx-modal-content{padding:14px}
.start-search-input{
  width:100%;
  height:42px;
  border:1px solid var(--line);
  border-radius:11px;
  background:rgba(127,147,174,.08);
  color:var(--text);
  padding:0 12px;
  outline:none;
  font:inherit;
}
.start-search-input:focus{
  border-color:color-mix(in srgb,var(--accent) 60%,var(--line));
  box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent);
}
.start-search-results{
  max-height:min(470px,58vh);
  overflow:auto;
  margin-top:9px;
}

/* All Programs flyout submenus */
.start-program-folder-flyout{position:relative}
.start-program-flyout{
  position:absolute;
  left:calc(100% + 6px);
  right:auto;
  top:auto;
  bottom:0;
  display:flex;
  flex-direction:column;
  gap:2px;
  width:250px;
  max-height:min(380px,70vh);
  overflow:auto;
  padding:8px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--panel-solid);
  box-shadow:0 20px 50px rgba(0,0,0,.34);
  z-index:10040;
}
.start-program-flyout.hidden{display:none}
.start-program-flyout .start-program{min-height:48px}

/* Tablet-friendly Start program context menus and flyouts */
.start-program,
.start-program-folder-toggle{
  -webkit-touch-callout:none;
  user-select:none;
  touch-action:manipulation;
}
.all-programs-panel{
  overflow:visible;
}

/* Workflow NX module catalog */
.modules-page{padding:20px;overflow:auto;height:100%;box-sizing:border-box}
.module-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 18px}
.module-summary>div,.module-card{border:1px solid var(--border-color,rgba(128,128,128,.28));background:var(--panel-bg,rgba(255,255,255,.04));border-radius:12px}
.module-summary>div{padding:14px;display:flex;flex-direction:column;gap:4px}
.module-summary strong{font-size:24px}.module-summary span{opacity:.72;font-size:12px}
.module-catalog-host{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.module-card{padding:16px;position:relative}
.module-card.is-mandatory{border-left:4px solid #d9892b}
.module-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.module-card-head h3{margin:4px 0 2px}.module-card-head small{opacity:.62}
.module-kind{font-size:10px;letter-spacing:.09em;font-weight:700;opacity:.68}
.module-status{font-size:11px;padding:4px 8px;border-radius:999px;background:rgba(128,128,128,.16);text-transform:uppercase}
.module-status.status-active{background:rgba(38,155,95,.16);color:#55c884}
.module-card>p{margin:12px 0;line-height:1.45;opacity:.84}
.module-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;margin-bottom:12px}
.module-section{margin-top:10px;font-size:12px}.module-section>b{display:block;margin-bottom:7px}
.module-chip-row,.module-components{display:flex;flex-wrap:wrap;gap:6px}
.module-chip,.module-component{padding:4px 7px;border-radius:7px;background:rgba(128,128,128,.12);font-size:11px}
.module-chip.muted{opacity:.55}
@media(max-width:700px){.module-summary{grid-template-columns:1fr}.module-catalog-host{grid-template-columns:1fr}}

/* Module help system */
.window-help-button,.taskbar-help-button{font-weight:800;font-size:15px}
.window-help-button{border-radius:50%;display:grid;place-items:center}
.taskbar-help-button{width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:rgba(127,147,174,.1);color:var(--text);cursor:pointer}
.taskbar-help-button:hover,.window-help-button:hover{background:color-mix(in srgb,var(--accent) 18%,transparent)}
.help-window-content{display:grid;grid-template-columns:240px minmax(0,1fr);height:100%;min-height:0;padding:0!important}
.help-nav{border-right:1px solid var(--line);padding:12px;overflow:auto;background:rgba(127,147,174,.045)}
.help-nav button{display:block;width:100%;text-align:left;border:0;border-radius:8px;background:transparent;color:var(--text);padding:9px 10px;margin:2px 0;cursor:pointer}
.help-nav button:hover,.help-nav button.active{background:rgba(127,147,174,.13)}
.help-nav button.active{font-weight:700;box-shadow:inset 3px 0 0 var(--accent)}
.help-article{padding:26px 30px;overflow:auto;line-height:1.58}
.help-article h2{margin:12px 0 18px;font-size:25px}
.help-article p{max-width:760px;margin:0 0 15px}
.help-article-head{display:flex;gap:10px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:10px}
.help-article-head span{font-weight:700}.help-article-head small,.help-version{opacity:.62}
@media(max-width:720px){.help-window-content{grid-template-columns:1fr}.help-nav{border-right:0;border-bottom:1px solid var(--line);display:flex;overflow:auto;padding:8px}.help-nav button{width:auto;white-space:nowrap}.help-article{padding:18px}}

.module-status.status-development{background:rgba(210,137,43,.18);color:#e3a54f}
.module-card.has-error{border-color:rgba(210,65,65,.55)}
.capability-provided{border:1px solid rgba(38,155,95,.28)}
.capability-required{border:1px solid rgba(217,137,43,.32)}
.module-error{margin-top:12px;padding:9px 10px;border-radius:8px;background:rgba(210,65,65,.12);font-size:12px}

.vm-firewall-status{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:8px;margin:0 0 10px;padding:8px 9px;border:1px solid var(--line);border-radius:9px;font-size:9px}
.vm-firewall-status span{font-weight:700}
.vm-firewall-status code{font-size:8px;color:var(--muted)}
.vm-firewall-status.active{border-color:rgba(64,180,120,.42)}
.vm-firewall-status.active span{color:#47b97d}
.vm-firewall-status.inactive span{color:var(--muted)}

/* NX customer window trim */
.app-window[data-app="explorer"]>.window-content{padding:0}
.app-window{border-width:1px;box-shadow:0 10px 24px rgba(0,0,0,.16)}
.app-window.window-focused{box-shadow:0 14px 32px rgba(0,0,0,.22)}

/* NX customer window trim v2 */
body.shell-desktop .app-window{border-radius:11px}
.app-window{border-width:1px;box-shadow:0 5px 14px rgba(0,0,0,.11)}
.app-window.window-focused{box-shadow:0 8px 18px rgba(0,0,0,.16)}
.nx-resize-e,.nx-resize-w{width:3px}
.nx-resize-n,.nx-resize-s{height:3px}
.nx-resize-ne,.nx-resize-nw,.nx-resize-se,.nx-resize-sw{width:9px;height:9px}

/* NX module promotion */
.module-promotion-host{margin:12px 0 16px}
.module-promotion-panel{border:1px solid var(--line);border-radius:12px;padding:12px;background:rgba(255,255,255,.025)}
.module-promotion-panel.development{border-color:rgba(255,139,31,.38)}
.module-promotion-panel.control{border-color:rgba(82,150,255,.34)}
.module-promotion-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
.module-promotion-head h3{margin:2px 0 3px;font-size:14px}
.module-promotion-head p{margin:0;color:var(--muted);font-size:11px;max-width:760px}
.promotion-list{display:grid;gap:9px}
.promotion-row,.promotion-card{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface-2,rgba(255,255,255,.025))}
.promotion-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.promotion-row strong,.promotion-row small{display:block}
.promotion-row small{margin-top:3px;color:var(--muted);font-size:9px;overflow-wrap:anywhere}
.promotion-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.promotion-card-head h4{margin:3px 0;font-size:13px}
.promotion-card-head small{color:var(--muted);font-size:9px}
.promotion-card code{display:block;margin:8px 0;font-size:8px;color:var(--muted);overflow-wrap:anywhere}
.promotion-status{font-size:9px;font-weight:800;white-space:nowrap}
.promotion-status.valid{color:#47b97d}
.promotion-status.invalid{color:#d65b63}
.promotion-card.is-valid{border-color:rgba(71,185,125,.34)}
.promotion-card.is-invalid{border-color:rgba(214,91,99,.38)}
.promotion-warning{margin-top:8px;padding:7px;border-radius:8px;background:rgba(255,173,51,.08);font-size:9px}
.promotion-actions,.module-promotion-actions{display:flex;justify-content:flex-end;margin-top:10px}
.promotion-empty{padding:12px;color:var(--muted);font-size:10px;text-align:center}
@media (max-width:720px){.promotion-row,.promotion-card-head{align-items:stretch;flex-direction:column}.promotion-actions,.module-promotion-actions{justify-content:stretch}.promotion-actions button,.module-promotion-actions button{width:100%}}

.primary-button.promotion-done:disabled{opacity:1;background:rgba(71,185,125,.15);border-color:rgba(71,185,125,.42);color:#7fd6a7;box-shadow:none;cursor:default}
.users-admin-permissions{border:1px solid var(--line);border-radius:10px;padding:12px;margin:4px 0 10px;background:rgba(255,255,255,.02);display:grid;gap:8px}.users-admin-permissions legend{padding:0 7px;font-weight:700}.users-admin-permissions label{display:flex;align-items:center;gap:8px}.users-admin-permissions label input{width:auto}.users-admin-permissions small{opacity:.68;line-height:1.35}

/* NX Identity Explorer */
.identity-admin{height:100%;display:flex;flex-direction:column;min-height:0}
.identity-head{padding-bottom:10px}
.identity-head-actions{display:flex;gap:8px}
.identity-toolbar{display:grid;grid-template-columns:36px minmax(220px,1fr) minmax(240px,360px);gap:8px;align-items:center;padding:0 0 10px}
.identity-toolbar>button,.identity-toolbar input{height:34px}
.identity-path{height:34px;display:flex;align-items:center;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.02);font-size:12px}
.identity-layout{display:grid;grid-template-columns:230px minmax(360px,1fr) minmax(340px,430px);gap:0;min-height:0;flex:1;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:rgba(255,255,255,.015)}
.identity-tree,.identity-inspector{min-height:0;overflow:auto;background:rgba(0,0,0,.10)}
.identity-tree{padding:9px;border-right:1px solid var(--line)}
.identity-inspector{padding:14px;border-left:1px solid var(--line)}
.identity-tree-root,.identity-tree-group{width:100%;display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:6px;padding:8px;border:0;border-radius:7px;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.identity-tree-root:hover,.identity-tree-group:hover,.identity-tree-root.active,.identity-tree-group.active{background:rgba(255,255,255,.07)}
.identity-tree-group{padding-left:24px}
.identity-tree-group small{opacity:.6}
.identity-tree-group.drop-target,.identity-row.drop-target{outline:2px solid var(--accent);background:rgba(255,255,255,.08)}
.identity-content{min-width:0;min-height:0;display:flex;flex-direction:column}
.identity-columns{display:grid;grid-template-columns:minmax(220px,1fr) 140px 150px;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line);font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.65}
.identity-items{min-height:0;overflow:auto;flex:1}
.identity-row{width:100%;display:grid;grid-template-columns:minmax(220px,1fr) 140px 150px;gap:12px;align-items:center;padding:8px 12px;border:0;border-bottom:1px solid rgba(255,255,255,.05);background:transparent;color:var(--text);text-align:left;cursor:default}
.identity-row:hover{background:rgba(255,255,255,.045)}
.identity-row.dragging{opacity:.55}
.identity-name{display:flex;align-items:center;gap:9px;min-width:0}
.identity-name>span{min-width:0;display:flex;flex-direction:column}
.identity-name strong,.identity-name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.identity-avatar,.identity-group-icon{width:31px;height:31px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);font-style:normal;overflow:hidden;flex:0 0 auto}
.identity-avatar img{width:100%;height:100%;object-fit:cover}
.identity-row i.active{color:#78d49e;font-style:normal}.identity-row i.inactive{color:#d18a8a;font-style:normal}
.identity-status{border-top:1px solid var(--line);padding:6px 10px;font-size:10px;opacity:.65}
.identity-empty,.identity-empty-list{padding:18px;opacity:.62}
.identity-inspector-form{display:flex;flex-direction:column;gap:10px}
.identity-inspector-form>label{display:flex;flex-direction:column;gap:5px;font-size:11px}
.identity-inspector-form input,.identity-inspector-form select,.identity-inspector-form textarea{width:100%;box-sizing:border-box}
.identity-inspector-head{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:4px}
.identity-inspector-head h3{margin:3px 0 0;font-size:18px}
.identity-form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.identity-check{flex-direction:row!important;align-items:center!important}.identity-check input{width:auto}
.identity-membership-editor,.identity-rights-editor,.identity-group-members{border-top:1px solid var(--line);padding-top:10px}
.identity-membership-editor h4,.identity-rights-editor h4,.identity-group-members h4{margin:0 0 8px}
.identity-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 8px}
.identity-check-grid label{display:flex;align-items:center;gap:6px;font-size:11px}.identity-check-grid input{width:auto}
.identity-section-head{display:flex;justify-content:space-between;align-items:end;gap:8px}.identity-section-head small{opacity:.6}
.identity-permission-list{display:grid;gap:8px;margin-top:8px}
.identity-permission-module{border:1px solid var(--line);border-radius:8px;padding:8px}
.identity-permission-module legend{padding:0 4px;display:flex;gap:7px;align-items:baseline}.identity-permission-module legend small{opacity:.55}
.identity-permission-module label{display:flex;align-items:flex-start;gap:7px;padding:5px 2px}.identity-permission-module label input{width:auto;margin-top:2px}.identity-permission-module label span{display:flex;flex-direction:column}.identity-permission-module label small{opacity:.55}
.identity-inherited{margin-top:9px}.identity-inherited>div{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.identity-inherited span{padding:3px 6px;border-radius:999px;border:1px solid var(--line);font-size:9px}
.identity-admin-rights{margin-top:8px;padding:8px;border:1px solid var(--line);border-radius:8px;font-size:10px;opacity:.78}
.identity-member-chip{display:inline-flex;align-items:center;gap:5px;margin:3px;padding:4px 7px;border:1px solid var(--line);border-radius:999px;font-size:10px}.identity-member-chip button{border:0;background:transparent;color:inherit;cursor:pointer}
.identity-form-actions{display:flex;gap:7px;justify-content:flex-end;padding-top:4px}.identity-form-actions .danger{margin-right:auto}
@media(max-width:1000px){.identity-layout{grid-template-columns:180px 1fr}.identity-inspector{position:absolute;right:14px;top:90px;bottom:14px;width:min(420px,80vw);z-index:3;box-shadow:0 12px 36px rgba(0,0,0,.35)}}

.identity-permission-module{border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.018);overflow:hidden}
.identity-permission-module>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;cursor:pointer;list-style:none;user-select:none}
.identity-permission-module>summary::-webkit-details-marker{display:none}
.identity-permission-module>summary:before{content:"›";font-size:16px;opacity:.7;transition:transform .15s ease}
.identity-permission-module[open]>summary:before{transform:rotate(90deg)}
.identity-permission-module>summary>span{display:flex;flex-direction:column;min-width:0;margin-right:auto}
.identity-permission-module>summary small{opacity:.5;font-size:9px}
.identity-permission-module>summary i{font-style:normal;font-size:9px;padding:3px 6px;border:1px solid var(--line);border-radius:999px;opacity:.7}
.identity-permission-body{border-top:1px solid var(--line);padding:5px 8px 8px}
.identity-permission-body label{display:flex;align-items:flex-start;gap:7px;padding:6px 2px}
.identity-permission-body label input{width:auto;margin-top:2px}
.identity-permission-body label span{display:flex;flex-direction:column}
.identity-permission-body label small{opacity:.55}
.identity-save-toast{position:fixed;right:24px;bottom:58px;z-index:9999;display:flex;flex-direction:column;gap:2px;min-width:250px;max-width:390px;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 14px 40px rgba(0,0,0,.28);opacity:0;transform:translateY(12px);transition:opacity .18s ease,transform .18s ease;pointer-events:none}
.identity-save-toast.show{opacity:1;transform:translateY(0)}
.identity-save-toast strong{font-size:12px}.identity-save-toast span{font-size:10px;opacity:.7}
