/* Shell geometry shared with the application document, based on atlas 001-127. */
.desktop-header{position:relative}
#desktop-input-controls{display:flex;align-items:center;gap:4px;flex:none}
#plush-voice[hidden],#dni-interaction[hidden]{display:none}
#plush-voice #plush-voice-toggle,#dni-interaction #dni-toggle{display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:10px;color:var(--dni-muted);background:transparent;border:1px solid transparent;border-radius:8px;box-shadow:none}
#plush-voice #plush-voice-toggle:hover,#dni-interaction #dni-toggle:hover,#plush-voice #plush-voice-toggle[aria-expanded=true],#dni-interaction #dni-toggle[aria-expanded=true]{background:var(--dni-surface-raised);border-color:var(--dni-border);color:var(--dni-text)}
#plush-voice #plush-voice-toggle[data-active=true],#dni-interaction #dni-toggle[data-active=true]{color:var(--dni-text);border-color:var(--dni-border-active);background:var(--dni-surface-raised)}
@media(max-width:800px){.desktop-header{flex-wrap:wrap}.desktop-header .system-actions{margin-left:auto}.desktop-header .title-group{min-width:0;max-width:100%}}
body{--panel:var(--dni-surface);--panel-solid:var(--dni-surface-raised);--border:var(--dni-border);--muted:var(--dni-muted);--text:var(--dni-text)}
.desktop-header h1{font-size:34px}.desktop-header{min-height:112px;padding:28px 24px 20px 34px;gap:16px}
.system-actions{display:flex;align-items:center;gap:12px}.system-actions>button{color:#bbc4d2;padding:5px;border-radius:6px}.system-actions>button .icon{width:18px;height:18px}.system-actions .status{gap:16px}
.desktop-header .status .bluetooth,.desktop-header .status .battery{display:none}
.app-window{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;inset:0 24px 66px 34px!important;overflow:hidden}
.app-window iframe{background:transparent!important;border:0!important;min-width:0}
.window-titlebar{background:#101722aa!important;border:1px solid var(--dni-border);border-radius:9px;margin-bottom:16px;min-height:38px;flex-shrink:0}
.window-titlebar>span{font-size:13px;color:var(--dni-muted)}.window-titlebar>button{min-width:36px;min-height:36px}.window-titlebar>button .icon{width:16px;height:16px}
.app-window.maximized{inset:0!important;border-radius:0!important;background:var(--dni-canvas)!important;padding:12px!important;z-index:40}
.app-loading{color:var(--dni-muted);background:var(--dni-surface);border:1px solid var(--dni-border);border-radius:var(--dni-radius);padding:32px}
.utility-panel.dni-utility{max-width:none;width:auto;margin:0 24px 84px 34px;padding:0;border:0;background:none;box-shadow:none;backdrop-filter:none}
.dni-utility .dni-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.dni-utility .dni-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:14px}
.dni-utility .dni-panel{padding:22px;background:var(--dni-surface);border:1px solid var(--dni-border);border-radius:var(--dni-radius);box-shadow:var(--dni-shadow);min-width:0}
.dni-panel h2{font-size:18px;margin:0 0 14px}.dni-panel p{font-size:14px;color:var(--dni-muted);line-height:1.6;margin:8px 0 16px}.dni-panel .action-button{font-size:14px}
.dni-launch{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:12px;min-height:135px;padding:22px;border-radius:14px;background:var(--dni-surface);border:1px solid var(--dni-border);color:var(--dni-text)}
.dni-launch:hover{border-color:var(--dni-border-active);background:var(--dni-surface-raised)}.dni-launch .icon{width:24px;height:24px;color:#b1c2db}.dni-launch strong{font-size:16px;font-weight:400}.dni-launch small{font-size:13px;color:var(--dni-muted);line-height:1.5}
.dni-app-search{display:flex;align-items:center;gap:12px;margin-bottom:20px;background:#10162199;padding:0 14px;border:1px solid var(--dni-border);border-radius:8px}.dni-app-search input{width:100%;border:0;background:transparent;min-height:46px;font-size:16px}.dni-app-search .icon{width:18px;color:var(--dni-muted)}
.dni-catalog-group{margin:28px 0 16px!important;font-size:16px!important;color:var(--dni-muted);font-weight:400}.dni-catalog-group:first-of-type{margin-top:0!important}
.dni-empty{padding:52px 28px!important;min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.dni-empty>.icon{width:36px;height:36px;margin-bottom:24px;color:#9caec6}.dni-empty p{max-width:52ch}.dni-empty h2{font-size:24px}.dni-empty .dialog-actions{justify-content:center}
.dni-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0;border-bottom:1px solid var(--dni-border);font-size:14px}.dni-row span:last-child{color:var(--dni-muted)}
.dni-list-link{display:flex;gap:14px;align-items:center;text-align:left;width:100%;padding:16px 0;border-bottom:1px solid var(--dni-border);font-size:14px}.dni-list-link .icon{width:20px;height:20px;color:#aebcd1}.dni-list-link small{display:block;color:var(--dni-muted);margin-top:6px;font-size:13px}
.dni-panel .focus-clock{font-size:72px;letter-spacing:-4px;font-weight:300;margin:44px 0 32px}.dni-focus-controls{display:flex;justify-content:center;gap:10px}
.dni-utility .calendar-grid{gap:0}.dni-utility .calendar-grid>span{min-height:70px;border:1px solid #b7c6db0d;padding:12px;align-items:flex-start;justify-content:flex-start;border-radius:0;font-size:14px}.dni-utility .calendar-grid>b{padding:14px;font-size:13px}.dni-utility .calendar-grid .today{background:#729ee522!important;color:#d5e4fc!important;outline:1px solid #85adf355}
.dni-utility .desktop-widget{max-width:none;width:auto}.dni-utility .desktop-widgets{position:static;width:auto;display:block}.dni-utility .media-title{font-size:20px}.dni-utility .empty-media{padding:38px 0}
.dni-utility [hidden],.dni-launch[hidden]{display:none!important}
.dni-utility .setting-row{min-height:54px;font-size:14px}.dni-utility .setting-row small{font-size:13px}
.desktop .card{backdrop-filter:blur(8px)}.desktop :is(.nav-item,.tab,.card h2,.setting-row,.segmented button,.theme-choice){font-size:14px}.desktop .card .subtitle{font-size:13px}.desktop .categories button{font-size:12px}.desktop .browse{font-size:13px}
.dni-focus-objective{width:100%;min-height:44px;margin-top:10px}.desktop .nav-item{gap:16px}.sidebar{overflow-y:auto;scrollbar-width:none}.sidebar nav{flex-shrink:0}.sidebar-bottom{flex-shrink:0}
@media(max-width:1150px){.desktop-header h1{font-size:28px}.system-actions{gap:7px}.system-actions .status{gap:10px}.system-actions .status .microphone,.system-actions .status .network{display:none}.dni-utility .dni-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dni-utility .dni-columns{grid-template-columns:minmax(0,1.5fr) minmax(230px,1fr)}}
@media(max-width:800px){.desktop-header{padding:20px 18px;min-height:96px}.app-window{inset:0 18px 70px!important}.utility-panel.dni-utility{margin:0 18px 86px}.dni-utility .dni-columns{grid-template-columns:1fr}.desktop-header h1{font-size:26px}.system-actions .status>[data-time]{display:none}.system-actions .status{gap:4px}.dni-panel{padding:18px}.dni-utility .calendar-grid>span{min-height:52px;padding:7px}.desktop .card .subtitle{font-size:13px}}
@media(max-width:550px){.desktop-header{min-height:90px;padding:18px 14px;align-items:center}.desktop-header h1{font-size:24px}.desktop-header p{font-size:14px}.system-actions>button{display:none}.system-actions>button[data-go='/desktop/apps']{display:block}.system-actions .status .avatar-mini{width:28px;height:28px}.system-actions .status{display:flex!important}.app-window{inset:0 12px 70px!important}.utility-panel.dni-utility{margin:0 12px 84px}.dni-utility .dni-grid{grid-template-columns:1fr}.dni-launch{min-height:112px}.dni-panel.dni-empty{min-height:280px;padding:34px 20px!important}.desktop .tabs{gap:22px}.window-titlebar{margin-bottom:12px}.window-titlebar>span{font-size:12px}.dni-utility .calendar-grid>span{min-height:44px}.dni-public-nav{flex-wrap:wrap}}
@media(pointer:coarse){.window-titlebar>button,.system-actions>button,.desktop .tab,.desktop .categories button{min-height:44px;min-width:44px}.desktop .nav-item{min-height:48px}}
.dni-reduce-motion *,.reduce-motion *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
.window-titlebar{margin-bottom:8px;min-height:36px;background:#10172266!important}
.resume-application{position:absolute;left:34px;top:20px;display:flex;align-items:center;gap:12px;padding:16px 22px;border:1px solid var(--dni-border-active);border-radius:12px;background:var(--dni-surface);color:var(--dni-text)}
.wallpaper:after{background:linear-gradient(90deg,#02050a35,#02050a25)!important}
@media(min-width:1200px){.sidebar{width:200px}.desktop-header{padding-right:34px}.content-scroll{padding-right:34px}.desktop .tabs{height:64px;margin-bottom:0}.personal-top{grid-template-columns:minmax(0,.405fr) minmax(0,.595fr);gap:14px}.personal-bottom{grid-template-columns:.76fr 1.04fr 1.02fr 1.12fr;gap:12px;margin-top:12px}.personal-top .wall-tile{aspect-ratio:1.67}.desktop .card h2{font-size:16px}.personal-top .card{padding:20px 19px 18px}.personal-top .mini-desktop{min-height:0;aspect-ratio:1.44}.personal-bottom .card{min-height:284px}.sidebar .brand{margin-bottom:52px}}

/* The iframe receives the remaining window area after measured dock clearance. */
.app-window[data-world-window=true]{inset:var(--world-window-top,0px) max(var(--world-window-right,12px),env(safe-area-inset-right)) max(var(--world-window-bottom,104px),env(safe-area-inset-bottom)) max(var(--world-window-left,12px),env(safe-area-inset-left))!important;min-height:0}
.app-window[data-world-window=true] iframe{flex:1 1 0;height:0;min-height:0}

@media(max-width:800px){
 .desktop .categories button{font-size:14px;min-height:44px;min-width:44px}
 .desktop .tab{min-height:44px}
 .auth-field input{font-size:16px}
}
/* Keep authentication reachable when landscape or the keyboard shortens the view. */
@media(max-height:580px){
 .login.screen{height:100dvh;min-height:0;overflow:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:start;gap:20px;padding:76px max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}
 .login .clock{position:relative;top:auto!important;width:auto;align-self:start;padding-top:20px}
 .login .clock .time{font-size:48px}
 .login .account-stack{position:relative;top:auto!important;left:auto;transform:none;width:min(100%,386px);margin:0 auto}
 .login .account-avatar{width:64px;height:64px}
 .login .account-stack h1{margin:10px 0 14px}
 .login .auth-field input{font-size:16px}
 .login .login-bottom{position:relative;bottom:auto;left:auto;right:auto;grid-column:1/-1;flex-wrap:wrap;gap:16px}
 .login .login-controls{padding-bottom:0;gap:16px}
 .login .top-brand{top:18px;left:24px}
 .login .status{top:20px;right:24px}
 .boot.screen{height:100dvh;min-height:0;overflow:auto;padding:24px 16px}
 .boot .boot-stack{position:relative;top:auto}
 .boot .boot-brand>div{font-size:44px}
 .boot .boot-brand>span{font-size:18px}
 .boot .boot-footer{position:relative;bottom:auto;margin-top:28px}
}
@media(max-height:580px) and (max-width:550px){
 .login.screen{grid-template-columns:minmax(0,1fr);padding-top:68px}
 .login .clock{padding-top:0}
 .login .clock .greeting{display:none}
 .login .login-controls{width:100%;justify-content:center}
}
