/* OpenClaw Dashboard - reorganized layout with sidebar navigation and tab panels */
:root{
  --bg: #071428;
  --card: #0b1220;
  --muted: #9aa6b2;
  --accent: #00bcd4;
  --glass: rgba(255,255,255,0.02);
  --glass-2: rgba(255,255,255,0.03);
  --radius: 10px;
  --shadow: 0 8px 30px rgba(2,6,23,0.6);
  --text: #e6eef6;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
  background: linear-gradient(180deg, var(--bg) 0%, #021522 100%);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

#dashboard{max-width:1200px;margin:28px auto;padding:18px}
header h1{margin:0 0 18px 0;font-weight:600;letter-spacing:-0.4px}

/* Layout */
.layout{display:grid;grid-template-columns:320px 1fr;gap:20px}

/* Sidebar */
#sidebar{background:linear-gradient(180deg,var(--glass), rgba(255,255,255,0.01));padding:16px;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid rgba(255,255,255,0.03);display:flex;flex-direction:column;height:calc(100vh - 140px);} 
.sidebar-top{margin-bottom:12px}
.brand{font-weight:700;font-size:18px;margin-bottom:12px}
.nav-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.nav-btn{background:transparent;border:0;color:var(--text);text-align:left;padding:10px;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px}
.nav-btn:hover{background:rgba(255,255,255,0.02)}
.nav-btn.active, .nav-btn[aria-selected="true"]{background:linear-gradient(90deg, rgba(0,188,212,0.08), rgba(255,255,255,0.01));color:var(--accent);box-shadow:inset 0 -1px 0 rgba(255,255,255,0.02)}

.sidebar-widgets{margin-top:8px;overflow:auto;padding-right:4px;display:flex;flex-direction:column;gap:12px}
.widget{background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));border-radius:8px;padding:12px;box-shadow:0 8px 24px rgba(2,6,23,0.45);border:1px solid rgba(255,255,255,0.03)}
.widget-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.widget-header h2{margin:0;font-size:13px;color:var(--muted);font-weight:700}

.clock-widget{background:linear-gradient(135deg, rgba(0,188,212,0.03), rgba(255,255,255,0.01));}
.clock-body{text-align:center;padding:6px}
.time{font-size:30px;font-weight:700;letter-spacing:0.6px}
.date{font-size:12px;color:var(--muted);margin-top:6px}

.weather-widget{display:flex;flex-direction:column}
.weather-body{display:flex;flex-direction:column;padding:6px}
.weather-main{display:flex;align-items:center;gap:12px}
.weather-icon{width:48px;height:48px;border-radius:6px;background:rgba(255,255,255,0.03);object-fit:contain}
.weather-temp{font-size:22px;font-weight:700}
.weather-cond{font-size:12px;color:var(--muted)}
.weather-details{display:flex;flex-direction:column;gap:6px;margin-top:8px;color:var(--muted);font-size:12px}

.sidebar-footer{margin-top:8px;color:var(--muted);font-size:12px}

/* Content area */
.content{background:var(--glass-2);padding:20px;border-radius:var(--radius);box-shadow:var(--shadow);min-height:320px}
.tab-panel{display:none;opacity:0;transform:translateY(6px);transition:opacity .18s ease, transform .18s ease}
.tab-panel.active{display:block;opacity:1;transform:none}
.card{background:linear-gradient(180deg, rgba(255,255,255,0.01), rgba(255,255,255,0.005));padding:16px;border-radius:8px;border:1px solid rgba(255,255,255,0.02)}

/* Today grid inside Today tab */
.grid{display:grid;grid-template-columns:1fr 360px;gap:14px}
.today-card{display:flex;flex-direction:column;gap:12px}
.today-header{display:flex;justify-content:space-between;align-items:center}
.today-date{font-size:20px;font-weight:700}
.today-weekday{font-size:12px}
.today-summary{font-size:13px;color:var(--muted);max-width:240px;text-align:right}
.today-stats{display:flex;gap:12px;color:var(--muted);font-size:13px;flex-wrap:wrap}

.today-stat{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;background:rgba(255,255,255,0.01);border-radius:8px;border:1px solid rgba(255,255,255,0.02)}
.stat-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:rgba(255,255,255,0.02);font-size:16px}
.stat-label{font-size:13px;color:var(--muted)}
.stat-count{font-weight:800;color:var(--text);background:linear-gradient(90deg, rgba(0,188,212,0.12), rgba(255,255,255,0.01));padding:4px 8px;border-radius:6px;margin-left:6px;color:var(--accent)}
.stat-sub{color:var(--muted);margin-left:6px;font-size:12px}

