*{margin:0;padding:0;box-sizing:border-box}

:root{
  /* Brand palette */
  --brand:#005f6d;
  --brand-dark:#0a7c88;
  --brand-light:#E8F0FE;
  --brand-glow:rgba(0,95,109,.12);
  --accent:#ff8c42;
  --accent-light:#FFF0EB;
  --danger:#E53935;
  --green:#00C853;

  /* Surfaces */
  --bg:#F0F2F5;
  --bg-gradient:linear-gradient(145deg,#E8ECF2 0%,#F0F2F5 40%,#F5F0EB 100%);
  --panel:#FFFFFF;
  --panel-glass:rgba(255,255,255,.82);
  --soft:#EDF0F4;
  --soft-hover:#E4E8EE;

  /* Bubbles */
  --bubble-own:linear-gradient(135deg,#005f6d 0%,#0a7c88 100%);
  --bubble-other:#FFFFFF;

  /* Text */
  --text:#1A1D21;
  --text-secondary:#65676B;
  --text-tertiary:#8A8D91;

  /* Borders & shadows */
  --border:rgba(0,0,0,.06);
  --border-strong:rgba(0,0,0,.10);
  --shadow-xs:0 1px 2px rgba(0,0,0,.04);
  --shadow-sm:0 2px 8px rgba(0,0,0,.06);
  --shadow-md:0 4px 16px rgba(0,0,0,.08);
  --shadow-lg:0 8px 32px rgba(0,0,0,.10);
  --shadow-xl:0 16px 48px rgba(0,0,0,.12);
  --shadow-glow:0 4px 24px rgba(0,95,109,.15);
  --shadow-float:0 12px 40px rgba(0,0,0,.14),0 2px 8px rgba(0,0,0,.06);

  /* Layout */
  --topbar-h:56px;
  --search-h:44px;
  --folders-h:46px;
  --composer-h:52px;
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --sidebar-w:380px;

  /* Motion */
  --ease:cubic-bezier(.4,0,.2,1);
  --transition:.18s var(--ease);
  --transition-slow:.28s var(--ease);

  /* Radius */
  --r-xs:6px;
  --r-sm:10px;
  --r-md:14px;
  --r-lg:18px;
  --r-xl:24px;
  --r-full:9999px;
}

html,body{width:100%;height:100%;overflow:hidden}

body{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Helvetica Neue",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  background:var(--bg-gradient);
  color:var(--text);
  line-height:1.4;
  letter-spacing:-.01em;
}

#app{width:100%;height:100%}

/* ===== AUTH ===== */
.screen-auth{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(ellipse at 20% 50%,rgba(0,95,109,.08) 0%,transparent 50%),
    radial-gradient(ellipse at 80% 20%,rgba(255,140,66,.06) 0%,transparent 40%),
    linear-gradient(160deg,#0A1628 0%,#0D2137 35%,#132D46 70%,#1A3A5C 100%);
}
.auth-container{width:100%;max-width:400px;padding:20px}
.auth-card{
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-radius:var(--r-xl);padding:36px 28px;
  box-shadow:var(--shadow-xl),0 0 0 1px rgba(255,255,255,.1);
  text-align:center;
}
.auth-logo{font-size:52px;margin-bottom:8px;filter:drop-shadow(0 4px 12px rgba(0,95,109,.2))}
.auth-title{
  font-size:26px;font-weight:800;margin-bottom:24px;
  background:linear-gradient(135deg,#005f6d,#0a7c88);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
}
.auth-input{
  width:100%;padding:13px 16px;margin:5px 0;
  border:1.5px solid var(--soft);border-radius:var(--r-md);
  font-size:15px;outline:none;background:var(--soft);color:var(--text);
  transition:all var(--transition);
}
.auth-input:focus{
  border-color:var(--brand);background:#fff;
  box-shadow:0 0 0 3px var(--brand-glow);
}
.auth-btn{
  width:100%;padding:14px;margin-top:10px;border:none;border-radius:var(--r-md);
  font-size:15px;font-weight:700;cursor:pointer;
  background:linear-gradient(135deg,#005f6d 0%,#0a7c88 100%);
  color:#fff;box-shadow:var(--shadow-glow);
  transition:all var(--transition);
}
.auth-btn:hover{transform:translateY(-1px);box-shadow:0 6px 28px rgba(0,95,109,.25)}
.auth-btn:active{transform:translateY(0);box-shadow:var(--shadow-sm)}
.auth-btn.secondary{
  background:transparent;border:1.5px solid var(--brand);
  color:var(--brand);box-shadow:none;
}
.auth-btn.secondary:hover{background:var(--brand-light)}

/* ===== APP SHELL ===== */
.app-shell{width:100%;height:100%;display:flex;overflow:hidden;background:transparent}
.sidebar-panel,.chat-panel,.desktop-empty-state{min-width:0;min-height:0;height:100%}

/* ===== MODALS ===== */
.modal-overlay{
  position:fixed;inset:0;
  background:rgba(0,0,0,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  z-index:9999;padding:16px;
}
.modal-container{
  width:min(92vw,400px);max-height:82vh;overflow:auto;
  background:var(--panel);border-radius:var(--r-xl);
  box-shadow:var(--shadow-float);
  border:1px solid var(--border);
}
.modal-header{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding:16px 18px;border-bottom:1px solid var(--border);
  font-weight:700;font-size:17px;
}
.modal-body{padding:16px 18px}
.modal-close{border:none;background:none;font-size:22px;color:var(--text-tertiary);cursor:pointer;transition:color var(--transition)}
.modal-close:hover{color:var(--text)}
.modal-btn{
  width:100%;border:none;border-radius:var(--r-md);
  background:linear-gradient(135deg,#005f6d 0%,#0a7c88 100%);
  color:#fff;padding:13px 16px;font-size:15px;font-weight:700;
  cursor:pointer;margin-top:8px;box-shadow:var(--shadow-sm);
  transition:all var(--transition);
}
.modal-btn:hover{box-shadow:var(--shadow-glow);transform:translateY(-1px)}
.modal-btn:active{transform:translateY(0)}
.modal-btn.logout-btn{background:linear-gradient(135deg,#E53935,#C62828);box-shadow:0 4px 16px rgba(229,57,53,.2)}

/* ===== IMAGE VIEWER ===== */
.image-viewer{
  position:fixed;inset:0;background:rgba(0,0,0,.92);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;
  z-index:12000;padding:16px;
}
.image-viewer-content{position:relative;max-width:92vw;max-height:92vh}
.full-image{max-width:100%;max-height:90vh;object-fit:contain;border-radius:var(--r-sm)}
.image-viewer-close{
  position:absolute;top:-44px;right:0;width:38px;height:38px;
  border:none;border-radius:var(--r-full);background:rgba(255,255,255,.12);
  color:#fff;font-size:20px;cursor:pointer;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  transition:background var(--transition);
}
.image-viewer-close:hover{background:rgba(255,255,255,.22)}

/* ===== PROFILE ===== */
.profile-avatar{
  width:84px;height:84px;border-radius:var(--r-full);margin:0 auto 14px;
  background:linear-gradient(135deg,#005f6d,#0a7c88);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:34px;overflow:hidden;cursor:pointer;
  box-shadow:var(--shadow-glow);
  transition:transform var(--transition);
}
.profile-avatar:hover{transform:scale(1.04)}
.profile-avatar img{width:100%;height:100%;object-fit:cover}
.profile-name{text-align:center;font-size:20px;font-weight:700;margin-bottom:4px}
.profile-email{text-align:center;font-size:14px;color:var(--text-secondary);margin-bottom:18px}

/* ===== NOTEBOOK ===== */
.notebook-actions{display:grid;gap:8px;margin-bottom:14px}
.notebook-list{display:flex;flex-direction:column}
.chat-select-item{
  display:flex;align-items:center;gap:12px;padding:10px 12px;
  border-bottom:1px solid var(--border);cursor:pointer;
  transition:background var(--transition);border-radius:var(--r-sm);
}
.chat-select-item:hover{background:var(--soft)}
.chat-select-item:last-child{border-bottom:none}
.chat-avatar-small{
  width:42px;height:42px;border-radius:var(--r-full);
  background:linear-gradient(135deg,#005f6d,#0a7c88);color:#fff;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;flex-shrink:0;font-size:16px;font-weight:600;
  box-shadow:var(--shadow-xs);
}
.chat-avatar-small img{width:100%;height:100%;object-fit:cover;display:block}
.chat-avatar-small .brand-mark{width:100%;height:100%;animation:ayaPulse 4s cubic-bezier(0.4,0,0.2,1) infinite}
.chat-avatar-small:has(.brand-mark){background:none;box-shadow:none;overflow:visible}

/* ===== MISC ===== */
.empty-state-inline{padding:24px;text-align:center;color:var(--text-tertiary);font-size:15px}
.context-menu{
  position:fixed;min-width:190px;background:var(--panel);border-radius:var(--r-md);
  box-shadow:var(--shadow-float);padding:6px;z-index:10000;
  border:1px solid var(--border);
}
.context-menu-item{padding:10px 14px;border-radius:var(--r-sm);cursor:pointer;font-size:14px;transition:background var(--transition)}
.context-menu-item:hover{background:var(--soft)}
.context-menu-item.danger{color:var(--danger)}

/* ===== DARK THEME ===== */
body.dark-theme{
  --bg:#0D1117;
  --bg-gradient:linear-gradient(145deg,#0D1117 0%,#111820 50%,#161D27 100%);
  --panel:#1C2128;
  --panel-glass:rgba(28,33,40,.88);
  --soft:#2D333B;
  --soft-hover:#373E47;
  --bubble-own:linear-gradient(135deg,#005f6d 0%,#0a7c88 100%);
  --bubble-other:#2D333B;
  --text:#E6EDF3;
  --text-secondary:#8B949E;
  --text-tertiary:#6E7681;
  --border:rgba(255,255,255,.06);
  --border-strong:rgba(255,255,255,.10);
  --brand-light:rgba(0,95,109,.12);
  --brand-glow:rgba(0,95,109,.18);
}
body.dark-theme .auth-card{background:rgba(28,33,40,.95);border:1px solid var(--border)}
body.dark-theme .modal-container,
body.dark-theme .context-menu{background:var(--panel);border-color:var(--border-strong)}

/* ===== KEYFRAMES ===== */
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
/* UI Polish */
.header-btn { width:36px;height:36px;border-radius:12px;display:grid;place-items:center;font-size:16px;background:rgba(0,95,109,0.08);border:none;cursor:pointer;transition:all 0.2s }
.header-btn:hover { background:rgba(0,95,109,0.15) }
.folder-chip { padding:6px 14px;border-radius:20px;font-size:13px;font-weight:500;background:rgba(0,95,109,0.06);border:1px solid rgba(0,95,109,0.12);cursor:pointer;transition:all 0.2s;white-space:nowrap }
.folder-chip:hover,.folder-chip.active { background:var(--brand,#005f6d);color:#fff;border-color:var(--brand,#005f6d);box-shadow:0 2px 8px rgba(0,95,109,0.2) }
.chat-item-mobile { border-radius:12px;transition:background 0.15s }
.chat-item-mobile:hover { background:rgba(0,95,109,0.05) }
.folder-add { opacity:0.6;font-size:18px;padding:4px 12px }
.folder-add:hover { opacity:1 }

/* Modal polish */
.notebook-actions { display:flex;flex-direction:column;gap:6px }
.notebook-actions .modal-btn { 
    background:var(--panel);color:var(--text);
    border:1px solid var(--border);font-weight:600;
    box-shadow:none;margin-top:0;
    display:flex;align-items:center;justify-content:center;gap:8px;
}
.notebook-actions .modal-btn:hover { 
    background:rgba(0,95,109,0.08);border-color:var(--brand);
    box-shadow:0 2px 8px rgba(0,95,109,0.12);
}
.notebook-actions .modal-btn:last-child {
    margin-top:4px;border-style:dashed;opacity:0.8;
}
/* Profile modal polish */
.profile-modal .modal-btn { margin-top:6px }
/* Chat menu polish */  
.chat-settings-modal .modal-btn { margin-top:6px }
.chat-settings-modal .modal-btn.logout-btn,
.chat-settings-modal .modal-btn:last-child { margin-top:12px }
/* Folder chips polish */
.folders-bar { padding:8px 12px 4px }
.folders-scroll { display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none }
.folders-scroll::-webkit-scrollbar { display:none }
.folder-chip { 
    padding:6px 16px;border-radius:20px;font-size:13px;font-weight:600;
    background:rgba(0,95,109,0.08);border:1px solid transparent;
    cursor:pointer;transition:all 0.25s ease;white-space:nowrap;color:var(--text-secondary);
}
.folder-chip:hover { background:rgba(0,95,109,0.14) }
.folder-chip.active { 
    background:var(--brand,#005f6d);color:#fff;
    box-shadow:0 2px 10px rgba(0,95,109,0.25);
}
.folder-add { opacity:0.5;font-size:16px;padding:6px 12px }
.folder-add:hover { opacity:0.8 }
/* Chat list item polish */
.chat-item-mobile { 
    padding:10px 12px;border-radius:14px;
    transition:background 0.2s ease;
    border:1px solid transparent;
}
.chat-item-mobile:hover,.chat-item-mobile:active { 
    background:rgba(0,95,109,0.05);
}
.chat-avatar-small { 
    width:48px;height:48px;border-radius:50%;overflow:hidden;
    flex:0 0 48px;
}

/* ===== BOTTOM SHEET ===== */
.bottom-sheet-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.45);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  z-index:10000;opacity:0;transition:opacity .3s var(--ease);
}
.bottom-sheet-overlay.show{opacity:1}
.bottom-sheet{
  position:fixed;bottom:0;left:0;right:0;
  background:var(--panel);
  border-radius:20px 20px 0 0;
  padding:12px 16px calc(16px + var(--safe-bottom));
  transform:translateY(100%);
  transition:transform .3s var(--ease);
  z-index:10001;
  box-shadow:0 -8px 40px rgba(0,0,0,.15);
}
.bottom-sheet.show{transform:translateY(0)}
.bottom-sheet-handle{
  width:36px;height:4px;border-radius:2px;
  background:var(--text-tertiary);opacity:.3;
  margin:0 auto 14px;
}
.bottom-sheet-title{
  font-size:16px;font-weight:700;color:var(--text);
  margin-bottom:14px;padding:0 4px;
}
.sheet-btn{
  width:100%;display:flex;align-items:center;gap:12px;
  padding:14px 16px;margin:0;border:none;
  background:var(--soft);border-radius:var(--r-md);
  font-size:15px;font-weight:600;color:var(--text);
  cursor:pointer;transition:background .2s;
  margin-bottom:8px;
}
.sheet-btn:last-child{margin-bottom:0}
.sheet-btn:hover,.sheet-btn:active{background:var(--soft-hover)}
.sheet-btn.danger{color:var(--danger)}
.sheet-btn .sheet-icon{font-size:20px;width:28px;text-align:center}

/* ===== ACTION SHEET (New Chat) ===== */
.action-sheet-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.45);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  z-index:10000;opacity:0;transition:opacity .3s var(--ease);
}
.action-sheet-overlay.show{opacity:1}
.action-sheet{
  position:fixed;bottom:0;left:0;right:0;
  background:var(--panel);
  border-radius:20px 20px 0 0;
  padding:12px 16px calc(16px + var(--safe-bottom));
  transform:translateY(100%);
  transition:transform .3s var(--ease);
  z-index:10001;
  box-shadow:0 -8px 40px rgba(0,0,0,.15);
}
.action-sheet.show{transform:translateY(0)}
.action-sheet-handle{
  width:36px;height:4px;border-radius:2px;
  background:var(--text-tertiary);opacity:.3;
  margin:0 auto 14px;
}
.action-sheet-title{
  font-size:17px;font-weight:700;color:var(--text);
  margin-bottom:14px;padding:0 4px;
}
.action-item{
  width:100%;display:flex;align-items:center;gap:14px;
  padding:15px 16px;margin:0 0 6px;border:none;
  background:var(--soft);border-radius:var(--r-md);
  font-size:15px;font-weight:600;color:var(--text);
  cursor:pointer;transition:background .2s;
}
.action-item:last-child{margin-bottom:0}
.action-item:hover,.action-item:active{background:var(--soft-hover)}
.action-item .action-icon{
  width:42px;height:42px;border-radius:var(--r-sm);
  display:flex;align-items:center;justify-content:center;
  font-size:22px;flex-shrink:0;
  background:var(--brand-light);
}
.action-item .action-label{
  display:flex;flex-direction:column;gap:2px;text-align:left;
}
.action-item .action-label span:first-child{font-size:15px;font-weight:600}
.action-item .action-label span:last-child{font-size:12px;font-weight:400;color:var(--text-secondary)}
.action-item.dashed{border:1.5px dashed var(--border-strong);background:transparent}
.action-item.dashed:hover{background:var(--soft)}

/* ===== RENAME MODAL (inline input) ===== */
.rename-input{
  width:100%;padding:12px 14px;margin:8px 0 14px;
  border:1.5px solid var(--brand);border-radius:var(--r-md);
  font-size:15px;outline:none;background:var(--soft);color:var(--text);
}
.rename-input:focus{box-shadow:0 0 0 3px var(--brand-glow)}
.rename-actions{display:flex;gap:8px}
.rename-actions .sheet-btn{flex:1}
/* BOTTOM SHEET */
.bottom-sheet-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:10000;opacity:0;transition:opacity .3s ease}
.bottom-sheet-overlay.show{opacity:1}
.bottom-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--panel);border-radius:20px 20px 0 0;padding:12px 16px calc(16px + env(safe-area-inset-bottom,0px));transform:translateY(100%);transition:transform .3s ease;z-index:10001;box-shadow:0 -8px 40px rgba(0,0,0,.15)}
.bottom-sheet.show{transform:translateY(0)}
.bottom-sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--text-tertiary);opacity:.3;margin:0 auto 14px}
.bottom-sheet-title{font-size:16px;font-weight:700;color:var(--text);margin-bottom:14px;padding:0 4px}
.sheet-btn{width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;margin:0 0 8px;border:none;background:var(--soft);border-radius:14px;font-size:15px;font-weight:600;color:var(--text);cursor:pointer;transition:background .2s}
.sheet-btn:last-child{margin-bottom:0}
.sheet-btn:hover,.sheet-btn:active{background:var(--soft-hover)}
.sheet-btn.danger{color:#E53935}
.sheet-btn .sheet-icon{font-size:20px;width:28px;text-align:center}
/* ACTION SHEET */
.action-sheet-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:10000;opacity:0;transition:opacity .3s ease}
.action-sheet-overlay.show{opacity:1}
.action-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--panel);border-radius:20px 20px 0 0;padding:12px 16px calc(16px + env(safe-area-inset-bottom,0px));transform:translateY(100%);transition:transform .3s ease;z-index:10001;box-shadow:0 -8px 40px rgba(0,0,0,.15)}
.action-sheet.show{transform:translateY(0)}
.action-sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--text-tertiary);opacity:.3;margin:0 auto 14px}
.action-sheet-title{font-size:17px;font-weight:700;color:var(--text);margin-bottom:14px;padding:0 4px}
.action-item{width:100%;display:flex;align-items:center;gap:14px;padding:15px 16px;margin:0 0 6px;border:none;background:var(--soft);border-radius:14px;font-size:15px;font-weight:600;color:var(--text);cursor:pointer;transition:background .2s}
.action-item:last-child{margin-bottom:0}
.action-item:hover,.action-item:active{background:var(--soft-hover)}
.action-item .action-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;background:rgba(0,95,109,.08)}
.action-item .action-label{display:flex;flex-direction:column;gap:2px;text-align:left}
.action-item .action-label span:first-child{font-size:15px;font-weight:600}
.action-item .action-label span:last-child{font-size:12px;font-weight:400;color:var(--text-secondary)}
.action-item.dashed{border:1.5px dashed rgba(0,0,0,.1);background:transparent}
.action-item.dashed:hover{background:var(--soft)}
.rename-input{width:100%;padding:12px 14px;margin:8px 0 14px;border:1.5px solid var(--brand);border-radius:14px;font-size:15px;outline:none;background:var(--soft);color:var(--text)}
.rename-input:focus{box-shadow:0 0 0 3px rgba(0,95,109,.12)}
.rename-actions{display:flex;gap:8px}
.rename-actions .sheet-btn{flex:1}

/* Chat panel layout — input always at bottom */
.chat-panel {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    overflow: hidden !important;
}
.chat-header-mobile {
    flex: 0 0 auto;
    z-index: 10;
}
.messages-list-mobile {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
}
.input-area-mobile {
    flex: 0 0 auto;
    background: var(--panel, #1a1a1a);
    border-top: 1px solid var(--border, #404040);
    z-index: 10;
}

/* Fix: prevent body scroll when chat is open */
body.chat-open {
    overflow: hidden !important;
    position: fixed !important;
    width: 100% !important;
    height: 100% !important;
}
body.chat-open .chat-panel {
    position: fixed !important;
    inset: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    z-index: 50;
    background: var(--bg, #1a1a1a);
}
body.chat-open .messages-list-mobile {
    flex: 1 1 0 !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
}
body.chat-open .input-area-mobile {
    flex: 0 0 auto !important;
    position: relative !important;
    bottom: auto !important;
}
