:root{--ember: #e8597b;--warm-bg: #fbf7f4;--surface: #ffffff;--ink: #2a2622;--ink-soft: #8a817a;--hairline: #ede6e0;--rail-bg: #f6efe9;--shadow: 0 1px 2px rgba(42, 38, 34, .04), 0 4px 16px rgba(42, 38, 34, .04)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--warm-bg);color:var(--ink);-webkit-font-smoothing:antialiased}h1{font-size:26px;font-weight:800;margin:0;letter-spacing:-.01em}h3{font-size:16px;font-weight:700;margin:0 0 4px}.center{min-height:100vh;display:grid;place-items:center;padding:24px}.muted{color:var(--ink-soft);margin:2px 0 0}.error{color:var(--ember)}.notice{color:#2f7d52;font-size:14px}.empty{color:var(--ink-soft);padding:40px 0;text-align:center;font-size:15px}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:16px;padding:20px}input{width:100%;padding:11px 14px;border:1px solid var(--hairline);border-radius:12px;font-size:15px;margin:6px 0;background:var(--surface);color:var(--ink)}input:focus{outline:2px solid rgba(232,89,123,.35);outline-offset:0;border-color:transparent}button{padding:9px 15px;border:1px solid var(--hairline);border-radius:11px;background:var(--surface);font-size:14px;color:var(--ink);cursor:pointer;transition:background .12s,border-color .12s,opacity .12s}button:hover{background:#faf6f2}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--ember);color:#fff;border-color:var(--ember);font-weight:600}button.primary:hover{background:#e0466b}button.link{border:none;background:none;color:var(--ember)}button.ghost{border:none;background:none;color:var(--ink-soft)}.brand{color:var(--ember);font-size:40px;margin:0}.auth{width:360px;display:flex;flex-direction:column;box-shadow:var(--shadow)}.onboard{width:420px;display:grid;gap:16px;text-align:center}.onboard .card{text-align:left;box-shadow:var(--shadow)}.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;flex-shrink:0;background:var(--rail-bg);border-right:1px solid var(--hairline);padding:22px 16px;display:flex;flex-direction:column;gap:8px;position:sticky;top:0;height:100vh}.sidebar-brand{font-weight:800;color:var(--ember);font-size:22px;padding:0 8px 14px}.sidebar-nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:11px;border:none;background:none;text-align:left;padding:10px 12px;border-radius:11px;font-size:15px;font-weight:500;color:var(--ink)}.nav-item:hover{background:#2a26220a}.nav-item.active{background:var(--ember);color:#fff;font-weight:600}.nav-item.active:hover{background:var(--ember)}.nav-icon{width:18px;text-align:center;font-size:15px;opacity:.9}.sidebar-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.sidebar-people{margin-top:18px;padding:0 4px;display:flex;flex-direction:column;gap:2px}.sidebar-people .sidebar-label{padding:0 8px 6px}.person-toggle{display:flex;align-items:center;gap:10px;border:none;background:none;padding:7px 8px;border-radius:9px;font-size:14px;color:var(--ink)}.person-toggle:hover{background:#2a26220a}.person-toggle.off{color:var(--ink-soft)}.person-dot{width:13px;height:13px;border-radius:50%;border:2px solid;flex-shrink:0}.person-toggle.off .person-name{text-decoration:line-through}.sidebar-signout{margin-top:auto;border:none;background:none;color:var(--ink-soft);text-align:left;padding:10px 12px}.main{flex:1;min-width:0;overflow-x:hidden}.screen{max-width:1100px;margin:0 auto;padding:32px 40px}.screen-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.quickadd{margin:4px 0 22px}.quickadd-row{display:flex;gap:10px}.quickadd-row input{margin:0;flex:1;box-shadow:var(--shadow)}.quickadd-preview{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:10px;padding:0 4px}.qa-title{font-weight:600}.qa-chip{font-size:13px;color:var(--ink-soft);background:var(--surface);border:1px solid var(--hairline);padding:3px 9px;border-radius:999px}.agenda{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.agenda-item{display:flex;align-items:center;gap:14px;padding:15px 18px;background:var(--surface);border:1px solid var(--hairline);border-left:4px solid var(--ink-soft);border-radius:14px;box-shadow:var(--shadow)}.agenda-item .time{width:92px;color:var(--ink-soft);font-weight:600;font-size:14px;flex-shrink:0}.agenda-item .title{flex:1;font-weight:600;display:flex;align-items:center;gap:8px}.agenda-item .title .box{color:var(--ink-soft)}.agenda-item .title .done{text-decoration:line-through;color:var(--ink-soft)}.agenda-item .loc{color:var(--ink-soft);font-weight:400}.chip{color:var(--ember);border-color:var(--ember);font-size:13px;padding:6px 12px}.dots{display:flex;gap:3px}.avatar{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:700;flex-shrink:0}.calendar .screen-head{align-items:center}.cal-nav{display:flex;align-items:center;gap:16px}.cal-arrows{display:flex;align-items:center;gap:4px}.cal-arrows button{padding:6px 12px;line-height:1}.today-btn{font-weight:600}.seg{display:inline-flex;background:var(--rail-bg);border:1px solid var(--hairline);border-radius:11px;padding:3px;gap:2px}.seg button{border:none;background:none;padding:7px 16px;border-radius:8px;font-weight:500}.seg button.active{background:var(--surface);color:var(--ember);font-weight:700;box-shadow:var(--shadow)}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:14px;overflow:hidden}.month-grid .dow{background:var(--surface);text-align:center;color:var(--ink-soft);font-size:12px;font-weight:600;padding:10px 0}.month-grid .day{background:var(--surface);min-height:116px;border:none;border-radius:0;padding:8px;display:flex;flex-direction:column;align-items:stretch;gap:4px;text-align:left;cursor:pointer}.month-grid .day:hover{background:#faf6f2}.month-grid .day.blank{background:var(--warm-bg);cursor:default}.month-grid .day.blank:hover{background:var(--warm-bg)}.day-num{font-size:13px;font-weight:600;color:var(--ink-soft);align-self:flex-start;padding:1px 2px}.day.today .day-num{background:var(--ember);color:#fff;border-radius:50%;width:22px;height:22px;display:grid;place-items:center}.day-events{display:flex;flex-direction:column;gap:3px;overflow:hidden}.day-pill{font-size:11px;font-weight:600;padding:2px 6px;border-radius:5px;border-left:2px solid;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-more{font-size:11px;color:var(--ink-soft);padding:0 2px}.timegrid{border:1px solid var(--hairline);border-radius:14px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow);display:flex;flex-direction:column;height:calc(100vh - 230px);min-height:460px}.tg-gutter{width:56px;flex-shrink:0}.tg-header{display:flex;border-bottom:1px solid var(--hairline)}.tg-dayhead{flex:1;border:none;border-left:1px solid var(--hairline);background:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px}.tg-dayhead:first-of-type{border-left:none}.tg-dayhead:hover{background:#faf6f2}.tg-dow{font-size:12px;color:var(--ink-soft);font-weight:600}.tg-daynum{font-size:15px;font-weight:700;width:26px;height:26px;display:grid;place-items:center;border-radius:50%}.tg-daynum.today{background:var(--ember);color:#fff}.tg-allday{display:flex;border-bottom:1px solid var(--hairline);max-height:88px;overflow-y:auto}.tg-allday-label{font-size:10px;color:var(--ink-soft);text-align:right;padding:6px 6px 0 0}.tg-allday-col{flex:1;border-left:1px solid var(--hairline);padding:4px;display:flex;flex-direction:column;gap:3px;min-width:0}.tg-allday-col:first-of-type{border-left:none}.tg-allday-chip{font-size:11px;font-weight:600;padding:2px 6px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tg-scroll{flex:1;overflow-y:auto}.tg-body{display:flex;position:relative}.tg-hours{position:relative}.tg-hourlabel{position:absolute;right:6px;font-size:11px;color:var(--ink-soft)}.tg-col{flex:1;position:relative;border-left:1px solid var(--hairline);min-width:0}.tg-col:first-of-type{border-left:none}.tg-hourline{position:absolute;left:0;right:0;border-top:1px solid var(--hairline);opacity:.55}.tg-block{position:absolute;border-radius:7px;border-left:3px solid;padding:2px 5px;overflow:hidden;display:flex;flex-direction:column;line-height:1.15}.tg-block-title{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tg-block-time{font-size:10px;opacity:.85}.tg-now{position:absolute;left:0;right:0;height:2px;background:var(--ember);z-index:2}.tg-now:before{content:"";position:absolute;left:-3px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--ember)}.lists-layout{display:flex;gap:28px;align-items:flex-start}.lists-rail{width:220px;flex-shrink:0;display:flex;flex-direction:column;gap:2px}.lists-rail-head{padding:4px 8px 8px}.list-tab{display:flex;align-items:center;gap:10px;border:none;background:none;padding:9px 11px;border-radius:10px;text-align:left;font-size:14px;font-weight:500}.list-tab:hover{background:#2a26220a}.list-tab.active{background:var(--surface);border:1px solid var(--hairline);box-shadow:var(--shadow);font-weight:600}.list-tab-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-tab-count{font-size:12px;color:var(--ink-soft);background:var(--rail-bg);border-radius:999px;padding:1px 8px}.list-tab.active .list-tab-count{background:var(--warm-bg)}.lists-new{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;padding:0 4px}.lists-new button{font-size:13px;padding:7px 11px}.list-detail{flex:1;min-width:0}.staples{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.staple{font-size:13px;padding:6px 12px;border-radius:999px;color:var(--ink-soft)}.staple:hover{color:var(--ember);border-color:var(--ember)}.aisle{margin-bottom:18px}.aisle-head{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 8px 2px}.checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.checklist li{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px}.checklist li:hover{background:#2a262208}.checklist li.checked .check-text{color:var(--ink-soft);text-decoration:line-through}.checklist .check{border:none;background:none;font-size:18px;padding:0;color:var(--ember);line-height:1}.checklist .check-text{flex:1;cursor:pointer;font-size:15px}.checklist .remove{border:none;background:none;color:var(--ink-soft);font-size:18px;line-height:1;padding:0 4px;opacity:0}.checklist li:hover .remove{opacity:1}.checklist .remove:hover{color:var(--ember)}.settings-card{max-width:560px;margin-bottom:18px;box-shadow:var(--shadow)}.invite-row{display:flex;align-items:center;gap:12px;margin-top:12px}.invite-code{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:17px;letter-spacing:.08em;background:var(--warm-bg);border:1px solid var(--hairline);border-radius:10px;padding:11px 14px}.member-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:4px}.member-list li{display:flex;align-items:center;gap:12px;padding:8px 0}.member-name{flex:1;font-weight:600}.member-role{font-size:13px;color:var(--ink-soft);background:var(--rail-bg);border-radius:999px;padding:3px 11px}.cal-head-right{display:flex;align-items:center;gap:12px}.agenda-item.clickable{cursor:pointer}.agenda-item.clickable:hover{background:#faf6f2}.repeat-mark{color:var(--ink-soft);font-weight:400}.tg-block.clickable,.tg-allday-chip.clickable,.day-pill{cursor:pointer}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2a262252;display:grid;place-items:center;padding:24px;z-index:50}.modal{width:100%;max-width:460px;max-height:88vh;overflow-y:auto;box-shadow:0 12px 48px #2a262238}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.modal-close{border:none;background:none;font-size:22px;line-height:1;color:var(--ink-soft);padding:2px 8px}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:5px}.field>span{font-size:13px;font-weight:600;color:var(--ink-soft)}.field.inline{flex-direction:row;align-items:center;gap:6px}.field.inline>span{font-weight:400}.field-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.field-row .field{flex:1;min-width:110px}.check-field{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500}.check-field input{width:auto}textarea{width:100%;border:1px solid var(--hairline);border-radius:11px;padding:10px 12px;font:inherit;resize:vertical}select{width:100%;border:1px solid var(--hairline);border-radius:11px;padding:10px 12px;font:inherit;background:var(--surface)}.seg-inline{align-self:flex-start}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip-toggle{font-size:13px;padding:6px 12px;border-radius:999px;border:1px solid var(--hairline)}.chip-toggle.on{color:#fff;font-weight:600;background:var(--ember);border-color:var(--ember)}.modal-actions{display:flex;align-items:center;gap:8px;margin-top:4px}.modal-actions .spacer{flex:1}button.danger{color:var(--ember);border-color:var(--ember)}button.danger:hover{background:#fdeef2}.member-list li{display:flex;align-items:center;gap:10px}.member-edit{display:flex;align-items:center;gap:8px;flex:1}.member-edit input[type=text]{flex:1;min-width:80px}.member-edit input[type=color]{width:34px;height:34px;padding:2px;border-radius:8px;cursor:pointer}.member-edit select{width:auto}.member-name-edit{flex:1}.list-item-meta{display:flex;align-items:center;gap:6px;margin-left:auto}.qty-step{display:inline-flex;align-items:center;gap:4px}.qty-step button{padding:2px 8px;border-radius:8px;font-weight:700}.qty-val{min-width:18px;text-align:center;font-variant-numeric:tabular-nums}.item-assignee{font-size:12px;padding:4px 8px}.newlist-form{display:flex;gap:6px;margin-top:8px}.newlist-form input{flex:1}.undo-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--ink);color:#fff;border-radius:11px;margin-bottom:12px}.undo-bar button{background:none;border:none;color:#fff;font-weight:700;text-decoration:underline}.connection-list{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}.connection-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--hairline);border-radius:11px}.connection-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.connection-provider{font-weight:600}.connection-row .muted{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connect-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.connect-actions a.primary{display:inline-block;padding:9px 15px;border-radius:11px;font-size:14px;font-weight:600;text-decoration:none;background:var(--ember);color:#fff;border:1px solid var(--ember)}.connect-actions a.primary:hover{background:#e0466b}.connect-form{display:grid;gap:8px;margin-top:12px;padding:12px;border:1px solid var(--hairline);border-radius:11px;background:#faf6f2}.connect-form input{width:100%}.link-danger{border:none;background:none;color:#c0392b;font-weight:600;cursor:pointer}.integration-error{color:#c0392b;font-size:13px;margin:6px 0 0}
