@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap");body{font-family:Manrope,Segoe UI,system-ui,-apple-system,sans-serif;margin:0;background:radial-gradient(circle at 20% 20%,#eee0db,#fffefd 35%,#fff2df 55%,#fffaf4 70%)}.page{min-height:100vh;padding:40px clamp(18px,4vw,64px);background:transparent;color:#0e172a;font-size:18px;display:flex;flex-direction:column;gap:32px}.login-card{max-width:420px;margin:0 auto;background:#fff;border-radius:18px;padding:28px;box-shadow:0 12px 30px rgba(14,23,42,.12);border:1px solid #f0d9c2}.login-form{display:grid;grid-gap:12px;gap:12px;margin-top:16px}.login-input{border:1px solid #e4cdb5;border-radius:12px;padding:12px 14px;font-size:1rem;font-family:inherit}.login-error{color:#9b1c1c;background:#ffe9e9;border:1px solid #ffd3d3;padding:8px 10px;border-radius:10px;font-size:.9rem;margin:0}.hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;flex-wrap:wrap}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:#7c8db5;font-size:.85rem}.eyebrow,h1{margin:0 0 8px}h1{font-size:clamp(28px,4vw,40px);letter-spacing:-.02em}.subtitle{margin:0;max-width:720px;color:#4a5675;font-size:1.05rem}.hero__actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.primary{background:linear-gradient(135deg,#2e6ef7,#1e54d4);color:#fff;border:none;border-radius:12px;padding:12px 16px;font-weight:600;cursor:pointer;box-shadow:0 12px 30px rgba(46,110,247,.25);transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}.primary:disabled{opacity:.7;cursor:wait;box-shadow:none}.primary:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 14px 36px rgba(46,110,247,.32)}.timestamp{color:#55607b;font-size:.9rem}.grid{display:grid;grid-gap:16px;gap:16px;-webkit-user-select:none;-moz-user-select:none;user-select:none;grid-auto-rows:1fr}.grid--ungrouped{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid--group{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-auto-rows:1fr}.device{background:#fff;border-radius:18px;padding:18px;border:1px solid #e5e9f5;box-shadow:0 10px 30px rgba(14,23,42,.06);display:flex;flex-direction:column;gap:12px;transition:transform .12s ease,box-shadow .12s ease;cursor:-webkit-grab;cursor:grab;height:100%;min-height:180px}.device:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(14,23,42,.1)}.device__header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.device__name{font-weight:700;font-size:1.15rem}.device__address{color:#6b7390;font-family:SFMono-Regular,ui-monospace,Cascadia Code,Menlo,Consolas,Liberation Mono,monospace;font-size:.9rem}.badge{display:inline-flex;align-items:center;justify-content:center;background:#eef2ff;color:#2e448a;font-weight:700;padding:6px 10px;border-radius:999px;align-self:flex-start;font-size:.85rem;white-space:nowrap;max-width:100%}.device__meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px 14px;gap:8px 14px;margin:0}.device__meta dt{font-size:.85rem;color:#6a7492}.device__meta dd{margin:2px 0 0;font-weight:600;color:#12182b}.device.online{border-color:#d8f3df;box-shadow:0 10px 30px rgba(22,163,74,.12)}.device.online .badge{background:#e5f7ec;color:#167a3d}.device.maybe{border-color:#fff3d6;box-shadow:0 10px 30px rgba(234,179,8,.12)}.device.maybe .badge{background:#fff3d6;color:#916200}.device.offline{border-color:#f1f2f8}.device.offline .badge{background:#f1f2f8;color:#434a60}.device.dragging{opacity:.8;border-style:dashed;box-shadow:0 12px 34px rgba(14,23,42,.14);cursor:-webkit-grabbing;cursor:grabbing}.device.compact{padding:12px;border-radius:14px;gap:8px}.device.compact .device__name{font-size:1rem}.device.compact .device__meta{grid-template-columns:1fr}.error{background:#ffe9e9;color:#8e1b1b;border:1px solid #ffd3d3;padding:14px 16px;border-radius:12px}.empty{background:hsla(0,0%,100%,.8);border:1px dashed #d4daf0;border-radius:14px;padding:24px;text-align:center;color:#5b6784}.empty--small{padding:16px;border-radius:10px}.pill{background:#eef0f7;color:#3c4560;font-weight:700;padding:6px 10px;border-radius:999px;font-size:.85rem}.secondary{background:#f0f3ff;color:#1e54d4;border:1px solid #d8e2ff;border-radius:12px;padding:12px 14px;font-weight:700;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.secondary:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(30,84,212,.16)}.board{display:flex;flex-direction:column;gap:18px}.board__header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap}.board__actions{display:flex;gap:10px}.lanes{display:flex;flex-direction:column;gap:18px}.lane{border:1px dashed #d8e0f5;border-radius:16px;padding:14px;background:#f9fbff;transition:border-color .12s ease,box-shadow .12s ease}.lane.hovered{border-color:#9bb4ff;box-shadow:0 12px 30px rgba(46,110,247,.12)}.lane__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.lane__header .pill{white-space:nowrap}.group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:16px;gap:16px}.group{border:1px solid #e5e9f5;border-radius:16px;padding:14px;background:#fff;box-shadow:0 10px 24px rgba(14,23,42,.06);transition:border-color .12s ease,box-shadow .12s ease}.group.hovered{border-color:#9bb4ff;box-shadow:0 14px 34px rgba(46,110,247,.16)}.group__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.group__header-actions,.group__header-right{display:flex;align-items:center;gap:8px}.rename-group{background:#eef0f7;color:#1f2740;border:1px solid #d8dde9;border-radius:10px;padding:6px 10px;font-weight:600;font-size:.85rem;cursor:pointer}.rename-group:hover{background:#e1e6f5}@media (max-width:640px){.hero,.hero__actions{align-items:flex-start}.device__header{flex-direction:column}}.lane__title{margin:0 0 4px;font-size:1.15rem}.lane__subtitle{margin:0;color:#5b6784;font-size:.9rem}.hero__controls{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.group--joker{border-style:dashed;background:#f6f7fb}.group__person{display:flex;flex-direction:column;gap:6px}.task-category{font-weight:700;color:#1f2a44;margin:14px 0 8px;text-transform:capitalize}.task-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.task-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border-radius:10px;background:#f5f7ff;border:1px solid #e3e8fb;font-size:1rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.task-item:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(30,84,212,.12);border-color:#cad6ff}.task-item.completed{background:#eaf6ee;border-color:#c9edd5;color:#1f5e3b;text-decoration:line-through}.task-label{flex:1 1}.task-icon{width:28px;height:28px;border-radius:999px;border:2px solid #d7e1ff;display:inline-flex;align-items:center;justify-content:center;color:#2e6ef7;font-weight:800;font-size:.9rem;background:#fff;opacity:.35;transition:opacity .12s ease,transform .12s ease,background .12s ease,color .12s ease,border-color .12s ease}.task-item.completed .task-icon{opacity:1;background:#2e6ef7;color:#fff;border-color:#2e6ef7;transform:scale(1.05)}.task-meta{display:flex;align-items:center;gap:8px}.person-chip{font-weight:700;font-size:1.25rem}.week-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.week-meta .pill{font-size:.8rem}.notice{font-size:.85rem;color:#5b6784}.category-header{display:flex;align-items:center;justify-content:flex-start;gap:10px}.circle-button{width:46px;height:46px;border-radius:999px;border:2px solid #d6dcf4;background:#fff;color:#1f2a44;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;box-shadow:0 8px 20px rgba(14,23,42,.08)}.circle-button:hover{transform:translateY(-1px);border-color:#9bb4ff;box-shadow:0 12px 26px rgba(46,110,247,.18)}.circle-button.is-done{background:#2e6ef7;color:#fff;border-color:#2e6ef7}@media (max-width:820px){.page{padding:28px 16px 40px}.hero{gap:16px;align-items:flex-start}h1{font-size:clamp(26px,7vw,34px)}.subtitle{font-size:1rem}.hero__actions{align-items:flex-start;width:100%}.week-meta{width:100%}.board__actions{width:100%;flex-wrap:wrap;justify-content:flex-start}.lane__header{flex-direction:column;align-items:flex-start;gap:10px}.group-grid{grid-template-columns:1fr}}@media (max-width:520px){.page{padding:24px 14px 32px}.device,.group{border-radius:14px;padding:14px}.task-item{padding:8px;font-size:.98rem}.circle-button{width:40px;height:40px}.badge{font-size:.75rem}}