body{margin:0;background:#F3F3F3}
a{color:#1F6E43}a:hover{color:#14502F}
.row{display:grid;grid-template-columns:44px 220px minmax(0,1fr) minmax(0,1fr);border-bottom:1px solid #E1E1E1}
.rn{background:#F3F3F3;color:#5E5E5E;font:500 12px 'IBM Plex Mono',monospace;display:flex;align-items:flex-start;justify-content:center;padding-top:13px;box-sizing:border-box;border-right:1px solid #D4D4D4}
.c{padding:10px 12px;border-right:1px solid #E1E1E1;min-height:20px;box-sizing:border-box}
.ha{background:#E8F2EC;color:#14502F;font-weight:600;font-size:14px}
.span3{grid-column:2 / span 3}
.span2{grid-column:3 / span 2}
.colhead{background:#F3F3F3;color:#5E5E5E;font:500 12px 'IBM Plex Mono',monospace;text-align:center;padding:4px 0;border-right:1px solid #D4D4D4}
.mono{font-family:'IBM Plex Mono',monospace;font-weight:500}
.tabs{display:flex;gap:2px;overflow-x:auto}
.desk{position:relative;min-height:100vh;overflow:hidden;background:#2E4A62;font-family:'IBM Plex Sans',system-ui,sans-serif;color:#1F1F1F}
.wall{position:absolute;inset:0;width:100%;height:100%}
.deskgrid{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr) 210px;gap:20px;padding:20px 20px 0;height:calc(100vh - 48px);box-sizing:border-box}
.icons{display:flex;flex-direction:column;gap:4px;align-items:center}
.ic{width:108px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;border:1px solid transparent;border-radius:6px;background:none;font:500 12px 'IBM Plex Sans',sans-serif;color:#FFFFFF;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.7);cursor:pointer;text-decoration:none;word-break:break-word;line-height:1.25}
.ic:hover{background:rgba(255,255,255,0.16);border-color:rgba(255,255,255,0.3);color:#FFFFFF}
.ic.sel{background:rgba(255,255,255,0.24);border-color:rgba(255,255,255,0.6)}
.win{display:flex;flex-direction:column;background:#FFFFFF;border-radius:10px;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,0.4),0 0 0 1px rgba(0,0,0,0.2);height:calc(100vh - 88px)}
.winmain{overflow:auto}
.winctl{display:flex;gap:2px}
.winctl span{width:30px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:4px}
.side{display:flex;flex-direction:column;gap:20px;padding-top:8px}
.sticky{background:#FFE98A;color:#3A3200;padding:16px;border-radius:2px;box-shadow:0 8px 18px rgba(0,0,0,0.3);transform:rotate(1.5deg);font-size:14px;line-height:1.6}
.widget{background:rgba(255,255,255,0.94);border-radius:10px;padding:14px;box-shadow:0 8px 18px rgba(0,0,0,0.3);font-size:12px;color:#3A3A3A}
.taskbar{position:absolute;left:0;right:0;bottom:0;height:48px;background:rgba(14,24,32,0.88);display:flex;align-items:center;justify-content:space-between;padding:0 14px;color:#FFFFFF;font-size:13px}
.toast{position:absolute;left:152px;bottom:64px;width:330px;background:#FFFFFF;border-radius:8px;box-shadow:0 18px 40px rgba(0,0,0,0.45);overflow:hidden}
@media (max-width:1180px){.deskgrid{grid-template-columns:112px minmax(0,1fr)}.side{display:none}}
@media (max-width:700px){
.row{grid-template-columns:32px 112px minmax(0,1fr)}
.span2{grid-column:3}
.span3{grid-column:2 / span 2}
.ha{font-size:13px}
h1{font-size:28px !important}
.hide-sm{display:none}
.ribbon{display:none}
.desk{background:#FFFFFF;min-height:0;overflow:visible}
.wall,.icons,.side,.taskbar,.toast,.winctl{display:none}
.deskgrid{display:block;padding:0;height:auto}
.win{height:auto;min-height:100vh;border-radius:0;box-shadow:none;overflow:visible}
.winmain{overflow:visible}
}
[hidden]{display:none !important}
.winmain .c{cursor:cell;max-width:none !important}
.winmain .c a{cursor:pointer}
.err{position:relative;display:inline-block;padding-left:12px;font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:14px;color:#1F1F1F}
.err::before{content:"";position:absolute;left:0;top:0;border-top:7px solid #1F8A4C;border-right:7px solid transparent}
