:root{--panel:#d3d6c8;--paper:#e6e8db;--edge:#626e67;--title:#183b5b;--accent:#d4ed86;--desktop:#254f65;--ink:#172a32;font:13px Tahoma,Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{background:#183549}button,input,textarea{font:inherit}button{color:inherit;cursor:pointer}[hidden]{display:none!important}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #b6e478;outline-offset:2px}.os{height:100dvh;display:flex;flex-direction:column;user-select:none}.menubar{height:34px;flex-shrink:0;background:linear-gradient(#ecede4,#bac4ba);border-bottom:1px solid #64746e;box-shadow:0 1px #fff inset;display:flex;align-items:center;justify-content:space-between;padding:0 8px;z-index:1000}.menuitems,.menustatus{display:flex;align-items:center;gap:2px}.menuitems button{background:none;border:1px solid transparent;padding:5px 10px}.menuitems button:hover,.menuitems button[aria-expanded=true]{background:#aec1b6;border-color:#77887d}.menu-system{font-weight:bold}.menustatus{gap:12px;font-size:11px}.menustatus #net-indicator{color:#406c49}.desktop{position:relative;flex:1;min-height:0;overflow:hidden;background:radial-gradient(ellipse at 73% 35%,#57869a 0%,transparent 54%),linear-gradient(145deg,#3a7177,#254e63 65%,#1b354e)}.wallpaper-grid{position:absolute;inset:0;opacity:.12;background:repeating-linear-gradient(90deg,transparent 0 37px,#fff 38px 39px),repeating-linear-gradient(0deg,transparent 0 37px,#fff 38px 39px);pointer-events:none}.wallpaper-hill{position:absolute;inset:auto 0 0;height:28%;background:linear-gradient(12deg,#112f38bc 0 40%,transparent 41%),linear-gradient(-12deg,#173a44cb 0 46%,transparent 47%);pointer-events:none}.wallpaper-logo{position:absolute;top:45px;right:35px;color:#dcebd7a1;font-size:33px;font-weight:900;letter-spacing:-2px;pointer-events:none}.wallpaper-logo span{color:#e5f5a9}.wallpaper-logo small{display:block;font-size:9px;letter-spacing:2px;margin-top:8px}.desktop-icons{position:absolute;top:17px;left:10px;z-index:1;display:grid;grid-template-rows:repeat(5,86px);grid-auto-flow:column;grid-auto-columns:94px;gap:7px}.desktop-icon{border:1px solid transparent;background:none;color:#fff;text-shadow:1px 1px #1e313c;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;padding:5px;font-size:12px}.desktop-icon:hover{background:#b6e9ea29;border:1px dotted #fff}.desk-glyph{display:grid;place-items:center;width:51px;height:47px;border:2px solid #24394b;box-shadow:inset 2px 2px #fff,2px 3px #14272c;background:linear-gradient(#edebd8,#b7c9b9);color:#315669;text-shadow:none;font-size:30px;font-weight:bold}.folder-icon{background:linear-gradient(#eee3aa,#d2b35d);color:#846a30}.terminal-icon{background:#192c2a;color:#c5ee92;font:20px monospace}.code-icon{color:#305c66}.net-icon{color:#267a92;background:#d2e5df}.window-layer{position:absolute;inset:0;pointer-events:none}.os-window{position:absolute;display:flex;flex-direction:column;min-width:315px;min-height:230px;background:var(--panel);border:1px solid #263b45;box-shadow:1px 1px #fff inset,2px 2px #1d313a,5px 8px 18px #081b267d;pointer-events:auto;resize:both;overflow:hidden}.os-window.focused{box-shadow:1px 1px #fff inset,2px 2px #152c42,7px 13px 25px #061725a8}.os-window.maximized{left:3px!important;top:3px!important;width:calc(100% - 6px)!important;height:calc(100% - 6px)!important;resize:none}.titlebar{background:linear-gradient(90deg,#556875,#85969b);color:#eff1e5;height:30px;min-height:30px;display:flex;align-items:center;padding:4px;gap:8px;cursor:move;touch-action:none}.os-window.focused .titlebar{background:linear-gradient(90deg,#113653,#426a8a)}.title-symbol{font-size:16px;color:#e4f2a5}.title-name{font-weight:bold;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.window-controls{display:flex;gap:3px}.window-controls button{height:21px;width:23px;background:linear-gradient(#f4f4e9,#bfc6ba);border:1px solid #3b4950;box-shadow:inset 1px 1px #fff,inset -1px -1px #788479;padding:0;color:#1b2e3e;font-weight:bold}.window-controls button:hover{background:var(--accent)}.window-inner{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.app-toolbar{padding:6px;background:#d5d9cc;border-bottom:1px solid #9da99c;display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-height:42px}.toolbtn{border:1px solid #718077;background:linear-gradient(#f9f9ef,#c5cec3);box-shadow:inset 1px 1px #fff,inset -1px -1px #859389;padding:5px 10px;min-height:27px;font-size:12px}.toolbtn:hover{background:#dceabc}.toolbtn.primary{background:linear-gradient(#eff8c2,#c9e78a);font-weight:bold}.field{padding:5px 8px;border:1px inset #8b958b;background:#fffef6;min-width:0}.path-field{flex:1}.app-content{flex:1;min-height:0;overflow:auto;background:var(--paper)}.statusbar{background:#d3d7ca;border-top:1px solid #9baa9d;padding:5px 8px;font-size:11px;color:#59675c;min-height:24px}.split{height:100%;min-height:0;display:grid;grid-template-columns:150px minmax(0,1fr)}.sidebar{padding:8px;background:#d7dcd1;border-right:1px solid #acb7ab;overflow:auto;display:flex;flex-direction:column;gap:4px}.sidebar button{background:none;border:1px solid transparent;text-align:left;padding:7px;font-size:12px}.sidebar button:hover{background:#c3d4ca}.sidebar button.selected{background:#254d6b;color:#fff}.file-list{padding:10px;overflow:auto}.file-entry{width:100%;display:flex;align-items:center;gap:10px;padding:9px 7px;background:none;border:1px solid transparent;border-bottom-color:#c4cec0;text-align:left}.file-entry:hover{background:#d2e5cb}.file-entry .entry-glyph{font-size:25px;color:#866d34}.file-entry small{margin-left:auto;color:#68786a}.terminal{height:100%;display:flex;flex-direction:column;background:#101b18;color:#c8f1aa;font:13px/1.6 Consolas,monospace}.terminal-output{flex:1;overflow:auto;min-height:0;padding:15px;white-space:pre-wrap;overflow-wrap:anywhere;user-select:text}.term-prompt{color:#f3d793}.term-error{color:#f3a694}.terminal-form{display:flex;gap:8px;padding:10px;border-top:1px solid #44604d}.terminal-form input{background:none;color:#e1f4db;border:0;flex:1;min-width:0;outline:0;font:13px monospace}.editor-layout{height:100%;display:flex;flex-direction:column}.code-editor{flex:1;min-height:120px;resize:none;background:#172521;color:#dcf3b6;border:0;padding:12px;font:12px/1.6 Consolas,monospace;outline:0;user-select:text}.code-output{height:105px;overflow:auto;background:#f0f0e4;border-top:2px groove #91a398;margin:0;padding:10px;font:12px/1.5 Consolas,monospace;white-space:pre-wrap;user-select:text}.net-layout{height:100%;min-height:0;display:grid;grid-template-columns:130px minmax(0,1fr)}.net-main{min-width:0;display:flex;flex-direction:column}.net-list{flex:1;min-height:0;overflow:auto}.net-row{border:0;border-bottom:1px solid #b7c5b7;background:transparent;padding:10px;display:grid;grid-template-columns:28px minmax(0,1fr) 65px;gap:8px;text-align:left;align-items:center;width:100%}.net-row:hover,.net-row.selected{background:#c7ded2}.net-row .package-glyph{font-size:24px;color:#2e6581}.net-row b{display:block}.net-row small,.net-row em{color:#5a746a;font-size:11px;font-style:normal}.net-details{min-height:120px;padding:10px 14px;border-top:1px solid #a2b0a3;background:#e3e7d8}.net-details h3{margin:0 0 6px;font-size:16px}.net-details p{margin:0 0 9px;line-height:1.5;color:#445d54}.net-details .actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.welcome{padding:25px}.welcome-brand{display:flex;align-items:center;gap:15px}.welcome-brand strong{font-size:54px;color:#245366}.welcome h2{font-size:27px;letter-spacing:-1px;margin:0}.welcome h2 span{color:#7b9e46}.welcome p{line-height:1.65}.welcome-actions{display:flex;gap:8px;flex-wrap:wrap}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px}.help-grid>div{border:1px solid #b5c3b5;padding:10px;font-size:11px}.taskbar{height:44px;display:flex;flex-shrink:0;align-items:center;gap:5px;background:linear-gradient(#d3d7ca,#b5c1b4);border-top:1px solid #f4f4e9;box-shadow:0 -1px #68776f;padding:4px 6px;z-index:1100}.home-button{height:35px;font-weight:bold;background:linear-gradient(#ecf0e4,#bacfc0);border:1px solid #637469;box-shadow:inset 1px 1px #fff,inset -1px -1px #7f9082;padding:0 11px}.running-apps{flex:1;display:flex;gap:4px;min-width:0;overflow:auto}.task-item{flex:0 0 auto;min-width:78px;max-width:168px;padding:8px;text-align:left;background:#d2d9cd;border:1px solid #788679;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.task-item.active{background:#a6bcb3;box-shadow:inset 2px 2px #778a80}.tray{font-size:11px;white-space:nowrap;border:1px inset #829287;padding:9px}.start-menu{position:absolute;left:6px;bottom:48px;z-index:1800;display:flex;background:#d8ded1;border:2px solid #2a4457;box-shadow:4px 6px #071a2699;width:250px}.start-rail{writing-mode:vertical-rl;transform:rotate(180deg);background:#25455e;color:#e6f2cd;font-weight:bold;font-size:14px;letter-spacing:1px;padding:12px 7px}.start-items{flex:1;padding:6px}.start-items button{background:none;text-align:left;border:0;display:block;padding:10px;width:100%}.start-items button:hover{background:#214967;color:#fff}.start-items hr{border:0;border-top:1px solid #bbc6b9}.popup-menu{position:absolute;z-index:1700;min-width:174px;background:#e0e5d6;border:1px solid #40545c;padding:5px;box-shadow:3px 5px #0f283a9c}.popup-menu button{width:100%;text-align:left;padding:8px;border:0;background:none}.popup-menu button:hover{background:#254968;color:white}.popup-menu hr{border:0;border-top:1px solid #b4c1b4}.toast{position:absolute;bottom:54px;right:15px;background:#f1f4df;padding:10px;border:2px solid #526b58;z-index:2000;box-shadow:3px 4px #20352a88}.boot{position:absolute;inset:0;background:#183648;z-index:3000;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#e2ebdd}.boot-monitor{width:86px;height:76px;border:8px ridge #e9e6cc;background:#c4d4c2;text-align:center;font-size:45px;color:#24586c}.boot h1{margin:22px 0 2px;font-size:32px;letter-spacing:-2px}.boot h1 span{color:#d1ed82}.boot p{color:#a9c0b4}.boot-progress{width:225px;height:12px;border:2px inset #a8b8ab;background:linear-gradient(90deg,#def29f 100%,#223d44 0)}@media(max-width:680px){.menubar{height:36px;padding:0 4px}.menuitems button{padding:5px 6px;font-size:12px}.menustatus #net-indicator{display:none}.wallpaper-logo{top:auto;bottom:24px;right:16px;font-size:21px}.wallpaper-logo small{font-size:8px}.desktop-icons{grid-auto-columns:88px;grid-template-rows:repeat(5,84px)}.os-window{left:0!important;top:0!important;width:100%!important;height:100%!important;min-width:0;min-height:0;resize:none;box-shadow:none}.os-window:not(.focused){display:none}.titlebar{min-height:36px;cursor:default}.window-controls button{width:29px;height:26px}.taskbar{height:49px}.task-item{min-width:60px;max-width:100px;padding:9px 6px}.home-button{height:38px;padding:0 6px}.tray{padding:8px 5px}.start-menu{bottom:53px}.split{grid-template-columns:112px minmax(0,1fr)}.net-layout{grid-template-columns:96px minmax(0,1fr)}.sidebar{padding:7px 3px}.sidebar button{padding:7px 3px;font-size:11px}.net-row{grid-template-columns:24px minmax(0,1fr)}.net-row em{display:none}.net-row .package-glyph{font-size:18px}.welcome{padding:15px}.welcome h2{font-size:22px}.welcome-brand strong{font-size:40px}.help-grid{grid-template-columns:1fr}.code-output{height:115px}.toolbtn{padding:5px 7px}}@media(max-width:360px){.menuitems button{padding:4px}.menuitems button:nth-child(3),.menuitems button:nth-child(4){display:none}.tray{font-size:10px}}
/* v0.3 desktop utilities */
.file-entry.selected{background:#b2ccc4;border:1px dotted #284d65}
.file-toolbar{gap:3px}
.file-toolbar .toolbtn{font-size:11px;padding:5px 7px}
.file-toolbar .toolbtn:disabled{opacity:.45;cursor:default}
.file-toolbar input[type=file]{display:none}
.file-location{min-width:100px;flex:1;background:#edefe4;padding:6px;border:1px inset #9caa9c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apps-list{padding:13px;display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:9px;align-content:start}
.apps-entry{border:1px solid #a1b0a3;background:#dce3d5;padding:18px 10px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;min-height:116px}
.apps-entry:hover{background:#e8f0d5}
.apps-icon{font-size:34px;color:#36657e}.apps-entry small{font-size:10px;overflow-wrap:anywhere}
.program-screen{min-height:0;flex:1;overflow:auto;background:#111a19;color:#c7f2a4;padding:16px;white-space:pre-wrap;font:13px/1.6 Consolas,monospace;user-select:text}
@media(max-width:680px){.file-toolbar .toolbtn{padding:6px 5px}.file-location{order:2;flex-basis:100%}.desktop-icons{grid-template-rows:repeat(6,84px)}.apps-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* HomebaseOS 0.4 COSMAC VIP / CHIP-8 machine */
.chip-workspace{display:grid;grid-template-columns:minmax(0,2fr) minmax(185px,1fr);gap:14px;min-height:0;padding:14px;background:#ccd8d0}
.chip-monitor{display:flex;flex-direction:column;gap:9px;justify-content:center;padding:12px;background:#263d42;border:3px ridge #9aa99d;min-width:0;box-shadow:inset 2px 2px #101f24}
.chip-monitor-head{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;color:#d6edbf;font-size:11px;font-family:monospace}
.chip-monitor-head small{font-size:10px}
.chip-monitor canvas{width:100%;height:auto;max-height:330px;aspect-ratio:2/1;background:#0f1c1a;border:7px solid #152429;image-rendering:pixelated;image-rendering:crisp-edges}
.chip-controls{display:flex;flex-direction:column;gap:10px;line-height:1.4;font-size:11px}
.chip-keypad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;touch-action:manipulation}
.chip-key{min-height:41px;border:1px solid #5b6e5f;background:linear-gradient(#eff2e3,#b8c6b9);box-shadow:inset 1px 1px #fff,inset -1px -1px #788b80;color:#20445b;font-weight:bold;font-size:15px;touch-action:none}
.chip-key.held,.chip-key:active{background:#9ab6a6;box-shadow:inset 2px 2px #5a7065}
.chip-controls p{font-size:11px;margin:0;color:#4f665d}.chip-controls .chip-error{color:#a22d2d}
.chip-toolbar .field{min-width:105px;flex:1;max-width:225px;font-size:11px}.glyph-chip8{background:#142522;color:#d4ef8b;font-size:24px}
@media(max-width:680px){.chip-workspace{display:flex;flex-direction:column;padding:8px;gap:7px}.chip-monitor{padding:7px;gap:5px}.chip-monitor canvas{max-height:35dvh;border-width:4px}.chip-controls{gap:5px}.chip-controls p{font-size:10px}.chip-keypad{gap:4px}.chip-key{min-height:34px}.desktop-icons{grid-template-rows:repeat(4,80px);grid-auto-columns:90px}.chip-toolbar .field{max-width:none}}

/* v0.4.1: square CHIP-8 pixels in large/resized windows.
   The framebuffer is 64x32; never independently cap its height while forcing width.
   Panel height follows the actual 2:1 monitor, not the window's entire height. */
.chip-workspace{align-items:start}
.chip-monitor{align-self:start;justify-content:flex-start;width:100%}
.chip-monitor canvas{
 display:block;width:100%;height:auto;aspect-ratio:2 / 1;
 min-width:0;max-width:100%;max-height:none;
 flex:0 0 auto;border:0;margin:7px 0;
 box-shadow:0 0 0 6px #152429;
 image-rendering:pixelated;
}
@media(max-width:680px){
 .chip-workspace{align-items:stretch}
 .chip-monitor{align-self:stretch}
 .chip-monitor canvas{width:100%;max-height:none;border:0;box-shadow:0 0 0 3px #152429;margin:4px 0}
}
