:root{color-scheme:dark;--bg:#080a0a;--panel:#111515;--line:#252c2c;--muted:#899393;--text:#f3f6f5;--green:#8dffbd;--blue:#0a84ff;--screen-w:320px;--screen-h:240px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 25% 10%,#192020 0,#0b0e0e 42%,#070909 100%);color:var(--text);min-height:100vh}.topbar{height:72px;padding:0 34px;display:flex;align-items:center;gap:28px;border-bottom:1px solid #242a2a;background:#080a0ade;position:sticky;top:0;z-index:5;backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:11px;min-width:230px}.brand-mark{width:36px;height:36px;border-radius:12px;background:linear-gradient(145deg,#f8ffff,#aebcba);color:#111;font-weight:900;display:grid;place-items:center;font-size:20px;box-shadow:0 0 24px #d4ffff1c}.brand strong,.brand small{display:block}.brand strong{font-size:14px;letter-spacing:.02em}.brand small{color:#8d9997;font-size:11px;margin-top:3px}.badge{font-size:10px;letter-spacing:.13em;color:#c9d0ce;border:1px solid #343e3d;background:#151b1a;border-radius:999px;padding:8px 12px}.badge i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#62ed9d;margin-right:7px;box-shadow:0 0 10px #62ed9d}.reset{margin-left:auto;border:1px solid #37403f;background:#151a19;color:#d7dfdc;padding:9px 14px;border-radius:9px;font-size:12px;cursor:pointer}.reset:hover,.panel-actions button:hover,.quick-grid button:hover{border-color:#7a8985;background:#1b2321}.workspace{max-width:1180px;margin:28px auto 22px;padding:0 28px;display:grid;grid-template-columns:minmax(450px,1fr) 375px;gap:42px;align-items:start}.device-column{display:flex;flex-direction:column;align-items:center}.device-wrap{width:100%;display:flex;justify-content:center;padding:5px 0 0}.device{width:max-content;padding:19px 22px 14px;border-radius:36px;background:linear-gradient(140deg,#313737,#101313 42%,#242a29);border:1px solid #414949;box-shadow:0 34px 90px #000a,inset 0 1px 2px #fff2,inset 0 -8px 20px #0008}.bezel{padding:12px;border-radius:13px;background:#050707;border:1px solid #414747;box-shadow:inset 0 0 0 2px #151a1a}.screen{width:var(--screen-w);height:var(--screen-h);background:#050707;position:relative;overflow:hidden;transform-origin:top left;color:#f6f8f6;font-family:Arial,Helvetica,sans-serif;image-rendering:auto}.statusbar{height:20px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;padding:0 8px;color:#e4ece7;background:#292f2e;border-bottom:1px solid #747d792e;font-size:11px;letter-spacing:.1px;cursor:pointer;position:relative;z-index:2}.statusbar time{text-align:center;font-weight:700;color:#f1f4f2}.battery{text-align:right;color:#26e984;font-weight:700}.view{position:absolute;left:0;right:0;top:20px;bottom:0;overflow:hidden;background:#050707}.controls-row{height:48px;margin:8px 4px 8px;display:grid;grid-template-columns:1fr 50px 1fr;align-items:center}.trackball-btn{height:40px;border:0;background:transparent;color:#e1e7e4;font-size:29px;font-weight:800;letter-spacing:-6px;cursor:pointer;text-shadow:0 0 8px #dfe8e244}.trackball-btn:first-child{text-align:right;padding-right:10px}.trackball-btn:last-child{text-align:left;padding-left:10px}.ball{height:35px;width:35px;border-radius:50%;margin:auto;background:radial-gradient(circle at 35% 30%,#dbd8c6,#77766d 40%,#252722 78%);border:2px solid #393e38;box-shadow:0 0 14px #f3d77945,inset 0 0 8px #000}.keyboard{width:320px;background:#090b0b;border:1px solid #353a38;border-radius:6px;padding:3px;display:grid;gap:3px}.keyrow{display:grid;grid-template-columns:repeat(10,1fr);gap:3px}.keyrow button{height:29px;padding:0;border:1px solid #252a29;border-radius:4px;background:linear-gradient(#1d2221,#101312);color:#eef3f0;font-size:11px;font-weight:650;cursor:pointer}.keyrow button:active,.keyrow button.pressed{background:#34433c;color:#aaffc8}.keyrow .symkey{font-size:8px;color:#b8c4bd}.bottomkeys{grid-template-columns:1fr .7fr 3.1fr 1fr 1fr}.bottomkeys button{height:24px;font-size:8px}.bottomkeys .spacekey{font-size:7px;color:#b8c4bd}.device-label{text-align:center;color:#949b97;font-size:9px;letter-spacing:.2em;margin-top:9px}.device-foot{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin-top:15px;color:#77817e;font-size:11px}.device-foot b{color:#c4ceca;font-weight:550}.testpanel{border:1px solid #262d2c;border-radius:17px;background:linear-gradient(150deg,#141a19f2,#0d1111f5);padding:22px;box-shadow:0 24px 65px #0005}.panel-heading{display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:9px;letter-spacing:.17em;color:#90a09a}.panel-heading h1{font-size:24px;line-height:1.1;letter-spacing:-.04em;margin:9px 0 0}.shield{width:35px;height:35px;display:grid;place-items:center;border-radius:11px;background:#1c2822;color:#83f5b0;font-size:21px}.intro{font-size:12px;line-height:1.65;color:#a6b0ac;margin:15px 0 20px}.test-card{border-top:1px solid #29302e;padding:16px 0 2px}.test-card h2{font-size:11px;text-transform:uppercase;letter-spacing:.11em;color:#d7dfdb;margin:0 0 11px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.quick-grid button,.panel-actions button{border:1px solid #303937;border-radius:8px;background:#171d1b;color:#d9e1dd;padding:9px 10px;font-size:11px;text-align:left;cursor:pointer}.checklist{display:grid;grid-template-columns:1fr;gap:8px;margin-top:11px}.checklist h2{margin-bottom:3px}.checklist label{font-size:11px;color:#aeb8b3;display:flex;align-items:center;gap:8px}.checklist input{accent-color:#65dc96}.notice{margin-top:17px;padding:11px 12px;background:#1a1c15;border:1px solid #393b29;border-radius:8px;font-size:10px;line-height:1.6;color:#bdc2ad}.notice b{color:#e5e8d8}.panel-actions{display:flex;gap:8px;margin-top:14px}.panel-actions button{font-size:10px}.panel-actions .quiet{background:transparent;color:#89948f}footer{text-align:center;color:#59635f;font-size:10px;padding:4px 12px 20px}

/* Simulator additions: launcher paging and offline T9 suggestions. */
.launcher-page{position:absolute;right:8px;bottom:1px;color:#78817d;font-size:7px;pointer-events:none}.launcher:not(.glass) .app-icon:nth-child(4n+1) .glyph{background:linear-gradient(145deg,#372945,#17151d);border-color:#655277;color:#d9baff}.launcher:not(.glass) .app-icon:nth-child(4n+2) .glyph{background:linear-gradient(145deg,#263c32,#151b18);border-color:#456652;color:#b7ffcf}.launcher:not(.glass) .app-icon:nth-child(4n+3) .glyph{background:linear-gradient(145deg,#233543,#141a1f);border-color:#45677c;color:#c5e9ff}.launcher:not(.glass) .app-icon:nth-child(4n) .glyph{background:linear-gradient(145deg,#403722,#1e1a13);border-color:#766746;color:#ffe7a7}.t9-suggestions{position:absolute;left:0;right:0;height:28px;z-index:5;display:flex;gap:3px;padding:2px 4px;background:#20242a;border:1px solid #48515b;border-radius:5px;box-shadow:0 3px 10px #000a}.t9-suggestions button{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;border-radius:4px;background:#343a43;color:#fff;font:11px Arial,Helvetica,sans-serif;cursor:pointer}.t9-suggestions button:active{background:#0a84ff}
/* Inverted monochrome launcher marks requested for Mesh, Nodes, Get Apps, and Settings. */
.app-mesh .glyph img{filter:invert(1)}.launcher .app-icon.app-nodes .glyph{background:linear-gradient(145deg,#f5f6f5,#dfe3e0);border:1px solid #ffffffd9;color:#101311;text-shadow:none;box-shadow:inset 0 1px #fff,0 3px 8px #0008}
/* Calendar day editor and persistent Notes editor. */
.calendar-content{scroll-behavior:smooth;padding-bottom:12px}.calendar-detail{min-height:144px}.calendar-detail textarea{width:100%;min-height:38px;resize:vertical;background:#090d0b;border:1px solid #303a34;border-radius:5px;color:#eef4ef;padding:5px;font:10px Arial,Helvetica,sans-serif}.field-label{display:block;margin:6px 0 3px;color:#aebbb3;font-size:9px}.alarm-row{margin:5px 0}.alarm-row label{display:flex;align-items:center;gap:5px;color:#aebbb3;font-size:9px}.alarm-row input{width:73px;background:#090d0b;border:1px solid #303a34;border-radius:4px;color:#eef4ef;font:10px Arial;padding:3px}.small-btn.marked{border-color:#62d995;color:#9affbd;background:#173021}.calendar-grid button.has-event:after{content:"";position:absolute;width:3px;height:3px;border-radius:50%;background:#75edaa;transform:translateY(7px)}.calendar-grid button{position:relative}.note-card{display:flex;align-items:center;gap:6px;padding:4px 6px}.note-open{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;text-align:left;background:transparent;border:0;color:#eff4f0;font:10px Arial;cursor:pointer}.note-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;font-size:9px}.note-editor{display:flex;flex-direction:column;gap:7px}.note-title{width:100%;height:29px;border:1px solid #344039;border-radius:5px;background:#111715;color:#f3f6f4;padding:0 7px;font-size:12px}.note-body{flex:1;min-height:142px;resize:none;border:1px solid #303a34;border-radius:6px;background:#090d0b;color:#eff4f0;padding:7px;font:11px/1.4 Arial;white-space:pre-wrap}.note-star{position:absolute;left:4px;top:3px}.danger{color:#ffb0ad;border-color:#75413f}.image-app .glyph{overflow:hidden;background:#f4f4f4;border-color:#ffffff88;border-radius:11px}.image-app .glyph img{display:block;width:100%;height:100%;object-fit:cover;border-radius:10px;opacity:.94}
/* 320x240 T-Deck UI pieces */
.app-head{height:27px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:#f4f5f4;position:relative;letter-spacing:.1px}.tiny-head{height:21px;display:flex;align-items:center;gap:5px;padding:0 6px;font-size:10px}.tiny-head .mode{color:#48df8b}.menu-button{position:absolute;right:4px;top:3px;width:22px;height:22px;border:0;border-radius:6px;background:#ffffff17;color:#dfe4e1;font-size:16px;line-height:18px;cursor:pointer}.screen-back{position:absolute;left:5px;top:4px;border:0;color:#b9c3bd;background:transparent;font-size:10px;cursor:pointer}.launcher{height:220px;padding:7px 11px 6px;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,1fr);gap:1px}.app-icon{border:0;background:transparent;color:white;display:flex;align-items:center;justify-content:flex-start;flex-direction:column;gap:3px;cursor:pointer;padding:1px}.app-icon .glyph{width:39px;height:39px;border-radius:13px;background:linear-gradient(145deg,#ffffff27,#ffffff0b);border:1px solid #ffffff35;box-shadow:inset 0 1px #ffffff22,0 3px 8px #0008;display:grid;place-items:center;color:#eff5f0;font-size:21px;text-shadow:0 1px 3px #000}.app-icon:nth-child(2) .glyph{color:#a5ffd0}.app-icon:nth-child(3) .glyph{color:#e9f7f0}.app-icon:nth-child(4) .glyph{color:#dcf0ff}.app-icon small{font-size:8px;line-height:10px;color:#d6ddda;text-shadow:0 1px 4px #000;white-space:nowrap}.app-icon:active .glyph{background:#ffffff47}.content{position:absolute;inset:27px 0 0;padding:7px 8px;overflow:auto;scrollbar-width:thin;scrollbar-color:#39413d transparent;font-size:11px}.muted{color:#8d9892}.section-title{font-size:11px;font-weight:700;color:#edf0ee;margin-bottom:6px}.card{border:1px solid #252c29;background:#111615;border-radius:7px;padding:7px;margin-bottom:6px}.row{display:flex;align-items:center;justify-content:space-between;gap:6px}.pill{padding:2px 5px;border-radius:99px;background:#16291f;color:#8df2b6;font-size:8px}.list-row{height:24px;border-bottom:1px solid #222826;display:flex;align-items:center;gap:7px;font-size:10px}.list-row button{margin-left:auto}.small-btn{border:1px solid #39423e;border-radius:5px;background:#1b211f;color:#edf2ef;padding:3px 7px;font-size:9px;cursor:pointer}.blue-btn{border:0;border-radius:6px;background:#0785ff;color:white;padding:5px 10px;font-weight:700;font-size:10px;cursor:pointer}.inputbar{position:absolute;bottom:5px;left:5px;right:5px;display:flex;gap:5px;height:30px}.inputbar input{flex:1;min-width:0;background:#161c1a;border:1px solid #2b3330;border-radius:6px;color:#ecf2ee;font-size:11px;padding:0 8px;outline:none}.inputbar input:focus{border-color:#61736a}.menu-pop{position:absolute;z-index:4;top:27px;right:3px;width:155px;padding:5px;background:#171d1c;border:1px solid #59615d;border-radius:8px;box-shadow:0 9px 25px #000c}.menu-pop button{display:block;width:100%;padding:7px 8px;text-align:left;border:0;border-radius:5px;background:transparent;color:#e2e8e4;font-size:10px;cursor:pointer}.menu-pop button:hover{background:#303a35}.chatlog{position:absolute;top:49px;bottom:42px;left:6px;right:6px;overflow:auto;padding:6px;background:#090c0b;border-radius:6px;font-size:10px}.bubble{max-width:90%;padding:5px 7px;border-radius:7px;margin:0 0 5px;line-height:1.35;white-space:pre-wrap}.bubble.user{margin-left:auto;background:#172b20;color:#dcf8e5}.bubble.bot{background:#171c1a;color:#d8dfdb}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin:6px 0}.calendar-grid span,.calendar-grid button{height:22px;display:grid;place-items:center;border:0;border-radius:5px;background:#151a18;color:#d8dfdb;font-size:9px;cursor:pointer}.calendar-grid span{height:14px;background:transparent;color:#84908a;font-size:8px}.calendar-grid button.today{border:1px solid #76e8a1;color:#97ffc1}.calendar-grid button.selected{background:#237646;color:white}.settings-row{height:28px;border-bottom:1px solid #222a26;display:flex;align-items:center;justify-content:space-between;font-size:10px}.toggle{width:30px;height:16px;border-radius:99px;background:#363d39;position:relative;cursor:pointer}.toggle:after{content:"";position:absolute;width:12px;height:12px;top:2px;left:2px;border-radius:50%;background:#eee;transition:.15s}.toggle.on{background:#20b766}.toggle.on:after{left:16px}.mapview{position:absolute;inset:27px 0 0;background:#ece8da;overflow:hidden}.mapgrid{position:absolute;width:512px;height:512px;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;grid-template-columns:repeat(2,256px);grid-template-rows:repeat(2,256px)}.mapgrid img{width:256px;height:256px;image-rendering:auto}.mapdot{position:absolute;left:50%;top:51%;width:12px;height:12px;background:#ed3232;border:2px solid white;border-radius:50%;box-shadow:0 0 0 4px #ed32324c;transform:translate(-50%,-50%)}.map-label{position:absolute;left:7px;top:6px;border-radius:4px;background:#fffffff0;color:#252826;padding:3px 6px;font-size:8px;box-shadow:0 1px 3px #0003}.map-footer{position:absolute;bottom:5px;left:5px;right:5px;display:flex;justify-content:space-between;align-items:center}.map-footer select{font-size:9px;background:#fffffff0;color:#1b201c;border:0;border-radius:5px;padding:4px}.term{position:absolute;inset:48px 5px 7px;background:#080b0a;border-radius:6px;padding:7px;overflow:auto;color:#b8f7ce;font:9px/1.45 ui-monospace,monospace}.termline.prompt{color:#93d5ff}.toast{position:absolute;z-index:6;left:50%;bottom:34px;transform:translateX(-50%);padding:5px 9px;border-radius:99px;background:#d9fff0;color:#09150e;font-size:9px;box-shadow:0 4px 12px #0008;white-space:nowrap}.calc-display{text-align:right;font-size:24px;padding:17px 8px 11px;border-radius:6px;background:#111615;margin-bottom:6px}.calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.calc-grid button{height:29px;border:0;border-radius:5px;background:#242b28;color:#fff;font-size:12px;cursor:pointer}.calc-grid button.op{background:#526159}.keyboard-open{position:absolute;inset:48px 5px 5px;z-index:4;background:#101513;border:1px solid #465049;border-radius:8px;padding:6px;display:grid;grid-template-rows:repeat(4,1fr);gap:5px}.keyboard-open .keyrow{display:grid;grid-template-columns:repeat(10,1fr);gap:3px}.keyboard-open button{border:1px solid #303a34;border-radius:4px;background:#202825;color:#eef3ef;font-size:9px}.keyboard-open .wide{grid-column:span 3}

@media(max-width:900px){.workspace{grid-template-columns:1fr;gap:22px;max-width:650px}.testpanel{order:2}.device-column{order:1}.topbar{padding:0 16px}.brand{min-width:auto}.badge{display:none}}@media(max-width:480px){.workspace{padding:0 10px;margin:12px auto}.device{transform:scale(.86);transform-origin:top center;margin-bottom:-90px}.device-foot{font-size:9px;gap:10px}.testpanel{padding:16px}.topbar{height:60px}.reset{font-size:10px;padding:8px}}

/* Pixel-alignment pass against the saved 320x240 T-Deck captures (2026-10-05). */
.launcher{height:220px;padding:9px 7px 18px;grid-template-rows:repeat(3,minmax(0,1fr));column-gap:0;row-gap:0}
.app-icon{gap:7px;padding:1px 0 0;align-items:center}
.app-icon .glyph{width:36px;height:36px;border-radius:8px}
.app-icon small{font-size:9px;line-height:10px;letter-spacing:0;color:#d3d6d4;text-shadow:none}
.launcher.glass .image-app .glyph{background:transparent;border:0;box-shadow:none;border-radius:0}
.launcher.glass .image-app .glyph img{opacity:.80;filter:grayscale(1) contrast(1.08)}
.launcher.glass .app-game .glyph img{opacity:1;filter:none}
.launcher.glass .app-mesh .glyph img{filter:invert(1) grayscale(1) contrast(1.08)}
.launcher.glass .app-settings .glyph img{opacity:.88;filter:grayscale(1) contrast(1.08)}
.launcher.glass .app-nodes .glyph{filter:invert(1)}
.launcher-page{left:50%;right:auto;bottom:7px;width:28px;height:6px;transform:translateX(-50%);font-size:0;border-radius:0;background:transparent}
.launcher-page:before,.launcher-page:after{content:"";position:absolute;top:0;height:6px;border-radius:3px}
.launcher-page:before{left:0;width:16px;background:#fff}
.launcher-page:after{right:0;width:6px;background:#48484a}
.launcher-page.page-1:before{left:0;width:6px;background:#48484a}
/* Use the supplied monochrome artwork, not the large white source-image canvases. */
.launcher .image-app .glyph{width:40px;height:40px;overflow:visible;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;color:#f4f7f5;text-shadow:none}
.launcher .image-app .glyph img{display:block;width:40px;height:40px;object-fit:contain;border-radius:0;opacity:.82;filter:none}
.launcher .app-mesh .glyph{background:rgba(244,247,245,.9)!important;border:1px solid #fff!important;border-radius:11px!important;box-shadow:inset 0 1px #fff9,0 3px 8px #0008!important;color:#101311!important;text-shadow:none!important}
.launcher .app-mesh .glyph img{filter:invert(1)}

/* Keep the inverted launcher marks explicit: invert the logo treatment, not the whole tile. */
.launcher.glass .app-nodes .glyph{filter:none;background:linear-gradient(145deg,#f5f6f5cc,#dfe3e0b8);border:1px solid #ffffffd0;box-shadow:inset 0 1px #fff9,0 3px 8px #0008;color:#101311;text-shadow:none}
.launcher-page.page-1:after{right:0;width:16px;background:#fff}
.launcher-shortcut{position:absolute;bottom:1px;width:66px;height:19px;border:1px solid #ffffff55;border-radius:6px;background:#151a18;color:#fff;font-size:10px;font-weight:700;font-style:italic;line-height:16px;text-shadow:0 0 2px #fff8;cursor:pointer}
.launcher-shortcut:active{background:#2a3931;border-color:#a8d9be}
.shortcut-todo{left:4px}.shortcut-point{right:4px}
.todo-form{position:absolute;top:34px;left:6px;right:6px;height:28px;display:flex;gap:5px}
.todo-form input{flex:1;min-width:0;background:#161c1a;border:1px solid #303a34;border-radius:6px;color:#f1f5f2;padding:0 7px;font-size:10px}
.todo-form .blue-btn{padding:3px 11px}
.todo-list{position:absolute;top:69px;bottom:5px;left:6px;right:6px;overflow:auto}
.todo-row{min-height:27px;display:flex;align-items:center;gap:6px;border-bottom:1px solid #252c29;color:#e7ece9;font-size:10px}
.todo-row.done span{text-decoration:line-through;color:#818b85}
.todo-check,.todo-delete{border:0;background:transparent;color:#bfffd5;font-size:13px;cursor:pointer}
.todo-delete{margin-left:auto;color:#ff8882}
.todo-empty{display:block;padding:8px;font-size:10px}
.map-user-pin{position:absolute;left:50%;top:51%;z-index:2;transform:translate(-50%,-100%);width:18px;height:20px;border-radius:50% 50% 50% 0;background:#087fff;border:2px solid white;color:white;text-align:center;font-size:10px;line-height:16px;rotate:-45deg;box-shadow:0 2px 5px #0009}
.map-user-pin small{position:absolute;left:15px;top:-4px;white-space:nowrap;padding:2px 4px;border-radius:4px;background:#101614;color:#f1f5f2;font-size:7px;rotate:45deg}
.chatlog{top:29px;bottom:38px;left:2px;right:2px;padding:5px;background:#101010;border-radius:6px}
.inputbar{left:4px;right:4px;bottom:4px;height:30px;gap:4px}
.inputbar .blue-btn{flex:0 0 56px;width:56px;padding:0}
.app-head>span{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap}
.app-head .notes-new{position:absolute;right:4px;top:3px;height:23px;padding:2px 8px;border:0;border-radius:7px;background:#30d158;color:#fff;font-size:10px}
.app-head[data-app-title="Notes"]>span{color:#ffd60a}
.notes-list{padding:11px 7px}
.notes-list .note-card{height:36px;min-height:36px;padding:0 12px;border:0;border-radius:10px;background:#1c1c1e}
.notes-list .note-open{font-size:11px;color:#fff}
.notes-list .note-open b{font-weight:500}
#chatForm input{font-size:12px}
#chatForm .blue-btn{font-size:15px}
.terminal-head{position:absolute;inset:0 0 auto;height:28px;z-index:1}
.terminal-target{position:absolute;left:6px;top:5px;width:270px;height:16px;overflow:hidden;white-space:nowrap;text-overflow:clip;color:#fff;font:12px/16px Arial,Helvetica,sans-serif}
.terminal-menu-button{right:4px;top:0;width:28px;height:28px;border-radius:7px;background:#2c2c2e;font-size:17px}
.term{top:28px;right:2px;bottom:38px;left:2px;padding:5px;background:#111113;border:1px solid #2c2c2e;border-radius:6px;color:#f2f2f7;font-family:Arial,Helvetica,sans-serif;line-height:1.25}
.termline.prompt{color:#f2f2f7}
.terminal-inputbar{top:186px;right:4px;bottom:2px;left:4px;height:32px;gap:4px}
.terminal-inputbar input{font-size:13px;background:#1c1c1e;border:0;border-radius:7px}
.terminal-inputbar .blue-btn{flex:0 0 56px;width:56px;height:26px;align-self:center;padding:0;font-size:15px}
.terminal-menu{position:absolute;left:72px;right:auto;top:22px;width:244px;height:194px;padding:0;border-radius:8px;background:#1c1c1e;border-color:#3a3a3c;box-shadow:none;font-size:10px}
.terminal-menu-title{position:absolute;left:10px;top:6px;color:#fff;font-size:12px}
.terminal-menu button{position:absolute;display:grid;place-items:center;height:26px;padding:0;border:0;border-radius:7px;color:#fff;font-size:10px}
.terminal-menu .terminal-connect{left:10px;top:28px;width:220px;background:#30d158}
.terminal-menu .terminal-connect.connected{background:#ff453a}
.terminal-menu .terminal-read{left:10px;top:60px;width:106px;background:#2c2c2e}
.terminal-menu .terminal-clear{left:124px;top:60px;width:106px;background:#3a3a3c}
.terminal-menu .terminal-zoom-label{position:absolute;left:10px;top:94px;color:#c7c7cc;font-size:10px}
.terminal-menu .terminal-zoom-out{left:62px;top:90px;width:48px;background:#2c2c2e;font-size:14px}
.terminal-menu .terminal-zoom-value{position:absolute;left:116px;top:98px;width:80px;text-align:center;color:#c7c7cc;font-size:9px}
.terminal-menu .terminal-zoom-in{left:166px;top:90px;width:48px;background:#2c2c2e;font-size:14px}
.terminal-menu .terminal-close{left:10px;top:126px;width:106px;background:#2c2c2e}
.terminal-menu .terminal-status{position:absolute;left:10px;top:160px;width:220px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#c7c7cc;font-size:10px}
.map-transit-button{background:#17251d;border-color:#3f7050;color:#b9ffd0}
.transit-viewport{position:absolute;inset:27px 0 0;background:#f4f2e9;overflow:hidden;touch-action:none;user-select:none}
.transit-map-image{position:absolute;left:50%;top:50%;width:100%;height:100%;object-fit:contain;max-width:none;max-height:none;transform-origin:center center;touch-action:none;user-select:none;-webkit-user-drag:none;cursor:grab}
.transit-map-image:active{cursor:grabbing}
.transit-offline-badge,.transit-gesture-hint{position:absolute;bottom:5px;padding:3px 5px;border:1px solid #0002;border-radius:4px;background:#fffffff0;color:#282b29;font:7px/1.1 Arial,Helvetica,sans-serif;pointer-events:none}
.transit-offline-badge{left:5px}.transit-gesture-hint{right:5px;color:#515551}
.transit-menu{width:166px;padding:6px;max-height:205px;overflow:auto;overscroll-behavior:contain}
.transit-menu-title{padding:1px 4px 5px;color:#fff;font-size:10px;font-weight:700}
.transit-menu select{width:100%;height:25px;margin:0 0 5px;padding:0 5px;border:1px solid #424b46;border-radius:5px;background:#252c28;color:#f0f4f1;font-size:9px}
.transit-zoom-row{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:4px;margin-bottom:3px}
.transit-zoom-row span{text-align:center;color:#d0d6d2;font-size:9px}
.transit-menu .transit-zoom-row button{height:23px;padding:0;text-align:center;border:1px solid #414a45;background:#242a27;font-size:13px}
.transit-menu>button{padding:5px 7px}

/* Game app preview: same map viewport with a separate purple exploration layer. */
.game-night .mapgrid{filter:invert(.82) hue-rotate(190deg) brightness(.95) saturate(.75)}
.game-night{background:#090b16}
.game-night:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(145deg,#2110500d,#090b161a)}
.game-night .map-label{z-index:2;background:#17132be8;color:#d8c5ff;border:1px solid #a658ff55}
.game-status{position:absolute;right:6px;top:7px;z-index:2;padding:3px 5px;border-radius:4px;background:#17132be8;color:#d6b9ff;font-size:7px}
.game-quest{position:absolute;left:50%;top:74%;z-index:2;transform:translateX(-50%);padding:4px 7px;border:1px solid #b879ff88;border-radius:7px;background:#17132bf0;color:#e6d3ff;font-size:8px;white-space:nowrap}
.game-pin{z-index:2;background:#812bdf;color:#fff;border-color:#ead9ff;rotate:0deg;line-height:15px;box-shadow:0 0 0 3px #a744ff55,0 2px 6px #000a}
.game-pin small{left:16px;top:-4px;rotate:0deg}
.pin-wlan{background:#136ac2}.pin-ort{background:#7551a8}.pin-mission{background:#ab4bdb}.pin-fund{background:#bf8e22}.pin-gefahr{background:#cc3f58}.pin-wasser{background:#087f9b}.pin-lager{background:#356b43}.pin-knoten{background:#414c90}
.mesh-node{position:absolute;z-index:2;width:17px;height:17px;border:2px solid #69e8a2;border-radius:50%;background:#10241be8;color:#8dffc0;text-align:center;font-size:10px;line-height:13px;box-shadow:0 0 0 3px #69e8a233}
.mesh-node small{position:absolute;left:16px;top:-3px;padding:2px 4px;border-radius:3px;background:#121a19;color:#c7ffdc;font-size:7px;white-space:nowrap}
.node-a{left:31%;top:37%}.node-b{left:66%;top:55%;border-color:#79c8ff;color:#a9dcff;box-shadow:0 0 0 3px #79c8ff33}
.menu-pop .game-menu-note{padding:3px 7px;color:#c9a9f6;font-size:8px;line-height:1.3}
.game-menu{max-height:205px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.game-menu::-webkit-scrollbar{display:none}
/* Game's existing Pins/Nodes overlay gets one clear light/dark control row. */
.game-pins-panel{position:absolute;z-index:5;inset:7px 8px;background:#090b10f4;border:1px solid #65428c;border-radius:9px;box-shadow:0 6px 18px #0009;color:#f3f4f8}
.game-pins-title{position:absolute;left:8px;top:7px;font-size:11px;font-weight:700}
.game-pins-panel button{position:absolute;height:25px;border:0;border-radius:6px;color:#fff;font-size:8px}
.game-pins-close{right:6px;top:5px;width:53px;background:#30323a}
.game-pins-add{right:64px;top:5px;width:61px;background:#30d158;color:#07140b!important}
.game-pins-controls{position:absolute;left:6px;right:6px;top:36px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.game-pins-controls button{position:static;height:27px;background:#17314b}
.game-pins-controls button+button{background:#512b7a}
.map-footer-game{display:none}
.game-status{top:7px;right:32px;background:#100d18a8;color:#d9c5ff;border:1px solid #b879ff55;backdrop-filter:blur(3px)}
.game-quest.glass-control{left:7px;top:auto;bottom:7px;transform:none;padding:5px 9px;background:#261a36a8;border-color:#d5b6ff88;color:#f5edff;backdrop-filter:blur(4px);box-shadow:0 2px 8px #0005}
.game-zoom-controls{position:absolute;right:6px;bottom:6px;z-index:3;display:flex;gap:4px}
.game-zoom-controls button{width:25px;height:23px;padding:0;border:1px solid #b96cffdd;border-radius:6px;background:#261a36b5;color:#efd8ff;font-size:14px;line-height:20px;backdrop-filter:blur(4px);box-shadow:0 0 5px #8739e688,0 2px 8px #0005;cursor:pointer}
.game-me.glass-control{position:absolute;left:4px;right:auto;top:4px;z-index:3;width:38px;height:22px;padding:0;border:1px solid #d5b6ff88;border-radius:6px;background:#7139a9c7;color:#fff;font-size:8px;backdrop-filter:blur(4px);box-shadow:0 2px 8px #0005;cursor:pointer}
.game-head{color:transparent}
.game-quest.glass-control{position:absolute;left:52px;right:auto;top:4px;bottom:auto;transform:none;width:66px;height:22px;padding:0;border:1px solid #d08aff;border-radius:6px;background:#7139a9c7;color:#fff;font-size:8px;backdrop-filter:blur(4px);box-shadow:0 0 6px #9b43ffb0,0 0 12px #7029c866,0 2px 8px #0005;cursor:pointer}
.game-menu-toggle.glass-control{position:absolute;right:4px;top:4px;z-index:3;width:34px;height:22px;padding:0;border:1px solid #c77dffdd;border-radius:6px;background:#7139a9c7;color:#e4b6ff;text-shadow:0 0 5px #bb62ff;font-size:13px;line-height:18px;backdrop-filter:blur(4px);box-shadow:0 0 5px #9b43ff88,0 2px 8px #0005;cursor:pointer}
.game-zoom-controls{top:4px;right:44px;bottom:auto;z-index:3}
.game-zoom-controls button{width:34px;height:22px;font-size:13px;line-height:18px}
.game-status{top:31px;right:6px}
.game-map .map-label,.game-night .map-label{top:31px}
.game-menu{top:47px;width:178px;max-height:184px;padding:6px;background:linear-gradient(155deg,#171021f7,#0d0b13f8);border:1px solid #9a6bc2;border-radius:9px;box-shadow:0 8px 24px #000d,inset 0 1px #f3d38e22}
.game-menu button{height:24px;padding:3px 6px;color:#eadff7;font-size:9px;line-height:17px}
.game-menu button i{display:inline-grid;place-items:center;width:16px;height:16px;margin-right:5px;border:1px solid #bb8bdf66;border-radius:5px;background:#281936;color:#f0cf8b;font-style:normal;text-align:center}
.game-menu button:hover{background:#30203d;color:#ffe7ae}
.game-menu .game-menu-banner{height:31px;display:flex;align-items:center;gap:7px;padding:2px 4px 5px;margin-bottom:3px;border-bottom:1px solid #8a623b66;color:#f4d38b}
.game-menu-rune{width:24px;height:24px;display:grid;place-items:center;border:1px solid #d0a75c88;border-radius:7px;background:linear-gradient(145deg,#362440,#1a1322);font-size:14px}
.game-menu-banner b,.game-menu-banner small{display:block}.game-menu-banner b{font-size:9px;letter-spacing:1px}.game-menu-banner small{margin-top:2px;color:#ac9aba;font-size:6px;letter-spacing:.5px}
.game-menu .game-menu-note{display:block;padding:4px 5px 2px;border-top:1px solid #ffffff14;color:#b7a3c9;font-size:7px;letter-spacing:.2px}
.game-missions-panel{inset:7px;background:linear-gradient(155deg,#120d19f5,#090910f7);border:1px solid #a477ca;border-radius:10px;box-shadow:0 8px 22px #000c,inset 0 1px #f0ce8c22;padding:7px}
.game-missions-head{height:27px;gap:6px;color:#f0ce8c}
.quest-rune{width:23px;height:23px;display:grid;place-items:center;border:1px solid #c49a5988;border-radius:7px;background:#281c30;color:#f1cd83;font-size:13px}
.quest-heading{flex:1}.game-missions-head .quest-heading strong{display:block;font-size:11px;letter-spacing:1px;color:#f2d28e}.game-missions-head .quest-heading small{display:block;margin-top:1px;color:#a99ab6;font-size:6px;letter-spacing:.7px}
.game-missions-head .quest-count{padding:3px 5px;border:1px solid #c49a5966;border-radius:5px;background:#2b2030;color:#f0d294;font-size:8px}
.game-missions-head button{background:#251a2c;border-color:#9271a955;color:#e9d9f5}
.game-missions-head .quest-pins{width:36px;height:20px;padding:0;border:1px solid #c49a5966;border-radius:5px;background:#2b2030;color:#f0d294;font-size:7px;line-height:17px}
.quest-progress{height:3px;overflow:hidden;border-radius:3px;background:#382a43;margin:0 1px 1px}.quest-progress i{display:block;height:100%;background:linear-gradient(90deg,#a65ddd,#f0ce8c);box-shadow:0 0 6px #bb83e8}
.game-mission-row{position:relative;min-height:66px;border-color:#8b6b9d66;border-radius:8px;background:linear-gradient(135deg,#261b30cc,#17131ded);padding:5px 6px;box-shadow:inset 0 1px #ffffff0a}
.game-mission-top b{color:#f1e4c8;font-size:9px}.game-mission-top b span{display:inline-grid;place-items:center;width:15px;height:14px;margin-right:3px;border:1px solid #b9894c77;border-radius:4px;color:#edcc88;font-size:7px}
.game-mission-top em{padding:2px 4px;border:1px solid #c59c5c66;border-radius:4px;background:#3b2c1c;color:#f2d08b}.game-mission-top em.complete{border-color:#4dc38666;background:#123223;color:#9ff0bf}.game-mission-top em.locked{border-color:#9d7bc566;background:#291e34;color:#d1b7eb}.game-mission-top em.open{color:#f1d18e}
.game-mission-row small{color:#c5b8cf}
.game-mission-actions button{border-color:#9879ad55;background:#432d554d;color:#eadcf4}.game-mission-actions button:last-child{border-color:#d0a85b77;background:#57432266;color:#ffe2a0}.game-mission-actions button:disabled{border-color:#ffffff12;background:#ffffff08;color:#857d8a}
.game-demo-note{color:#bca8cf;letter-spacing:.2px}
.game-missions-panel{position:absolute;z-index:7;inset:7px;background:#0b0910f2;border:1px solid #8956be;border-radius:9px;box-shadow:0 6px 18px #000a;padding:7px;color:#f3effb;display:flex;flex-direction:column;gap:6px}
.game-missions-head{height:22px;display:flex;align-items:center;gap:8px;color:#dbc4ff;font-size:10px}
.game-missions-head strong{font-size:12px;flex:1}.game-missions-head span{font-size:8px;color:#bcb0ca}
.game-missions-head button{width:22px;height:22px;border:1px solid #ffffff38;border-radius:6px;background:#ffffff18;color:white;font-size:15px;line-height:18px}
.game-mission-row{min-height:66px;border:1px solid #ffffff25;border-radius:7px;background:#ffffff0c;padding:5px 6px;display:flex;flex-direction:column;gap:4px}
.game-mission-top{display:flex;align-items:center;justify-content:space-between;font-size:9px}.game-mission-top em{font-style:normal;font-size:7px;color:#e8c77a;letter-spacing:.3px}
.game-mission-row small{font-size:7px;color:#c4bdcf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.game-mission-actions{display:flex;gap:3px}.game-mission-actions button{flex:1;min-width:0;height:19px;border:1px solid #ffffff24;border-radius:5px;background:#b879ff26;color:#eee5ff;font-size:7px;padding:0 2px}
.game-mission-actions button:last-child{background:#30d15833;color:#d5ffe3}.game-mission-actions button:disabled{background:#ffffff0c;color:#8d8794}
.game-demo-note{margin-top:auto;text-align:center;color:#a79cad;font-size:7px}
.game-pins-search{position:absolute;left:6px;right:6px;top:70px;width:calc(100% - 12px);height:28px;padding:0 7px;border:1px solid #3a3d46;border-radius:6px;background:#1c1c22;color:#eef0f5;font-size:8px}
.game-pins-list{position:absolute;left:6px;right:6px;top:104px;bottom:6px;padding:7px;border-radius:6px;background:#11141b;color:#d8dbe5;font-size:9px;line-height:1.6}
.game-map .map-label{display:none}
.game-sats{position:absolute;left:50%;top:9px;z-index:2;transform:translateX(-50%);padding:0 2px;color:#e7d7f3;font-size:7px;line-height:12px;white-space:nowrap;text-shadow:0 1px 2px #000}

/* Data-driven MeshGame quest board preview */
.game-missions-panel{gap:4px;padding:5px;overflow:hidden}
.game-missions-panel .game-missions-head{height:22px;min-height:22px;gap:6px}
.game-missions-panel .quest-heading strong{font-size:10px}
.game-missions-panel .quest-heading small{font-size:6px}
.game-missions-panel .quest-rune{width:20px;height:20px;font-size:12px}
.game-missions-panel .game-missions-head button{width:20px;height:20px;line-height:16px}
.quest-player{height:16px;min-height:16px;display:flex;align-items:center;gap:5px;padding:0 3px;color:#e8d9f2}
.quest-player b{font-size:8px;color:#f0d18c;white-space:nowrap}
.quest-player small{font-size:6px;color:#c1b4ce;white-space:nowrap}
.quest-player span{font-size:6px;color:#bd9cdd;white-space:nowrap}
.quest-xp-track{height:4px;flex:1;min-width:20px;border-radius:5px;background:#31273a;overflow:hidden}
.quest-xp-track i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#a94dff,#f0c775);box-shadow:0 0 5px #bd65ff}
.quest-tabs{display:flex;gap:3px;min-height:19px;height:19px}
.quest-tab{flex:1;min-width:0;height:19px;padding:0 2px;border:1px solid #765d88;border-radius:5px;background:#211929;color:#bca9cf;font-size:6px;letter-spacing:.25px}
.quest-tab.selected{border-color:#ddaaff;background:#653699;color:#fff;box-shadow:0 0 5px #a94dff75}
.quest-catalog{display:flex;flex:1;min-height:0;flex-direction:column;gap:4px;overflow-y:auto;padding:0 1px 2px;scrollbar-width:thin;scrollbar-color:#785091 transparent}
.game-catalog-row,.game-skill-row{flex:none;min-height:52px;display:flex;flex-direction:column;gap:2px;padding:4px 5px;border:1px solid #5c466d;border-radius:6px;background:linear-gradient(130deg,#281c34,#15121c);box-shadow:inset 0 1px #ffffff0a}
.game-catalog-row.active{border-color:#b879ff;background:linear-gradient(130deg,#382348,#1b1423)}
.game-catalog-row.complete,.game-skill-row.learned{border-color:#4d9c77;background:linear-gradient(130deg,#183328,#151d1a)}
.game-catalog-top{height:11px;display:flex;align-items:center;justify-content:space-between;gap:4px}
.game-catalog-top b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f0e5d1;font-size:7px}
.game-catalog-top b span{color:#dfb2ff}
.game-catalog-top em{flex:none;font-style:normal;font-size:5px;letter-spacing:.35px;color:#ebcb8b}
.game-catalog-row .quest-brief,.game-catalog-row .quest-source,.game-catalog-row .quest-step,.game-skill-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#bfb2ca;font-size:6px}
.game-catalog-row .quest-step{color:#d6b6ff}
.quest-row-actions{display:flex;gap:3px;margin-top:1px}
.quest-row-actions button,.game-skill-row>button{height:14px;min-width:0;padding:0 5px;border:1px solid #aa78d0;border-radius:4px;background:#673795;color:#fff0ca;font-size:6px;line-height:12px}
.quest-row-actions button:first-child{flex:1}
.quest-row-actions button+button{flex:0 0 52px;background:#292032;color:#e0c9f3}
.quest-row-actions button:disabled,.game-skill-row>button:disabled{border-color:#ffffff16;background:#ffffff08;color:#91899a}
.quest-empty{padding:12px 8px;color:#c5b5d3;text-align:center;font-size:7px}
.game-skill-row{min-height:47px}
.game-skill-row>button{align-self:flex-start}
.game-demo-route{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:visible;pointer-events:none}
.game-demo-route path{fill:none;stroke:#d7a1ff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2 6;filter:drop-shadow(0 0 3px #9f43ff)}
.game-demo-route circle{fill:#f3d8ff;stroke:#a942ff;stroke-width:2}
.game-demo-route text{fill:#f2d8ff;font:6px sans-serif;paint-order:stroke;stroke:#10091a;stroke-width:2px}

/* Explanations update alongside each app selected in the T-Deck demo. */
.app-explainer{margin:0 0 19px;padding:16px;border:1px solid #39443f;border-radius:12px;background:linear-gradient(145deg,#17211c,#101514);box-shadow:inset 3px 0 #9a42ff,0 12px 35px #0003}
.app-explainer .eyebrow{display:block;color:#b28aff;font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.app-explainer h2{margin:8px 0 7px;color:#f3f6f4;font-size:19px;line-height:1.15;letter-spacing:-.025em}
.app-explainer h3{margin:13px 0 4px;color:#a9f2c1;font-size:10px;letter-spacing:.09em;text-transform:uppercase}
.app-explainer p{margin:0;color:#b7c1bc;font-size:11px;line-height:1.55}
.app-explainer .explainer-summary{color:#e2e9e5;font-size:12px}
.app-explainer .explainer-link{display:inline-block;margin-top:13px;color:#c59eff;font-size:10px;text-decoration:none}
.app-explainer .explainer-link:hover{text-decoration:underline}
