:root{--bg:#f4f5f7;--card:#fff;--text:#1f2933;--muted:#6b7280;--primary:#2563eb;--border:#e5e7eb;color:var(--text);background:var(--bg);font-family:Hiragino Sans,Noto Sans JP,system-ui,sans-serif;line-height:1.5}*{box-sizing:border-box;margin:0}html,body{overflow-anchor:none}.app-header{z-index:30;background:var(--card);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 24px;transition:transform .25s;display:flex;position:sticky;top:0}.app-header.is-hidden{transform:translateY(-100%)}@media (prefers-reduced-motion:reduce){.app-header{transition:none}}.app-header .logo{font-size:17px;font-weight:700}.app-header nav{align-items:center;display:flex}.app-header nav a{color:var(--muted);margin-left:18px;font-size:14px;text-decoration:none}.app-header nav a.current{color:var(--primary);font-weight:600}.app-header .logout{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-left:18px;padding:0;font-size:14px}.app-main{margin:24px auto;padding:0 16px}@media (width<=640px){.app-header{flex-direction:column;gap:8px;padding:10px 12px}.app-header nav{flex-wrap:wrap;justify-content:center}.app-header nav a,.app-header .logout{margin:0 8px;padding:4px 0}}.month-picker-anchor{display:inline-block}.month-picker-anchor .mp-toggle{font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:2px 8px}.month-picker-anchor .mp-toggle:hover,.month-picker-anchor .mp-toggle:focus-visible{border-color:var(--border);background:var(--card)}.month-picker{position-anchor:var(--month-picker-anchor);position-area:block-end;justify-self:anchor-center;position-try-fallbacks:flip-block;position-try-order:most-block-size;position-visibility:anchors-visible;z-index:30;background:var(--card);border:1px solid var(--border);border-radius:12px;width:260px;max-height:calc(100% - 8px);margin:6px 0 0;padding:10px;position:fixed;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.month-picker .mp-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.month-picker .mp-head button{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:8px;padding:2px 10px;font-size:14px}.month-picker .mp-month{font-size:14px;font-weight:600}.month-picker .mp-dow,.month-picker .mp-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.month-picker .mp-dow span{text-align:center;color:var(--muted);padding-bottom:2px;font-size:11px}.month-picker .mp-dow .sun{color:#dc2626}.month-picker .mp-dow .sat{color:#2563eb}.month-picker .mp-grid button{cursor:pointer;color:var(--text);background:0 0;border:1px solid #0000;border-radius:6px;padding:5px 0;font-size:13px}.month-picker .mp-grid button:hover{background:#eef2ff}.month-picker .mp-grid button.other-month{color:var(--muted);opacity:.55}.month-picker .mp-grid button.today{border-color:var(--primary);font-weight:700}.month-picker .mp-grid button.selected{background:var(--primary);border-color:var(--primary);color:#fff}.month-picker .mp-foot{justify-content:center;margin-top:8px;display:flex}.month-picker .mp-foot button{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:8px;padding:4px 14px;font-size:13px}.calendar .calendar-header{top:var(--app-nav-h,0px);z-index:20;background:var(--bg);padding-top:8px;transition:top .25s;position:sticky}@media (prefers-reduced-motion:reduce){.calendar .calendar-header{transition:none}}.calendar .cal-nav{justify-content:center;align-items:center;gap:16px;margin-bottom:8px;display:flex}.calendar .cal-nav>button{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:8px;padding:6px 14px;font-size:14px}.calendar .cal-nav h1{font-size:18px}.calendar .hint{text-align:center;color:var(--muted);margin-bottom:12px;font-size:12px}.calendar .panel{background:var(--card);border:1px solid var(--border);border-top:none;border-radius:0 0 12px 12px;overflow:hidden}.calendar .cal-head{background:var(--card);border:1px solid var(--border);border-radius:12px 12px 0 0;display:flex}.calendar .cal-head .gutter{flex-shrink:0;width:48px}.calendar .cal-head .col{text-align:center;border-left:1px solid var(--border);flex:1;padding:10px 4px;font-size:13px}.calendar .cal-head .dow{color:var(--muted);font-size:11px}.calendar .cal-head .col.sat .dow{color:#2563eb}.calendar .cal-head .col.sun .dow{color:#dc2626}.calendar .cal-head .col.today .date{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.calendar .cal-body{display:flex}.calendar .cal-body .gutter{flex-shrink:0;width:48px;position:relative}.calendar .cal-body .h{color:var(--muted);font-size:10px;position:absolute;right:6px;transform:translateY(-50%)}.calendar .cols{flex:1;display:flex}.calendar .col-day{border-left:1px solid var(--border);flex:1;position:relative}.calendar .hour-line{border-top:1px solid #f0f1f3;position:absolute;left:0;right:0}.calendar .gap-block{background:repeating-linear-gradient(45deg,#ef44442e,#ef44442e 6px,#ef444452 6px 12px);border-top:1px solid #ef44448c;border-bottom:1px solid #ef44448c;min-height:2px;position:absolute;left:0;right:0}.calendar .overlap-block{background:repeating-linear-gradient(-45deg,#d9770659,#d9770659 6px,#d977068c 6px 12px);border-top:1px solid #b45309e6;border-bottom:1px solid #b45309e6;min-height:2px;position:absolute;left:0;right:0}.calendar .task-block{color:#fff;cursor:default;border-radius:6px;padding:3px 6px 3px 9px;font-size:11px;position:absolute;left:3px;right:3px;overflow:hidden;box-shadow:0 1px 2px #00000026}.calendar .task-block.planned{color:#374151;box-shadow:none;background:#ffffffbf;border:1px dashed #9ca3af}.calendar .task-block .tagline{width:4px;position:absolute;top:0;bottom:0;left:0}.calendar .task-block .name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.calendar .task-block .time{opacity:.85;white-space:nowrap;font-size:10px}@media (width<=640px){.calendar .cal-nav h1{font-size:15px}}.picker-pop{position-anchor:var(--picker-anchor);position-area:block-end span-inline-end;position-try-fallbacks:flip-block;position-try-order:most-block-size;position-visibility:anchors-visible;width:min(var(--picker-width,240px), calc(100dvw - 16px));z-index:1000;background:var(--card);border:1px solid var(--border);border-radius:8px;flex-direction:column;min-height:0;max-height:calc(100% - 8px);margin:4px 0 0;padding:6px;display:flex;position:fixed;box-shadow:0 6px 20px #00000026}html.kb-open .picker-pop{position-area:block-start span-inline-end;position-try-fallbacks:none;margin:0 0 4px}.picker-pop .picker-search{border:1px solid var(--border);border-radius:6px;outline:none;flex-shrink:0;width:100%;padding:5px 8px;font-size:13px}.picker-pop .suggest{min-height:0;padding-top:4px;overflow-y:auto}.suggest{margin:0;padding:4px 0;list-style:none}.suggest button{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:7px 12px;font-size:14px;display:flex}.suggest button:hover,.suggest button.active{background:#eff6ff}.suggest .swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px}.suggest .new-item{color:var(--primary);font-weight:600}.suggest .special-item{color:var(--muted)}.suggest li.divider{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}.master-picker{display:contents}.master-picker .chip{border:1px solid var(--border);color:var(--text);background:#f9fafb;align-items:center;gap:4px;padding:2px 4px 2px 8px;font-size:12px;display:inline-flex}.master-picker .chip.project-chip{border-radius:4px}.master-picker .chip.tag-chip{border-radius:12px}.master-picker .chip .new-mark{color:var(--muted);font-size:10px}.master-picker .chip button{cursor:pointer;color:inherit;opacity:.75;background:0 0;border:none;padding:2px 4px;font-size:11px}.master-picker .picker-slot{display:inline-flex}.master-picker .field-btn{border:1px dashed var(--border);color:var(--muted);cursor:pointer;background:#fff;border-radius:6px;padding:3px 10px;font-size:12px}.master-picker .field-btn:hover{color:var(--text);background:#f9fafb}.quick-add{background:var(--card);border:1px solid var(--primary);border-radius:8px;margin-top:8px;padding:10px}.quick-add .input-wrap{position:static}.quick-add input{border:none;outline:none;width:100%;padding:4px 2px;font-size:14px}.history-suggest{min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.history-suggest li{list-style:none}.history-suggest button{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:6px 8px;display:flex}.history-suggest button:hover,.history-suggest button.active{background:var(--hover-bg,#7f7f7f1a)}.history-suggest .hs-name{font-size:14px}.history-suggest .hs-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;font-size:11px;display:flex}.history-suggest .hs-project,.history-suggest .hs-tag{color:#fff;border-radius:8px;padding:0 6px}.quick-add .selected-chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.quick-add .chip{border:1px solid var(--border);color:var(--text);background:#f9fafb;align-items:center;gap:4px;padding:2px 4px 2px 8px;font-size:12px;display:inline-flex}.quick-add .chip.duration-chip{border-color:var(--primary);color:var(--primary);background:#eff6ff;border-radius:4px;font-weight:600}.quick-add .chip.start-chip{color:#0f766e;background:#f0fdfa;border-color:#0d9488;border-radius:4px;font-weight:600}.quick-add .chip .new-mark{color:var(--muted);font-size:10px}.quick-add .chip button{cursor:pointer;color:inherit;opacity:.75;background:0 0;border:none;padding:2px 4px;font-size:11px}.quick-add .error{color:#dc2626;margin-top:6px;font-size:12px}.quick-add .actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.quick-add .actions button{cursor:pointer;background:var(--primary);color:#fff;border:none;border-radius:6px;padding:7px 16px;font-size:13px;font-weight:600}.quick-add .actions .cancel{color:var(--muted);background:0 0}@media (width<=640px){.quick-add input{font-size:16px}}.change-date-dialog{background:var(--card);border-radius:12px;width:360px;max-width:100%;padding:20px;box-shadow:0 8px 32px #00000040}.change-date-dialog h2{margin-bottom:14px;font-size:16px}.change-date-dialog .task-summary{border:1px solid var(--border);background:#f9fafb;border-radius:8px;margin-bottom:14px;padding:12px 14px;font-size:14px}.change-date-dialog .task-summary .name{font-weight:600}.change-date-dialog .task-summary .current{color:var(--muted);margin-top:4px;font-size:12px}.change-date-dialog label{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.change-date-dialog input[type=date]{border:1px solid var(--border);border-radius:8px;width:100%;padding:10px 12px;font-family:inherit;font-size:16px}.change-date-dialog .actions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.change-date-dialog .actions button{cursor:pointer;border:none;border-radius:8px;padding:11px 20px;font-size:14px;font-weight:600}.change-date-dialog .actions .cancel{color:var(--muted);background:0 0}.change-date-dialog .actions .ok{background:var(--primary);color:#fff}.change-date-dialog .actions .ok:disabled{opacity:.5;cursor:not-allowed}@media (width<=480px){.change-date-dialog .actions{flex-direction:column-reverse}.change-date-dialog .actions button{width:100%}}.stop-dialog{background:var(--card);border-radius:12px;width:440px;max-width:100%;padding:20px;box-shadow:0 8px 32px #00000040}.stop-dialog h2{margin-bottom:14px;font-size:16px}.stop-dialog .task-summary{border:1px solid var(--border);background:#f9fafb;border-radius:8px;margin-bottom:14px;padding:12px 14px;font-size:14px}.stop-dialog .task-summary .name{font-weight:600}.stop-dialog .task-summary .times{color:var(--muted);margin-top:4px;font-size:12px}.stop-dialog label{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.stop-dialog textarea{border:1px solid var(--border);resize:vertical;border-radius:8px;width:100%;min-height:80px;padding:10px 12px;font-family:inherit;font-size:14px}.stop-dialog .error{color:#dc2626;margin-top:8px;font-size:13px}.stop-dialog .actions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.stop-dialog .actions button{cursor:pointer;border:none;border-radius:8px;padding:11px 20px;font-size:14px;font-weight:600}.stop-dialog .actions .cancel{color:var(--muted);background:0 0}.stop-dialog .actions .finish{color:#fff;background:#dc2626}@media (width<=480px){.stop-dialog .actions{flex-direction:column-reverse}.stop-dialog .actions button{width:100%}.stop-dialog textarea{font-size:16px}}.duration-input{align-items:center;gap:4px;display:inline-flex}.duration-input input{width:4rem}.duration-input .unit{color:var(--muted);font-size:.9em}.modal-backdrop{z-index:100;background:#1f293380;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:12px;flex-direction:column;width:520px;max-width:100%;max-height:90vh;display:flex;box-shadow:0 8px 32px #00000040}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h2{font-size:16px}.modal-header .close{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:18px}.modal-body{padding:16px 20px;overflow-y:auto}.modal-body label,.modal-body .label{margin:12px 0 6px;font-size:13px;font-weight:600;display:block}.modal-body label:first-child{margin-top:0}.modal-body input,.modal-body textarea,.modal-body select{border:1px solid var(--border);border-radius:8px;width:100%;padding:9px 12px;font-family:inherit;font-size:14px}.modal-body textarea{resize:vertical;min-height:56px}.modal-body .row{gap:14px;display:flex}.modal-body .row>div{flex:1}.modal-body .time-field{align-items:center;gap:6px;display:flex}.modal-body .time-field input{flex:1;min-width:0}.modal-body .clear-time{border:1px solid var(--border);cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border-radius:4px;padding:2px 8px;font-size:12px}.name-field{position:relative}.name-field .suggest{z-index:30;background:var(--card);border:1px solid var(--border);border-radius:8px;width:280px;max-width:100%;position:absolute;top:calc(100% + 2px);left:0;box-shadow:0 6px 20px #00000026}.picker-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.modal-body .error{color:#dc2626;margin-top:10px;font-size:13px}.modal-footer{border-top:1px solid var(--border);justify-content:space-between;padding:14px 20px;display:flex}.modal-footer button{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600}.modal-footer .save{background:var(--primary);color:#fff}.modal-footer .delete{color:#dc2626;background:0 0}.modal-body .add-routine{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.modal-body .add-routine .to-routine{border:1px solid var(--primary);color:var(--primary);cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-size:13px}.modal-body .add-routine .added{color:var(--muted);margin:0;font-size:12px}@media (width<=480px){.modal-body .row{flex-direction:column;gap:0}.modal-body input,.modal-body textarea,.modal-body select{font-size:16px}}.md-link{color:var(--primary);overflow-wrap:anywhere;text-decoration:underline}.task-menu{display:inline-flex;position:relative}.task-menu-trigger{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:6px 8px;font-size:16px;line-height:1}.task-menu-trigger:hover{color:var(--text)}.task-menu-list{position-anchor:var(--task-menu-anchor);position-area:block-end span-inline-start;position-try-fallbacks:flip-block;position-try-order:most-block-size;position-visibility:anchors-visible;z-index:1000;background:var(--card);border:1px solid var(--border);border-radius:8px;flex-direction:column;min-width:200px;max-width:min(80dvw,100% - 8px);max-height:calc(100% - 12px);margin:4px 0 0;padding:4px;display:flex;position:fixed;overflow-y:auto;box-shadow:0 6px 20px #0000002e}html.kb-open .task-menu-list{position-area:block-start span-inline-start;position-try-fallbacks:none;margin:0 0 4px}.task-menu-item{cursor:pointer;text-align:left;color:var(--text);white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;min-height:40px;padding:8px 12px;font-size:14px;display:flex}@media (width<=640px){.task-menu-item{min-height:44px;padding:10px 14px;font-size:15px}}.task-menu-item:hover:not(:disabled){background:var(--bg)}.task-menu-item:disabled{color:var(--muted);opacity:.5;cursor:default}.task-menu-divider{background:var(--border);height:1px;margin:4px 6px}.task-row{background:var(--card);border:1px solid var(--border);border-radius:8px;align-items:center;margin-top:8px;scroll-margin-top:96px;display:flex;overflow:hidden}.task-row.done{opacity:.6}.task-row.selected{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary) inset}.task-row.dragging{opacity:.4}.task-row.overlay{opacity:1;cursor:grabbing;box-shadow:0 10px 28px #00000047}.task-row .bar{flex-shrink:0;align-self:stretch;width:6px}.task-row .drag-handle{color:#c4c9d0;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;padding:0 2px 0 8px;font-size:15px}.task-row .drag-handle:hover{color:var(--muted)}.task-row .drag-handle.disabled{cursor:default;opacity:.4}.task-row .carryover-badge{background:var(--border);color:var(--muted);vertical-align:middle;border-radius:8px;margin-left:6px;padding:0 6px;font-size:10px;font-weight:600;display:inline-block}.task-row .task-body{flex:1;min-width:0;padding:10px 14px}.task-row .task-name{font-size:15px;font-weight:600}.task-row .task-name .name-text{font:inherit;color:inherit;cursor:text;text-align:left;background:0 0;border:none;padding:0}.task-row .task-name .name-edit{font:inherit;color:var(--muted);cursor:pointer;opacity:.7;background:0 0;border:none;margin-left:6px;padding:2px 6px;line-height:1}.task-row .task-name .name-edit:hover,.task-row .task-name .name-edit:focus-visible{color:var(--text);opacity:1}.task-row .task-meta .link{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.task-row .task-meta .inline-edit{align-items:center;gap:4px;display:inline-flex}.task-row .task-meta button.chip,.task-row .task-meta button.tag-group{cursor:pointer;font:inherit;border:none}.task-row .task-name .comment{color:var(--muted);margin-left:8px;font-size:12px;font-weight:400}.task-row .task-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;font-size:12px;display:flex}.task-row .chip{color:#fff;align-items:center;padding:2px 8px;font-size:11px;line-height:1;display:inline-flex}.task-row .chip.project{border-radius:3px}.task-row .chip.tag{border-radius:10px}.tag-group{color:#fff;background:#9ca3af;border-radius:12px;align-items:center;gap:4px;padding:1px 8px 1px 6px;display:inline-flex}.tag-group:before{content:"🏷";font-size:11px}.tag-group .tag-name{font-size:11px;line-height:1}.task-row.running{border-color:var(--primary);background:#eff6ff}.task-row .end-comment{flex-basis:100%}.task-row .actual-view{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0}.task-row .actual-view:hover{text-decoration:underline}.task-row .actual-edit{flex-wrap:wrap;align-items:center;gap:4px;max-width:100%;display:inline-flex}.task-row .actual-edit input[type=time],.task-row .actual-edit input[type=date]{border:1px solid var(--border);border-radius:4px;padding:1px 4px;font-size:12px}.task-row .actual-edit input.actual-end-date{width:8.5rem}.task-row .actual-edit button{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;padding:1px 6px;font-size:11px}.task-row .clear-time{border:1px solid var(--border);cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border-radius:4px;padding:1px 6px;font-size:11px}.task-row .task-actions{align-items:center;gap:6px;padding-right:10px;display:flex}.task-row .btn{cursor:pointer;color:#fff;white-space:nowrap;border:none;border-radius:6px;padding:7px 14px;font-size:13px;font-weight:600}.task-row .btn.start{background:#16a34a}.task-row .btn.stop{background:#dc2626}.task-row .btn:disabled{opacity:.6}.task-row .elapsed{font-variant-numeric:tabular-nums;color:var(--primary);font-size:13px;font-weight:700}.task-row .remaining{font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px;font-weight:700}.task-row .remaining.over{color:#dc2626}.task-row .done-label{color:var(--muted);font-size:12px}.task-row .start-error{color:#dc2626;font-size:11px}.task-row .routine-badge{margin-left:6px;font-size:12px}.task-row .virtual-badge{color:var(--muted);border:1px dashed var(--border);vertical-align:middle;border-radius:8px;margin-left:6px;padding:1px 6px;font-size:10px}.task-row .btn.materialize{background:var(--card);color:var(--primary);border:1px solid var(--primary)}.task-row .icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:6px;font-size:14px}.task-row .icon-btn:hover{color:var(--text)}@media (width<=640px){.task-row{flex-wrap:wrap}.task-row .task-body{flex:60%;padding:10px 8px}.task-row .task-actions{flex-wrap:wrap;flex-basis:100%;justify-content:flex-end;padding:4px 8px 10px}.task-row.running .task-actions .btn.stop{flex-basis:100%}.task-row .icon-btn{min-width:40px;min-height:40px;padding:6px 10px;font-size:20px}.task-row .task-name .name-edit{min-width:40px;min-height:40px}.task-row .inline-edit>button,.task-row .actual-edit>button{min-width:40px;min-height:40px;padding:6px 10px}.task-row .inline-edit>button.clear-time,.task-row .actual-edit>button.clear-time{font-size:13px}}.shortcut-help{background:var(--card);border-radius:12px;width:92%;max-width:560px;max-height:86vh;padding:20px 24px;overflow-y:auto;box-shadow:0 20px 60px #00000059}.shortcut-help .sc-header{justify-content:space-between;align-items:center;display:flex}.shortcut-help .sc-header button{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:18px}.shortcut-help .sc-note{color:var(--muted);margin:4px 0 12px;font-size:12px}.shortcut-help .sc-section h3{color:var(--muted);margin:14px 0 6px;font-size:13px}.shortcut-help .sc-row{align-items:baseline;gap:12px;padding:3px 0;display:flex}.shortcut-help .sc-row dt{text-align:right;flex:0 0 42%}.shortcut-help .sc-row dd{flex:1;margin:0;font-size:13px}.shortcut-help kbd{border:1px solid var(--border);background:var(--bg,#f7f7f8);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;display:inline-block}.shortcut-help .sc-or{color:var(--muted);font-size:11px}.daily .daily-header{top:var(--app-nav-h,0px);z-index:20;background:var(--bg);border-bottom:1px solid var(--border);margin-bottom:16px;padding-top:8px;transition:top .25s;position:sticky}@media (prefers-reduced-motion:reduce){.daily .daily-header{transition:none}}.daily .daily-header .summary{margin-bottom:10px}.daily .date-nav{justify-content:center;align-items:center;gap:16px;margin-bottom:8px;display:flex}.daily .interrupt-dialog{background:var(--card);border-radius:12px;width:92%;max-width:560px;padding:20px 24px;box-shadow:0 20px 60px #00000059}.daily .interrupt-dialog h2{margin:0 0 4px;font-size:18px}.daily .interrupt-dialog .hint{color:var(--muted);margin:0 0 12px;font-size:13px}.daily .undo-toast,.daily .notice-toast{left:50%;bottom:calc(24px + var(--keyboard-inset,0px));color:#fff;z-index:50;background:#333;border-radius:10px;align-items:center;gap:14px;max-width:calc(100vw - 32px);padding:10px 16px;font-size:14px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #0000004d}.daily .undo-toast button{color:#7db4ff;cursor:pointer;white-space:nowrap;background:0 0;border:none;flex-shrink:0;font-size:14px;font-weight:600}.daily .notice-toast{border-left:4px solid #ffb454;display:block}.daily .daily-search{border:1px solid var(--border);background:var(--card);border-radius:8px;align-items:center;gap:8px;margin:0 0 10px;padding:6px 10px;display:flex}.daily .daily-search input{background:0 0;border:none;outline:none;flex:1;font-size:14px}.daily .date-nav>button{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:8px;padding:6px 14px;font-size:14px}.daily .date-nav h1{font-size:20px}.daily .summary{text-align:center;color:var(--muted);margin-bottom:20px;font-size:13px}.daily .summary .today{color:var(--primary);cursor:pointer;background:0 0;border:none;margin-right:8px;font-size:13px;text-decoration:underline}.timebox{margin-bottom:24px;scroll-margin-top:96px}.timebox-header{border-bottom:2px solid var(--border);align-items:baseline;gap:10px;padding:0 4px 8px;display:flex}.timebox-header h2{font-size:15px}.timebox-header .range{color:var(--muted);font-size:12px}.timebox-header .box-info{color:var(--muted);margin-left:auto;font-size:12px}.timebox-header .over{color:#dc2626;font-weight:700}.timebox-tasks{min-height:4px}.add-task{border:1px dashed var(--border);width:100%;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;margin-top:8px;padding:9px;font-size:13px}@media (width<=640px){.daily .date-nav{gap:8px}.daily .date-nav h1{font-size:16px}.timebox-header{flex-wrap:wrap}.timebox-header .box-info{flex:100%;margin-left:0}.daily .undo-toast,.daily .notice-toast{flex-direction:column;align-items:stretch;gap:8px;max-width:none;left:16px;right:16px;transform:none}.daily .undo-toast button{align-self:flex-end}}.masters{max-width:720px;margin:0 auto}.masters .masters-header{top:var(--app-nav-h,0px);z-index:20;background:var(--bg);border-bottom:1px solid var(--border);margin-bottom:12px;padding-top:8px;transition:top .25s;position:sticky}@media (prefers-reduced-motion:reduce){.masters .masters-header{transition:none}}.masters .masters-header .page-header,.masters .masters-header .desc,.masters .masters-header .page-error{margin-bottom:8px}.masters .masters-header .label-selection-bar{margin-top:0;margin-bottom:8px}.masters .page-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.masters h1{font-size:20px}.masters .btn-new{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600}.masters .desc{color:var(--muted);margin-bottom:12px;font-size:12px}@media (width<=640px){.masters .masters-header .desc{max-height:40em;transition:max-height .25s,opacity .25s,margin-bottom .25s;overflow:hidden}.masters .masters-header.is-desc-hidden .desc{opacity:0;max-height:0;margin-bottom:0}}@media (prefers-reduced-motion:reduce){.masters .masters-header .desc{transition:none}}.masters .page-error{color:#dc2626;margin-bottom:10px;font-size:13px}.master-list{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:4px 12px}.master-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 4px;font-size:14px;display:flex}.master-row .swatch{border-radius:5px;flex-shrink:0;width:18px;height:18px}.master-row .name{flex:1;min-width:6em}.master-row .comment{color:var(--muted);margin-top:2px;font-size:11px;display:block}.masters-header .archive-toggle{color:var(--muted);cursor:pointer;align-items:center;gap:6px;margin-bottom:8px;font-size:13px;display:inline-flex}.master-row.is-hidden .swatch,.master-row.is-hidden .name{opacity:.45}.master-row .hidden-badge{color:var(--muted);border:1px solid var(--border);white-space:nowrap;border-radius:10px;padding:1px 8px;font-size:11px}.master-row .actions{white-space:nowrap}.master-row .actions button{cursor:pointer;color:var(--muted);background:0 0;border:none;margin-left:6px;font-size:13px}.master-row .actions button:hover{color:var(--text)}.master-modal{background:var(--card);border-radius:12px;width:420px;max-width:100%;padding:20px;box-shadow:0 8px 32px #00000040}.master-modal h2{margin-bottom:14px;font-size:16px}.master-modal label,.master-modal .label{margin:10px 0 6px;font-size:13px;font-weight:600;display:block}.master-modal input,.master-modal textarea{border:1px solid var(--border);border-radius:8px;width:100%;padding:9px 12px;font-family:inherit;font-size:14px}.master-modal textarea{resize:vertical;min-height:56px}.master-modal .color-picker{flex-wrap:wrap;gap:8px;display:flex}.master-modal .color-picker button{cursor:pointer;border:2px solid #0000;border-radius:8px;width:28px;height:28px}.master-modal .color-picker button.selected{border-color:var(--text)}.master-modal .error{color:#dc2626;margin-top:10px;font-size:13px}.master-modal .actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.master-modal .actions button{cursor:pointer;background:var(--primary);color:#fff;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600}.master-modal .actions .cancel{color:var(--muted);background:0 0}@media (width<=480px){.master-modal input,.master-modal textarea{font-size:16px}}.label-tree,.label-children{margin:0;padding:0;list-style:none}.label-row{cursor:grab}.label-row.dragging{opacity:.5}.label-row .name.label-select{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;margin:-4px -6px;padding:4px 6px}.label-row .name.label-select:hover{background:var(--bg)}.label-row.selected{background:#2563eb1a;border-radius:6px}.label-row.selected .name.label-select{font-weight:700}.label-selection-bar{background:var(--card);border:1px solid var(--primary);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:8px 0 12px;padding:10px 12px;font-size:13px;display:flex}.label-selection-bar .move-under{color:var(--muted);align-items:center;gap:6px;display:inline-flex}.label-selection-bar .deselect{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;margin-left:auto;padding:6px 10px}.label-row .drag-handle{color:#9ca3af;cursor:grab;-webkit-user-select:none;user-select:none}.label-row .actions button:disabled{opacity:.35;cursor:default}.top-level-dropzone{text-align:center;color:#64748b;border:2px dashed #cbd5e1;border-radius:8px;margin-top:12px;padding:12px;font-size:.9em}.top-level-dropzone:hover{border-color:#94a3b8}.label-row .tree-toggle{appearance:none;font:inherit;color:var(--muted);cursor:pointer;text-align:center;background:0 0;border:none;flex-shrink:0;width:14px;padding:0;font-size:10px;display:inline-block}.label-row .tree-spacer{flex-shrink:0;width:14px;display:inline-block}.masters-header .list-controls{flex-wrap:wrap;align-items:center;gap:6px 14px;display:flex}.masters-header .tree-controls{gap:6px;margin-bottom:8px;display:inline-flex}.masters-header .tree-controls button{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding:3px 8px;font-size:12px}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{background:var(--card);border-radius:12px;width:380px;max-width:100%;padding:40px 36px;box-shadow:0 4px 16px #00000014}.login-card h1{text-align:center;margin-bottom:4px;font-size:22px}.login-card .subtitle{text-align:center;color:var(--muted);margin-bottom:28px;font-size:13px}.login-card .tabs{border-bottom:1px solid var(--border);margin-bottom:24px;display:flex}.login-card .tabs button{text-align:center;cursor:pointer;color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px 0;font-size:14px}.login-card .tabs button.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.login-card label{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.login-card input{border:1px solid var(--border);border-radius:8px;width:100%;margin-bottom:18px;padding:10px 12px;font-size:14px}.login-card input:focus{outline:2px solid var(--primary);border-color:#0000}.login-card .error{color:#dc2626;margin-bottom:14px;font-size:13px}.login-card .submit{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:12px;font-size:15px;font-weight:600}.login-card .submit:disabled{opacity:.6}.login-card .passkey{width:100%;color:var(--primary);border:1px solid var(--primary);cursor:pointer;background:0 0;border-radius:8px;margin-top:10px;padding:11px;font-size:14px;font-weight:600}.login-card .note{color:var(--muted);text-align:center;margin-top:16px;font-size:12px}.login-card .linklike{width:100%;color:var(--primary);cursor:pointer;text-align:center;background:0 0;border:none;margin-top:10px;font-size:13px;display:block}.login-card .linklike:hover{text-decoration:underline}@media (width<=480px){.login-card{padding:28px 20px}.login-card input,.login-card .submit{font-size:16px}}.report .period-nav{justify-content:center;align-items:center;gap:16px;margin-bottom:12px;display:flex}.report .period-nav>button{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:8px;padding:6px 14px;font-size:14px}.report .period-nav h1{font-size:18px}.report .controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin-bottom:16px;display:flex}.report .segmented{border:1px solid var(--border);background:var(--card);border-radius:8px;display:inline-flex;overflow:hidden}.report .segmented button{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:8px 20px;font-size:13px}.report .segmented button.active{background:var(--primary);color:#fff;font-weight:600}.report .period-select{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.report .period-select select{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px}.report .panel{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px}.report .empty{color:var(--muted);text-align:center;padding:24px 0;font-size:14px}.report .swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px;display:inline-block}.report{--name-col:160px;--total-col:112px;--day-min:48px;--day-min-total:64px}.report .report-scroll{overflow-x:auto}.report .chart{align-items:end;height:260px;padding-top:18px;display:grid}.report .chart-pad{z-index:2;background:var(--card);position:sticky}.report .chart-pad.left{left:0}.report .chart-pad.right{right:0}.report .day{flex-direction:column;align-items:center;min-width:0;height:100%;min-height:0;padding:0 6px;display:flex;position:relative}.report .day:hover{z-index:20}.report .bar-area{appearance:none;width:100%;min-height:0;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;padding:0;display:flex}.report .day:hover .bar-area{background:var(--hover-bg,#7f7f7f14);border-radius:4px}.report .total{color:var(--muted);white-space:nowrap;margin-bottom:4px;font-size:10px}.report .bars{flex-direction:row;justify-content:center;align-items:flex-end;gap:1px;width:50%;display:flex}.report .bar{flex-direction:column-reverse;flex:1 1 0;min-width:8px;max-width:44px;height:100%;display:flex}.report .seg{flex-basis:0;width:100%;min-height:2px}.report .bar .seg:last-child{border-radius:4px 4px 0 0}.report .seg:hover{filter:brightness(1.12)}.report .day-label{color:var(--muted);white-space:nowrap;height:14px;margin-top:8px;font-size:11px;line-height:14px}.report .day-label.sat{color:#2563eb}.report .day-label.sun{color:#dc2626}.report .table-wrap{margin-top:20px}.report table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:13px}.report col.name-col{width:var(--name-col)}.report col.total-col{width:var(--total-col)}.report th,.report td{border-bottom:1px solid var(--border);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;text-overflow:ellipsis;padding:8px 10px;overflow:hidden}.report th:first-child,.report td:first-child{text-align:left;z-index:1;background:var(--card);box-shadow:1px 0 0 var(--border);position:sticky;left:0}.report th:last-child,.report td:last-child{z-index:1;background:var(--card);box-shadow:-1px 0 0 var(--border);position:sticky;right:0}.report thead th{color:var(--muted);font-size:11px;font-weight:600}.report td .swatch{width:10px;height:10px;margin-right:6px}.report td .drill-toggle{appearance:none;font:inherit;color:var(--muted);cursor:pointer;text-align:center;background:0 0;border:none;width:14px;margin-right:6px;padding:0;display:inline-block}.report td .drill-spacer{width:14px;margin-right:6px;display:inline-block}.report .totals td{font-weight:700}@media (width<=640px){.report .period-nav h1{font-size:15px}.report{--name-col:120px;--total-col:100px;--day-min:80px;--day-min-total:80px}.report .chart{height:200px}.report .day{padding:0 3px}.report th,.report td{padding:8px 6px}.report .panel{padding:14px 10px}}.bulk-rename-backdrop{z-index:100;background:#1f293380;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.bulk-rename{background:var(--card);border-radius:12px;width:520px;max-width:100%;max-height:90vh;padding:18px 20px;overflow:auto;box-shadow:0 8px 32px #00000040}.bulk-rename h2{margin-bottom:14px;font-size:15px}.bulk-rename .modes{gap:18px;margin-bottom:14px;font-size:13.5px;display:flex}.bulk-rename .modes label{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.bulk-rename .fields{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.bulk-rename .fields input{border:1px solid var(--border);border-radius:8px;flex:1;min-width:150px;padding:9px 11px;font-size:14px}.bulk-rename .preview-head{color:var(--muted);margin:18px 0 6px;font-size:12px;font-weight:700}.bulk-rename .preview{border:1px solid var(--border);border-radius:8px;max-height:240px;font-size:13px;list-style:none;overflow:auto}.bulk-rename .preview li{border-top:1px solid var(--border);word-break:break-word;padding:8px 12px}.bulk-rename .preview li:first-child{border-top:none}.bulk-rename .before{color:var(--muted);text-decoration:line-through}.bulk-rename .after{font-weight:600}.bulk-rename .nochange{color:var(--muted);font-style:italic}.bulk-rename .rename-warn,.bulk-rename .rename-error{border-radius:8px;margin-top:12px;padding:8px 10px;font-size:12.5px}.bulk-rename .rename-warn{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.bulk-rename .rename-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.bulk-rename .actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.bulk-rename .actions button{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:8px;padding:9px 20px;font-size:13px;font-weight:600}.bulk-rename .actions button.primary{background:var(--primary);color:#fff;border:none}.bulk-rename .actions button:disabled{opacity:.5;cursor:default}@media (width<=640px){.bulk-rename .actions button{flex:1;padding:12px}}.search-page{max-width:860px;margin:0 auto;padding-bottom:120px}.search-page .search-header{top:var(--app-nav-h,0px);z-index:20;background:var(--bg);margin-bottom:16px;padding-top:8px;transition:top .25s;position:sticky}.search-page .search-panel{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.search-page .search-row{gap:8px;display:flex}.search-page .search-row input[type=search]{border:1px solid var(--border);border-radius:8px;flex:1;min-width:0;padding:10px 12px;font-size:15px}.search-page .search-row .primary{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:0 22px;font-size:14px;font-weight:600}.search-page .syntax-hint{color:var(--muted);margin-top:6px;font-size:12px}.search-page .syntax-hint code{background:#f3f4f6;border-radius:3px;padding:1px 5px}.search-page .cond-toggle{color:var(--text);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-top:12px;padding:0;font-size:13px;font-weight:600;display:flex}.search-page .cond-count{color:var(--muted);font-weight:400}.search-page .cond-body{border-top:1px dashed var(--border);grid-template-columns:92px 1fr;align-items:center;gap:10px 12px;margin-top:12px;padding-top:12px;font-size:13px;display:grid}.search-page .cond-body>label,.search-page .cond-body>.cond-label{color:var(--muted)}.search-page .cond-body input:not(.picker-search){border:1px solid var(--border);border-radius:7px;padding:7px 9px;font-size:13px}.search-page .picker-cell,.search-page .range-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.search-page .range-presets{flex-wrap:wrap;gap:6px;display:flex}.search-page .range-presets button{border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:12px}.search-page .sub-check{color:var(--muted);align-items:center;gap:5px;margin-left:10px;display:inline-flex}.search-page .sub-check.state-check{margin-left:0}.search-page .range-note{color:var(--muted);grid-column:1/-1;font-size:11.5px}.search-page .cond-actions{grid-column:1/-1;justify-content:flex-end;display:flex}.search-page .cond-actions button{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:7px;padding:6px 14px;font-size:13px}.search-page .result-head{flex-wrap:wrap;align-items:center;gap:12px;margin:0 4px 10px;font-size:13px;display:flex}.search-page .result-head .count{font-weight:600}.search-page .result-head .order{color:var(--muted)}.search-page .result-head .spacer,.search-page .bulk-inner .spacer{flex:1}.search-page .result-head button{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:7px;padding:5px 12px;font-size:12px}.search-page .search-status{color:var(--muted);margin:8px 4px;font-size:13px}.search-page .page-error{color:#dc2626;margin:8px 4px;font-size:13px}.search-page .date-head{color:var(--muted);margin:18px 4px 6px;font-size:13px;font-weight:600}.search-page .result-task{background:var(--card);border:1px solid var(--border);border-radius:8px;margin-top:8px;display:flex;overflow:hidden}.search-page .result-task.selected{background:var(--running-bg,#eff6ff);border-color:var(--primary)}.search-page .result-task .bar{align-self:stretch;width:6px}.search-page .check{align-items:center;padding:0 4px 0 10px;display:flex}.search-page .check input{cursor:pointer;width:17px;height:17px}.search-page .task-body{flex:1;min-width:0;padding:10px 14px}.search-page .task-name{word-break:break-word;font-size:15px;font-weight:600}.search-page .task-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px;font-size:12px;display:flex}.search-page .chip{color:#fff;align-items:center;padding:2px 8px;font-size:11px;line-height:1;display:inline-flex}.search-page .chip.project{border-radius:3px}.search-page .chip.label{border-radius:10px}.search-page .comment{color:#4b5563;-webkit-line-clamp:2;white-space:pre-wrap;-webkit-box-orient:vertical;margin-top:6px;font-size:12.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.search-page .comment.open{-webkit-line-clamp:unset}.search-page .comment-toggle{color:var(--primary);cursor:pointer;background:0 0;border:none;margin-top:2px;padding:0;font-size:12px}.search-page .open-link{color:var(--muted);white-space:nowrap;align-items:center;padding:0 12px;font-size:13px;text-decoration:none;display:flex}.search-page .bulk-bar{left:0;right:0;bottom:var(--keyboard-inset,0px);z-index:30;background:var(--card);border-top:1px solid var(--border);padding:12px 16px calc(12px + env(safe-area-inset-bottom));position:fixed;box-shadow:0 -2px 10px #0000000f}.search-page .bulk-inner{flex-wrap:wrap;align-items:center;gap:10px;max-width:860px;margin:0 auto;display:flex}.search-page .bulk-count{font-size:14px;font-weight:700}.search-page .bulk-field{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.search-page .bulk-field .field-btn{border-style:solid;border-radius:8px;padding:9px 16px;font-size:13px}.search-page .bulk-inner>button{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:600}.search-page .bulk-inner>button.clear{color:var(--muted);border:none;font-weight:400}.search-page .limit-note{color:var(--muted);flex:100%;font-size:11.5px}@media (width<=640px){.search-page .cond-body{max-height:40em;transition:max-height .25s,opacity .25s,margin-top .25s;overflow:hidden}.search-page .search-panel.is-cond-hidden .cond-body{opacity:0;border-top:none;max-height:0;margin-top:0;padding-top:0}.search-page .search-panel.is-picker-open .cond-body{max-height:none}.search-page .cond-body{grid-template-columns:1fr;gap:4px 0}.search-page .cond-body>label,.search-page .cond-body>.cond-label{margin-top:8px}.search-page .bulk-inner>button,.search-page .bulk-field .field-btn{padding:11px 14px}}@media (prefers-reduced-motion:reduce){.search-page .search-header,.search-page .cond-body{transition:none}}.routines .page-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.routines h1{font-size:20px}.routines .btn-new{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 18px;font-size:14px;font-weight:600}.routines .empty{color:var(--muted);font-size:14px}.routine-list{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:0;list-style:none}.routine-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.routine-list li:last-child{border-bottom:none}.routine-list li.inactive .info{opacity:.45}.routine-list .info{flex-direction:column;gap:4px;min-width:0;display:flex}.routine-list .name{font-size:15px;font-weight:600;display:block}.routine-list .meta{color:var(--muted);font-size:12px}.routine-list .actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.routine-list .actions button:not(.toggle){cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:13px}.routine-list .actions button:not(.toggle):hover{color:var(--text)}.routine-list .toggle{cursor:pointer;border:none;border-radius:11px;width:40px;height:22px;position:relative}.routine-list .toggle.on{background:#16a34a}.routine-list .toggle.off{background:#d1d5db}.routine-list .toggle:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;position:absolute;top:2px}.routine-list .toggle.on:after{right:2px}.routine-list .toggle.off:after{left:2px}.routines .note{color:var(--muted);background:var(--card);border:1px solid var(--border);border-radius:8px;margin-top:16px;padding:12px 14px;font-size:12px}.routine-modal{background:var(--card);border-radius:12px;width:480px;max-width:100%;max-height:90vh;padding:20px;overflow-y:auto;box-shadow:0 8px 32px #00000040}.routine-modal h2{margin-bottom:14px;font-size:16px}.routine-modal label{margin:12px 0 6px;font-size:13px;font-weight:600;display:block}.routine-modal input,.routine-modal textarea,.routine-modal select{border:1px solid var(--border);border-radius:8px;width:100%;padding:9px 12px;font-family:inherit;font-size:14px}.routine-modal textarea{resize:vertical;min-height:56px}.routine-modal .row{gap:14px;display:flex}.routine-modal .row>div{flex:1}.weekday-picker{gap:6px;margin-top:8px;display:flex}.weekday-picker button{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;width:40px;height:36px;font-size:13px}.weekday-picker button.selected{background:var(--primary);color:#fff;border-color:#0000}.routine-modal .label{color:var(--muted);margin-top:12px;font-size:13px;display:block}.routine-modal .picker-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.routine-modal .name-field{position:relative}.routine-modal .name-field .suggest{z-index:30;background:var(--card);border:1px solid var(--border);border-radius:8px;width:280px;max-width:100%;position:absolute;top:calc(100% + 2px);left:0;box-shadow:0 6px 20px #00000026}.routine-list .tags{flex-wrap:wrap;gap:4px;margin-top:4px;display:inline-flex}.routine-list .tags .tag{color:#fff;border-radius:10px;padding:1px 8px;font-size:11px}.routine-modal .error{color:#dc2626;margin-top:10px;font-size:13px}.routine-modal .actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.routine-modal .actions button{cursor:pointer;background:var(--primary);color:#fff;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600}.routine-modal .actions .cancel{color:var(--muted);background:0 0}@media (width<=480px){.routine-modal input,.routine-modal textarea,.routine-modal select{font-size:16px}.routine-modal .row{flex-direction:column;gap:0}}.security h3{margin:16px 0 4px;font-size:14px}.security .desc{color:var(--muted);margin-bottom:10px;font-size:12px}.security .btn-outline{color:var(--primary);border:1px solid var(--primary);cursor:pointer;background:0 0;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600}.security .disable-form{gap:8px;display:flex}.security .disable-form input{border:1px solid var(--border);border-radius:8px;width:160px;padding:8px 12px;font-size:14px}.security .disable-form button{color:#dc2626;cursor:pointer;background:0 0;border:1px solid #dc2626;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600}.security .passkey-list{margin-bottom:10px;padding:0;list-style:none}.security .passkey-list li{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:8px 4px;font-size:14px;display:flex}.security .passkey-list .name{flex:1}.security .passkey-list .date{color:var(--muted);font-size:12px}.security .passkey-list button{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:13px}.security .message{color:var(--text);margin-top:10px;font-size:13px}.totp-modal,.passkey-modal{background:var(--card);border-radius:12px;width:480px;max-width:100%;max-height:90vh;padding:20px;overflow-y:auto;box-shadow:0 8px 32px #00000040}.totp-modal h2,.passkey-modal h2{margin-bottom:12px;font-size:16px}.totp-modal .step,.passkey-modal .step{margin:12px 0 6px;font-size:13px}.totp-modal .secret{letter-spacing:1px;word-break:break-all;-webkit-user-select:all;user-select:all;background:#f3f4f6;border-radius:8px;padding:10px 12px;font-size:15px;display:block}.totp-modal .hint{color:var(--muted);margin-top:6px;font-size:11px}.totp-modal .uri{word-break:break-all}.totp-modal label,.passkey-modal label{margin:10px 0 6px;font-size:13px;font-weight:600;display:block}.totp-modal input,.passkey-modal input{border:1px solid var(--border);border-radius:8px;width:100%;padding:9px 12px;font-size:16px}.totp-modal .error,.passkey-modal .error{color:#dc2626;margin-top:10px;font-size:13px}.totp-modal .actions,.passkey-modal .actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.totp-modal .actions button,.passkey-modal .actions button{cursor:pointer;background:var(--primary);color:#fff;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600}.totp-modal .actions button:disabled,.passkey-modal .actions button:disabled{opacity:.6}.totp-modal .actions .cancel,.passkey-modal .actions .cancel{color:var(--muted);background:0 0}.settings{max-width:640px;margin:0 auto}.settings h1{margin-bottom:18px;font-size:20px}.settings section{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:18px;padding:20px}.settings section h2{margin-bottom:4px;font-size:15px}.settings .section-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.settings .desc{color:var(--muted);margin-bottom:14px;font-size:12px}.settings .tb-warning{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:13px}.settings .tb-warning ul{margin:6px 0 0;padding-left:20px}.settings .radio-item,.settings .check-item{border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;margin-bottom:8px;padding:12px;display:flex}.settings .radio-item.selected{border-color:var(--primary);background:#eff6ff}.settings .radio-item input,.settings .check-item input{margin-top:3px}.settings .radio-item .label,.settings .check-item .label{font-size:14px;font-weight:600;display:block}.settings .radio-item .hint,.settings .check-item .hint{color:var(--muted);margin-top:2px;font-size:12px;display:block}.settings section>.hint{color:var(--muted);margin-top:6px;font-size:12px}.settings .link-btn{color:var(--accent,#2563eb);cursor:pointer;background:0 0;border:none;margin-left:4px;padding:0;font-size:12px;text-decoration:underline}.settings .token-create{align-items:center;gap:10px;margin-bottom:12px;display:flex}.settings .token-create input{border:1px solid var(--border);border-radius:8px;flex:1;padding:9px 12px;font-size:14px}.settings .token-reveal{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;margin-bottom:14px;padding:12px 14px;font-size:13px}.settings .token-value{align-items:center;gap:10px;margin-top:8px;display:flex}.settings .token-value code{word-break:break-all;background:#fff;border:1px solid #a7f3d0;border-radius:6px;flex:1;padding:8px 10px;font-size:13px}.settings .token-warn{color:#b45309;margin-top:8px;font-size:12px}.settings .token-table{border-collapse:collapse;width:100%;font-size:13px}.settings .token-table th,.settings .token-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 6px}.settings .token-table th{color:var(--muted);font-weight:600}.settings .token-revoke{border:1px solid var(--border);color:#dc2626;cursor:pointer;background:0 0;border-radius:8px;padding:5px 12px;font-size:13px}.settings .token-create select{min-width:120px}.settings .token-scope{white-space:nowrap;border-radius:10px;padding:1px 8px;font-size:11px;display:inline-block}.settings .token-scope-read{color:#1e40af;background:#dbeafe}.settings .token-scope-read_write{color:#166534;background:#dcfce7}.settings .default-badge{background:var(--border);color:var(--muted);vertical-align:middle;border-radius:10px;margin-left:8px;padding:1px 8px;font-size:10px;display:inline-block}.settings select{border:1px solid var(--border);border-radius:8px;width:100%;max-width:240px;padding:9px 12px;font-size:14px}.settings .btn-add{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600}.settings .tb-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 4px;font-size:14px;display:flex}.settings .tb-name{flex:1;font-weight:600}.settings .tb-range{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.settings .tb-len{color:var(--muted);font-size:12px}.settings .tb-actions button{cursor:pointer;color:var(--muted);background:0 0;border:none;margin-left:6px;font-size:13px}.settings .tb-actions button:hover{color:var(--text)}.tb-modal{background:var(--card);border-radius:12px;width:420px;max-width:100%;padding:20px;box-shadow:0 8px 32px #00000040}.tb-modal h2{margin-bottom:14px;font-size:16px}.tb-modal label{margin:10px 0 6px;font-size:13px;font-weight:600;display:block}.tb-modal input{border:1px solid var(--border);border-radius:8px;width:100%;padding:9px 12px;font-size:14px}.tb-modal .row{gap:14px;display:flex}.tb-modal .row>div{flex:1}.tb-modal .icon-field{flex:0 0 90px}.tb-modal .error{color:#dc2626;margin-top:10px;font-size:13px}.tb-modal .actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.tb-modal .actions button{cursor:pointer;background:var(--primary);color:#fff;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600}.tb-modal .actions .cancel{color:var(--muted);background:0 0}.settings .tz-input{border:1px solid var(--border);border-radius:8px;width:100%;max-width:360px;padding:9px 12px;font-size:14px}.tz-dialog{background:var(--card);border-radius:12px;width:460px;max-width:100%;padding:20px;box-shadow:0 8px 32px #00000040}.tz-dialog h2{margin-bottom:10px;font-size:16px}.tz-dialog .desc{color:var(--muted);margin-bottom:14px;font-size:13px}.tz-dialog .tz-choice{text-align:left;border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;width:100%;margin-bottom:10px;padding:12px 14px;display:block}.tz-dialog .tz-choice:hover:not(:disabled){border-color:var(--primary)}.tz-dialog .tz-choice:disabled{opacity:.6;cursor:default}.tz-dialog .tz-choice .label{font-size:14px;font-weight:600;display:block}.tz-dialog .tz-choice .hint{color:var(--muted);margin-top:4px;font-size:12px;display:block}.tz-dialog .actions{justify-content:flex-end;margin-top:8px;display:flex}.tz-dialog .actions .cancel{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:14px}@media (width<=480px){.tb-modal input,.settings select{font-size:16px}}.settings .data-io .io-row{flex-wrap:wrap;gap:16px;margin-bottom:10px;display:flex}.settings .data-io .io-row label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.settings .data-io .io-check{align-items:center;gap:8px;margin-bottom:12px;font-size:14px;display:flex}.settings .data-io hr{border:none;border-top:1px solid var(--border);margin:20px 0 16px}.settings .data-io .error{color:#dc2626;margin:4px 0;font-size:13px}.help-wrap{grid-template-columns:200px 1fr;gap:24px;max-width:900px;margin:0 auto;display:grid}.help-nav{align-self:start;position:sticky;top:16px}.help-nav h2{color:var(--muted);margin:0 0 8px 8px;font-size:14px}.help-nav ul{margin:0;padding:0;list-style:none}.help-nav a{color:var(--text);border-radius:8px;padding:7px 12px;font-size:14px;text-decoration:none;display:block}.help-nav a:hover{background:#f1f5f9}.help-nav a.active{color:var(--primary);background:#eff6ff;font-weight:600}.help-content{min-width:0}.help-content h1{margin:0 0 14px;font-size:22px}.help-content h2{margin:20px 0 8px;font-size:16px}.help-content p{margin:10px 0;line-height:1.7}.help-content ul,.help-content ol{padding-left:1.4em;line-height:1.8}.help-content code{background:#f1f5f9;border-radius:4px;padding:1px 5px;font-size:.9em}@media (width<=720px){.help-wrap{grid-template-columns:1fr}.help-nav{position:static}.help-nav ul{flex-wrap:wrap;gap:4px;display:flex}}.hm{border:1px solid var(--border);background:var(--bg);border-radius:10px;margin:4px 0 16px;overflow:hidden;box-shadow:0 2px 10px #0000000f}.hm-bar{border-bottom:1px solid var(--border);background:#fff;align-items:center;gap:6px;padding:8px 12px;display:flex}.hm-dot{background:#d1d5db;border-radius:50%;width:9px;height:9px}.hm-title{color:var(--muted);margin-left:8px;font-size:12px}.hm-body{padding:14px;font-size:12px}.hm-datenav{justify-content:center;align-items:center;gap:12px;margin-bottom:6px;display:flex}.hm-datenav button{border:1px solid var(--border);background:#fff;border-radius:6px;padding:3px 8px;font-size:11px}.hm-summary{text-align:center;color:var(--muted);margin:0 0 12px}.hm-tbhead{border-bottom:2px solid var(--border);align-items:baseline;gap:8px;padding-bottom:6px;font-weight:600;display:flex}.hm-tbhead.plain{margin-top:14px}.hm-range{color:var(--muted);font-weight:400}.hm-boxinfo{color:var(--muted);margin-left:auto;font-weight:400}.hm-task{border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;margin-top:8px;display:flex;overflow:hidden}.hm-task.running{border-color:var(--primary);background:#eff6ff}.hm-task.done{opacity:.6}.hm-side{align-self:stretch;width:5px}.hm-grip{color:#c4c9d0;padding:0 4px 0 8px}.hm-task-body{flex:1;padding:8px 10px}.hm-task-name{font-weight:600}.hm-task-meta{color:var(--muted);align-items:center;gap:10px;margin-top:3px;display:flex}.hm-task-actions{align-items:center;gap:8px;padding-right:10px;display:flex}.hm-elapsed{font-variant-numeric:tabular-nums;color:var(--primary);font-weight:700}.hm-remaining{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:700}.hm-btn{color:#fff;border:none;border-radius:6px;padding:5px 12px;font-size:11px;font-weight:600}.hm-btn.start{background:#16a34a}.hm-btn.stop{background:#dc2626}.hm-btn.primary{background:var(--primary)}.hm-btn.ghost{color:var(--primary);border:1px solid var(--primary);background:#fff}.hm-btn.wide{width:100%;margin-top:6px;padding:8px}.hm-add{border:1px dashed var(--border);width:100%;color:var(--muted);background:0 0;border-radius:8px;margin-top:8px;padding:8px}.hm-chip{color:#fff;border-radius:4px;align-items:center;gap:3px;padding:2px 7px;font-size:11px;display:inline-flex}.hm-chip.pill{border-radius:12px}.hm-quick-input,.hm-input{border:1px solid var(--border);color:var(--muted);background:#fff;border-radius:6px;padding:8px 10px}.hm-suggest{border:1px solid var(--border);background:#fff;border-radius:8px;width:220px;margin:4px 0 0;padding:4px 0;list-style:none;box-shadow:0 6px 20px #0000001f}.hm-suggest.inline{width:180px}.hm-suggest li{align-items:center;gap:8px;padding:6px 12px;display:flex}.hm-suggest li.active{background:#eff6ff}.hm-suggest li.hm-new{color:var(--primary);font-weight:600}.hm-sw{border-radius:3px;flex-shrink:0;width:11px;height:11px}.hm-chips{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.hm-field{border:1px dashed var(--border);color:var(--muted);background:#fff;border-radius:6px;padding:3px 10px;font-size:11px}.hm-modal{border:1px solid var(--border);background:#fff;border-radius:8px;padding:12px}.hm-row{align-items:center;gap:8px;margin:8px 0;display:flex}.hm-label{width:84px;color:var(--muted)}.hm-input{flex:1}.hm-select{border:1px solid var(--border);background:#fff;border-radius:6px;flex:1;padding:6px 10px}.hm-listrow{border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;display:flex}.hm-listrow.muted{opacity:.6}.hm-grow{flex:1}.hm-badge{color:var(--primary);background:#eff6ff;border-radius:10px;padding:1px 8px;font-size:10px;font-weight:600}.hm-toggle{border:1px solid var(--border);color:var(--muted);border-radius:10px;padding:1px 8px}.hm-toggle.on{color:#15803d;background:#dcfce7;border-color:#bbf7d0}.hm-mini{color:var(--primary);font-size:11px}.hm-cal{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.hm-cal-head{text-align:center;color:var(--muted);padding-bottom:4px}.hm-cal-body{border:1px solid var(--border);background:#fff;border-radius:4px;height:66px;position:relative}.hm-block{color:#fff;border-radius:3px;padding:2px 3px;font-size:9px;position:absolute;left:3px;right:3px;overflow:hidden}.hm-block.ghost{border:1px dashed var(--primary);color:var(--primary);background:0 0}.hm-chart{align-items:flex-end;gap:14px;height:90px;padding:6px 4px;display:flex}.hm-bar-col{flex-direction:column-reverse;width:26px;display:flex}.hm-seg{width:100%;display:block}.hm-seg:first-child{border-radius:3px 3px 0 0}.hm-legend{color:var(--muted);gap:16px;margin-top:8px;display:flex}.hm-legend span{align-items:center;gap:5px;display:inline-flex}.hm-login{max-width:240px;margin:0 auto}.hm-login .hm-input{margin-top:8px}.hm-tabs{border-bottom:1px solid var(--border);gap:16px;margin-bottom:8px;display:flex}.hm-tabs span{color:var(--muted);padding:6px 0}.hm-tabs span.active{color:var(--primary);border-bottom:2px solid var(--primary);font-weight:600}.hm-link{text-align:center;color:var(--primary);margin-top:8px}.api-docs .api-tag{margin-top:28px}.api-docs .api-tag>h3{border-bottom:2px solid var(--border);margin-bottom:12px;padding-bottom:6px;font-size:16px}.api-docs .api-desc{color:var(--muted);font-size:13px}.api-docs .api-op{border:1px solid var(--border);border-radius:8px;margin-bottom:12px;padding:12px 14px}.api-docs .api-op-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.api-docs .api-path{word-break:break-all;font-size:14px;font-weight:600}.api-docs .api-summary{margin:8px 0 4px;font-weight:600}.api-docs .api-method{text-align:center;color:#fff;letter-spacing:.03em;border-radius:6px;min-width:58px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.api-docs .api-method-get{background:#2563eb}.api-docs .api-method-post{background:#16a34a}.api-docs .api-method-put{background:#d97706}.api-docs .api-method-patch{background:#7c3aed}.api-docs .api-method-delete{background:#dc2626}.api-docs .api-block{margin-top:10px}.api-docs .api-block h4{color:var(--muted);margin-bottom:4px;font-size:12px}.api-docs .api-params,.api-docs .api-responses{margin:0;padding:0;list-style:none}.api-docs .api-params>li,.api-docs .api-responses>li{flex-wrap:wrap;align-items:center;gap:6px;padding:3px 0;font-size:13px;display:flex}.api-docs .api-in{color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:0 5px;font-size:10px}.api-docs .api-required{color:#b91c1c;background:#fef2f2;border-radius:4px;padding:0 5px;font-size:10px}.api-docs .api-ptype{color:#0b7285;font-family:ui-monospace,monospace;font-size:12px}.api-docs .api-pdesc{color:var(--muted);font-size:12px}.api-docs .api-status{text-align:center;border-radius:4px;min-width:34px;padding:1px 6px;font-size:12px;font-weight:700;display:inline-block}.api-docs .api-status-2xx{color:#166534;background:#dcfce7}.api-docs .api-status-4xx{color:#b91c1c;background:#fef2f2}.api-docs .api-schema{border-top:1px dashed var(--border);margin-top:10px;padding-top:10px}.api-docs .api-schema h4{font-family:ui-monospace,monospace;font-size:14px}.api-docs .api-json{background:var(--card,#f8fafc);border:1px solid var(--border);white-space:pre;border-radius:6px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;overflow-x:auto}.api-docs .api-optional{color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:0 5px;font-size:10px}.api-docs .api-bodytype code{color:#0b7285;font-size:12px}
