:root{--ds-bg: #f6f4ee;--ds-surface: #ffffff;--ds-surface-raised: #faf8f3;--ds-fg: #1d1a14;--ds-fg-muted: #6b6457;--ds-line: #dcd6c8;--ds-accent: #2f5d50;--ds-accent-soft: #dfeae4;--ds-warn: #8a5a0a;--ds-warn-soft: #f3e7cf;--ds-danger: #a33a2a;--ds-danger-soft: #f6e0dc;--ds-info: #2c5f9e;--ds-info-soft: #dbe7f5;--ds-on-accent: #ffffff;--ds-rating-again: #a33a2a;--ds-rating-again-soft: #f6e0dc;--ds-rating-hard: #8a5a0a;--ds-rating-hard-soft: #f3e7cf;--ds-rating-good: #2f5d50;--ds-rating-good-soft: #dfeae4;--ds-rating-easy: #2c5f9e;--ds-rating-easy-soft: #dbe7f5;--ds-heat-done-0: #ffffff;--ds-heat-done-1: #bfd9ce;--ds-heat-done-2: #8fbfa9;--ds-heat-done-3: #5a9a80;--ds-heat-done-4: #2f5d50;--ds-heat-due-0: #ebe7dd;--ds-heat-due-1: #cfdff2;--ds-heat-due-2: #98bde6;--ds-heat-due-3: #5b8fcf;--ds-heat-due-4: #2c5f9e;--ds-heat-today: #8a5a0a;--ds-space-1: 4px;--ds-space-2: 8px;--ds-space-3: 12px;--ds-space-4: 16px;--ds-space-5: 24px;--ds-space-6: 32px;--ds-space-7: 48px;--ds-space-8: 64px;--ds-font: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--ds-font-mono: "IBM Plex Mono", "Cascadia Mono", Consolas, monospace;--ds-text-xs: 11px;--ds-text-sm: 12px;--ds-text-md: 14px;--ds-text-lg: 16px;--ds-text-xl: 20px;--ds-text-2xl: 28px;--ds-weight-regular: 400;--ds-weight-medium: 600;--ds-weight-bold: 700;--ds-radius-sm: 4px;--ds-radius-md: 8px;--ds-radius-lg: 12px;--ds-radius-pill: 999px;--ds-shadow-sm: 0 1px 2px rgba(29, 26, 20, .06);--ds-shadow-md: 0 8px 24px rgba(29, 26, 20, .14);--ds-motion-fast: .12s;--ds-motion-base: .2s;--ds-indent-step: 16px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--ds-font);font-size:var(--ds-text-md);line-height:1.45;color:var(--ds-fg);background:var(--ds-bg)}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--ds-accent)}h1,h2,h3{margin:0}code{font-family:var(--ds-font-mono);font-size:var(--ds-text-sm)}.shell{display:grid;grid-template-columns:220px 1fr;height:100%}.main{overflow:auto;padding:var(--ds-space-6) var(--ds-space-6) var(--ds-space-8)}.header{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-4);margin-bottom:var(--ds-space-5)}.header h1{font-size:var(--ds-text-xl);font-weight:var(--ds-weight-bold);display:flex;align-items:center;gap:var(--ds-space-3)}.sub{color:var(--ds-fg-muted);margin:calc(-1 * var(--ds-space-3)) 0 var(--ds-space-4)}.row{display:flex;gap:var(--ds-space-3);align-items:center;flex-wrap:wrap}.row.end{justify-content:flex-end}.row.center{justify-content:center}.spread{justify-content:space-between}.push{margin-left:auto}.stack{display:flex;flex-direction:column;gap:var(--ds-space-3)}.stack.loose{gap:var(--ds-space-4)}.gap-top{margin-top:var(--ds-space-3)}.gap-top-lg{margin-top:var(--ds-space-5)}.narrow{max-width:560px}.fill{display:flex;flex-direction:column;height:100%;min-height:0}.fill>*{flex-shrink:0}.muted{color:var(--ds-fg-muted)}.small{font-size:var(--ds-text-sm)}.strong{font-weight:var(--ds-weight-medium)}.error{color:var(--ds-danger);font-size:var(--ds-text-sm);margin-top:var(--ds-space-1)}.panel{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);padding:var(--ds-space-4) var(--ds-space-4)}.panel h2{margin:0 0 var(--ds-space-3);font-size:var(--ds-text-lg);font-weight:var(--ds-weight-bold)}.panel.ok{background:var(--ds-accent-soft);border-color:var(--ds-accent)}table.table{width:100%;border-collapse:collapse;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);overflow:hidden}table.table th,table.table td{text-align:left;padding:var(--ds-space-2) var(--ds-space-3);border-bottom:1px solid var(--ds-line);vertical-align:top}table.table th{font-size:var(--ds-text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--ds-fg-muted);background:var(--ds-surface-raised);font-weight:var(--ds-weight-medium)}table.table td.num,table.table th.num{text-align:right;font-variant-numeric:tabular-nums}table.table td.bad{color:var(--ds-danger)}table.table td.changed{background:var(--ds-warn-soft)}table.table tr.clickable{cursor:pointer}table.table tr.clickable:hover{background:var(--ds-surface-raised)}.field{display:flex;flex-direction:column;gap:var(--ds-space-1);margin-bottom:var(--ds-space-3)}.field>label{font-size:var(--ds-text-sm);color:var(--ds-fg-muted)}.tabs{display:flex;gap:var(--ds-space-1);border-bottom:1px solid var(--ds-line);margin-bottom:var(--ds-space-4)}.tabs button{background:none;border:0;padding:var(--ds-space-2) var(--ds-space-3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button.on{border-bottom-color:var(--ds-accent);color:var(--ds-accent);font-weight:var(--ds-weight-medium)}.chart{width:100%;height:auto;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-md)}pre.license{background:var(--ds-bg);border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);padding:var(--ds-space-3);max-height:220px;overflow:auto;font-size:var(--ds-text-sm);white-space:pre-wrap}details summary{cursor:pointer;padding:var(--ds-space-1) 0}.onboarding{max-width:620px;margin:var(--ds-space-8) auto}.onboarding h1{font-size:var(--ds-text-xl);margin-bottom:var(--ds-space-4)}.choice{display:block;width:100%;text-align:left;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);padding:var(--ds-space-3) var(--ds-space-4);margin-bottom:var(--ds-space-2);cursor:pointer}.choice.on{border-color:var(--ds-accent);background:var(--ds-accent-soft)}.choice .note{color:var(--ds-fg-muted);font-size:var(--ds-text-sm)}.progress-text{color:var(--ds-fg-muted);font-size:var(--ds-text-sm);margin-bottom:var(--ds-space-2)}.ds-picker-inline{min-width:260px}.ds-toolbar{margin-bottom:var(--ds-space-4)}@media(max-width:600px){.is-web .shell{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.is-web .shell>.ds-nav{display:none}.is-web .main{padding:var(--ds-space-4) var(--ds-space-4) var(--ds-space-5);overflow-x:hidden;min-width:0}.is-web .header{flex-wrap:wrap;gap:var(--ds-space-3);margin-bottom:var(--ds-space-4)}.is-web .row>*{min-width:0;max-width:100%}.is-web .narrow,.is-web .ds-picker-inline{min-width:0;max-width:100%}.is-web table.table:not(.ds-library){display:block;overflow-x:auto}.is-web .tabs{overflow-x:auto}.is-web .chart,.is-web pre.license{max-width:100%}.is-web .onboarding{margin:var(--ds-space-5) auto}}.ds-icon{display:inline-block;vertical-align:-.15em;flex:none}.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ds-space-2);border:1px solid var(--ds-line);background:var(--ds-surface);color:var(--ds-fg);border-radius:var(--ds-radius-md);padding:var(--ds-space-2) var(--ds-space-4);cursor:pointer;line-height:1.2;font-size:var(--ds-text-md);transition:background var(--ds-motion-fast),border-color var(--ds-motion-fast),transform var(--ds-motion-fast),box-shadow var(--ds-motion-fast)}.ds-btn:hover,.ds-btn.is-hover{border-color:var(--ds-accent)}.ds-btn:focus-visible,.ds-btn.is-focus{outline:2px solid var(--ds-accent);outline-offset:2px}.ds-btn:disabled{opacity:.5;cursor:not-allowed}.ds-btn.s-sm{padding:var(--ds-space-1) var(--ds-space-3);font-size:var(--ds-text-sm)}.ds-btn.s-lg{padding:var(--ds-space-3) var(--ds-space-5);font-size:var(--ds-text-lg)}.ds-btn.is-block{display:flex;width:100%}.ds-btn.v-primary{background:var(--ds-accent);color:var(--ds-on-accent);border-color:var(--ds-accent)}.ds-btn.v-primary:hover,.ds-btn.v-primary.is-hover{background:color-mix(in srgb,var(--ds-accent) 88%,var(--ds-fg))}.ds-btn.v-ghost{background:transparent;border-color:transparent}.ds-btn.v-ghost:hover,.ds-btn.v-ghost.is-hover{background:var(--ds-bg);border-color:transparent}.ds-btn.v-danger{color:var(--ds-danger);border-color:var(--ds-danger)}.ds-btn.v-danger:hover,.ds-btn.v-danger.is-hover{background:var(--ds-danger-soft)}.ds-btn.v-danger-solid{background:var(--ds-danger);color:var(--ds-on-accent);border-color:var(--ds-danger)}.ds-btn.t-again{--tint: var(--ds-rating-again);--tint-soft: var(--ds-rating-again-soft)}.ds-btn.t-hard{--tint: var(--ds-rating-hard);--tint-soft: var(--ds-rating-hard-soft)}.ds-btn.t-good{--tint: var(--ds-rating-good);--tint-soft: var(--ds-rating-good-soft)}.ds-btn.t-easy{--tint: var(--ds-rating-easy);--tint-soft: var(--ds-rating-easy-soft)}.ds-btn[class*=" t-"]{background:var(--tint-soft);border:2px solid var(--tint);color:var(--tint);font-weight:var(--ds-weight-medium)}.ds-btn[class*=" t-"]:hover,.ds-btn[class*=" t-"].is-hover{background:color-mix(in srgb,var(--tint-soft) 70%,var(--tint))}.ds-btn.is-pressed{transform:translateY(1px) scale(.98);box-shadow:inset 0 2px 4px color-mix(in srgb,var(--ds-fg) 18%,transparent)}.ds-btn[class*=" t-"].is-pressed{background:var(--tint);color:var(--ds-on-accent)}.ds-keyhint{display:inline-flex;align-items:center;justify-content:center;min-width:1.7em;padding:0 var(--ds-space-1);height:1.6em;border-radius:var(--ds-radius-sm);font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);font-weight:var(--ds-weight-medium);line-height:1;background:var(--ds-surface);color:var(--ds-fg-muted);border:1px solid var(--ds-line);box-shadow:0 1px 0 var(--ds-line)}.ds-keyhint.on-dark{background:color-mix(in srgb,var(--ds-on-accent) 16%,transparent);color:var(--ds-on-accent);border-color:color-mix(in srgb,var(--ds-on-accent) 65%,transparent);box-shadow:none}.ds-btn[class*=" t-"] .ds-keyhint{color:var(--tint);border-color:color-mix(in srgb,var(--tint) 45%,transparent);background:var(--ds-surface);box-shadow:none}.ds-btn[class*=" t-"].is-pressed .ds-keyhint{background:transparent;color:var(--ds-on-accent);border-color:var(--ds-on-accent)}.ds-infotip{display:inline-flex;align-items:center;vertical-align:middle;margin-left:var(--ds-space-1);color:var(--ds-fg-muted);opacity:.55;font-size:var(--ds-text-md);cursor:help;border-radius:var(--ds-radius-pill);text-transform:none;letter-spacing:0;transition:color var(--ds-motion-fast),opacity var(--ds-motion-fast)}.ds-infotip:hover,.ds-infotip:focus-visible,.ds-infotip.is-open{color:var(--ds-warn);opacity:1;outline:none}.ds-tip-bubble{position:fixed;z-index:60;max-width:260px;padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius-md);background:var(--ds-fg);color:var(--ds-on-accent);box-shadow:var(--ds-shadow-md);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-regular);line-height:1.4;text-transform:none;letter-spacing:0;pointer-events:none}.ds-tip-bubble:before{content:"";position:absolute;left:var(--arrow-x);top:calc(-1 * var(--ds-space-1));width:var(--ds-space-2);height:var(--ds-space-2);background:var(--ds-fg);transform:translate(-50%) rotate(45deg)}.ds-tip-bubble.above:before{top:auto;bottom:calc(-1 * var(--ds-space-1))}.ds-chip{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-pill);padding:var(--ds-space-1) var(--ds-space-3);cursor:pointer;font-size:var(--ds-text-sm)}.ds-chip:hover{border-color:var(--ds-accent)}.ds-chip.on{background:var(--ds-accent-soft);border-color:var(--ds-accent);color:var(--ds-accent);font-weight:var(--ds-weight-medium)}.ds-input{border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);padding:var(--ds-space-2) var(--ds-space-3);background:var(--ds-surface);font-size:var(--ds-text-md)}.ds-input:focus{outline:2px solid var(--ds-accent-soft);border-color:var(--ds-accent)}.ds-input.is-invalid{border-color:var(--ds-danger)}.ds-input.w-sm{width:120px}.ds-input.w-md{width:220px}.ds-input.w-lg{width:320px}.ds-input.w-full{width:100%}.ds-textarea{min-height:80px;resize:vertical}.ds-checkbox{display:inline-flex;align-items:center;gap:var(--ds-space-2);cursor:pointer;padding:var(--ds-space-1) 0}.ds-checkbox.is-disabled{color:var(--ds-fg-muted);cursor:default}.ds-badge{display:inline-block;font-size:var(--ds-text-xs);letter-spacing:.08em;text-transform:uppercase;padding:2px var(--ds-space-2);border-radius:var(--ds-radius-pill);background:var(--ds-bg);color:var(--ds-fg-muted)}.ds-badge.tone-warn{background:var(--ds-warn-soft);color:var(--ds-warn)}.ds-badge.tone-ok,.ds-badge.tone-review{background:var(--ds-accent-soft);color:var(--ds-accent)}.ds-badge.tone-suspended{background:var(--ds-warn-soft);color:var(--ds-warn)}.ds-badge.tone-danger{background:var(--ds-danger-soft);color:var(--ds-danger)}.ds-badge.tone-review,.ds-badge.tone-suspended,.ds-badge.tone-neutral{text-transform:none;letter-spacing:0;font-size:var(--ds-text-sm)}.ds-progress{height:var(--ds-space-1);background:var(--ds-line);border-radius:var(--ds-radius-pill);overflow:hidden}.ds-progress>div{height:100%;background:var(--ds-accent);transition:width var(--ds-motion-base)}.ds-progress.is-indeterminate>div{width:40%;animation:ds-slide 1.1s infinite linear}@keyframes ds-slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}.ds-seg{display:inline-flex;border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);overflow:hidden}.ds-seg button{border:0;background:var(--ds-surface);padding:var(--ds-space-2) var(--ds-space-3);cursor:pointer}.ds-seg button+button{border-left:1px solid var(--ds-line)}.ds-seg button.on{background:var(--ds-accent);color:var(--ds-on-accent)}.ds-menu{position:relative;display:inline-block}.ds-menu-pop{position:absolute;right:0;top:100%;z-index:20;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);box-shadow:var(--ds-shadow-md);min-width:170px;padding:var(--ds-space-1)}.ds-menu-pop.is-static{position:static;display:inline-block}.ds-menu-item{display:block}.ds-menu-pop button{display:block;width:100%;text-align:left;background:none;border:0;padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius-sm);cursor:pointer;white-space:nowrap}.ds-menu-pop button:hover:not(:disabled){background:var(--ds-bg)}.ds-menu-pop button:disabled{color:var(--ds-fg-muted);cursor:not-allowed}.ds-menu-pop button.danger{color:var(--ds-danger)}.ds-popover{position:fixed;z-index:45;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);padding:var(--ds-space-3);box-shadow:var(--ds-shadow-md);font-size:var(--ds-text-sm);min-width:220px;max-width:360px}.ds-popover.is-static{position:static;display:inline-block}.ds-zoom{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-1);border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);padding:2px;background:var(--ds-surface)}.ds-zoom-value{border:0;background:none;cursor:pointer;font-variant-numeric:tabular-nums;font-size:var(--ds-text-sm);padding:var(--ds-space-1) var(--ds-space-2);border-radius:var(--ds-radius-sm)}.ds-zoom-value:hover{background:var(--ds-bg)}.ds-tile{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);padding:var(--ds-space-3) var(--ds-space-4);box-shadow:var(--ds-shadow-sm)}.ds-tile.clickable{cursor:pointer}.ds-tile.clickable:hover{border-color:var(--ds-accent)}.ds-tile-label{color:var(--ds-fg-muted);font-size:var(--ds-text-sm)}.ds-tile-value{font-size:var(--ds-text-2xl);font-weight:var(--ds-weight-bold);margin-top:2px;line-height:1.2}.ds-tile-value .muted{font-size:var(--ds-text-md);font-weight:var(--ds-weight-regular)}.ds-tile-value.compact,.ds-tile-value small{font-size:var(--ds-text-lg)}.ds-tile-note{color:var(--ds-fg-muted);font-size:var(--ds-text-sm)}.ds-tile-value.with-help{display:flex;align-items:center;gap:var(--ds-space-1)}.ds-colhead{display:inline-flex;align-items:center;white-space:nowrap}.ds-colsort{all:unset;display:inline-flex;align-items:center;gap:var(--ds-space-1);cursor:pointer;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;border-radius:var(--ds-radius-sm);transition:color var(--ds-motion-fast)}.ds-colsort:hover,.ds-colsort.is-active{color:var(--ds-fg)}.ds-colsort:focus-visible{outline:2px solid var(--ds-accent);outline-offset:2px}.ds-colsort .ds-icon{color:var(--ds-accent)}.ds-colpick{display:flex;align-items:center}.ds-legend-block{margin-top:var(--ds-space-1)}.ds-legend{display:flex;align-items:center;gap:var(--ds-space-1);font-size:var(--ds-text-xs);color:var(--ds-fg-muted);margin-top:var(--ds-space-1);flex-wrap:wrap}.ds-legend-label{width:58px;font-weight:var(--ds-weight-medium);color:var(--ds-fg)}.ds-picker{position:relative;display:inline-block}.ds-picker.block{display:block}.ds-picker-button{display:inline-flex;align-items:center;gap:var(--ds-space-2);cursor:pointer;text-align:left;min-width:200px}.ds-picker-button>span:first-child{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-picker-pop{position:absolute;left:0;top:calc(100% + var(--ds-space-1));z-index:25;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);box-shadow:var(--ds-shadow-md);min-width:260px;max-height:360px;overflow:auto;padding:var(--ds-space-1)}.ds-picker-pop button{display:flex;width:100%;justify-content:space-between;gap:var(--ds-space-3);text-align:left;border:0;background:none;padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius-sm);cursor:pointer}.ds-picker-pop button:hover{background:var(--ds-bg)}.ds-picker-pop button.on{background:var(--ds-accent-soft);color:var(--ds-accent);font-weight:var(--ds-weight-medium)}.ds-picker-pop button.create{justify-content:flex-start;color:var(--ds-accent);border-top:1px solid var(--ds-line);border-radius:0}.ds-picker-empty{padding:var(--ds-space-2) var(--ds-space-3);color:var(--ds-fg-muted)}.ds-checklist{max-height:320px;overflow:auto;border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);padding:var(--ds-space-2) 0;background:var(--ds-surface)}.ds-toasts{position:fixed;right:var(--ds-space-5);bottom:var(--ds-space-5);display:flex;flex-direction:column;gap:var(--ds-space-2);z-index:50}.ds-toast{background:var(--ds-fg);color:var(--ds-on-accent);padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius-md);max-width:420px;display:flex;gap:var(--ds-space-3);align-items:flex-start;box-shadow:var(--ds-shadow-md)}.ds-toast.error{background:var(--ds-danger)}.ds-toast-close{background:none;border:0;color:var(--ds-on-accent);cursor:pointer;padding:0}.ds-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ds-fg) 28%,transparent);z-index:40;display:flex;align-items:center;justify-content:center}.ds-modal{background:var(--ds-surface);border-radius:var(--ds-radius-lg);padding:var(--ds-space-5);width:420px;box-shadow:var(--ds-shadow-md)}.ds-modal.wide{width:520px}.ds-modal h3{margin:0 0 var(--ds-space-2);font-size:var(--ds-text-lg)}.ds-modal-body{margin:var(--ds-space-3) 0 var(--ds-space-4)}.ds-empty{border:1px dashed var(--ds-line);border-radius:var(--ds-radius-md);padding:var(--ds-space-6);text-align:center;color:var(--ds-fg-muted)}.ds-nav{background:var(--ds-surface);border-right:1px solid var(--ds-line);padding:var(--ds-space-4) var(--ds-space-3);display:flex;flex-direction:column;gap:var(--ds-space-1);overflow-y:auto}.ds-nav-brand{font-weight:var(--ds-weight-bold);font-size:var(--ds-text-lg);padding:var(--ds-space-1) var(--ds-space-3) var(--ds-space-3)}.ds-nav>button,.ds-nav-foot>button{text-align:left;background:none;border:0;padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius-md);cursor:pointer}.ds-nav>button:hover,.ds-nav-foot>button:hover{background:var(--ds-bg)}.ds-nav>button.active{background:var(--ds-accent-soft);color:var(--ds-accent);font-weight:var(--ds-weight-medium)}.ds-nav-divider{border-top:1px solid var(--ds-line);margin:var(--ds-space-3) var(--ds-space-1) var(--ds-space-1);padding-top:var(--ds-space-2);font-size:var(--ds-text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--ds-fg-muted)}.ds-nav-foot{margin-top:auto;padding-top:var(--ds-space-4)}.ds-nav-foot>button{display:block;width:100%;margin-top:var(--ds-space-2)}.ds-nav-note{margin-top:var(--ds-space-2);padding:0 var(--ds-space-3);font-size:var(--ds-text-xs);color:var(--ds-fg-muted)}.ds-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ds-fg) 18%,transparent);z-index:30}.ds-drawer{position:fixed;top:0;right:0;bottom:0;width:460px;max-width:100%;background:var(--ds-surface);border-left:1px solid var(--ds-line);z-index:31;padding:var(--ds-space-5);overflow:auto;display:flex;flex-direction:column}.ds-drawer.is-static{position:static;height:auto;border:1px solid var(--ds-line);border-radius:var(--ds-radius-md)}.ds-drawer h2{margin:0 0 var(--ds-space-4);font-size:var(--ds-text-xl)}.ds-drawer-foot{margin-top:auto;display:flex;gap:var(--ds-space-2);flex-wrap:wrap;padding-top:var(--ds-space-4);border-top:1px solid var(--ds-line)}.ds-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--ds-space-3)}.ds-map{position:relative}.ds-map h2{cursor:pointer}.ds-map-scroll{overflow-x:auto;padding-bottom:var(--ds-space-1)}.ds-map-grid-wrap{display:grid;grid-template-columns:28px max-content;gap:2px var(--ds-space-1)}.ds-map-years{display:grid;font-size:var(--ds-text-xs);font-weight:var(--ds-weight-medium);height:13px;white-space:nowrap}.ds-map-months{display:grid;font-size:var(--ds-text-xs);color:var(--ds-fg-muted);height:13px;white-space:nowrap}.ds-map-weekdays{display:grid;grid-template-rows:repeat(7,11px);gap:2px;font-size:var(--ds-text-xs);color:var(--ds-fg-muted);align-items:center}.ds-map-grid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,11px);grid-auto-columns:11px;gap:2px}.ds-map-caption{margin-top:var(--ds-space-3);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-medium)}.ds-heat-cell,.ds-heat-pad{width:11px;height:11px;border-radius:2px;display:inline-block}.ds-map-grid .ds-heat-cell{cursor:pointer}.ds-heat-cell.done-0{background:var(--ds-heat-done-0);box-shadow:inset 0 0 0 1px var(--ds-line)}.ds-heat-cell.done-1{background:var(--ds-heat-done-1)}.ds-heat-cell.done-2{background:var(--ds-heat-done-2)}.ds-heat-cell.done-3{background:var(--ds-heat-done-3)}.ds-heat-cell.done-4{background:var(--ds-heat-done-4)}.ds-heat-cell.due-0{background:var(--ds-heat-due-0)}.ds-heat-cell.due-1{background:var(--ds-heat-due-1)}.ds-heat-cell.due-2{background:var(--ds-heat-due-2)}.ds-heat-cell.due-3{background:var(--ds-heat-due-3)}.ds-heat-cell.due-4{background:var(--ds-heat-due-4)}.ds-heat-cell.today{outline:2px solid var(--ds-heat-today);outline-offset:1px}.ds-review{max-width:720px;margin:var(--ds-space-5) auto}.ds-review-meta{display:flex;justify-content:space-between;gap:var(--ds-space-4);color:var(--ds-fg-muted);font-size:var(--ds-text-sm);margin-bottom:var(--ds-space-2)}.ds-review-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-review-notice{min-height:var(--ds-space-5);padding-top:var(--ds-space-1);font-size:var(--ds-text-sm);color:var(--ds-accent);text-align:center}.ds-review-card{background:var(--ds-surface);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-md);padding:var(--ds-space-7) var(--ds-space-6);min-height:220px;display:flex;flex-direction:column;justify-content:center;text-align:center}.ds-review-front{font-size:var(--ds-text-2xl);font-weight:var(--ds-weight-medium);white-space:pre-wrap;line-height:1.3}.ds-review-divider{border:0;border-top:1px solid var(--ds-line);margin:var(--ds-space-5) 0;width:100%}.ds-review-back{font-size:var(--ds-text-xl);white-space:pre-wrap;animation:ds-fade var(--ds-motion-base) ease-out}@keyframes ds-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.ds-review-actions{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:var(--ds-space-3);margin:var(--ds-space-5) 0 var(--ds-space-3)}.fill>.ds-library-scroll{flex:1 1 auto}.ds-library-scroll{position:relative;min-height:0;overflow:auto;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-md)}table.table.ds-library{table-layout:fixed;border:0;border-radius:0;overflow:visible}table.table.ds-library th,table.table.ds-library td{padding-top:var(--ds-space-1);padding-bottom:var(--ds-space-1);vertical-align:middle}.ds-library thead th{position:sticky;top:0;z-index:2;border-bottom:0;box-shadow:inset 0 -1px 0 var(--ds-line);overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none}.ds-library thead th[data-col]{box-shadow:inset -1px 0 0 var(--ds-line),inset 0 -1px 0 var(--ds-line)}.ds-library thead th.is-moving{opacity:.5}.ds-library td[data-col]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}table.table.ds-library td.ds-row-menu,table.table.ds-library thead th:last-child{padding-left:0;padding-right:0;text-align:center}.ds-library .ds-row-menu .ds-btn{padding:0 var(--ds-space-2)}.ds-col-menu{width:var(--ds-space-7)}.ds-col-grip{position:absolute;top:0;right:0;bottom:0;width:6px;cursor:col-resize;z-index:1}.ds-col-grip:hover{box-shadow:inset -2px 0 0 var(--ds-line)}.ds-tip-plain{position:fixed;z-index:60;max-width:480px;padding:var(--ds-space-1) var(--ds-space-2);border-radius:var(--ds-radius-sm);background:var(--ds-fg);color:var(--ds-on-accent);box-shadow:var(--ds-shadow-sm);font-size:var(--ds-text-sm);line-height:1.35;white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none}.ds-tip-plain.is-inline{position:static;display:inline-block}.ds-col-drop-line{position:absolute;width:2px;background:var(--ds-warn);pointer-events:none;z-index:3}body.ds-cursor-move,body.ds-cursor-move *{cursor:move!important;-webkit-user-select:none;user-select:none}body.ds-cursor-resize,body.ds-cursor-resize *{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.ds-library tr.ds-folder-row{background:var(--ds-surface-raised);cursor:pointer}.ds-library tr.ds-folder-row td{position:relative;white-space:nowrap}.ds-library tr.ds-folder-row:hover .ds-drag-handle{opacity:1}.ds-library tr.ds-folder-row.is-dragging{opacity:.5}.ds-library tr.ds-folder-row.drop-inside{background:var(--ds-accent-soft)}.ds-library tr.ds-folder-row.drop-refused{cursor:not-allowed}.ds-library tr.ds-card-row{cursor:pointer}.ds-library tr.ds-card-row:hover{background:var(--ds-surface-raised)}.ds-folder-head{display:inline-flex;align-items:center;gap:var(--ds-space-1)}.ds-drag-handle{color:var(--ds-fg-muted);opacity:0;cursor:grab;transition:opacity var(--ds-motion-fast);margin-left:calc(-1 * var(--ds-space-4));width:var(--ds-space-3)}.ds-chevron{color:var(--ds-fg-muted);display:inline-flex;width:var(--ds-space-4)}.ds-drop-line{position:absolute;right:0;height:2px;background:var(--ds-warn);pointer-events:none}.ds-drop-line.top{top:-1px}.ds-drop-line.bottom{bottom:-1px}.ds-drop-line.refused{background:var(--ds-danger)}.ds-folder-edit{display:inline-flex;align-items:center;gap:var(--ds-space-2)}.ds-row-menu{width:1%;white-space:nowrap}.ds-preview-section{margin-bottom:var(--ds-space-6)}.ds-preview-section>h2{font-size:var(--ds-text-xl);margin-bottom:var(--ds-space-3)}.ds-preview-item{margin-bottom:var(--ds-space-5)}.ds-preview-item>h3{font-size:var(--ds-text-md);color:var(--ds-fg-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--ds-space-2)}.ds-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--ds-space-2)}.ds-swatch{border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);overflow:hidden;background:var(--ds-surface);font-size:var(--ds-text-xs)}.ds-swatch>div:first-child{height:40px}.ds-swatch>div:last-child{padding:var(--ds-space-1) var(--ds-space-2);font-family:var(--ds-font-mono)}.ds-scale-bar{height:var(--ds-space-3);background:var(--ds-accent);border-radius:var(--ds-radius-sm)}.ds-sample-box{width:120px;height:64px;background:var(--ds-surface);border:1px solid var(--ds-line);display:flex;align-items:center;justify-content:center;font-size:var(--ds-text-xs);font-family:var(--ds-font-mono)}.ds-create-pair .ds-btn{gap:var(--ds-space-2)}.ds-create-pair .ds-btn.ds-create-folder{background:var(--ds-warn-soft);border-color:var(--ds-warn);color:var(--ds-warn)}.ds-create-pair .ds-btn.ds-create-folder:hover{background:var(--ds-warn);color:var(--ds-on-accent)}.ds-library tr.ds-folder-row.is-unfiled{cursor:pointer}.ds-quickadd{display:flex;align-items:center;gap:var(--ds-space-2);color:var(--ds-accent)}.ds-quickadd .ds-input{font:inherit;line-height:inherit;padding:0 var(--ds-space-1);border:0;border-radius:var(--ds-radius-sm);background:transparent;width:220px}.ds-quickadd .ds-input::placeholder{color:var(--ds-accent);opacity:.75}.ds-quickadd .ds-input:focus{background:var(--ds-surface);outline:1px solid var(--ds-accent)}.ds-quickadd .ds-input.is-invalid{outline:1px solid var(--ds-danger);background:var(--ds-surface)}.ds-quickadd .ds-icon{flex:none}.ds-library-scroll:focus{outline:none}.ds-library tr.ds-card-row.is-selected,.ds-library tr.ds-folder-row.is-selected{background:var(--ds-accent-soft)}.ds-library-scroll:focus-visible tr.is-selected{box-shadow:inset 2px 0 0 var(--ds-accent)}.ds-tabbar{display:none;position:relative;z-index:30}.ds-tabbar.is-static{display:block}.ds-tabbar-bar{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);background:var(--ds-surface);border-top:1px solid var(--ds-line);padding-bottom:env(safe-area-inset-bottom,0)}.ds-tabbar-bar>button{display:flex;flex-direction:column;align-items:center;gap:var(--ds-space-1);min-height:var(--ds-space-7);padding:var(--ds-space-2) var(--ds-space-1);background:none;border:0;color:var(--ds-fg-muted);font-size:var(--ds-text-xs);cursor:pointer;-webkit-tap-highlight-color:transparent}.ds-tabbar-bar>button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-tabbar-bar>button.active{color:var(--ds-accent);font-weight:var(--ds-weight-medium)}.ds-tabbar-bar>button:focus-visible{outline:2px solid var(--ds-accent);outline-offset:-2px}.ds-tabbar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ds-fg) 18%,transparent)}.ds-tabbar-sheet{position:absolute;left:var(--ds-space-2);right:var(--ds-space-2);bottom:calc(100% + var(--ds-space-2));display:flex;flex-direction:column;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-md);padding:var(--ds-space-2)}.ds-tabbar.is-static .ds-tabbar-sheet{position:static;margin-bottom:var(--ds-space-2)}.ds-tabbar-sheet>button{text-align:left;background:none;border:0;border-radius:var(--ds-radius-md);padding:var(--ds-space-3) var(--ds-space-4);font-size:var(--ds-text-lg);cursor:pointer}.ds-tabbar-sheet>button:hover{background:var(--ds-bg)}.ds-tabbar-sheet>button.active{background:var(--ds-accent-soft);color:var(--ds-accent);font-weight:var(--ds-weight-medium)}.ds-tabbar-note{padding:var(--ds-space-2) var(--ds-space-4) var(--ds-space-1);font-size:var(--ds-text-xs);color:var(--ds-fg-muted)}.ds-app-icons{display:flex;align-items:flex-end;gap:var(--ds-space-5);flex-wrap:wrap}.ds-app-icons figure{margin:0;text-align:center;font-size:var(--ds-text-xs);color:var(--ds-fg-muted);font-family:var(--ds-font-mono)}.ds-app-icons img{display:block;margin:0 auto var(--ds-space-1)}.ds-app-icons img.is-masked{border-radius:50%}@media(max-width:600px){.is-web .ds-tabbar{display:block}.is-web .ds-review{max-width:none;margin:0}.is-web .ds-review-card{padding:var(--ds-space-5) var(--ds-space-4);min-height:180px}.is-web .ds-review-front,.is-web .ds-review-back{overflow-wrap:anywhere}.is-web .ds-review-front{font-size:var(--ds-text-xl)}.is-web .ds-review-back{font-size:var(--ds-text-lg)}.is-web .ds-review-divider{margin:var(--ds-space-4) 0}.is-web .ds-review-actions{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));margin:var(--ds-space-4) 0 var(--ds-space-3)}.is-web .ds-review-actions>.is-block{grid-column:1 / -1}.is-web .ds-tiles{grid-template-columns:minmax(0,1fr)}.is-web .ds-map,.is-web .ds-map-scroll{max-width:100%;min-width:0}.is-web .ds-modal,.is-web .ds-modal.wide{width:auto;max-width:calc(100% - var(--ds-space-5))}.is-web .ds-toasts{left:var(--ds-space-3);right:var(--ds-space-3);bottom:calc(var(--ds-space-8) + env(safe-area-inset-bottom,0px) + var(--ds-space-2))}.is-web .ds-toast{max-width:none}.is-web .ds-drawer{width:100%;padding:var(--ds-space-4)}.is-web .ds-library-scroll{max-width:100%}}
