:root{--font-sans: "DM Sans", ui-sans-serif, system-ui, sans-serif;--font-display: "Fraunces", Georgia, serif;--ink: #15252f;--ink-accent: #1d4e89;--muted: #5a6d78;--line: #c7d5dc;--line-soft: #dce6eb;--bg0: #d9e8ec;--bg1: #edf4f6;color:var(--ink);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;height:100%;max-height:100%;overflow:hidden}body{min-height:100vh;min-height:100svh;min-height:100dvh;height:100vh;height:100svh;height:100dvh;background:radial-gradient(1200px 600px at 10% -10%,rgba(31,107,90,.18),transparent 55%),radial-gradient(900px 500px at 90% 0%,rgba(29,78,137,.16),transparent 50%),linear-gradient(165deg,var(--bg1),var(--bg0));color:var(--ink)}button,input,select,textarea{font:inherit}.app{height:100vh;height:100svh;height:100dvh;max-height:100vh;max-height:100svh;max-height:100dvh;min-height:0;display:flex;flex-direction:column;padding:1.25rem 1.5rem 1.5rem;gap:.85rem;overflow:hidden;box-sizing:border-box}.login{min-height:100vh;min-height:100svh;min-height:100dvh;display:grid;place-items:center;padding:1.5rem;box-sizing:border-box}.login__panel{width:min(100%,22rem);display:flex;flex-direction:column;gap:.85rem}.login__brand{display:flex;align-items:center;gap:.85rem}.login__title{font-family:var(--font-display);font-size:clamp(2rem,6vw,2.6rem);font-weight:600;letter-spacing:-.02em;line-height:1.1;margin:0;color:var(--ink)}.login__tag{margin:0;font-size:.95rem;color:var(--muted);line-height:1.4}.login__form{display:flex;flex-direction:column;gap:.45rem}.login__label{font-size:.82rem;font-weight:650;color:var(--ink)}.login__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);border-radius:.65rem;padding:.7rem .85rem;background:#ffffffb8;color:var(--ink);font:inherit}.login__input:focus{outline:2px solid rgba(31,107,90,.45);outline-offset:1px}.login__error{margin:0;font-size:.85rem;color:#9b2c2c}.login__submit{margin-top:.35rem;width:100%}.topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.brand{display:flex;align-items:center;gap:.85rem}.brand__mark{width:2.4rem;height:2.4rem;border-radius:.7rem;background:linear-gradient(145deg,#1f6b5a,#1d4e89 55%,#2f6f8a);box-shadow:0 8px 20px #1d4e8947;animation:mark-in .6s ease both}.brand__name{font-family:var(--font-display);font-size:1.55rem;font-weight:600;letter-spacing:-.02em;line-height:1.1;margin:0;color:var(--ink)}.brand__tag{margin:.15rem 0 0;font-size:.85rem;color:var(--muted)}.topbar__controls{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.week-nav{display:flex;align-items:center;gap:.35rem;background:#ffffff8c;border:1px solid var(--line);border-radius:999px;padding:.15rem .35rem}.week-label{min-width:12.5rem;text-align:center;font-size:.9rem;font-weight:550;color:var(--ink)}.view-switch{display:inline-flex;flex-wrap:wrap;max-width:min(100%,36rem);padding:.2rem;gap:.15rem;border-radius:999px;border:1px solid var(--line);background:#ffffff8c}.view-switch__btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--muted);font:inherit;font-size:.82rem;font-weight:650;padding:.4rem .65rem;border-radius:999px;cursor:pointer;min-width:2.4rem}.view-switch__btn:hover{color:var(--ink);background:#ffffffb3}.view-switch__btn--active{background:#1f6b5a;color:#fff}.view-switch__btn--active:hover{background:#185648;color:#fff}.day-span-select{display:none;align-items:center;gap:.4rem;font-size:.82rem;font-weight:650;color:var(--muted)}.day-span-select select{font:inherit;font-size:.88rem;font-weight:600;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:.4rem .75rem;background:#ffffffb8;max-width:8.5rem}.btn__short{display:none}.topbar__row,.topbar__actions{display:contents}.chrome-panel__toggle-short{display:none}.link-count{font-size:.8rem;font-weight:700;color:#1d4e89;background:#1d4e891a;border:1px solid rgba(29,78,137,.22);border-radius:999px;padding:.35rem .7rem;white-space:nowrap}.project-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem}.project-bar__filters{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.project-bar__actions{display:flex;flex-wrap:wrap;gap:.4rem}.project-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#ffffffb3;color:var(--ink);font:inherit;font-size:.82rem;font-weight:600;padding:.35rem .7rem;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;transition:background .15s ease,border-color .15s ease,color .15s ease}.project-chip:hover{background:#fff;border-color:#9eb4c0}.project-chip--active{background:#15252f;border-color:#15252f;color:#fff}.project-dot{width:.65rem;height:.65rem;border-radius:999px;flex-shrink:0;box-shadow:inset 0 0 0 1px #0000001f}.project-select-row{display:flex;align-items:center;gap:.55rem}.project-select-row select{flex:1}.project-select-row .project-dot{width:.9rem;height:.9rem}.flow-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .75rem;padding:.55rem .75rem;border:1px solid var(--line);border-radius:.85rem;background:#ffffff8c}.flow-bar__label{font-size:.72rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.flow-bar__filters{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;flex:1}.flow-bar__empty{font-size:.82rem;color:var(--muted)}.flow-bar__actions{display:flex;flex-wrap:wrap;gap:.4rem}.flow-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#ffffffd9;color:var(--ink);font:inherit;font-size:.8rem;font-weight:650;padding:.3rem .65rem;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem}.flow-chip__swatch{width:.7rem;height:.7rem;border-radius:999px;background:var(--flow-color);box-shadow:inset 0 0 0 1px #0000001f}.flow-chip__project{font-size:.68rem;font-weight:600;color:var(--muted)}.flow-chip--active{border-color:var(--flow-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--flow-color) 35%,transparent);background:#fff}.flow-chip--active .flow-chip__name{color:var(--ink)}.modal__tip{margin:0;font-size:.8rem;font-weight:500;color:var(--muted);line-height:1.35}.hint{flex-shrink:0;margin:0;font-size:.9rem;color:var(--muted);animation:fade-up .45s ease both}.topbar,.chrome-panel,.project-bar,.flow-bar{flex-shrink:0}.chrome-panel{display:flex;flex-direction:column;gap:.55rem;border:1px solid var(--line);border-radius:.9rem;background:#ffffff80;padding:.45rem .65rem}.chrome-panel--minimized{padding:.3rem .55rem}.chrome-panel__toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:1.75rem}.chrome-panel__title{font-size:.72rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.chrome-panel__summary{margin:0;min-width:0;flex:1;font-size:.85rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chrome-panel__toggle{flex-shrink:0;font-size:.8rem;font-weight:650;padding:.25rem .65rem}.chrome-panel__body{display:flex;flex-direction:column;gap:.65rem}.chrome-panel .flow-bar{background:#ffffffa6}.chrome-panel .hint{margin:0}.board-shell{flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.graph-view{flex:1 1 0;min-height:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:1rem;background:radial-gradient(800px 400px at 0% 0%,rgba(31,107,90,.08),transparent 55%),radial-gradient(700px 360px at 100% 0%,rgba(29,78,137,.08),transparent 50%),#ffffff9e;box-shadow:0 18px 40px #14283714;overflow:hidden}.graph-view--empty{align-items:center;justify-content:center;color:var(--muted);padding:2rem}.graph-view__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:.45rem .75rem;border-bottom:1px solid var(--line-soft);background:#eef4f6a6;flex-shrink:0}.graph-curve{display:inline-flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:650;color:var(--muted)}.graph-curve input[type=range]{width:8rem;accent-color:#1f6b5a}.graph-curve__value{min-width:2.4rem;font-variant-numeric:tabular-nums;color:var(--ink)}.graph-view__tip{font-size:.78rem;color:var(--muted)}.graph-view__scroll{flex:1 1 0;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;padding:.25rem}.graph-view__svg{display:block;min-width:100%}.graph-view__note{margin:0;padding:.55rem .85rem;border-top:1px solid var(--line-soft);font-size:.85rem;color:var(--muted);flex-shrink:0}.graph-day__band{fill:#eef4f673}.graph-day__name{font-family:var(--font-sans);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;fill:var(--muted)}.graph-day__date{font-family:var(--font-display);font-size:15px;font-weight:600;fill:var(--ink)}.graph-node{cursor:pointer}.graph-node__card{fill:#fff;stroke:color-mix(in srgb,var(--task-color) 70%,#c7d5dc);stroke-width:2;filter:drop-shadow(0 4px 10px rgba(20,40,55,.08));transition:fill .15s ease,stroke-width .15s ease}.graph-node:hover .graph-node__card{fill:color-mix(in srgb,var(--task-color) 12%,#fff);stroke-width:2.5}.graph-node__title{font-family:var(--font-sans);font-size:13px;font-weight:650;fill:var(--ink);pointer-events:none}.graph-node__time{font-family:var(--font-sans);font-size:10px;font-weight:550;fill:var(--muted);pointer-events:none}.graph-edge__under{pointer-events:none;stroke:#ffffffeb;stroke-width:6;stroke-linecap:round}.graph-edge__line{pointer-events:none;stroke-linecap:round}.graph-edge__hit{stroke:transparent;stroke-width:14;pointer-events:stroke;cursor:pointer}.graph-edge__handle{fill:#fff;stroke:#1d4e89;stroke-width:2;cursor:grab;pointer-events:all;filter:drop-shadow(0 1px 3px rgba(20,40,55,.25))}.graph-edge__handle:active{cursor:grabbing}.graph-edge--muted{pointer-events:none}.graph-edge--muted .graph-edge__handle{display:none}.board-scroll{position:relative;flex:1 1 0;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border:1px solid var(--line);border-radius:1rem;background:#ffffff9e;box-shadow:0 18px 40px #14283714;animation:board-in .55s ease both;touch-action:pan-x pan-y}.board-scroll--dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.board-scroll--linking,.board-scroll--selecting{cursor:crosshair;-webkit-user-select:none;user-select:none}.board-scroll--selecting .task,.board-scroll--selecting .task__link{pointer-events:none}.board-canvas{position:relative;width:max-content;min-width:100%}.offscreen-anchors{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.offscreen-anchor{position:absolute;width:14px;height:14px;border-radius:999px;opacity:0;pointer-events:none}.board-header{display:grid;position:sticky;top:0;z-index:5;width:max-content;min-width:100%;align-content:start;justify-content:start;background:linear-gradient(180deg,#eef4f6,#e7f0f3);box-shadow:0 1px 0 var(--line-soft),0 6px 12px #1428370f;flex-shrink:0}.board{display:grid;position:relative;z-index:1;width:max-content;height:max-content;max-width:none;align-content:start;justify-content:start}.board__corner,.board__day,.board__hour,.board__cell{border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft)}.board__corner{position:sticky;left:0;z-index:6;background:#eef4f6;padding:.25rem .2rem;font-size:.6rem;font-weight:650;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);white-space:nowrap;width:4rem;box-sizing:border-box;text-align:right}.board__day{position:relative;background:transparent;padding:.3rem .55rem .3rem .4rem;display:flex;flex-direction:column;gap:0;min-width:0;box-sizing:border-box}.board__col-resize{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;top:0;right:-3px;width:7px;height:100%;margin:0;padding:0;border:none;background:transparent;cursor:col-resize;z-index:2;touch-action:none}.board__col-resize:after{content:"";position:absolute;top:18%;bottom:18%;left:50%;width:2px;transform:translate(-50%);border-radius:1px;background:transparent;transition:background .15s ease}.board__col-resize:hover:after,.board__col-resize:focus-visible:after{background:#1d4e8973}.board-scroll--resizing,.board-scroll--resizing *{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.board__day-name{font-size:.65rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);line-height:1.2}.board__day-date{font-family:var(--font-display);font-size:.92rem;font-weight:600;color:var(--ink);line-height:1.2}.board__hour{position:sticky;left:0;z-index:2;background:#f5f9fa;padding:.05rem .25rem;font-size:.62rem;font-weight:600;color:var(--muted);display:flex;align-items:center;justify-content:flex-end;white-space:nowrap;width:4rem;box-sizing:border-box;border-top:1px solid transparent}.board__hour--major{font-weight:700;color:var(--ink, #1c2a33);border-top-color:var(--line-soft)}.board__hour--minor{font-weight:500;opacity:.65;font-size:.58rem}.board__cell{padding:.08rem;min-height:1.05rem;height:auto;display:flex;flex-wrap:wrap;gap:.2rem;align-content:flex-start;background:linear-gradient(180deg,rgba(255,255,255,.35),transparent 40%),transparent;cursor:cell;transition:background .15s ease}.board__cell--hour{border-top:1px solid var(--line-soft)}.board__cell:hover{background:#1f6b5a0f}.board__cell--selected{background:#1f6b5a2e!important;box-shadow:inset 3px 0 #1f6b5a}.board__cell--drop{background:#1d4e891f!important;box-shadow:inset 0 0 0 2px #1d4e8959}.task{background:var(--task-color);color:#fff;border-radius:.4rem;min-width:0;max-width:100%;width:max-content;box-shadow:0 2px 6px #0000001f;outline:2px solid transparent;outline-offset:1px;animation:task-pop .35s ease both;position:relative;z-index:3;display:inline-flex;align-items:stretch;overflow:hidden;touch-action:manipulation}.task__body{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:inherit;font:inherit;cursor:grab;text-align:left;padding:.2rem .35rem;min-width:0;flex:1}.task__body:active{cursor:grabbing}.task__link{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-left:1px solid rgba(255,255,255,.28);background:#0003;color:#fff;font:inherit;font-size:.85rem;font-weight:700;line-height:1;padding:0 .3rem;cursor:crosshair;display:grid;place-items:center}.task__link:hover{background:#f0c24b;color:#15252f}.task--draggable:hover:not(.task--dragging){transform:translateY(-1px);box-shadow:0 8px 16px #00000029}.task--dragging{cursor:grabbing;touch-action:none}.task--ghost{display:inline-flex;align-items:center;padding:.45rem .65rem;cursor:grabbing;box-shadow:0 16px 32px #00000047;transform:rotate(-2deg) scale(1.05);pointer-events:none;background:var(--task-color);color:#fff;border-radius:.55rem}.task--link-source{outline-color:#f0c24b;box-shadow:0 0 0 3px #f0c24b73,0 8px 16px #00000029}.task--link-target{outline-color:#1d4e89;box-shadow:0 0 0 3px #1d4e8973,0 8px 16px #00000029}.task__title{display:block;font-size:.75rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:9rem}.task__time{display:block;font-size:.62rem;font-weight:500;opacity:.9;margin-top:.1rem;white-space:nowrap}.task__badge{display:inline-block;margin-top:.15rem;font-size:.55rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;background:#00000038;padding:.05rem .3rem;border-radius:999px}.task-continuation{width:100%;min-height:.85rem;border-radius:.25rem;background:color-mix(in srgb,var(--task-color) 35%,transparent);border-left:3px solid var(--task-color);cursor:pointer}.day-times{display:flex;flex-direction:column;gap:.35rem;margin:.25rem 0 .5rem;padding:.55rem .65rem;border:1px solid var(--line);border-radius:.65rem;background:#ffffff8c;max-height:220px;overflow:auto}.day-times__head,.day-times__row{display:grid;grid-template-columns:5.5rem 1fr 1fr;gap:.4rem;align-items:center}.day-times__head{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.day-times__date{font-size:.8rem;font-weight:600}.day-times__row select{font-size:.8rem;padding:.3rem .4rem}.dep-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:3;overflow:visible}.dep-overlay--inert .dep-hit,.dep-overlay--inert .dep-delete,.dep-overlay--inert .dep-delete-x{pointer-events:none!important}.dep-line{stroke-width:3;stroke-linecap:round;opacity:1;pointer-events:none}.dep-line--draft{stroke-width:3;stroke-dasharray:6 4;opacity:1}.dep-hit{stroke:transparent;stroke-width:14;pointer-events:stroke;cursor:pointer}.dep-delete{fill:#fff;stroke-width:1.5;pointer-events:all;cursor:pointer;opacity:0;transition:opacity .15s ease}.dep-delete-x{font-size:11px;font-weight:700;pointer-events:all;cursor:pointer;opacity:0;transition:opacity .15s ease;-webkit-user-select:none;user-select:none}.dep-group:hover .dep-delete,.dep-group:hover .dep-delete-x{opacity:1}.dep-group--active:hover .dep-line{stroke-width:3.75;opacity:1}.dep-group--muted{pointer-events:none}.sync-btn{display:inline-flex;align-items:center;gap:.4rem}.sync-dot{width:.55rem;height:.55rem;border-radius:50%;background:#9aa7b2;flex-shrink:0}.sync-dot--local-only{background:#9aa7b2}.sync-dot--loading,.sync-dot--saving{background:#c48a12;box-shadow:0 0 0 3px #c48a1233}.sync-dot--synced{background:#1f6b5a}.sync-dot--error,.sync-dot--offline{background:#c24b5a}.storage-status{display:flex;align-items:center;gap:.45rem;margin:0 0 .75rem;font-size:.9rem;color:var(--muted, #5a6b76)}.storage-status__meta{opacity:.8}.storage-msg{margin:0 0 .75rem;padding:.55rem .7rem;border-radius:.55rem;background:#1f6b5a1a;color:#185648;font-size:.88rem}.storage-msg--error{background:#c24b5a1a;color:#a43345}.storage-steps{margin:1rem 0 .5rem;padding-left:1.2rem;font-size:.86rem;line-height:1.45;color:var(--muted, #5a6b76)}.storage-steps code{font-size:.8em}.storage-note{margin:0;font-size:.8rem;color:var(--muted, #5a6b76);line-height:1.4}.storage-check{display:flex;align-items:flex-start;gap:.55rem;margin:.35rem 0 .15rem;font-size:.88rem;line-height:1.4;cursor:pointer}.storage-check input{margin-top:.2rem;width:auto;flex-shrink:0}.storage-check span{color:var(--ink, #1c2a33)}.modal--wide{width:min(520px,calc(100vw - 2rem));max-width:100%}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:999px;padding:.5rem .95rem;font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .12s ease}.btn:active{transform:translateY(1px)}.btn--primary{background:#1f6b5a;color:#fff}.btn--primary:hover{background:#185648}.btn--accent{background:#1d4e89;color:#fff}.btn--ghost{background:#ffffff8c;border-color:var(--line);color:var(--ink)}.btn--ghost:hover{background:#fff}.btn--danger{background:transparent;border-color:#c24b5a;color:#a43345}.btn--danger:hover{background:#c24b5a14}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#12202a73;display:grid;place-items:center;padding:max(.65rem,env(safe-area-inset-top,0px)) max(.65rem,env(safe-area-inset-right,0px)) max(.65rem,env(safe-area-inset-bottom,0px)) max(.65rem,env(safe-area-inset-left,0px));z-index:20;overflow:auto;-webkit-overflow-scrolling:touch;animation:fade-in .18s ease both;box-sizing:border-box}.modal{width:min(420px,calc(100vw - 1.3rem));max-width:100%;max-height:min(92dvh,100%);overflow:auto;-webkit-overflow-scrolling:touch;background:#fbfcfd;border-radius:1rem;border:1px solid var(--line);box-shadow:0 24px 60px #12202a40;padding:1.1rem 1.15rem 1.2rem;animation:modal-in .22s ease both;box-sizing:border-box;min-width:0}.modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem}.modal__header h2{margin:0;font-family:var(--font-display);font-size:1.35rem;font-weight:600}.icon-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;font-size:1.5rem;line-height:1;color:var(--muted);cursor:pointer;padding:.1rem .35rem}.modal__form{display:flex;flex-direction:column;gap:.75rem}.modal__form label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;font-weight:650;color:var(--muted)}.modal__form input,.modal__form select,.modal__form textarea{font:inherit;font-size:.95rem;font-weight:500;color:var(--ink);border:1px solid var(--line);border-radius:.55rem;padding:.55rem .65rem;background:#fff;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.modal__form textarea{resize:vertical}.dependents{margin:0;padding:.65rem .75rem;border:1px solid var(--line-soft);border-radius:.7rem;background:#ffffff8c}.dependents legend{font-size:.8rem;font-weight:700;color:var(--muted);padding:0 .25rem}.dependents__list{display:flex;flex-direction:column;gap:.25rem;max-height:11rem;overflow:auto;margin-top:.35rem}.dependents__item{display:flex!important;flex-direction:row!important;align-items:center;gap:.5rem;font-size:.88rem!important;font-weight:550!important;color:var(--ink)!important;padding:.35rem .4rem;border-radius:.45rem;cursor:pointer}.dependents__item:hover{background:#1f6b5a14}.dependents__item input{width:auto;margin:0;accent-color:#1f6b5a}.dependents__title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal__row{display:grid;grid-template-columns:1.3fr 1fr;gap:.65rem;min-width:0}.modal__row>*{min-width:0}.color-field{border:none;padding:0;margin:0}.color-field legend{font-size:.8rem;font-weight:650;color:var(--muted);margin-bottom:.35rem}.color-swatches{display:flex;gap:.45rem}.swatch{width:1.55rem;height:1.55rem;border-radius:999px;border:2px solid transparent;cursor:pointer;padding:0}.swatch--active{border-color:var(--ink);box-shadow:0 0 0 2px #fff inset}.modal__actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.35rem}.modal__actions-right{display:flex;gap:.45rem;margin-left:auto}.toast{position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);background:#15252f;color:#fff;padding:.65rem 1rem;border-radius:999px;font-size:.88rem;font-weight:550;z-index:30;animation:toast-in .25s ease both;box-shadow:0 10px 30px #00000040}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes board-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes mark-in{0%{opacity:0;transform:scale(.85) rotate(-8deg)}to{opacity:1;transform:none}}@keyframes task-pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media(max-width:720px){.app{padding:.4rem;gap:.28rem}.brand{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.topbar{flex-shrink:0;flex-direction:column;align-items:stretch;gap:.28rem;overflow:visible}.topbar__controls{display:flex;flex-direction:column;width:100%;gap:.28rem}.topbar__row{display:flex;flex-wrap:nowrap;align-items:center;gap:.3rem;width:100%;min-width:0}.topbar__actions{display:flex;flex-wrap:nowrap;align-items:center;gap:.25rem;margin-left:auto}.topbar__optional,.btn__full{display:none}.btn__short{display:inline}.topbar .btn{padding:.28rem .5rem;font-size:.72rem}.topbar .btn--icon{min-width:2rem;justify-content:center}.sync-btn .btn__full{display:none}.view-switch{width:auto;flex:0 0 auto;max-width:none;padding:.12rem}.view-switch__btn{padding:.28rem .5rem;font-size:.72rem;min-width:0}.view-switch--days{display:none}.day-span-select{display:inline-flex;flex:0 0 auto}.day-span-select__label{display:none}.day-span-select select{padding:.28rem .45rem;font-size:.72rem;max-width:4.25rem}.week-nav{flex:1 1 auto;min-width:0;padding:.08rem .2rem;gap:.15rem}.week-nav .btn{padding:.2rem .4rem}.week-label{min-width:0;flex:1 1 auto;font-size:.68rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hint{display:none}.chrome-panel{max-height:22dvh;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:.2rem .4rem;border-radius:.65rem}.chrome-panel--minimized{max-height:none;overflow:visible;padding:.12rem .35rem}.chrome-panel__toolbar{min-height:1.35rem;gap:.35rem}.chrome-panel__summary{font-size:.68rem}.chrome-panel__toggle{padding:.15rem .4rem;font-size:.72rem}.chrome-panel__toggle-full{display:none}.chrome-panel__toggle-short{display:inline}.board-shell,.graph-view{flex:1 1 0;min-height:72dvh}.modal,.modal--wide{width:100%;max-width:100%;max-height:90dvh}.modal__row{grid-template-columns:1fr}.modal__actions{flex-wrap:wrap}.modal__actions-right{width:100%;justify-content:flex-end;flex-wrap:wrap}}
