:root{
  --win-blue:#0a44b2;
  --win-blue-dark:#08388f;
  --win-gray:#d4d0c8;
  --win-gray-2:#efefef;
  --border:#6a6a6a;
  --shadow:#4b4b4b;
}

*{box-sizing:border-box}

body{
  margin:0;
  font-family:Tahoma, Verdana, Arial, sans-serif;
}

.desktop{
  height:100vh;
  overflow:hidden;
  background: linear-gradient(#1d64c6, #0b3b9e);
  position:relative;
}

/* Window shell */
.win{
  position:absolute;
  background:var(--win-gray);
  border:2px solid var(--border);
  box-shadow: 6px 6px 0 rgba(0,0,0,.35);
  user-select:none;
}
.hidden{display:none}

/* Titlebar */
.titlebar{
  height:28px;
  background:linear-gradient(to bottom, var(--win-blue), var(--win-blue-dark));
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 8px;
  cursor:move;
}
.title-text{
  font-size:12px;
  font-weight:bold;
}
.title-buttons{
  display:flex;
  gap:6px;
  align-items:center;
}
.tbbtn{
  width:22px;
  height:18px;
  border:1px solid #000;
  background:#cfcfcf;
  cursor:pointer;
  font-weight:bold;
  line-height:16px;
  text-align:center;
  padding:0;
}
.tbbtn:active{transform:translateY(1px)}

/* Menu bar */
.menubar{
  background:var(--win-gray-2);
  border-bottom:1px solid #9a9a9a;
  padding:4px 8px;
  font-size:12px;
  display:flex;
  gap:16px;
}

/* Header row */
.userrow{
  padding:8px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.sn{
  display:flex;
  gap:6px;
  align-items:center;
  font-size:12px;
}
.dash{opacity:.9}

.status-controls{
  display:flex;
  gap:6px;
  align-items:center;
  flex-wrap:wrap;
}

.select, .input, .textarea{
  font-family:inherit;
  font-size:12px;
  border:1px solid #000;
  background:#fff;
}
.select{padding:2px 4px;}
.input{padding:4px 6px; width:100%;}
.textarea{padding:6px; width:100%; resize:vertical;}

.btn{
  font-size:12px;
  padding:4px 8px;
  border:1px solid #000;
  background:#e6e6e6;
  cursor:pointer;
}
.btn:active{transform:translateY(1px)}
.btn.primary{background:#dbe7ff}
.btn.danger{background:#ffdcdc}
.btn-sound{width:34px; padding:4px 0; text-align:center;}

.buddy-pane{padding:8px;}
.buddylist{
  background:#fff;
  border:1px solid #000;
  padding:6px;
  height:410px;
  overflow:auto;
}

.group{margin-bottom:10px;}
.group-title{
  font-size:12px;
  font-weight:bold;
  margin-bottom:6px;
  border-bottom:1px solid #bbb;
  padding-bottom:4px;
}

.buddy-item{
  width:100%;
  text-align:left;
  font-size:12px;
  border:0;
  background:transparent;
  padding:3px 2px;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:8px;
}
.buddy-item:hover{background:#e9f1ff}

.statusbar{
  background:var(--win-gray-2);
  border-top:1px solid #9a9a9a;
  padding:6px 8px;
  font-size:11px;
  color:#222;
}

/* Away panels */
.panelwrap{padding:10px; display:flex; flex-direction:column; gap:10px;}
.panel{
  background:var(--win-gray-2);
  border:1px solid #000;
  padding:8px;
}
.panel-title{font-size:12px; font-weight:bold; margin-bottom:6px;}
.hint{font-size:11px; color:#333; margin-top:4px;}

.toolbar{
  background:#fff;
  border:1px solid #000;
  padding:4px;
  display:flex;
  gap:8px;
  margin-bottom:6px;
  font-size:12px;
}
.tool{padding:0 4px; border:1px solid #aaa; background:#f6f6f6}
.row{display:flex; justify-content:flex-end; gap:8px; margin-top:8px;}

.awaybox{
  background:#fff;
  border:1px solid #000;
  padding:8px;
  min-height:80px;
}
.away-date{font-size:11px; color:#444; margin-bottom:6px;}
.away-text{font-size:12px; white-space:pre-wrap;}

.archive{
  background:#fff;
  border:1px solid #000;
  padding:6px;
  height:140px;
  overflow:auto;
  font-size:12px;
}
.archive-item{padding:6px 4px; border-bottom:1px dotted #ccc;}
.archive-item:last-child{border-bottom:none}
.archive-date{font-size:11px; color:#444; margin-bottom:4px;}
.archive-msg{white-space:pre-wrap}

/* Dots */
.dot{
  display:inline-block;
  width:12px; height:12px;
  border:1px solid #000;
  background:#999;
}
.dot.online{background:#20c020}
.dot.away{background:#ffd400}
.dot.offline{background:#d02020}

/* IM windows */
.imwin{
  position:absolute;
  width:420px;
  height:280px;
  background:var(--win-gray);
  border:2px solid var(--border);
  box-shadow: 6px 6px 0 rgba(0,0,0,.35);
}
.im-body{padding:10px; display:flex; flex-direction:column; gap:8px;}
.im-log{
  background:#fff;
  border:1px solid #000;
  padding:8px;
  height:140px;
  overflow:auto;
  font-size:12px;
  white-space:pre-wrap;
}
.im-meta{
  background:var(--win-gray-2);
  border:1px solid #000;
  padding:8px;
  font-size:12px;
}
.small{font-size:11px; color:#333;}

.sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  border:0;
}