.todo-card{display:flex;flex-direction:column}
.todo-header{display:flex;justify-content:space-between;align-items:center}
.todo-list{list-style:none;padding:0;margin:8px 0;max-height:220px;overflow:auto}
.todo-item{display:flex;align-items:center;gap:10px;padding:6px;border-radius:6px}
.todo-item label{flex:1}
.todo-form{display:flex;gap:8px}
.todo-form input{flex:1;padding:8px;border-radius:6px;border:1px solid rgba(255,255,255,0.03);background:transparent;color:var(--text)}
.btn{background:var(--accent);border:0;color:#022;padding:8px 10px;border-radius:6px;cursor:pointer;font-weight:700}
.btn.small{padding:6px 8px;font-size:12px}
.btn-icon{background:transparent;border:0;color:var(--muted);cursor:pointer;padding:6px;border-radius:6px}

.log-card{display:flex;flex-direction:column}
.log-header{display:flex;justify-content:space-between;align-items:center}
.log-controls{display:flex;gap:8px;align-items:center}
.system-log{background:#031420;border-radius:8px;padding:10px;height:320px;overflow:auto;border:1px solid rgba(255,255,255,0.03)}
.log-row{display:grid;grid-template-columns:80px 60px 1fr;gap:8px;padding:8px;border-bottom:1px solid rgba(255,255,255,0.01)}
.log-time{color:var(--muted);font-size:12px}
.log-level{font-weight:700;font-size:12px;color:var(--accent)}
.log-msg{font-size:13px}
.log-meta{grid-column:1/-1;background:rgba(255,255,255,0.01);padding:8px;border-radius:6px;margin-top:8px;color:var(--muted);font-size:12px}
.log-row.warn .log-level{color:#ffb703}
.log-row.error .log-level{color:#ff6b6b}

/* Small utilities */
.muted{color:var(--muted)}

/* Responsive */
@media (max-width:980px){
  .layout{grid-template-columns:1fr;}
  #sidebar{height:auto}
  .sidebar-widgets{order:2}
  .grid{grid-template-columns:1fr;}
}

/* Accessibility focus */
.nav-btn:focus{outline:2px solid rgba(0,188,212,0.14);outline-offset:2px}
.widget:focus-within{outline:2px solid rgba(0,188,212,0.07)}

/* scrollbars for sidebar widgets (subtle) */
.sidebar-widgets::-webkit-scrollbar{width:8px}
.sidebar-widgets::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.03);border-radius:8px}

/* system log scrollbar */
.system-log::-webkit-scrollbar{height:8px;width:8px}
.system-log::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.03);border-radius:8px}

/* Toast / notifications */
.toast{position:fixed;right:20px;bottom:20px;background:linear-gradient(180deg, rgba(0,0,0,0.6), rgba(255,255,255,0.02));color:var(--text);padding:12px 16px;border-radius:8px;box-shadow:0 8px 30px rgba(0,0,0,0.6);border:1px solid rgba(255,255,255,0.03);opacity:0;transform:translateY(12px);transition:opacity .28s ease, transform .28s cubic-bezier(.2,.9,.2,1);z-index:9999}
.toast.show{opacity:1;transform:none}
.toast.info{background:linear-gradient(180deg, rgba(0,188,212,0.06), rgba(0,0,0,0.4))}
.toast.warn{background:linear-gradient(180deg, rgba(255,183,3,0.06), rgba(0,0,0,0.4));color:#fff}
.toast.error{background:linear-gradient(180deg, rgba(255,107,107,0.06), rgba(0,0,0,0.4));color:#fff}

/* loading state for buttons */
.loading{position:relative;opacity:0.85}
.loading:after{content:"";position:absolute;right:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,0.12);border-top-color:var(--accent);animation:spin .9s linear infinite}
@keyframes spin{to{transform:translateY(-50%) rotate(360deg)}}

/* subtle transitions */
.card, .widget, .nav-btn, .btn{transition:box-shadow .18s ease, transform .12s ease, background-color .12s ease}
.nav-btn:hover{transform:translateX(4px)}

/* compact density adjustments */
#dashboard{max-width:1300px;margin:18px auto;padding:12px}
.card{padding:12px;border-radius:10px}
.today-stats{gap:10px;flex-wrap:wrap;display:flex}

/* tooltips (simple) */
[data-tooltip]{position:relative}
[data-tooltip]:hover::after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);right:0;background:#0b1220;color:var(--muted);padding:6px 8px;border-radius:6px;font-size:12px;border:1px solid rgba(255,255,255,0.02)}

/* Schedule list styles */
.schedule-list{display:flex;flex-direction:column;gap:10px}
.schedule-item{display:flex;justify-content:space-between;align-items:flex-start;padding:10px;border-radius:8px;border:1px solid rgba(255,255,255,0.02);background:rgba(255,255,255,0.01)}
.schedule-left{flex:1}
.schedule-title{font-weight:700;margin-bottom:4px}
.schedule-desc{font-size:13px;margin-top:6px}
.schedule-right{margin-left:12px;white-space:nowrap}
.schedule-tag{display:inline-block;padding:6px 8px;border-radius:8px;font-weight:700;font-size:12px}
.schedule-tag.due-today{background:linear-gradient(90deg, rgba(0,188,212,0.12), rgba(0,0,0,0.02));color:var(--accent)}
.schedule-tag.overdue{background:linear-gradient(90deg, rgba(255,107,107,0.06), rgba(0,0,0,0.02));color:#ff6b6b}
.schedule-tag.future{background:rgba(255,255,255,0.01);color:var(--muted)}