:root {
  --ink:#2c233c;
  --muted:#756b86;
  --violet:#8253bf;
  --blue:#486dc1;
  --line:#e7e0ef;
  --paper:#f7f5fb;
  --surface:#fff;
  --gradient:linear-gradient(120deg,#8253bf,#486dc1);
  font-family:"Segoe UI","Trebuchet MS",sans-serif;
  color:var(--ink);
  background:var(--paper)
}
* {
  box-sizing:border-box
}
body {
  margin:0
}
button,input,select,textarea {
  font:inherit
}
button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
button:disabled {
  opacity:.55;
  cursor:wait
}
button:focus-visible,a:focus-visible {
  outline:3px solid #bfa0e7;
  outline-offset:4px
}
a {
  color:inherit;
  text-decoration:none
}
[hidden] {
  display:none!important
}
h1,h2,p {
  margin:0
}
h1,h2 {
  font-family:Georgia,"Times New Roman",serif;
  letter-spacing:-.045em
}
h1 {
  font-size:clamp(2.6rem,4.6vw,4.4rem);
  line-height:1.03
}
h2 {
  font-size:1.6rem;
  line-height:1.15
}
p {
  line-height:1.6
}
.sidebar {
  position:fixed;
  inset:0 auto 0 0;
  width:236px;
  padding:36px 26px;
  background:radial-gradient(ellipse at 0 0,#42305e,transparent 60%),#1b152a;
  color:#eee7fb;
  display:flex;
  flex-direction:column
}
.brand {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:1.08rem;
  font-weight:750
}
.orb {
  width:23px;
  height:23px;
  border-radius:50%;
  background:radial-gradient(circle at 30% 25%,#fff,#b48ae5 40%,#7395e8);
  box-shadow:0 0 0 5px #c5a5ec15
}
.workspace {
  font-size:.61rem;
  letter-spacing:.2em;
  margin:25px 0 50px;
  color:#b7a8cf
}
.nav-item {
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 12px;
  border:1px solid #a27bc443;
  border-radius:10px;
  background:#bfa1e61a;
  color:#eee7fb;
  font-size:.86rem;
  text-align:left
}
.sidebar-note {
  margin-top:auto;
  font-size:.75rem;
  color:#cbbde0
}
.sidebar-note p {
  font-size:.8rem;
  color:#9f90b5;
  margin-top:17px
}
.status-dot {
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#b9a1df;
  margin-right:8px
}
main {
  margin-left:236px;
  padding:0 clamp(22px,4vw,64px);
  max-width:1680px;
  min-height:100vh;
  display:flex;
  flex-direction:column
}
.topbar {
  min-height:93px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  border-bottom:1px solid var(--line);
  font-size:.67rem;
  letter-spacing:.12em;
  color:var(--muted)
}
.topbar>span>span {
  margin:0 10px;
  color:#bba6d2
}
.topbar #account {
  display:flex;
  align-items:center;
  gap:14px;
  letter-spacing:0;
  font-size:.8rem
}
.text-button {
  border:0;
  background:none;
  color:var(--violet);
  padding:8px
}
.feedback {
  position:sticky;
  top:10px;
  z-index:5;
  margin-top:12px;
  border-radius:10px;
  font-size:.9rem;
  white-space:pre-line
}
.feedback:not(:empty) {
  padding:14px 18px;
  background:#ebe1f6;
  border:1px solid #d6c4ea
}
.feedback.error {
  background:#fff0f0;
  color:#a13744;
  border-color:#ecc5ce
}
.eyebrow {
  font-size:.65rem;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:var(--violet);
  font-weight:750;
  margin-bottom:13px
}
.intro {
  color:var(--muted);
  max-width:540px;
  font-size:.95rem;
  margin-top:16px
}
.page-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin:36px 0
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:18px;
  min-height:44px;
  border:1px solid transparent;
  border-radius:10px;
  padding:12px 20px;
  font-size:.85rem;
  font-weight:650;
  white-space:normal;
  transition:box-shadow .18s,transform .18s
}
.button:hover {
  transform:translateY(-1px)
}
.primary {
  background:var(--gradient);
  color:#fff;
  box-shadow:0 8px 22px #8253bf24
}
.secondary {
  background:#f1edf7;
  color:#674592;
  border-color:#e3d8ee
}
.danger {
  background:#fff;
  color:#a54152;
  border-color:#e4c6ce
}
.back-button {
  border:0;
  padding:12px 0;
  background:none;
  color:var(--muted);
  margin-top:20px;
  font-size:.82rem
}
.panel {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:18px;
  padding:26px;
  box-shadow:0 6px 22px #32164b03
}
.login-view {
  margin:55px 0 70px;
  max-width:650px
}
.login-view h1 {
  font-size:clamp(3.5rem,6vw,5.5rem)
}
.login-panel {
  max-width:430px;
  margin-top:30px;
  display:grid;
  gap:21px
}
.login-panel .button {
  width:100%
}
.hint,small {
  color:var(--muted);
  font-size:.78rem;
  line-height:1.6
}
label {
  display:grid;
  gap:8px;
  font-weight:650;
  font-size:.8rem
}
label small {
  font-weight:400
}
input,select,textarea {
  width:100%;
  min-width:0;
  border:1px solid #dcd2e7;
  background:#fdfcfe;
  border-radius:8px;
  padding:12px 13px;
  color:var(--ink);
  font-size:.9rem;
  accent-color:var(--violet)
}
input:focus,select:focus,textarea:focus {
  outline:2px solid #b590e450;
  border-color:#9a71cd
}
input[readonly] {
  background:#f3f0f7;
  color:var(--muted)
}
input[type=checkbox] {
  width:18px;
  height:18px;
  padding:0
}
textarea {
  resize:vertical
}
.list-toolbar {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin:28px 0 18px
}
.search-label {
  width:min(100%,360px);
  font-size:.7rem;
  color:var(--muted)
}
.search-label input {
  background:#fff
}
.table-panel {
  padding:0;
  overflow:hidden
}
.table-scroll {
  overflow:auto;
  max-width:100%
}
table {
  border-collapse:collapse;
  width:100%;
  text-align:left;
  font-size:.83rem
}
th {
  font-size:.63rem;
  text-transform:uppercase;
  letter-spacing:.09em;
  font-weight:650;
  color:var(--muted);
  padding:17px 18px;
  background:#faf8fc;
  white-space:nowrap
}
td {
  padding:20px 18px;
  border-top:1px solid var(--line);
  line-height:1.6;
  vertical-align:middle
}
td strong {
  display:block;
  font-size:.9rem
}
td small {
  display:block;
  margin-top:2px;
  font-size:.72rem
}
.row-button {
  background:none;
  border:0;
  padding:5px;
  color:var(--violet);
  text-align:left;
  font-weight:650
}
.badge {
  display:inline-flex;
  gap:6px;
  align-items:center;
  white-space:nowrap;
  border-radius:30px;
  padding:5px 10px;
  font-size:.68rem;
  font-weight:650;
  background:#f0eaf7;
  color:#75549c
}
.badge.good {
  background:#e9f4ef;
  color:#33775c
}
.badge.off {
  background:#f3edef;
  color:#92616e
}
.empty-state {
  padding:50px 24px;
  text-align:center;
  color:var(--muted)
}
.pagination {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:18px
}
.detail-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px
}
.full-width {
  grid-column:1/-1
}
.data-list {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px 20px;
  font-size:.85rem;
  margin:20px 0 0
}
.data-list dt {
  color:var(--muted)
}
.data-list dd {
  margin:0;
  text-align:right;
  overflow-wrap:anywhere
}
.connection-panel {
  background:radial-gradient(ellipse at top right,#e2e8fc80,transparent 70%),#faf7ff
}
.connection-panel h2 {
  margin:22px 0 12px
}
.connection-panel .button {
  margin:18px 8px 0 0
}
.test-results {
  display:grid;
  gap:9px;
  margin-top:14px
}
.test-item {
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px;
  background:#fff;
  font-size:.8rem
}
.test-item strong {
  color:#33775c
}
.test-item.failed strong {
  color:#a54152
}
.test-item p {
  margin-top:4px;
  color:var(--muted);
  font-size:.75rem
}
.template-preview {
  display:grid;
  gap:16px
}
.template-preview strong {
  font-size:.8rem
}
.template-preview p {
  margin-top:6px;
  font-size:.83rem;
  color:var(--muted);
  white-space:pre-wrap;
  overflow-wrap:anywhere
}
.danger-zone {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:22px;
  margin:30px 0;
  padding:23px;
  border:1px dashed #dacbdc;
  border-radius:14px;
  font-size:.85rem
}
.danger-zone p {
  margin-top:4px
}
.form-section {
  margin-bottom:20px
}
.section-title {
  display:flex;
  align-items:flex-start;
  gap:18px;
  margin-bottom:25px
}
.section-title>span {
  display:grid;
  place-items:center;
  width:31px;
  height:31px;
  flex-shrink:0;
  border-radius:9px;
  background:#f0e9f8;
  color:var(--violet);
  font-size:.72rem;
  font-weight:700
}
.section-title .hint {
  margin-top:7px
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px
}
.step-note {
  max-width:180px;
  border-left:2px solid #c3a9e1;
  padding-left:14px;
  font-size:.75rem;
  color:var(--muted);
  line-height:1.6
}
.hours-editor {
  display:grid;
  gap:12px;
  max-width:660px
}
.hours-row {
  display:grid;
  grid-template-columns:135px minmax(0,1fr) 14px minmax(0,1fr);
  gap:14px;
  align-items:center
}
.hours-day {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:.83rem
}
.hours-row>span {
  color:var(--muted);
  text-align:center
}
.default-limit {
  max-width:330px;
  margin-bottom:25px
}
.default-limit input {
  max-width:120px
}
.services-editor {
  display:grid;
  gap:14px;
  margin-bottom:18px
}
.service-row {
  display:grid;
  grid-template-columns:minmax(130px,2fr) 1fr 1fr 1fr auto;
  align-items:start;
  gap:10px;
  border-top:1px solid var(--line);
  padding-top:18px
}
.service-row label {
  font-size:.72rem
}
.remove-service {
  width:34px;
  height:41px;
  margin-top:27px;
  border:1px solid #e3d8e6;
  border-radius:8px;
  background:#fff;
  color:#9a5263;
  font-size:1.2rem
}
.services-editor+.button+.hint {
  margin-top:14px
}
.template-editors {
  display:grid;
  gap:20px
}
.template-editors+.hint {
  margin-top:14px;
  overflow-wrap:anywhere
}
.form-actions {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin:28px 0
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap
}
footer {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:25px 0;
  margin-top:auto;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.7rem
}
section:not([hidden])+footer {
  margin-top:50px
}
@media(max-width:1100px) {
  .sidebar {
    width:205px;
    padding:32px 20px
  }
  main {
    margin-left:205px;
    padding:0 24px
  }
  .detail-grid {
    grid-template-columns:minmax(0,1fr)
  }
  .service-row {
    grid-template-columns:minmax(120px,1.5fr) 1fr 1fr
  }
  .service-row label:nth-child(4) {
    grid-column:1/3
  }
  .remove-service {
    margin-top:0;
    justify-self:end
  }
  .page-heading {
    align-items:flex-start
  }
  .page-heading>.button {
    flex-shrink:0
  }
}
@media(max-width:720px) {
  .sidebar {
    position:static;
    width:auto;
    padding:20px;
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:space-between
  }
  .workspace,.sidebar-note,.sidebar nav {
    display:none
  }
  main {
    margin:0;
    padding:0 18px
  }
  .topbar {
    min-height:65px;
    font-size:.58rem;
    letter-spacing:.06em;
    flex-wrap:wrap;
    padding:12px 0
  }
  .topbar #account {
    font-size:.72rem
  }
  .page-heading {
    flex-direction:column;
    gap:20px;
    margin:28px 0
  }
  .page-heading h1 {
    font-size:2.7rem
  }
  .page-heading>.button {
    width:100%
  }
  .list-toolbar {
    align-items:stretch;
    flex-direction:column;
    gap:8px
  }
  .search-label {
    width:100%
  }
  .panel {
    padding:20px
  }
  .table-panel {
    padding:0
  }
  .form-grid {
    grid-template-columns:minmax(0,1fr)
  }
  .hours-row {
    grid-template-columns:92px minmax(0,1fr) 8px minmax(0,1fr);
    gap:7px
  }
  .hours-row input[type=time] {
    padding:10px 5px;
    font-size:.78rem
  }
  .hours-day {
    font-size:.72rem;
    gap:7px
  }
  .service-row {
    grid-template-columns:1fr 1fr
  }
  .service-row label:first-child {
    grid-column:1/-1
  }
  .service-row label:nth-child(4) {
    grid-column:auto
  }
  .remove-service {
    grid-column:2;
    align-self:end
  }
  .section-title {
    gap:12px
  }
  .section-title h2 {
    font-size:1.45rem
  }
  .step-note {
    max-width:none
  }
  .danger-zone,.form-actions {
    flex-direction:column;
    align-items:stretch
  }
  .form-actions .button {
    width:100%
  }
  .data-list {
    font-size:.79rem;
    gap:14px 10px
  }
  .connection-panel .button {
    width:100%;
    margin-right:0
  }
  .login-view {
    margin-top:35px
  }
  .login-view h1 {
    font-size:3.8rem
  }
  footer {
    flex-direction:column;
    gap:4px
  }
  .intro {
    font-size:.88rem
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important;
    transition:none!important
  }
}
