.rdp-root{--rdp-accent-color: blue;--rdp-accent-background-color: #f0f0ff;--rdp-day-height: 44px;--rdp-day-width: 44px;--rdp-day_button-border-radius: 100%;--rdp-day_button-border: 2px solid transparent;--rdp-day_button-height: 42px;--rdp-day_button-width: 42px;--rdp-selected-border: 2px solid var(--rdp-accent-color);--rdp-disabled-opacity: .5;--rdp-outside-opacity: .75;--rdp-today-color: var(--rdp-accent-color);--rdp-dropdown-gap: .5rem;--rdp-months-gap: 2rem;--rdp-nav_button-disabled-opacity: .5;--rdp-nav_button-height: 2.25rem;--rdp-nav_button-width: 2.25rem;--rdp-nav-height: 2.75rem;--rdp-range_middle-background-color: var(--rdp-accent-background-color);--rdp-range_middle-color: inherit;--rdp-range_start-color: white;--rdp-range_start-background: linear-gradient( var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50% );--rdp-range_start-date-background-color: var(--rdp-accent-color);--rdp-range_end-background: linear-gradient( var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50% );--rdp-range_end-color: white;--rdp-range_end-date-background-color: var(--rdp-accent-color);--rdp-week_number-border-radius: 100%;--rdp-week_number-border: 2px solid transparent;--rdp-week_number-height: var(--rdp-day-height);--rdp-week_number-opacity: .75;--rdp-week_number-width: var(--rdp-day-width);--rdp-weeknumber-text-align: center;--rdp-weekday-opacity: .75;--rdp-weekday-padding: .5rem 0rem;--rdp-weekday-text-align: center;--rdp-gradient-direction: 90deg;--rdp-animation_duration: .3s;--rdp-animation_timing: cubic-bezier(.4, 0, .2, 1)}.rdp-root[dir=rtl]{--rdp-gradient-direction: -90deg}.rdp-root[data-broadcast-calendar=true]{--rdp-outside-opacity: unset}.rdp-root{position:relative;box-sizing:border-box}.rdp-root *{box-sizing:border-box}.rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height);text-align:center}.rdp-day_button{background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;justify-content:center;align-items:center;display:flex;width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:var(--rdp-day_button-border);border-radius:var(--rdp-day_button-border-radius)}.rdp-day_button:disabled{cursor:revert}.rdp-caption_label{z-index:1;position:relative;display:inline-flex;align-items:center;white-space:nowrap;border:0}.rdp-dropdown:focus-visible~.rdp-caption_label{outline:5px auto Highlight;outline:5px auto -webkit-focus-ring-color}.rdp-button_next,.rdp-button_previous{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;-moz-appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;position:relative;appearance:none;width:var(--rdp-nav_button-width);height:var(--rdp-nav_button-height)}.rdp-button_next:disabled,.rdp-button_next[aria-disabled=true],.rdp-button_previous:disabled,.rdp-button_previous[aria-disabled=true]{cursor:revert;opacity:var(--rdp-nav_button-disabled-opacity)}.rdp-chevron{display:inline-block;fill:var(--rdp-accent-color)}.rdp-root[dir=rtl] .rdp-nav .rdp-chevron{transform:rotate(180deg);transform-origin:50%}.rdp-dropdowns{position:relative;display:inline-flex;align-items:center;gap:var(--rdp-dropdown-gap)}.rdp-dropdown{z-index:2;opacity:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;inset-block-start:0;inset-block-end:0;inset-inline-start:0;width:100%;margin:0;padding:0;cursor:inherit;border:none;line-height:inherit}.rdp-dropdown_root{position:relative;display:inline-flex;align-items:center}.rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:var(--rdp-disabled-opacity)}.rdp-month_caption{display:flex;align-content:center;height:var(--rdp-nav-height);font-weight:700;font-size:large}.rdp-root[data-nav-layout=around] .rdp-month,.rdp-root[data-nav-layout=after] .rdp-month{position:relative}.rdp-root[data-nav-layout=around] .rdp-month_caption{justify-content:center;margin-inline-start:var(--rdp-nav_button-width);margin-inline-end:var(--rdp-nav_button-width);position:relative}.rdp-root[data-nav-layout=around] .rdp-button_previous{position:absolute;inset-inline-start:0;top:0;height:var(--rdp-nav-height);display:inline-flex}.rdp-root[data-nav-layout=around] .rdp-button_next{position:absolute;inset-inline-end:0;top:0;height:var(--rdp-nav-height);display:inline-flex;justify-content:center}.rdp-months{position:relative;display:flex;flex-wrap:wrap;gap:var(--rdp-months-gap);max-width:fit-content}.rdp-month_grid{border-collapse:collapse}.rdp-nav{position:absolute;inset-block-start:0;inset-inline-end:0;display:flex;align-items:center;height:var(--rdp-nav-height)}.rdp-weekday{opacity:var(--rdp-weekday-opacity);padding:var(--rdp-weekday-padding);font-weight:500;font-size:smaller;text-align:var(--rdp-weekday-text-align);text-transform:var(--rdp-weekday-text-transform)}.rdp-week_number{opacity:var(--rdp-week_number-opacity);font-weight:400;font-size:small;height:var(--rdp-week_number-height);width:var(--rdp-week_number-width);border:var(--rdp-week_number-border);border-radius:var(--rdp-week_number-border-radius);text-align:var(--rdp-weeknumber-text-align)}.rdp-today:not(.rdp-outside){color:var(--rdp-today-color)}.rdp-selected{font-weight:700;font-size:large}.rdp-selected .rdp-day_button{border:var(--rdp-selected-border)}.rdp-outside{opacity:var(--rdp-outside-opacity)}.rdp-disabled:not(.rdp-selected){opacity:var(--rdp-disabled-opacity)}.rdp-hidden{visibility:hidden;color:var(--rdp-range_start-color)}.rdp-range_start{background:var(--rdp-range_start-background)}.rdp-range_start .rdp-day_button{background-color:var(--rdp-range_start-date-background-color);color:var(--rdp-range_start-color)}.rdp-range_middle{background-color:var(--rdp-range_middle-background-color)}.rdp-range_middle .rdp-day_button{border:unset;border-radius:unset;color:var(--rdp-range_middle-color)}.rdp-range_end{background:var(--rdp-range_end-background);color:var(--rdp-range_end-color)}.rdp-range_end .rdp-day_button{color:var(--rdp-range_start-color);background-color:var(--rdp-range_end-date-background-color)}.rdp-range_start.rdp-range_end{background:revert}.rdp-focusable{cursor:pointer}@keyframes rdp-slide_in_left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rdp-slide_in_right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rdp-slide_out_left{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes rdp-slide_out_right{0%{transform:translate(0)}to{transform:translate(100%)}}.rdp-weeks_before_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_before_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}@keyframes rdp-fade_in{0%{opacity:0}to{opacity:1}}@keyframes rdp-fade_out{0%{opacity:1}to{opacity:0}}.rdp-caption_after_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_after_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}:root{--accent: #6366f1;--warn: #f59e0b;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--row-h: 40px;--row-pad: 10px;--cell-font: 14px}:root[data-theme=dark],:root:not([data-theme]){--bg: #0b1020;--panel: #111827;--panel-2: #0d1426;--field: #0b1224;--line: #1f2937;--text: #e5e7eb;--muted: #9ca3af;--row-hover: #131c30;--row-alt: #0e1626;--chip: #1f2937}:root[data-theme=light]{--bg: #f6f7fb;--panel: #ffffff;--panel-2: #f1f3f9;--field: #ffffff;--line: #e2e6ef;--text: #1f2430;--muted: #6b7280;--row-hover: #eaeef6;--row-alt: #eef1f8;--chip: #eef1f7}:root[data-density=cozy]{--row-h: 48px;--row-pad: 14px;--cell-font: 15px}:root[data-density=comfortable]{--row-h: 40px;--row-pad: 10px;--cell-font: 14px}:root[data-density=compact]{--row-h: 30px;--row-pad: 6px;--cell-font: 13px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text)}.centered{height:100%;display:grid;place-items:center}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px;width:min(360px,90vw);display:flex;flex-direction:column;gap:12px}.card h1{margin:0;font-size:20px}.card input,.card button{padding:10px 12px;border-radius:8px;font-size:15px}.card input{background:var(--field);border:1px solid var(--line);color:var(--text)}.card button{background:var(--accent);color:#fff;border:none;cursor:pointer}.card button:disabled{opacity:.5;cursor:default}.card .devlink{background:transparent;color:var(--muted);border:none;text-decoration:underline;padding:4px;font-size:13px}.card .devlink:hover{color:var(--text)}.error{color:#f87171;font-size:13px}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--panel);flex:none}.topbar .grow{flex:1}.topbar .brand{font-size:15px}.topbar .count{color:var(--muted);font-size:13px;display:inline-flex;align-items:center;gap:8px}.topbar .count-jump{display:inline-flex;align-items:center;gap:6px}.topbar .count-jump .icon{width:28px;padding:4px 0}.topbar .count-jump .linkbtn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:13px;padding:0}.modal-backdrop:has(.jump-modal){align-items:start}.jump-modal{width:284px;margin-top:14vh}.jump-modal .jump-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.jump-modal .jump-head h3{margin:0;font-size:15px}.jump-modal .jump-selected{color:var(--muted);font-size:13px}.jump-modal .jump-text{width:100%;box-sizing:border-box;background:var(--chip);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:14px}.jump-modal .jump-toggle{background:none;border:none;color:var(--accent);cursor:pointer;font-size:13px;padding:8px 0 0}.jump-modal .rdp-root{--rdp-accent-color: var(--accent);--rdp-accent-background-color: var(--chip);--rdp-today-color: var(--accent);--rdp-day-width: 38px;--rdp-day-height: 38px;--rdp-day_button-width: 38px;--rdp-day_button-height: 38px;--rdp-outside-opacity: .4;margin:0 auto;color:var(--text)}.jump-modal .rdp-month_caption{font-size:14px;font-weight:600}.jump-modal .rdp-weekday{color:var(--muted);font-weight:500;text-transform:none}.jump-modal .rdp-day_button{border-radius:8px;font-variant-numeric:tabular-nums}.jump-modal .rdp-day_button:hover{background:var(--chip)}.jump-modal .rdp-chevron{fill:var(--text)}.jump-modal .rdp-button_previous:hover,.jump-modal .rdp-button_next:hover{background:var(--chip)}.jump-modal .rdp-dropdowns{gap:6px}.jump-modal .rdp-dropdown_root{position:relative}.jump-modal .rdp-dropdown{background:var(--chip);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:14px;font-weight:600;cursor:pointer}.jump-modal .rdp-dropdown option{background:var(--panel-2);color:var(--text)}.topbar button,.topbar select{background:var(--chip);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:13px}.topbar .icon{width:34px;padding:6px 0}.settings-menu{position:relative}.settings-popover{position:absolute;top:110%;right:0;z-index:60;width:280px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;box-shadow:0 8px 24px #0000004d;display:flex;flex-direction:column;gap:10px}.settings-popover h3{margin:0 0 2px;font-size:14px}.settings-popover .set-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.settings-popover .set-row>span{width:70px;flex:none}.settings-popover .set-row>span.set-note{width:auto;flex:1}.settings-popover .set-row select{flex:1;min-width:0;max-width:100%;background:var(--field);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:13px}.toggle{margin-left:auto;flex:none;box-sizing:border-box;width:40px;height:22px;padding:0;border:none;border-radius:999px;background:var(--line);position:relative;cursor:pointer;transition:background .15s;vertical-align:middle}.toggle.on{background:var(--accent)}.toggle:disabled{opacity:.5;cursor:default}.toggle .toggle-knob{position:absolute;top:50%;left:2px;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0000004d;transition:left .15s}.toggle.on .toggle-knob{left:calc(100% - 20px)}.settings-popover .seg{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--chip);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer}.settings-popover .set-hint{margin:0;color:var(--muted);font-size:11px}.settings-popover .set-note{flex:1;color:var(--muted);font-size:12px;text-align:right}.settings-popover .set-row input[type=number]{flex:1;width:0;min-width:0;background:var(--field);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:13px}.settings-popover .set-row .set-unit{width:auto;flex:none;color:var(--muted);font-size:12px}.nav.menu{display:flex;gap:2px}.nav.menu button{display:inline-grid;background:transparent;border:none;color:var(--muted);padding:6px 10px;border-radius:6px;cursor:pointer;font-size:14px}.nav.menu button:before{content:attr(data-label);font-weight:600;height:0;visibility:hidden;overflow:hidden}.nav.menu button{grid-template-rows:0 1fr;place-items:center}.nav.menu button:hover{background:var(--chip);color:var(--text)}.nav.menu button.on{color:var(--text);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent);border-radius:0}.badge{background:var(--warn);color:#1a1300;border:none;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer}.tt-grid{display:grid;grid-template-columns:var(--tt-cols, 96px 96px 92px 140px 140px 320px 140px 46px 84px minmax(0, 1fr));align-items:center;width:100%;min-width:max-content}.tt-grid .cell{padding:0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--cell-font)}.tt-grid .cell.spacer{padding:0}.tt-grid.head{border-bottom:1px solid var(--line);background:var(--panel-2);position:sticky;top:0;z-index:2}.tt-grid.head .cell{position:relative;overflow:visible;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;height:34px;line-height:34px}.tt-grid.head .resizer{position:absolute;top:0;right:-4px;width:9px;height:100%;cursor:col-resize;z-index:5}.tt-grid.head .resizer:hover{background:var(--accent);opacity:.5}.tt-grid.row{border-bottom:1px solid var(--line)}.tt-grid.row.odd{background:var(--row-alt)}.tt-grid.row:hover{background:var(--row-hover)}.tt-grid.row.overlap{box-shadow:inset 3px 0 #f87171}.tt-grid .start,.tt-grid .end,.tt-grid .dur{color:var(--muted);font-variant-numeric:tabular-nums}.tt-grid .dur{text-align:right}.tt-grid .task{color:var(--text)}.tt-grid .end{display:flex;align-items:center;gap:3px}.tt-grid .end .tzicon{color:var(--accent);flex:none;display:inline-flex;align-items:center}.future-warn{color:#f59e0b;flex:none;display:inline-flex;align-items:center}.entry-input input[aria-invalid=true]{color:#f59e0b}.tt-grid .actions{display:flex;justify-content:center;gap:4px}.tt-grid .ticks-cell{display:flex;align-items:center}.gap-row{display:flex;align-items:center;justify-content:center;gap:12px;height:var(--row-h);color:var(--muted);font-size:12px;background:repeating-linear-gradient(45deg,transparent,transparent 6px,var(--panel-2) 6px,var(--panel-2) 12px);border-bottom:1px solid var(--line)}.gap-row span{font-style:italic}.linkbtn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;padding:0;text-decoration:underline}.linkbtn:hover{opacity:.8}.date-row{height:var(--row-h);display:flex;align-items:center;padding:0 14px;font-size:12px;font-weight:600;color:var(--text);background:var(--panel-2);border-bottom:1px solid var(--line);position:sticky}.nextday{color:var(--accent);font-size:9px;margin-left:2px}.modal.confirm{width:min(380px,92vw)}.modal.confirm p{margin:0 0 4px}.iconbtn{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:6px;display:inline-flex}.iconbtn:hover{color:var(--text)}.iconbtn.danger:hover{color:#f87171}.timeline-wrap{display:flex;flex-direction:column;flex:1;min-height:0;overflow-x:auto}.timeline{flex:1;overflow-y:auto;min-height:0}.tt-grid.row.empty{pointer-events:none}.tt-grid.row.empty:hover{background:inherit}.tt-grid.row{height:var(--row-h)}.entry-input{background:#6366f11f;height:var(--row-h)}.entry-input .cell{padding:0}.entry-input .cell.dur{padding:0 10px}.entry-input input,.entry-input .ac input{width:100%;height:calc(var(--row-h) - 6px);box-sizing:border-box;background:transparent;border:none;border-radius:0;color:var(--text);padding:0 10px;font-size:var(--cell-font)}.entry-input input::placeholder{color:var(--muted);opacity:.55}.entry-input input:focus,.entry-input .ac input:focus{outline:none}.entry-input .derived{color:var(--muted);display:flex;align-items:center;gap:4px}.iconbtn.add-icon,.iconbtn.add-icon:hover{color:var(--accent)}.iconbtn.add-icon:disabled{color:var(--muted);opacity:.5;cursor:default}.mini{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:2px 4px}.mini:hover{color:var(--text)}.ticks{display:inline-flex;align-items:center}.tick{color:var(--line);margin-left:-4px}.tick.done{color:var(--accent)}.entry-input .endcell{display:flex;gap:4px;align-items:center}.entry-input .endcell input[type=text]{flex:none;width:70px;order:1}.entry-input .endcell .datefield{order:2}.entry-input .endcell .future-warn{order:3}.entry-input .cell.start{padding:0 10px}.entry-input .cell.start input{padding:0;font-variant-numeric:tabular-nums}.entry-input .start .starttime{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:var(--cell-font);font-variant-numeric:tabular-nums;padding:0;border-radius:6px}.entry-input .start .starttime:hover{color:var(--text);text-decoration:underline}.datefield{position:relative;display:inline-flex;align-items:center;gap:6px}.datefield .native-date{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0}.datebtn{display:inline-flex;align-items:center;gap:1px;background:var(--chip);border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:5px 7px;cursor:pointer}.datebtn:hover{color:var(--text)}.datebtn.rolled{background:#6366f12e;color:var(--accent);border-color:var(--accent)}.datebtn .nextday{color:inherit}.datebtn .badgeslot{display:inline-block;width:12px;text-align:left}.datebtn.icononly{background:transparent;border:none;padding:2px;gap:0;position:relative}.datebtn.icononly .badgeslot{position:absolute;top:-5px;right:-7px;width:auto;font-size:9px;line-height:1;color:var(--accent)}.datebtn.icononly .badgeslot:empty{display:none}.datefield .datetext{font-size:13px;color:var(--text)}.datetimefield{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.datetimefield .timeinput{width:84px;background:var(--field);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:6px 8px;font-size:14px}.syncstatus{position:relative}.topbar .syncstatus .icon.ok{color:var(--accent)}.topbar .syncstatus .icon.off{color:var(--muted)}.topbar .syncstatus .icon.err{color:#f87171}.sync-popover{position:absolute;top:110%;right:0;z-index:60;width:240px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;box-shadow:0 8px 24px #0000004d;font-size:13px;display:flex;flex-direction:column;gap:6px}.sync-popover .sp-row{display:flex;align-items:center;gap:8px}.sync-popover .sp-row .grow{flex:1}.sync-popover .sp-row .ghost{background:var(--chip);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:4px 8px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.sync-popover .sp-line{color:var(--muted)}.sync-popover .sp-error{color:#f87171;word-break:break-word}.cards{flex:1;overflow:auto;padding:10px 12px 96px;display:flex;flex-direction:column;gap:8px}.card-day{position:sticky;top:0;z-index:1;margin:10px 0 2px;padding:4px 2px;font-size:13px;font-weight:600;color:var(--muted);background:var(--bg);border-bottom:1px solid var(--line)}.card-day:first-child{margin-top:0}.entry-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;overflow:hidden}.entry-card.overlap{border-left:3px solid #f87171}.entry-card .ec-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.entry-card .ec-time{font-size:14px;color:var(--text);font-variant-numeric:tabular-nums}.entry-card .ec-time .nextday{color:var(--muted);font-size:10px;margin-left:2px}.entry-card .ec-dur{flex:none;font-size:13px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}.entry-card .ec-task{font-size:16px;line-height:1.35;margin:6px 0 0;overflow-wrap:anywhere}.entry-card .ec-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.entry-card .ec-tags em{display:inline-flex;align-items:center;gap:4px;font-style:normal;font-size:12px;background:var(--chip);color:var(--text);border-radius:999px;padding:3px 10px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-card .ec-tags em svg{flex:none;opacity:.8}.entry-card .ec-tags em.cat{background:#6366f12e;color:var(--accent)}.entry-card.density-compact{padding:8px 12px}.entry-card.density-compact .ec-task{font-size:14px;margin-top:3px}.entry-card.density-cozy{padding:16px}.entry-card.density-cozy .ec-task{font-size:17px;margin-top:8px}.fab{position:fixed;right:18px;bottom:18px;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;border:none;box-shadow:0 6px 20px #00000059;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:40}.gap-card{display:block;width:100%;text-align:center;color:var(--muted);font-size:12px;font-style:italic;padding:4px;background:none;border:none;border-radius:8px;cursor:pointer}.gap-card:active{background:var(--chip)}.mobile-menu{display:inline-flex}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#00000080;display:flex;justify-content:flex-end;animation:fade-in .12s ease}.drawer{width:min(86vw,340px);height:100%;overflow-y:auto;background:var(--panel);border-left:1px solid var(--line);box-shadow:-8px 0 24px #0006;display:flex;flex-direction:column;gap:14px;padding:14px;animation:slide-in .16s ease}.drawer-head{display:flex;align-items:center;justify-content:space-between}.drawer-head strong{font-size:16px}.drawer-head .icon{width:34px;height:34px;background:none;border:none;color:var(--text);cursor:pointer}.drawer-nav{display:flex;flex-direction:column;gap:2px}.drawer-nav button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:none;border:none;color:var(--text);font-size:15px;padding:12px 10px;border-radius:10px;cursor:pointer}.drawer-nav button:hover{background:var(--chip)}.drawer-nav button.on{background:var(--chip);color:var(--accent);font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}.drawer-jump{border-top:1px solid var(--line);padding-top:12px}.drawer-section{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:10px}.drawer-sync-head{display:flex;align-items:center;gap:8px;font-size:14px}.drawer-sync-head .grow{flex:1}.drawer-sync-head .muted{color:var(--muted);font-size:12px}.drawer-sync-head svg.on{color:var(--accent)}.drawer-sync-head svg.off{color:var(--muted)}.drawer-sync-err{color:#f87171;font-size:12px}.drawer-actions{display:flex;gap:8px}.drawer-actions button,.drawer-foot button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--chip);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px;font-size:13px;cursor:pointer}.drawer-foot button.danger{color:#f87171}.settings-inline{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:12px}.settings-inline h3{margin:0 0 2px;font-size:14px}.settings-inline .set-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.settings-inline .set-row>span{width:84px;flex:none}.settings-inline .set-row>span.set-note{width:auto;flex:1}.settings-inline .set-row select{flex:1;min-width:0;max-width:100%;background:var(--field);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px;font-size:13px}.settings-inline .set-row input[type=number]{flex:1;width:0;min-width:0;background:var(--field);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px;font-size:13px}.settings-inline .set-row .set-unit{width:auto;flex:none;color:var(--muted);font-size:12px}.settings-inline .set-hint{margin:0;color:var(--muted);font-size:11px}.settings-inline .set-note{color:var(--muted);font-size:12px;text-align:right}.enc-section{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:12px}.enc-state{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;margin-left:auto}.enc-state svg{flex:none}.enc-state.on{color:#34c759}.enc-state.locked{color:#ff9f0a}.enc-state.off{color:var(--muted)}.enc-form{display:flex;flex-direction:column;gap:8px}.enc-form input[type=password]{background:var(--field);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px;font-size:13px}.enc-form-actions,.enc-actions{display:flex;gap:8px;flex-wrap:wrap}.enc-btn{background:var(--field);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:13px;cursor:pointer}.enc-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.enc-btn:disabled{opacity:.6;cursor:default}.enc-msg{margin:0;font-size:12px;color:var(--muted)}.locked-banner{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 12px;background:#ff9f0a22;border-bottom:1px solid #ff9f0a55;font-size:13px;color:var(--text)}.locked-text{display:inline-flex;align-items:center;gap:6px}.locked-text svg{flex:none;color:#ff9f0a}.locked-banner button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:6px 12px;font-size:13px;cursor:pointer}.locked-form{display:inline-flex;gap:6px}.locked-form input{background:var(--field);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:13px}.locked-err{color:#ff453a;font-size:12px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}@media(max-width:760px){.desktop-only{display:none!important}.topbar .count{display:none}.topbar{flex-wrap:wrap;gap:6px 8px;padding:8px 10px}.topbar button,.topbar select{padding:6px 8px}.topbar .icon{width:30px}.topbar .brand{font-size:14px}.topbar .nav.menu{order:10;flex-basis:100%;justify-content:space-around;gap:2px}.topbar .nav.menu button{flex:1}.devices{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.devices th,.devices td{white-space:nowrap}}@media(min-width:761px){.mobile-only{display:none!important}}.ac{display:block}.ac-list{z-index:200;margin:2px 0;padding:4px;list-style:none;max-height:280px;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #0006}.ac-list li{padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ac-list li.hi{background:var(--accent);color:#fff}.loader{flex:1;display:flex;flex-direction:column;gap:14px;align-items:center;justify-content:center;color:var(--muted)}.spinner{width:36px;height:36px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.backfill-bar{flex:none;display:flex;align-items:center;gap:8px;padding:5px 14px;font-size:12px;color:var(--muted);background:var(--panel-2);border-bottom:1px solid var(--line)}.spinner.sm{width:13px;height:13px;border-width:2px}.loadbar{width:min(320px,70vw);height:8px;background:var(--line);border-radius:999px;overflow:hidden}.loadbar-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .2s ease}.loadpct{margin:0;font-size:13px;color:var(--accent);font-variant-numeric:tabular-nums}.loadhint{margin:0;font-size:12px;color:var(--muted);max-width:320px;text-align:center}@keyframes spin{to{transform:rotate(360deg)}}.page{flex:1;overflow:auto;padding:20px 24px}.page-head{display:flex;align-items:center;gap:8px;margin-bottom:16px}.page-head h1{margin:0;font-size:20px}.page-head .grow{flex:1}.page-head button{background:var(--chip);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 12px;cursor:pointer}.page-head button.on{background:var(--accent);color:#fff}.page section{margin-bottom:24px;max-width:760px}.page h2{font-size:15px;color:var(--muted)}.shortcuts td{padding:6px 12px 6px 0;font-size:14px}kbd{background:var(--chip);border:1px solid var(--line);border-radius:6px;padding:2px 8px;font-family:ui-monospace,monospace;font-size:13px}.devices{width:100%;max-width:760px;border-collapse:separate;border-spacing:0}.devices th{text-align:left;color:var(--muted);font-size:12px;padding:8px;border-bottom:1px solid var(--line)}.devices td{height:44px;padding:6px 8px;border-bottom:1px solid var(--line);font-size:14px}.devices .this{color:var(--accent);font-size:12px}.devices .row-actions{display:flex;gap:8px}.devices button.ghost{background:var(--chip);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:4px 10px;cursor:pointer}.devices button.danger{color:#f87171}.forgotten-note{color:var(--muted);font-size:13px}.sync-offline-banner{display:flex;align-items:center;gap:16px;flex-wrap:wrap;max-width:760px;margin-top:20px;padding:16px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px}.sync-offline-banner .sob-text{display:flex;flex-direction:column;gap:4px;flex:1;min-width:220px}.sync-offline-banner .sob-text strong{font-size:14px}.sync-offline-banner .sob-text span{color:var(--muted);font-size:13px;line-height:1.45}.sync-offline-banner button.primary{flex:none;display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#fff;border:none;border-radius:8px;padding:9px 14px;cursor:pointer;font-size:14px}.qr-target{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%}.qr-target select{background:var(--field);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 8px}.qr-missing{color:var(--muted);font-size:13px}.devices .dev-name{display:inline-flex;align-items:center;gap:6px}.devices .server-row,.devices .self-row{background:var(--panel-2)}.devices .muted{color:var(--muted);font-size:13px;display:inline-flex;align-items:center;gap:4px}.pending-pill{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600;background:#f59e0b2e;color:var(--warn);border:1px solid rgba(245,158,11,.4)}.pending-pill.ok,.pending-pill.muted{background:transparent;color:var(--muted);border-color:var(--line);font-weight:500}.modal .field{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:10px}.modal .field .flabel{color:var(--muted);font-size:13px}.modal .field .finput,.modal .field .finput input{width:100%}.modal .field .loser{grid-column:2;color:var(--warn);font-size:12px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:grid;place-items:center;z-index:50}.modal{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;width:min(440px,92vw);display:flex;flex-direction:column;gap:10px}.modal h2{margin:0 0 4px;font-size:18px}.modal label{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}.modal label>input,.modal label>*{color:var(--text)}.modal input{background:var(--field);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 10px;flex:1}.modal .ac input{background:var(--field);color:var(--text)}.modal select{background:var(--field);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%;font-size:14px}.modal .field .finput select{width:100%}.modal .loser{color:var(--warn);font-size:12px}.conflict-note{color:var(--warn);font-size:13px;margin:0}.modal-actions{display:flex;align-items:center;gap:8px;margin-top:8px}.modal-actions .grow{flex:1}.modal-actions button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:8px 14px;cursor:pointer}.modal-actions button.ghost{background:var(--chip);color:var(--text)}.modal-actions button.danger{color:#fca5a5}.modal .future-note{color:var(--warn);font-size:13px;margin:0}.modal-backdrop.quick-backdrop{display:block;background:var(--bg)}.modal.quick-entry{width:100%;max-width:none;min-height:100%;box-sizing:border-box;border:none;border-radius:0;padding:16px;padding-top:max(16px,env(safe-area-inset-top))}.quick-entry .qe-head{display:flex;align-items:center;gap:4px}.quick-entry .qe-head h2{margin:0}.quick-entry .qe-head .grow{flex:1}.quick-entry .qe-time{display:flex;align-items:center;gap:10px;font-size:18px}.quick-entry .qe-start{color:var(--text);font-variant-numeric:tabular-nums}.quick-entry .qe-arrow{color:var(--muted)}.quick-entry .qe-time input{width:4.5em;flex:none;text-align:center;font-size:18px;font-variant-numeric:tabular-nums;padding:8px 6px}.quick-entry .qe-time .datefield{flex:none}.quick-entry .qe-dur{margin-left:auto;color:var(--muted);font-size:15px;font-variant-numeric:tabular-nums}.quick-entry .qe-fields{display:flex;flex-direction:column;gap:10px}.quick-entry .qe-fields .ac,.quick-entry .qe-fields .ac input{width:100%}.quick-entry .qe-fields .ac input{font-size:16px;padding:10px 12px}.drawer{position:fixed;top:0;right:0;height:100%;width:min(420px,92vw);z-index:40;background:var(--panel);border-left:1px solid var(--line);padding:16px;overflow:auto}.drawer header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.drawer .empty{color:var(--muted)}.drawer button.ghost{background:transparent;color:var(--muted);border:none;cursor:pointer;font-size:16px}.conflict-item{border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px;display:flex;gap:10px;align-items:center}.conflict-fields{flex:1;display:flex;flex-direction:column;gap:4px}.conflict-field{display:flex;gap:8px;font-size:13px;align-items:baseline}.conflict-field .fname{color:var(--muted);width:64px}.conflict-field .kept{color:var(--text)}.conflict-field .vs{color:var(--muted);font-size:11px}.conflict-field .other{color:var(--warn)}.conflict-item button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:6px 12px;cursor:pointer}.modal.qr{width:min(380px,94vw);align-items:stretch}.qr-head{display:flex;align-items:center;gap:8px}.qr-head .grow{flex:1}.qr-head button.ghost{background:transparent;border:none;color:var(--muted);cursor:pointer;display:inline-flex;padding:2px}.qr-head button.ghost:hover{color:var(--text)}.qr-pane{display:flex;flex-direction:column;gap:12px;align-items:center}.qr-pane h3{margin:4px 0;font-size:15px;color:var(--muted)}.qr-pane canvas{background:#fff;border-radius:8px}.qr-video{width:260px;height:200px;background:#000;border-radius:8px;object-fit:cover}.qr-video.big{width:100%;max-width:340px;height:300px}.qr-pane textarea{width:100%;min-height:56px;background:var(--field);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px;font-size:11px;font-family:ui-monospace,monospace}.qr-pane details{width:100%}.qr-pane summary{cursor:pointer;color:var(--muted);font-size:13px}.qr-actions{display:flex;gap:8px}.qr-actions button,.qr-pane details>button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:8px 14px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.qr-progress{color:var(--muted);font-size:13px}.qr-status{color:var(--accent);font-size:13px;text-align:center}.qr-status.err{color:#f87171}.hint{color:var(--muted);font-size:12px;text-align:center}.qr-lead{font-size:14px;text-align:center;margin:0}.qr-choice{display:flex;flex-direction:column;gap:8px;width:100%}.qr-choice button{background:var(--chip);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:11px 14px;cursor:pointer;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.qr-choice button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.qr-choice button:disabled{opacity:.4;cursor:default}.qr-steps{margin:0;padding-left:20px;font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:6px}.qr-steps strong{color:var(--text)}.qr-anim-wrap{display:flex;flex-direction:column;gap:6px;align-items:center}.qr-confirm{display:flex;align-items:flex-end;gap:8px;width:100%}.qr-confirm label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);flex:1;min-width:0}.qr-confirm input{width:100%;min-width:0;box-sizing:border-box;background:var(--field);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 6px;font-size:18px;letter-spacing:2px;text-align:center;font-family:ui-monospace,monospace}.qr-confirm button{flex:none;background:var(--accent);color:#fff;border:none;border-radius:8px;padding:9px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.qr-confirm button:disabled{opacity:.4;cursor:default}.qr-anim-meta{color:var(--muted);font-size:13px}.qr-controls{display:flex;gap:6px;align-items:center}.qr-controls button{background:var(--chip);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:7px 10px;cursor:pointer;display:inline-flex}.qr-controls button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.qr-controls button:disabled{opacity:.4;cursor:default}.qr-frag{width:100%;display:flex;flex-direction:column;gap:6px;align-items:center}.qr-frag-cells{display:flex;flex-wrap:nowrap;gap:2px;width:100%}.qr-frag-cell{flex:1 1 0;min-width:0;height:10px;border-radius:2px;background:var(--chip);border:1px solid var(--line);transition:background .1s}.qr-frag-cell.got{background:#22c55e;border-color:#22c55e}.qr-done{display:inline-flex;align-items:center;gap:8px;color:var(--accent);font-size:15px;text-align:center}.qr-code-show{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;width:100%}.qr-code-show span{font-size:13px;color:var(--muted)}.qr-code-show strong{font-size:32px;letter-spacing:8px;font-family:ui-monospace,monospace;color:var(--text)}.modal.reports{width:min(720px,95vw)}.reports-head{display:flex;align-items:center;gap:8px}.reports-head h2{margin:0}.reports-head .grow{flex:1}.reports-head button{background:#1f2937;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer}.reports-head button.on{background:var(--accent);color:#fff}.reports-total{color:var(--muted)}.reports-cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.reports-col h3{margin:0 0 8px;font-size:13px;color:var(--muted);text-transform:capitalize}.reports-row{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:3px 0;border-bottom:1px solid var(--line)}.reports-row .rname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reports-row .rval{color:var(--accent);font-variant-numeric:tabular-nums;flex:none}
