:root{
  --navy:#1C2333;
  --navy-2:#252D42;
  --paper:#F7F7F4;
  --ink:#232733;
  --ink-soft:#6B7180;
  --line:#E4E3DD;
  --teal:#2E7D6B;
  --teal-soft:#E3EFEC;
  --amber:#D98A2B;
  --coral:#D9614A;
  --slate:#5B6478;
  --white:#FFFFFF;
  --radius:8px;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--paper);
  color:var(--ink);
  height:100vh;
  overflow:hidden;
}
a{color:inherit;text-decoration:none;}
.app{display:grid;grid-template-columns:220px 1fr;height:100vh;}

/* SIDEBAR */
.sidebar{background:var(--navy);color:#C7CCDA;display:flex;flex-direction:column;padding:20px 14px;overflow-y:auto;}
.brand{display:flex;align-items:center;gap:8px;color:var(--white);font-weight:700;font-size:15px;padding:0 6px 22px 6px;}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 3px rgba(46,125,107,.25);}
.nav-group{margin-bottom:22px;}
.nav-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7A8199;padding:0 10px 8px 10px;}
.nav-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:6px;font-size:13.5px;cursor:pointer;color:#C7CCDA;}
.nav-item:hover{background:var(--navy-2);}
.nav-item.active{background:var(--teal);color:var(--white);font-weight:600;}
.nav-item .count{font-size:11px;background:rgba(255,255,255,.12);padding:1px 7px;border-radius:20px;}
.nav-item.active .count{background:rgba(255,255,255,.22);}
.tag-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:8px;flex-shrink:0;}
.tag-row{display:flex;align-items:center;font-size:13px;padding:6px 10px;color:#C7CCDA;cursor:pointer;border-radius:6px;}
.tag-row:hover{background:var(--navy-2);}
.tag-row.active{background:var(--navy-2);color:#fff;}

/* MAIN */
.main{display:flex;flex-direction:column;min-width:0;min-height:0;}
.topbar{height:56px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--white);flex-shrink:0;}
.search{flex:1;max-width:420px;background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:7px 12px;font-size:13px;color:var(--ink);}
.user-chip{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);}
.avatar{width:28px;height:28px;border-radius:50%;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;}

.view{flex:1;min-height:0;display:flex;}

