:root{--paper:#f6f4ef;--card:#fff;--line:#e3ded4;--line-soft:#f0ede6;--ink:#1e1c1a;--ink-2:#4a4540;--ink-3:#6f6960;--ink-4:#9a9287;--ink-5:#c4bcb0;--indigo:#33386b;--indigo-dark:#232748;--indigo-tint:#e9eaf2;--do-now:#b4442f;--do-now-tint:#faebe6;--schedule:#2e6b54;--schedule-tint:#e7f1ec;--delegate:#8a5a1f;--delegate-tint:#f7eee0;--delete:#736b60;--delete-tint:#efebe4;--amber:#a8761c}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Instrument Sans,system-ui,-apple-system,sans-serif}button,input,select,textarea{font-family:inherit}.serif{font-family:Instrument Serif,Georgia,serif}.app{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:14px;min-height:54px;padding:8px 22px;display:flex}.brand{align-items:center;gap:9px;display:flex}.brand-mark{background:var(--indigo);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:27px;height:27px;display:flex}.brand-name{letter-spacing:-.005em;font-family:Instrument Serif,Georgia,serif;font-size:21px}.nav{gap:2px;display:flex}.nav button{color:var(--ink-3);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:7px 14px;font-size:13.5px;font-weight:500}.nav button.on{background:var(--indigo-tint);color:var(--indigo)}.nav button:disabled{color:var(--ink-5);cursor:default}.grow{flex-grow:1}.who{color:var(--ink-3);white-space:nowrap;font-size:12px}.langswitch{border:1px solid var(--line);border-radius:8px;display:flex;overflow:hidden}.langswitch button{background:var(--card);height:30px;color:var(--ink-3);cursor:pointer;border:none;padding:0 11px;font-size:12px;font-weight:500}.langswitch button.on{background:var(--indigo);color:#fff;font-weight:600}.btn{background:var(--indigo);color:#fff;cursor:pointer;border:none;border-radius:9px;align-items:center;gap:7px;height:38px;padding:0 15px;font-size:13.5px;font-weight:500;display:inline-flex}.btn:hover{background:var(--indigo-dark)}.btn:disabled{opacity:.55;cursor:default}.btn-ghost{color:var(--ink-3);border:1px solid var(--line);background:0 0;border-radius:8px;height:30px;padding:0 11px;font-size:12.5px}.btn-ghost:hover{background:var(--paper);color:var(--ink-2)}.toolbar{background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;min-height:42px;padding:6px 22px;display:flex}.chip{cursor:pointer;background:var(--paper);height:30px;color:var(--ink-3);border:none;border-radius:8px;align-items:center;gap:6px;padding:0 11px;font-size:12.5px;font-weight:500;display:inline-flex}.chip b{font-weight:600}.chip.alarm{background:var(--do-now-tint);color:var(--do-now)}.chip.warn{background:var(--delegate-tint);color:var(--delegate)}.chip.on{outline-offset:-2px;outline:2px solid}.sep{background:var(--line);width:1px;height:20px;margin:0 4px}.searchbox{border:1px solid var(--line);background:var(--card);border-radius:8px;align-items:center;gap:7px;height:30px;padding:0 12px;display:flex}.searchbox input{width:150px;color:var(--ink-2);background:0 0;border:none;outline:none;font-size:12.5px}select.plain{border:1px solid var(--line);background:var(--card);height:30px;color:var(--ink-2);cursor:pointer;border-radius:8px;padding:0 8px;font-size:12.5px}.board{flex-grow:1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;align-items:start;gap:12px;padding:12px 22px 18px;display:grid}@media (width<=900px){.board{grid-template-columns:minmax(0,1fr)}.topbar,.toolbar,.board{padding-left:16px;padding-right:16px}}.quad{background:var(--card);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:7px;padding:11px 12px;display:flex}.quad-head{align-items:center;gap:7px;padding:0 2px 1px;display:flex}.quad-emoji{flex-shrink:0;font-size:15px;line-height:1}.emoji{flex-shrink:0;font-size:12px;line-height:1}.quad-name{font-size:13.5px;font-weight:600}.quad-hint{color:var(--ink-4);font-size:11px}.quad-count{color:var(--ink-3);background:var(--paper);border-radius:10px;padding:3px 9px;font-size:11.5px;font-weight:600}.quad-empty{border:1px dashed var(--line);text-align:center;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:16px 14px;display:flex}.quad-empty-emoji{opacity:.4;font-size:18px;line-height:1}.quad-empty span{color:var(--ink-4);font-size:12px}.quad-empty small{color:var(--ink-5);max-width:260px;font-size:11.5px;line-height:16px}.card{text-align:left;border:1px solid #ede8df;border-left:3px solid var(--line);background:var(--card);cursor:pointer;border-radius:9px;width:100%;padding:8px 10px;display:block}.card:hover{background:#fcfbf8}.card-top{align-items:center;gap:5px;margin-bottom:3px;display:flex}.dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.card-status{color:var(--ink-3);font-size:11px;font-weight:500}.card-priority{letter-spacing:.06em;color:var(--ink-3);font-size:10px;font-weight:600}.card-title{color:var(--ink);margin-bottom:3px;font-size:13.5px;font-weight:500;line-height:18px}.card-note{color:var(--ink-4);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:11.5px;line-height:15px;display:-webkit-box;overflow:hidden}.card-foot{border-top:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:8px;padding-top:5px;display:flex}.card-foot span{color:var(--ink-3);font-size:11px}.card-foot .nodate{color:var(--do-now);font-weight:600}.bullet{background:var(--ink-5);border-radius:50%;flex-shrink:0;width:3px;height:3px}.tag{letter-spacing:.04em;border-radius:4px;padding:2px 4px;font-size:9px;font-weight:600}.avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:21px;height:21px;font-size:9.5px;font-weight:600;display:flex}.scrim{z-index:40;background:#1e1c1a52;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--paper);border-left:1px solid var(--line);flex-direction:column;width:min(560px,100%);height:100%;display:flex;overflow-y:auto}.drawer-head{background:var(--card);border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:16px 20px;display:flex;position:sticky;top:0}.drawer-body{flex-direction:column;gap:18px;padding:18px 20px 40px;display:flex}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:12px;padding:14px 16px;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field label{letter-spacing:.05em;color:var(--ink-4);text-transform:uppercase;font-size:11px;font-weight:600}.field select,.field input,.field textarea{border:1px solid var(--line);color:var(--ink);background:var(--card);border-radius:8px;outline:none;padding:8px 10px;font-size:13.5px}.field select:focus,.field input:focus,.field textarea:focus{border-color:var(--indigo)}.field textarea{resize:vertical;min-height:78px;line-height:19px}.row2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.meta{flex-direction:column;gap:8px;display:flex}.meta-row{gap:10px;font-size:13px;line-height:18px;display:flex}.meta-row b{min-width:118px;color:var(--ink-4);padding-top:1px;font-size:12px;font-weight:500}.toggles{gap:8px;display:flex}.toggle{border:1px solid var(--line);background:var(--card);height:34px;color:var(--ink-3);cursor:pointer;border-radius:8px;flex:1;font-size:12.5px;font-weight:500}.toggle.on{background:var(--indigo-tint);color:var(--indigo);border-color:#c9ccde}.progress-item{border-top:1px solid var(--line-soft);flex-direction:column;gap:3px;padding-top:10px;display:flex}.progress-item:first-child{border-top:none;padding-top:0}.progress-item p{color:var(--ink-2);margin:0;font-size:13px;line-height:19px}.progress-item small{color:var(--ink-4);font-size:11px}.section-title{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-4);font-size:11px;font-weight:600}.login{justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.login-card{background:var(--card);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:16px;width:min(400px,100%);padding:28px;display:flex}.login-card h1{letter-spacing:-.01em;margin:0;font-family:Instrument Serif,Georgia,serif;font-size:30px;font-weight:400}.login-card .sub{color:var(--ink-4);margin:-10px 0 0;font-size:13px;line-height:18px}.linkish{color:var(--indigo);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:12.5px}.error{color:var(--do-now);background:var(--do-now-tint);border-radius:8px;padding:9px 11px;font-size:12.5px;line-height:17px}.ok{color:var(--schedule);background:var(--schedule-tint);border-radius:8px;padding:9px 11px;font-size:12.5px;line-height:17px}.centered{min-height:100%;color:var(--ink-4);justify-content:center;align-items:center;font-size:13.5px;display:flex}.whoami{background:var(--paper);border:1px solid var(--line);border-radius:9px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.whoami span{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-4);font-size:11px;font-weight:600}.whoami b{color:var(--ink);word-break:break-all;font-size:13.5px;font-weight:500}.drawer-quad{letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px;font-size:11px;font-weight:600}.drawer-title{font-size:16.5px;font-weight:500;line-height:22px}.drawer-actions{gap:10px;display:flex}.btn-ghost.icon{flex-shrink:0;justify-content:center;align-items:center;width:30px;padding:0;display:flex}.btn-ghost.tall{height:38px}.panel-toggle{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:0;display:flex}.panel-toggle .chev{color:var(--ink-4);font-size:11px}.panel-text{color:var(--ink-2);margin:0;font-size:13px;line-height:19px}.warn-pill{color:var(--do-now);background:var(--do-now-tint);border-radius:5px;padding:2px 6px;font-size:10px;font-weight:600}.missing{color:var(--do-now);font-style:normal}.muted{color:var(--ink-4);font-size:12.5px}.due{border-radius:5px;align-items:center;gap:4px;padding:1px 5px;font-weight:500;display:inline-flex}.due-overdue,.due-today{color:#9b2f1c;background:#fbe7e2}.due-soon{color:#8a5a1f;background:#f9efdf}.due-later{color:#2e6b54;background:#e7f1ec}.due-none{color:#8a7a5f;background:#f4efe4}.due-done{color:var(--ink-4);background:0 0;padding-left:0}.contacts{flex-grow:1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;align-items:start;gap:12px;padding:12px 22px 18px;display:grid}@media (width<=900px){.contacts{grid-template-columns:minmax(0,1fr);padding-left:16px;padding-right:16px}}.contact-card{border-left-color:var(--line);align-items:center;gap:10px;display:flex}.contact-main{flex-direction:column;flex-grow:1;gap:2px;min-width:0;display:flex}.contact-name{color:var(--ink);font-size:13.5px;font-weight:500}.contact-sub{color:var(--ink-4);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;line-height:15px;overflow:hidden}.lang-tag{color:#33386b;background:var(--indigo-tint)}.toggles.wrap{flex-wrap:wrap}.toggles.wrap .toggle{flex:none;padding:0 12px}.e164{background:var(--schedule-tint);border-radius:8px;align-items:baseline;gap:8px;padding:8px 10px;display:flex}.e164 span{letter-spacing:.04em;text-transform:uppercase;color:#2e6b54;font-size:11px;font-weight:600}.e164 b{color:#1e1c1a;font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.btn-ghost.danger{color:var(--do-now);border-color:#eedcd6}.btn-ghost.danger:hover:not(:disabled){background:var(--do-now-tint)}.btn-ghost:disabled{opacity:.45;cursor:default}.quad-head .btn-ghost{white-space:nowrap;flex-shrink:0}.quad-head .quad-hint{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.inline-new{background:#fbfbfd;border:1px dashed #c9cce0;border-radius:9px;flex-direction:column;gap:9px;padding:10px 11px;display:flex}.list{flex-direction:column;flex-grow:1;gap:14px;width:100%;max-width:1100px;padding:12px 22px 24px;display:flex}@media (width<=900px){.list{padding-left:16px;padding-right:16px}}.list-group{flex-direction:column;gap:5px;display:flex}.list-group-head{align-items:center;gap:8px;padding:0 2px 3px;display:flex}.prio-pill{letter-spacing:.07em;border-radius:5px;padding:3px 8px;font-size:11px;font-weight:700}.prio-high{color:#9b2f1c;background:#fbe7e2}.prio-medium{color:#6f6960;background:#efebe4}.prio-low{color:#9a9287;background:#f4f2ed}.row{text-align:left;background:var(--card);border:1px solid #ede8df;border-left:3px solid var(--line);cursor:pointer;border-radius:9px;align-items:center;gap:10px;width:100%;padding:8px 11px;display:flex}.row:hover{background:#fcfbf8}.row-status{flex-shrink:0;font-size:12px;line-height:1}.row-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex-grow:1;min-width:0;font-size:13.5px;font-weight:500;overflow:hidden}.row-meta{color:var(--ink-3);flex-shrink:0;align-items:center;gap:8px;font-size:11px;display:flex}.quad-chip{white-space:nowrap;border-radius:5px;padding:2px 7px;font-size:10.5px;font-weight:600}.row-place{white-space:nowrap}.avatar.ghost{background:0 0}@media (width<=760px){.row{flex-wrap:wrap}.row-title{white-space:normal;flex-basis:100%}.row-meta{flex-wrap:wrap}}.calendar{flex-grow:1;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:12px;padding:12px 22px 18px;display:grid}@media (width<=1040px){.calendar{grid-template-columns:minmax(0,1fr);padding-left:16px;padding-right:16px}}.cal-main{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 11px 11px}.cal-head{align-items:center;gap:6px;padding:0 2px 8px;display:flex}.cal-head .btn-ghost.icon{color:var(--ink-3);font-size:16px;line-height:1}.cal-month{margin-left:6px;font-size:14px;font-weight:600}.cal-month:first-letter{text-transform:uppercase}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.cal-weekday{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-4);text-align:center;padding:2px 0 4px;font-size:10.5px;font-weight:600}.cal-day{border:1px solid var(--line-soft);border-radius:7px;flex-direction:column;gap:2px;min-height:86px;padding:3px 4px 4px;display:flex;overflow:hidden}.cal-day.outside{background:#faf8f4}.cal-day.outside .cal-daynum{color:var(--ink-5)}.cal-day.today{border-color:var(--indigo);box-shadow:inset 0 0 0 1px var(--indigo)}.cal-day.today .cal-daynum{color:var(--indigo);font-weight:700}.cal-day.dragover{background:var(--indigo-tint);border-color:var(--indigo)}.cal-daynum{color:var(--ink-3);font-variant-numeric:tabular-nums;padding:1px 2px;font-size:11px;font-weight:600}.cal-chip{text-align:left;background:var(--paper);border:none;border-left:3px solid var(--line);width:100%;color:var(--ink-2);cursor:grab;border-radius:4px;align-items:center;gap:4px;padding:3px 4px;font-size:10.5px;line-height:13px;display:flex}.cal-chip:hover{background:#efeae0}.cal-chip:active{cursor:grabbing}.cal-chip-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cal-chip.wide{background:var(--card);border:1px solid #ede8df;border-left:3px solid var(--line);padding:6px 8px;font-size:12px;line-height:16px}.cal-trays{flex-direction:column;gap:12px;display:flex}.tray-row{flex-direction:column;gap:3px;display:flex}.tray-row .due{align-self:flex-start;margin-left:4px;font-size:10.5px}.drawer.help{flex-direction:column;width:min(460px,100%);display:flex;overflow:hidden}.help-body{flex-direction:column;flex-grow:1;gap:10px;padding:16px 20px;display:flex;overflow-y:auto}.help-suggest{flex-wrap:wrap;gap:7px;margin-bottom:4px;display:flex}.help-suggest .chip{text-align:left;background:var(--card);border:1px solid var(--line);height:auto;padding:7px 11px;line-height:16px}.help-suggest .chip:hover{background:var(--indigo-tint);color:var(--indigo);border-color:#c9ccde}.bubble{white-space:pre-wrap;border-radius:12px;max-width:86%;padding:10px 13px;font-size:13.5px;line-height:20px}.bubble.me{background:var(--indigo-tint);color:var(--ink);border-radius:12px 12px 3px;align-self:flex-end}.bubble.ai{background:var(--card);border:1px solid var(--line);color:var(--ink-2);border-radius:12px 12px 12px 3px;align-self:flex-start}.help-foot{background:var(--card);border-top:1px solid var(--line);flex-shrink:0;gap:8px;padding:12px 16px;display:flex}.help-foot input{border:1px solid var(--line);border-radius:9px;outline:none;flex-grow:1;min-width:0;height:38px;padding:0 12px;font-size:13.5px}.help-foot input:focus{border-color:var(--indigo)}@media (width<=1340px){.nav button{padding:7px 10px;font-size:13px}.topbar{gap:10px}}@media (width<=1200px){.who{display:none}}.import{flex-grow:1;width:100%;max-width:980px;padding:12px 22px 24px}@media (width<=900px){.import{padding-left:16px;padding-right:16px}}.import-text{min-height:150px}.import-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.import-row{background:var(--card);border:1px solid #ede8df;border-left:3px solid var(--line);border-radius:9px;align-items:center;gap:9px;padding:7px 10px;display:flex}.import-row.off{opacity:.45}.import-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--indigo);cursor:pointer;flex-shrink:0}.import-title{min-width:0;color:var(--ink);background:0 0;border:none;border-radius:5px;outline:none;flex-grow:1;padding:3px 4px;font-size:13.5px;font-weight:500}.import-title:focus{background:var(--paper)}.import-date{border:1px solid var(--line);color:var(--ink-3);border-radius:7px;flex-shrink:0;padding:3px 6px;font-size:11.5px}.flash{background:var(--ink);color:#fff;z-index:60;border-radius:10px;padding:10px 16px;font-size:13.5px;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #1e1c1a38}
