/* Copyright (c) 2026 TNSystem. Alle Rechte vorbehalten. */
/* B118: ruhige Arbeitsfläche auf Basis der freigegebenen Glas-Raumansicht. */
:root{font-family:Inter,"Segoe UI",Arial,sans-serif}
.app-shell{grid-template-columns:276px minmax(0,1fr)}
.sidebar{padding:18px 13px 14px;background:linear-gradient(160deg,#19334ae8 0%,#102339f4 55%,#0b1b2df7 100%);border-right:1px solid #9cc8df48;box-shadow:inset -1px 0 #effaff12,12px 0 35px #06132172}
.brand{gap:13px;padding:8px 10px 22px;border-bottom:1px solid #b3d4e52e}
.brand-mark{width:36px;height:36px;box-shadow:0 0 16px #4abaff66}
.brand strong{font-size:17px;font-weight:680;letter-spacing:-.02em}
.brand small{font-size:12px;color:#b6d3e4;margin-top:2px}
.sidebar-section-label{margin:26px 14px 8px;color:#9fb9ca;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.nav-group{margin-top:0;gap:3px}
.nav-item{min-height:44px;padding:10px 13px;border-radius:11px;font-size:15px;font-weight:490;color:#d8e9f5}
.nav-item span{width:22px;font-size:19px;font-weight:400;text-align:center;color:#a8d9f4}
.nav-item.active{background:linear-gradient(115deg,#245779a8,#2b6a92a0);border-color:#9bd5f66b;box-shadow:inset 0 1px #e5f8ff30,0 6px 16px #07223e4a}
.nav-item:disabled{opacity:.55}
.sidebar-foot{gap:8px;margin-top:auto;padding:13px 5px 3px;border-top:1px solid #b3d4e536;color:#e8f5fe;font-size:14px}
.user-avatar{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:10px;background:linear-gradient(145deg,#79c5ed,#265578);border:1px solid #c1edff8a;color:#f6fbff;font-size:15px;font-weight:700;box-shadow:inset 0 1px #fff7,0 3px 12px #05132488}
.sidebar-identity{font-size:14px;font-weight:560}
.sidebar-foot button,.sidebar-foot .sidebar-logout{width:34px;height:34px;flex:none;margin-left:0;border:1px solid transparent;border-radius:9px;background:transparent;color:#d7ebf7;font-size:19px;box-shadow:none}
.sidebar-foot button:hover,.sidebar-foot button[aria-expanded=true]{border-color:#9bd5f66b;background:#a6dfff23;box-shadow:none}
.main-content{background:#091827}
.topbar{height:54px;padding:0 30px;background:#0e2135cf;border-bottom:1px solid #b4dcf331;box-shadow:0 5px 18px #03111e3b}
.topbar-title{gap:10px;align-items:center}
.topbar-title strong{font-size:15px;font-weight:650;letter-spacing:-.01em}
.topbar-title span{font-size:13px;color:#a8c5d8}
.chat-stage{padding:12px 20px 172px}
.chat-stage::after{background:linear-gradient(0deg,#071421bb,transparent 31%),linear-gradient(90deg,#08182770,transparent 17% 83%,#08182770)}
.status-chip{top:18px;right:28px;padding:7px 12px;font-size:11px;letter-spacing:.01em;background:#142c41c9;border-color:#9cc8e457;box-shadow:0 3px 18px #05121e66;backdrop-filter:blur(12px)}
.welcome{left:0;width:min(720px,100%);transform:translateY(3px)}
.orb-wrap{width:230px;height:230px;margin:0 auto 75px}
.welcome h1{font-size:clamp(32px,3.2vw,48px);font-weight:620;letter-spacing:-.035em;text-shadow:0 3px 20px #000b}
.composer{bottom:25px;width:min(920px,calc(100% - 58px));padding:13px 16px 12px;border-radius:23px;border-color:#b8dff08a;background:linear-gradient(125deg,#18334bdc,#203f56e5);box-shadow:0 20px 55px #03111fc2,inset 0 1px #f2fbff55;backdrop-filter:blur(25px)}
.composer:focus-within{border-color:#9fdbff;box-shadow:0 20px 55px #03111fc2,0 0 0 2px #68c7f93b,inset 0 1px #f2fbff55}
.composer textarea{min-height:58px;max-height:180px;padding:4px 5px 0;font-size:16px;line-height:1.5;resize:vertical}
.composer textarea::placeholder{color:#b9d0df}
.composer-bottom{gap:8px;border-top:0;padding-top:6px}
.composer-actions{margin-left:auto;gap:7px}
.local-tool-button,.tools-button{min-height:36px}
.tools-button{border:0;background:transparent;color:#d6eaf8;padding:7px 12px;font-size:14px}
.tools-button:hover,.tools-button[aria-expanded=true]{background:#8dcff02a}
#attach-button{width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:#f3faff;font-size:24px;line-height:1}
#attach-button:hover,#attach-button[aria-expanded=true]{background:#8dcff02a}
#dictate-button{width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:#f3faff;font-size:17px;box-shadow:none}
#dictate-button:hover,#dictate-button[aria-pressed=true]{background:#8dcff02a}
.send-button{width:37px;height:37px;border-radius:12px;border-color:#b5e3ff91;background:linear-gradient(145deg,#e4a734,#f4cc66);color:#182b36;box-shadow:0 3px 13px #e2ad3d5c;font-size:17px}
.send-button:hover{filter:brightness(1.1)}
.tools-menu,.attach-menu{border-radius:13px;border-color:#9ecde589;background:#10263aef;backdrop-filter:blur(20px);box-shadow:0 17px 36px #020d19c4}
.tools-menu span{display:none}
.conversation{width:min(900px,100%);padding:50px 0 15px}
.message{font-size:15px;border-radius:18px;background:#122b40e8;backdrop-filter:blur(10px)}
.message.user{background:#27618ae0}
.chat-error{bottom:158px;width:min(920px,calc(100% - 58px))}
.account-panel{grid-template-columns:295px minmax(0,1fr);height:100dvh}
.settings-rail{min-width:0;background:linear-gradient(155deg,#1d3c54,#142b40 60%,#0d2033)}
.settings-content{min-width:0;background:radial-gradient(circle at 70% 8%,#25465c 0,#142c40 38%,#0b1c2d 100%)}
.settings-content form,.settings-overview button{background:#e8f8ff0c;border-color:#b7dcf14e}
.settings-content form textarea,.settings-content form select{display:block;width:100%;max-width:620px;border:1px solid #9fc9df7a;border-radius:10px;padding:12px 13px;background:#122d43;color:#f3faff;font:inherit;line-height:1.5}
.settings-content form textarea{min-height:170px;resize:vertical}
.settings-content form select{min-height:44px;max-width:300px}
.settings-content form textarea:focus-visible,.settings-content form select:focus-visible{outline:3px solid #78d8ff;outline-offset:2px}
.settings-gate-note{max-width:690px;padding:11px 14px;border-left:3px solid #e6b95d;background:#e6b95d15;border-radius:0 9px 9px 0;font-size:13px}
.settings-nav button{font-size:15px}
.settings-nav button[aria-current=page]{background:#a9d9f22b;box-shadow:inset 3px 0 #94d9ff}
@media(max-width:900px){.app-shell{grid-template-columns:235px minmax(0,1fr)}.sidebar{padding-left:10px;padding-right:10px}.welcome h1{font-size:clamp(29px,3.8vw,42px)}.composer{width:calc(100% - 32px)}}
@media(max-width:760px){.app-shell{display:block}.sidebar{width:min(86vw,294px);padding:18px 12px 14px}.main-content{height:100dvh;min-height:0}.topbar{height:54px;padding:0 15px}.menu-button{display:block}.chat-stage{min-height:0;padding:18px 12px 155px}.status-chip{top:13px;right:13px;max-width:calc(100% - 26px)}.welcome{transform:translateY(15px)}.orb-wrap{width:176px;height:176px;margin-bottom:55px}.welcome h1{font-size:clamp(28px,6vw,38px)}.composer{bottom:12px;width:calc(100% - 24px);padding:11px 12px 10px;border-radius:19px}.composer textarea{min-height:63px;font-size:16px}.chat-error{bottom:148px;width:calc(100% - 24px)}.account-panel{grid-template-columns:minmax(0,1fr)}.settings-nav{max-width:100%;overflow-x:auto}}
@media(max-width:760px){.account-panel{display:block;overflow-y:auto}.settings-rail{display:block}.settings-rail-user{display:none}.settings-nav{display:flex;flex-direction:row;max-width:100%;overflow-x:auto}.settings-nav button{width:auto;flex:none;white-space:nowrap}.settings-content{overflow:visible}}
@media(max-width:440px){.topbar-title span{display:none}.tools-button{padding:7px 5px;font-size:13px}.composer-actions{gap:2px}.composer{width:calc(100% - 16px)}.welcome h1{font-size:28px}.status-chip{font-size:10px}}
@media(max-height:720px) and (min-width:761px){.orb-wrap{width:180px;height:180px;margin-bottom:43px}.welcome h1{font-size:34px}.chat-stage{padding-bottom:145px}}
@media(prefers-reduced-motion:reduce){.composer,.sidebar,.status-chip{scroll-behavior:auto}}

/* B125: controls keep the same outline style on Chrome, Edge, Firefox and Safari. */
.sidebar-foot button{display:grid;place-items:center}
.sidebar-foot button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sidebar-foot .sidebar-logout{color:#bbd4e3}

/* The stage image contains the podium. Figure and title use its measured anchor. */
.room-scene .pedestal{display:none}
.welcome{position:absolute;inset:0;left:0;top:0;width:100%;height:100%;transform:none;pointer-events:none}
.orb-wrap{position:absolute;left:var(--podium-x,50%);top:var(--podium-y,52%);margin:0;transform:translate(-50%,-100%);animation:podium-float 5.4s ease-in-out infinite}
.glass-sculpture[data-shape="head"],.glass-sculpture[data-shape="cow"]{top:0}
.welcome h1{position:absolute;left:50%;top:calc(var(--podium-y,52%) + clamp(70px,8vh,92px));width:min(720px,calc(100% - 28px));margin:0;transform:translateX(-50%)}
@keyframes podium-float{0%,100%{transform:translate(-50%,-100%)}50%{transform:translate(-50%,calc(-100% - 12px))}}
@media(max-width:760px){.orb-wrap{width:176px;height:176px;margin:0}.welcome{inset:0;transform:none}.welcome h1{top:calc(var(--podium-y,52%) + 68px)}}
@media(prefers-reduced-motion:reduce){.orb-wrap{animation:none}}

/* New chat choices stay honest until the VM owns project, purge, and schedule state. */
.new-chat-dialog{width:min(620px,calc(100vw - 30px));max-height:min(86dvh,760px);overflow-y:auto;padding:24px;border:1px solid #a8d8ef80;border-radius:20px;background:linear-gradient(155deg,#19364d,#0d2032);color:#edf7fd;box-shadow:0 28px 70px #020b14d9}
.new-chat-dialog::backdrop{background:#06111cc9;backdrop-filter:blur(6px)}
.new-chat-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}
.new-chat-heading h2{margin:4px 0 0;font-size:27px}
.new-chat-heading button{width:32px;height:32px;border:0;border-radius:8px;background:#ffffff16;color:#e8f5fb;font-size:23px;cursor:pointer}
.new-chat-dialog>p{margin:7px 0 18px;color:#b8d1e0}
.new-chat-choice{display:grid;gap:8px;margin:10px 0;padding:15px;border:1px solid #a8d8ef49;border-radius:12px;background:#ffffff0a}
.new-chat-choice strong{font-size:16px}.new-chat-choice span,.new-chat-choice small{color:#b8d1e0;line-height:1.45}
.new-chat-choice button{justify-self:start;min-height:36px;padding:8px 13px;border:1px solid #8fd2f77b;border-radius:9px;background:#235b80;color:#fff;cursor:pointer}
.new-chat-choice.unavailable{border-color:#a8d8ef30;background:#ffffff06}
.new-chat-choice button:disabled{cursor:not-allowed;opacity:.58}
.new-chat-choice label{font-size:13px;color:#cfe5f2}
.new-chat-choice select,.new-chat-choice textarea,.new-chat-choice input{min-height:38px;padding:8px 10px;border:1px solid #a8d8ef65;border-radius:8px;background:#10293d;color:#f1f9ff;font:inherit}
.new-chat-choice select:disabled{opacity:.7}
.planned-schedule{display:grid;grid-template-columns:auto minmax(120px,1fr) auto minmax(100px,1fr);align-items:center;gap:8px}
.planned-schedule[hidden]{display:none}
@media(max-width:560px){.new-chat-dialog{padding:18px}.planned-schedule{grid-template-columns:1fr 1fr}.planned-schedule label{grid-column:1/-1}}

/* The standard chat choice stays compact; schedules have their own window. */
.new-chat-dialog{width:min(420px,calc(100vw - 30px));max-height:85dvh;display:grid;gap:10px}
.new-chat-dialog:not([open]){display:none}
.new-chat-heading h2{margin:0;font-size:24px}
.new-chat-dialog>label{font-size:14px;color:#dcecf6}
.new-chat-dialog>select,.new-chat-dialog>textarea,.planned-schedule select,.planned-schedule input{min-height:40px;padding:8px 10px;border:1px solid #a8d8ef65;border-radius:8px;background:#10293d;color:#f1f9ff;font:inherit}
.new-chat-dialog>small{display:block;color:#b8d1e0;line-height:1.4}
.new-chat-temporary{display:flex;align-items:center;gap:8px;margin-top:3px}
.new-chat-temporary input{width:18px;height:18px;margin:0}
.new-chat-start,.planned-dialog>button{justify-self:start;min-height:38px;margin-top:7px;padding:8px 14px;border:1px solid #8fd2f77b;border-radius:9px;background:#235b80;color:#fff;cursor:pointer}
.planned-dialog{width:min(560px,calc(100vw - 30px))}
.planned-dialog>textarea{width:100%;min-height:120px;resize:vertical}
.planned-dialog>button:disabled{opacity:.58;cursor:not-allowed}
.attachment-preview{display:block;max-width:min(220px,100%);max-height:150px;object-fit:contain;border:1px solid #9ecde555;border-radius:10px;background:#071726;margin-top:8px}
.attachment-preview[hidden]{display:none}
