:root {
    --bg-glass: rgba(18, 16, 28, 0.72);
    --border-glow: rgba(203, 166, 247, 0.35);
    --purple: #cba6f7;
    --pink: #f5c2e7;
    --cyan: #89dceb;
    --text: #cdd6f4;
    --subtext: #a6adc8;
}

* { margin:0; padding:0; box-sizing:border-box; font-family:'Segoe UI', system-ui, sans-serif; user-select:none; }
body { background:#0a0910; color:var(--text); overflow:hidden; width:100vw; height:100vh; }

.swww-layer { position:fixed; top:0; left:0; width:100vw; height:100vh; background-size:cover; background-position:center; }
#bgCurrent { z-index:-2; }
#bgNext { z-index:-1; opacity:0; transition:opacity 0.3s ease; }
#bgNext.active-wipe { opacity:1; }

/* ВЕРХНИЙ БАР */
.top-bar {
    position:fixed; top:12px; left:14px; right:14px; height:40px;
    display:flex; justify-content:space-between; align-items:center; z-index:100;
}
.bar-pill {
    background:var(--bg-glass); backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px);
    border:1px solid var(--border-glow); border-radius:20px;
    padding:6px 14px; font-size:12px; display:flex; align-items:center; gap:8px;
    box-shadow:0 4px 20px rgba(0,0,0,0.35); cursor:pointer;
}
.ws-switcher { gap:6px; padding:4px 8px; }
.ws-tab {
    width:24px; height:24px; border-radius:12px; display:flex; align-items:center;
    justify-content:center; font-size:11px; font-weight:bold; color:var(--subtext); cursor:pointer;
}
.ws-tab.active { background:var(--purple); color:#111; box-shadow:0 0 10px var(--purple); }
.music-badge { max-width:55%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.disc-spin { color:var(--pink); }
.text-neon { color:var(--cyan); }

/* БОЛЬШИЕ СИНУСЫ (СТОЛ 2) */
#siriCanvas { position:fixed; top:50%; left:0; transform:translateY(-50%); width:100vw; height:240px; pointer-events:none; z-index:2; }
#siriCanvas.hidden { display:none; }

/* ВОРКСПЕЙСЫ */
.workspace-view {
    position:fixed; top:58px; bottom:72px; left:10px; right:10px;
    display:flex; flex-direction:column; justify-content:center; align-items:center; z-index:10;
    transition:opacity 0.3s ease;
}
.workspace-view.hidden { display:none; opacity:0; pointer-events:none; }

/* СТОЛ 1 */
.hud-main { text-align:center; }
.circle-hud-glow {
    background:var(--bg-glass); backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
    border:1px solid var(--border-glow); border-radius:28px;
    padding:24px 34px; box-shadow:0 8px 36px rgba(0,0,0,0.5), inset 0 0 20px rgba(203,166,247,0.1);
    margin-bottom:14px;
}
.hud-time { font-size:4rem; font-weight:800; color:#fff; line-height:1; text-shadow:0 0 25px rgba(203,166,247,0.8); }
.hud-date { font-size:11px; letter-spacing:2px; color:var(--pink); margin:10px 0 4px; font-weight:600; }
.hud-sub { font-size:11px; color:var(--subtext); }

.cava-container {
    background:var(--bg-glass); backdrop-filter:blur(18px);
    border:1px solid var(--border-glow); border-radius:16px;
    padding:8px 14px; display:inline-block;
}

/* СТОЛ 2: МУЗЫКАЛЬНЫЙ ХАБ */
.music-hub-card {
    width:92%; max-width:340px; background:rgba(20, 18, 30, 0.88);
    backdrop-filter:blur(26px); -webkit-backdrop-filter:blur(26px);
    border:1px solid var(--border-glow); border-radius:28px;
    padding:22px 18px; text-align:center; box-shadow:0 12px 40px rgba(0,0,0,0.6);
    transition:transform 0.1s ease, box-shadow 0.1s ease;
}
.vinyl-disc-glow {
    width:90px; height:90px; border-radius:50%; margin:0 auto 14px;
    background:radial-gradient(circle, #2a2538 30%, #111018 70%);
    border:3px solid var(--purple); display:flex; align-items:center; justify-content:center;
    font-size:38px; color:var(--pink); box-shadow:0 0 20px rgba(203,166,247,0.3);
}
.vinyl-disc-glow.spinning { animation:spin 4s linear infinite; }
@keyframes spin { 100% { transform:rotate(360deg); } }

.hub-title { font-size:14px; font-weight:bold; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-bottom:4px; }
.hub-artist { font-size:11px; color:var(--subtext); margin-bottom:14px; }
.hub-controls { display:flex; justify-content:center; gap:12px; margin-bottom:14px; }
.hub-btn {
    width:38px; height:38px; border-radius:12px; background:rgba(255,255,255,0.06);
    border:1px solid var(--border-glow); color:var(--purple); font-size:14px;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.hub-btn:active { background:var(--purple); color:#111; transform:scale(1.1); }
.hub-play-btn { background:var(--purple); color:#111; font-weight:bold; width:44px; height:44px; border-radius:14px; }
.hub-add-btn { background:rgba(245,194,231,0.15); color:var(--pink); }
.wide-cava { width:100%; padding:6px 0; background:rgba(0,0,0,0.25); }

/* СТОЛ 3: СКРОЛЛ-КОНТЕЙНЕР ДЛЯ ПОГОДЫ И КАЛЕНДАРЯ */
.desk3-scroll-wrapper {
    width:100%; max-width:350px; max-height:calc(100vh - 145px);
    overflow-y:auto; display:flex; flex-direction:column; gap:12px; padding:4px;
}
.glass-card {
    background:rgba(20, 18, 30, 0.88); backdrop-filter:blur(28px); -webkit-backdrop-filter:blur(28px);
    border:1px solid var(--border-glow); border-radius:24px; padding:16px; box-shadow:0 12px 40px rgba(0,0,0,0.6);
}
.card-head-title { font-size:11px; font-weight:bold; color:var(--purple); letter-spacing:1px; margin-bottom:12px; text-align:center; }

/* КРУТЯЩЕЕСЯ КОЛЬЦО ПОГОДЫ */
.weather-wheel-box {
    position:relative; width:200px; height:200px; margin:0 auto;
    display:flex; align-items:center; justify-content:center; touch-action:none;
}
.weather-wheel-ring {
    position:absolute; width:100%; height:100%; border-radius:50%;
    border:2px dashed rgba(203,166,247,0.4); box-shadow:0 0 16px rgba(203,166,247,0.15);
    cursor:grab; transition:transform 0.05s ease-out;
}
.weather-wheel-ring:active { cursor:grabbing; }
.wheel-slot {
    position:absolute; top:50%; left:50%; width:44px; height:24px;
    margin-top:-12px; margin-left:-22px; text-align:center;
    font-size:10px; font-weight:bold; color:var(--pink); pointer-events:none;
}
.wheel-slot small { display:block; font-size:8px; color:var(--subtext); font-weight:normal; }
.wheel-pointer {
    position:absolute; top:-6px; left:50%; transform:translateX(-50%);
    width:12px; height:12px; background:var(--purple); border-radius:50%;
    box-shadow:0 0 10px var(--purple);
}
.wheel-center-info {
    position:relative; width:110px; height:110px; border-radius:50%;
    background:rgba(10, 9, 16, 0.75); border:1px solid var(--border-glow);
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
    pointer-events:none;
}
.wheel-time { font-size:16px; font-weight:800; color:#fff; }
.wheel-temp { font-size:14px; font-weight:bold; color:var(--pink); margin:2px 0; }
.wheel-state { font-size:10px; color:var(--cyan); }
.wheel-hint { text-align:center; font-size:10px; color:var(--subtext); margin-top:8px; }

/* КАЛЕНДАРЬ */
.cal-nav-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.cal-btn { width:26px; height:26px; border-radius:8px; background:rgba(255,255,255,0.06); border:1px solid var(--border-glow); color:var(--purple); cursor:pointer; }
.cal-title { font-size:12px; font-weight:bold; color:#fff; }
.cal-days-grid { display:grid; grid-template-columns:repeat(7, 1fr); text-align:center; font-size:10px; color:var(--subtext); font-weight:bold; margin-bottom:6px; }
.cal-dates-grid { display:grid; grid-template-columns:repeat(7, 1fr); gap:3px; text-align:center; font-size:11px; }
.cal-cell { height:26px; display:flex; align-items:center; justify-content:center; border-radius:7px; cursor:pointer; }
.cal-cell:active, .cal-cell.selected { background:rgba(203,166,247,0.3); border:1px solid var(--purple); color:#fff; }
.cal-cell.today { background:var(--purple); color:#111; font-weight:bold; box-shadow:0 0 8px var(--purple); }
.cal-cell.other-month { opacity:0.25; }
.cal-selected-info { margin-top:10px; padding:6px 10px; border-radius:8px; background:rgba(0,0,0,0.3); font-size:10px; color:var(--pink); text-align:center; }

/* ПАНЕЛЬ ВЛАСТИ */
.side-panel-drawer {
    position:fixed; top:12px; bottom:12px; right:12px; width:88%; max-width:340px;
    background:rgba(20, 18, 30, 0.94); backdrop-filter:blur(28px); -webkit-backdrop-filter:blur(28px);
    border:1px solid var(--border-glow); border-radius:22px;
    display:flex; flex-direction:column; padding:16px; z-index:300;
    box-shadow:-10px 0 40px rgba(0,0,0,0.7);
    transform:translateX(0); opacity:1;
    transition:transform 1.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 1.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.side-panel-drawer.hidden { transform:translateX(115%); opacity:0; pointer-events:none; }
.sp-header { display:flex; justify-content:space-between; align-items:center; font-size:13px; font-weight:bold; color:var(--purple); margin-bottom:14px; }
.sp-close { cursor:pointer; color:#f38ba8; font-size:16px; padding:4px; }

.sp-sliders { display:flex; flex-direction:column; gap:10px; margin-bottom:12px; }
.slider-group {
    background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08);
    border-radius:12px; padding:8px 12px; display:flex; align-items:center; gap:10px; color:var(--purple);
}
.slider-group input { flex:1; appearance:none; height:4px; border-radius:2px; background:rgba(255,255,255,0.15); outline:none; }
.slider-group input::-webkit-slider-thumb { appearance:none; width:14px; height:14px; border-radius:50%; background:var(--purple); cursor:pointer; }

.sp-action-tile {
    width:100%; padding:10px; background:rgba(255,255,255,0.05); border:1px solid var(--border-glow);
    border-radius:12px; color:var(--text); font-size:12px; font-weight:bold; margin-bottom:12px;
    display:flex; align-items:center; justify-content:center; gap:8px; cursor:pointer;
}
.sp-action-tile:active { background:var(--purple); color:#111; }

.sp-player-card {
    background:linear-gradient(135deg, rgba(203,166,247,0.15), rgba(245,194,231,0.08));
    border:1px solid var(--border-glow); border-radius:16px; padding:12px;
    display:flex; align-items:center; gap:12px; margin-bottom:14px;
}
.sp-player-art { width:42px; height:42px; border-radius:10px; background:rgba(0,0,0,0.3); display:flex; align-items:center; justify-content:center; font-size:20px; }
.sp-player-info { flex:1; overflow:hidden; }
.sp-track-name { font-size:12px; font-weight:bold; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sp-track-sub { font-size:10px; color:var(--subtext); }
.sp-player-btns { display:flex; gap:6px; }
.sp-btn {
    width:30px; height:30px; border-radius:8px; background:rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.1); color:var(--text); font-size:11px;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.sp-btn:active { background:var(--purple); color:#111; }
.sp-play { background:var(--purple); color:#111; font-weight:bold; }

.sp-pl-title-row { display:flex; justify-content:space-between; align-items:center; font-size:11px; font-weight:bold; color:var(--subtext); margin-bottom:8px; }
.sp-add-label { width:22px; height:22px; border-radius:6px; background:var(--purple); color:#111; display:flex; align-items:center; justify-content:center; font-size:11px; cursor:pointer; }
.sp-clear-btn { color:#f38ba8; cursor:pointer; font-size:10px; }
.sp-track-list { flex:1; overflow-y:auto; background:rgba(0,0,0,0.25); border-radius:12px; border:1px solid rgba(255,255,255,0.05); padding:6px; }
.sp-item { padding:8px 10px; font-size:11px; border-radius:8px; display:flex; justify-content:space-between; align-items:center; cursor:pointer; margin-bottom:2px; }
.sp-item:active, .sp-item.active { background:rgba(203,166,247,0.18); color:var(--purple); font-weight:bold; }
.sp-empty { padding:24px 12px; text-align:center; color:var(--subtext); font-size:11px; line-height:1.4; }

/* МОДАЛКА ОБОЕВ */
.wp-modal-card {
    position:fixed; top:50%; left:50%; transform:translate(-50%, -50%) scale(1);
    opacity:1; width:90%; max-width:360px; background:rgba(20, 18, 30, 0.94);
    backdrop-filter:blur(28px); -webkit-backdrop-filter:blur(28px);
    border:1px solid var(--border-glow); border-radius:22px; padding:16px; z-index:400;
    box-shadow:0 12px 40px rgba(0,0,0,0.7);
    transition:transform 1.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 1.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.wp-modal-card.hidden { transform:translate(-50%, -50%) scale(0.8); opacity:0; pointer-events:none; }
.wp-upload-btn {
    display:block; padding:10px; background:rgba(203,166,247,0.15); border:1px dashed var(--purple);
    border-radius:12px; text-align:center; font-size:12px; color:#fff; cursor:pointer; margin-bottom:12px;
}
.wp-grid-container { display:grid; grid-template-columns:1fr 1fr; gap:10px; max-height:240px; overflow-y:auto; }
.wp-thumb { height:80px; border-radius:10px; background-size:cover; background-position:center; border:1.5px solid rgba(255,255,255,0.1); cursor:pointer; }

/* ДОК */
.floating-dock {
    position:fixed; bottom:12px; left:50%; transform:translateX(-50%); height:48px;
    background:var(--bg-glass); backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px);
    border:1px solid var(--border-glow); border-radius:20px;
    display:flex; align-items:center; gap:10px; padding:0 14px; z-index:100;
    box-shadow:0 8px 30px rgba(0,0,0,0.5);
}
.dock-app {
    width:34px; height:34px; border-radius:10px; background:rgba(255,255,255,0.05);
    border:1px solid rgba(255,255,255,0.08); color:var(--purple);
    display:flex; align-items:center; justify-content:center; font-size:14px; cursor:pointer;
}
.dock-app:active { background:var(--purple); color:#111; transform:scale(1.1); }

/* AI Window & Fixes */
.ai-chat-card {
    position: fixed;
    top: 60px;
    bottom: 74px;
    left: 14px;
    right: 14px;
    max-width: 400px;
    margin: 0 auto;
    background: rgba(20, 18, 30, 0.95);
    backdrop-filter: blur(25px);
    -webkit-backdrop-filter: blur(25px);
    border: 1px solid rgba(203, 166, 247, 0.35);
    border-radius: 24px;
    padding: 16px;
    z-index: 500;
    display: flex;
    flex-direction: column;
    box-shadow: 0 14px 45px rgba(0,0,0,0.7);
}
.ai-chat-card.hidden { display: none !important; }
.ai-chat-logs { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; padding: 4px; }
.ai-msg { max-width: 85%; padding: 10px 14px; font-size: 13px; line-height: 1.4; border-radius: 14px; word-break: break-word; }
.ai-msg.bot { background: rgba(203, 166, 247, 0.16); border: 1px solid rgba(203, 166, 247, 0.3); color: #cdd6f4; align-self: flex-start; }
.ai-msg.user { background: #cba6f7; color: #11111b; font-weight: 500; align-self: flex-end; }
.ai-input-row { display: flex; gap: 8px; margin-top: 10px; background: rgba(0,0,0,0.4); border: 1px solid rgba(203, 166, 247, 0.35); border-radius: 14px; padding: 4px 8px; }
.ai-input-row input { flex: 1; background: transparent; border: none; color: #fff; font-size: 16px !important; outline: none; padding: 8px 6px; }
.ai-send-btn { width: 38px; height: 38px; border-radius: 10px; background: #cba6f7; border: none; color: #111; cursor: pointer; display: flex; align-items: center; justify-content: center; }

/* Исправляем размер окна AI */
.ai-chat-card {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 90% !important;
    max-width: 400px !important;
    height: 60% !important; /* Окно теперь занимает 60% экрана по высоте, а не весь */
    bottom: auto !important;
    max-height: 500px !important;
    background: rgba(20, 18, 30, 0.95);
    backdrop-filter: blur(25px);
    -webkit-backdrop-filter: blur(25px);
    border: 1px solid rgba(203, 166, 247, 0.35);
    border-radius: 24px;
    padding: 16px;
    z-index: 500;
    display: flex;
    flex-direction: column;
    box-shadow: 0 14px 45px rgba(0,0,0,0.7);
}

/* Полная блокировка зума */
html, body {
    touch-action: pan-x pan-y !important;
}

#aiUserInput, input, textarea {
    font-size: 16px !important;
    transform: translateZ(0);
    -webkit-text-size-adjust: 100%;
}