/* INBOX */
#inboxView{overflow:hidden;}
.email-list{width:340px;border-right:1px solid var(--line);overflow-y:auto;background:var(--white);flex-shrink:0;}
.email-row{display:block;padding:13px 16px;border-bottom:1px solid var(--line);cursor:pointer;}
.email-row:hover{background:var(--paper);}
.email-row.selected{background:var(--teal-soft);border-left:3px solid var(--teal);padding-left:13px;}
.email-row-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:3px;}
.email-sender{font-size:13.5px;font-weight:600;color:var(--ink);}
.email-time{font-size:11px;color:var(--ink-soft);}
.email-subject{font-size:13px;color:var(--ink);margin-bottom:3px;}
.email-snippet{font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px;}
.row-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.chip{font-size:10.5px;padding:2px 8px;border-radius:20px;font-weight:600;display:inline-flex;align-items:center;gap:4px;}
.chip.assignee{background:#EDEEF2;color:var(--slate);}
.chip.assignee .mini-avatar{width:14px;height:14px;border-radius:50%;background:var(--slate);color:#fff;font-size:8px;display:flex;align-items:center;justify-content:center;font-weight:700;}
.empty-list{padding:30px 18px;color:var(--ink-soft);font-size:13px;}

.thread-pane{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--paper);}
.thread-header{padding:16px 24px;background:var(--white);border-bottom:1px solid var(--line);}
.thread-subject{font-size:17px;font-weight:700;margin-bottom:10px;}
.thread-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.ctrl-select,select,input[type=text],input[type=date],input[type=time]{font-size:12.5px;border:1px solid var(--line);border-radius:6px;padding:6px 10px;background:var(--white);color:var(--ink);font-family:inherit;}
.btn{font-size:12.5px;border:1px solid var(--line);border-radius:6px;padding:6px 12px;background:var(--white);color:var(--ink);cursor:pointer;font-weight:600;font-family:inherit;}
.btn:hover{border-color:var(--teal);color:var(--teal);}
.btn.primary{background:var(--teal);color:#fff;border-color:var(--teal);}
.btn.primary:hover{opacity:.9;color:#fff;}
.btn.danger:hover{border-color:var(--coral);color:var(--coral);}

.thread-body{flex:1;overflow-y:auto;padding:20px 24px;}
.message{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:14px;}
.message.outgoing{border-left:3px solid var(--teal);}
.message-head{display:flex;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:4px;}
.message-from{font-size:13px;font-weight:700;}
.message-date{font-size:11.5px;color:var(--ink-soft);}
.message-text{font-size:13.5px;line-height:1.6;color:#3A3F4B;white-space:pre-wrap;}
.attachment{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;background:var(--paper);border:1px solid var(--line);padding:4px 10px;border-radius:6px;margin-top:8px;margin-right:6px;color:var(--slate);}

.reply-box{margin:0 24px 20px 24px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;}
.reply-box textarea{width:100%;border:1px solid var(--line);border-radius:6px;resize:vertical;font-family:inherit;font-size:13px;outline:none;color:var(--ink);height:80px;padding:8px;}
.reply-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px;flex-wrap:wrap;gap:8px;}
.reply-mode{display:flex;gap:6px;margin-bottom:8px;}
.reply-mode label{font-size:12px;display:flex;align-items:center;gap:4px;color:var(--ink-soft);}

/* CALENDAR */
#calendarView{padding:20px 24px;gap:20px;overflow-y:auto;}
.cal-main{flex:1;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:18px;min-width:0;}
.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.cal-head h2{font-size:16px;margin:0;}
.cal-nav{display:flex;gap:6px;}
.cal-nav a{width:28px;height:28px;border:1px solid var(--line);background:var(--white);border-radius:6px;cursor:pointer;color:var(--ink-soft);display:flex;align-items:center;justify-content:center;}
.cal-nav a:hover{border-color:var(--teal);color:var(--teal);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.cal-dow{font-size:10.5px;text-transform:uppercase;color:var(--ink-soft);text-align:center;padding-bottom:6px;font-weight:700;letter-spacing:.05em;}
.cal-cell{aspect-ratio:1/.85;border:1px solid var(--line);border-radius:6px;padding:6px;font-size:12px;color:var(--ink);cursor:pointer;position:relative;background:var(--white);display:block;}
.cal-cell:hover{border-color:var(--teal);}
.cal-cell.muted{color:#C7C9D1;background:#FBFBFA;cursor:default;}
.cal-cell.selected{background:var(--teal-soft);border-color:var(--teal);}
.cal-cell.today{font-weight:700;color:var(--teal);}
.cal-dots{position:absolute;bottom:6px;left:6px;display:flex;gap:3px;}
.cal-dots span{width:5px;height:5px;border-radius:50%;display:inline-block;}

.cal-side{width:320px;flex-shrink:0;display:flex;flex-direction:column;gap:14px;}
.side-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;}
.side-card h3{font-size:12.5px;margin:0 0 10px 0;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;}
.event-item{display:block;padding:9px 10px;border-radius:6px;margin-bottom:6px;cursor:pointer;border-left:3px solid var(--teal);background:var(--paper);}
.event-item:hover,.event-item.selected{background:var(--teal-soft);}
.event-title{font-size:13px;font-weight:600;margin-bottom:2px;}
.event-time{font-size:11px;color:var(--ink-soft);}
.linked-email{font-size:12px;padding:8px 10px;background:var(--paper);border-radius:6px;margin-bottom:6px;color:var(--slate);display:block;}
.linked-email b{color:var(--ink);display:block;font-size:12.5px;margin-bottom:2px;}
.empty-hint{font-size:12px;color:var(--ink-soft);font-style:italic;}

form.inline{display:inline;}
.field-row{margin-bottom:10px;}
.field-row label{display:block;font-size:12px;color:var(--ink-soft);margin-bottom:4px;font-weight:600;}
.field-row select,.field-row input{width:100%;}
.checkbox-list{max-height:120px;overflow-y:auto;border:1px solid var(--line);border-radius:6px;padding:8px;}
.checkbox-list label{display:flex;align-items:center;gap:6px;font-size:12.5px;padding:3px 0;font-weight:400;color:var(--ink);}

.flash{padding:10px 16px;background:var(--teal-soft);color:var(--teal);font-size:13px;border-bottom:1px solid var(--line);}
.flash.error{background:#FBE7E3;color:var(--coral);}

@media (max-width:900px){
  .app{grid-template-columns:1fr;}
  .sidebar{position:fixed;bottom:0;left:0;right:0;top:auto;flex-direction:row;overflow-x:auto;padding:8px 10px;z-index:10;height:60px;}
  .brand,.nav-label,.tag-row{display:none;}
  .nav-group{display:flex;margin:0;gap:6px;}
  .nav-item{white-space:nowrap;}
  .main{padding-bottom:60px;}
  #inboxView{flex-direction:column;}
  .email-list{width:100%;max-height:40%;}
  #calendarView{flex-direction:column;}
  .cal-side{width:100%;}
}
