/* Social sign-in provider logos */
.login-card>button.btn.btn-outline{position:relative;padding-left:44px;text-align:left}
.login-card>button.btn.btn-outline::before{content:"";position:absolute;left:16px;top:50%;width:20px;height:20px;transform:translateY(-50%);background-size:contain;background-repeat:no-repeat;background-position:center}
.login-card>button.btn.btn-outline:nth-of-type(1)::before{background-image:url("/assets/images/google-logo.svg")}
.login-card>button.btn.btn-outline:nth-of-type(2)::before{background-image:url("/assets/images/apple-logo.svg")}
:root{--primary-green: #4CAF50;--primary-green-dark: #388E3C;--primary-green-light: #C8E6C9;--primary-green-50: #E8F5E9;--background: #FAFAFA;--surface: #FFFFFF;--text-primary: #212121;--text-secondary: #757575;--text-muted: #9E9E9E;--border: #E0E0E0;--border-light: #F0F0F0;--danger: #E53935;--warning: #FF9800;--info: #2196F3;--sidebar-width: 240px;--header-height: 56px;--radius: 8px;--radius-lg: 12px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--background);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--primary-green);text-decoration:none}a:hover{text-decoration:underline}.app-layout{display:flex;min-height:100vh}.app-sidebar{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:transform .2s ease}.app-sidebar .logo{padding:20px 20px 16px;font-size:20px;font-weight:700;color:var(--primary-green);border-bottom:1px solid var(--border-light);display:flex;align-items:center;gap:8px}.app-sidebar nav{flex:1;padding:12px 8px;overflow-y:auto}.app-sidebar nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);color:var(--text-secondary);font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s}.app-sidebar nav a:hover{background:var(--primary-green-50);color:var(--text-primary);text-decoration:none}.app-sidebar nav a.active{background:var(--primary-green-50);color:var(--primary-green);font-weight:600}.app-main{margin-left:var(--sidebar-width);flex:1;display:flex;flex-direction:column;min-height:100vh}.app-header{height:var(--header-height);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:50}.app-header .user-info{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-secondary)}.app-header .user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;background:var(--primary-green-light)}.app-header .menu-toggle{display:none;background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-primary);padding:4px}.app-content{padding:24px;flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius);font-size:14px;font-weight:600;border:none;cursor:pointer;transition:background .15s,opacity .15s}.btn-primary{background:var(--primary-green);color:#fff}.btn-primary:hover{background:var(--primary-green-dark)}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text-primary)}.btn-outline:hover{background:var(--primary-green-50)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:6px 12px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-size:16px;font-weight:600}.page-title{font-size:24px;font-weight:700;margin-bottom:4px}.page-subtitle{color:var(--text-secondary);font-size:14px;margin-bottom:24px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat-card{text-align:center;padding:20px}.stat-value{font-size:28px;font-weight:700;color:var(--primary-green)}.stat-label{font-size:13px;color:var(--text-secondary);margin-top:4px}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:600}.badge-green{background:var(--primary-green-50);color:var(--primary-green)}.badge-orange{background:#fff3e0;color:#e65100}.badge-blue{background:#e3f2fd;color:#1565c0}.badge-gray{background:#f5f5f5;color:var(--text-secondary)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border-light);font-size:14px}th{font-weight:600;color:var(--text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.5px}tr:hover td{background:var(--primary-green-50)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state .icon{font-size:48px;margin-bottom:12px}.empty-state .message{font-size:15px}.spinner{display:inline-block;width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary-green);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-center{display:flex;justify-content:center;align-items:center;padding:60px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--primary-green-50)}.login-card{background:var(--surface);border-radius:var(--radius-lg);padding:40px;width:100%;max-width:400px;box-shadow:0 4px 24px #00000014;text-align:center}.login-card .logo{font-size:28px;font-weight:700;color:var(--primary-green);margin-bottom:8px}.login-card .tagline{color:var(--text-secondary);font-size:14px;margin-bottom:32px}.login-card .divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--text-muted);font-size:13px}.login-card .divider:before,.login-card .divider:after{content:"";flex:1;height:1px;background:var(--border)}.login-card input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;outline:none;transition:border-color .15s;margin-bottom:12px}.login-card input:focus{border-color:var(--primary-green)}.login-card .btn{width:100%}.login-card .error{color:var(--danger);font-size:13px;margin-bottom:12px}.chat-layout{display:grid;grid-template-columns:280px 1fr;gap:16px;min-height:500px}.chat-list{list-style:none;padding:0;margin:0}.chat-list li{padding:12px 16px;border-bottom:1px solid var(--border-light);cursor:pointer;transition:background .1s}.chat-list li:hover,.chat-list li.active{background:var(--primary-green-50)}.chat-list li .name{font-weight:600;font-size:14px}.chat-list li .preview{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-messages{display:flex;flex-direction:column;gap:8px;padding:16px;overflow-y:auto;max-height:500px}.chat-bubble{max-width:70%;padding:10px 14px;border-radius:12px;font-size:14px;line-height:1.4}.chat-bubble.mine{align-self:flex-end;background:var(--primary-green);color:#fff}.chat-bubble.theirs{align-self:flex-start;background:#f0f0f0;color:var(--text-primary)}.chat-bubble .time{font-size:11px;opacity:.7;margin-top:4px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-day{min-height:80px;padding:8px;border:1px solid var(--border-light);border-radius:var(--radius);font-size:13px}.calendar-day .date-label{font-weight:600;font-size:12px;color:var(--text-secondary);margin-bottom:4px}.calendar-day .task-chip{background:var(--primary-green-50);color:var(--primary-green-dark);padding:2px 6px;border-radius:4px;font-size:11px;margin-bottom:2px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-day .task-chip.completed{opacity:.5;text-decoration:line-through}.score-ring{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;border:4px solid var(--primary-green);font-size:22px;font-weight:700;color:var(--primary-green)}@media(max-width:768px){.app-sidebar{transform:translate(-100%)}.app-sidebar.open{transform:translate(0)}.app-main{margin-left:0}.app-header .menu-toggle{display:block}.app-content{padding:16px}.grid-2,.grid-3,.grid-4,.chat-layout{grid-template-columns:1fr}.calendar-grid{grid-template-columns:repeat(2,1fr)}}
