:root{color-scheme:dark;--color-bg: #0b1120;--color-surface: #111827;--color-surface-elevated: #1f2937;--color-surface-hover: #1e293b;--color-border: #1e293b;--color-border-strong: #334155;--color-text: #e2e8f0;--color-text-muted: #94a3b8;--color-accent: #3b82f6;--color-accent-soft: rgba(59, 130, 246, .18);--color-success-soft: rgba(34, 197, 94, .18);--color-warning-soft: rgba(250, 204, 21, .18);--color-danger: #f87171;--color-overlay: rgba(8, 15, 35, .75);--color-shadow: 0 16px 40px rgba(2, 6, 23, .55);--color-tag-bg: rgba(148, 163, 184, .16);--color-tag-border: rgba(148, 163, 184, .32);--color-tag-remove: #e2e8f0;--color-button-bg: #1f2937;--color-button-hover-bg: #374151;--color-input-bg: #0f172a;--color-input-border: #1f2937;--color-input-border-focus: #3b82f6;--color-context-bg: #0f172a;--color-context-hover: rgba(59, 130, 246, .12);--color-primary: #16a34a;--color-primary-hover: #22c55e;--color-text-on-primary: #f8fafc;--color-parent-surface: #202e4f}body{margin:0;padding:0;background:var(--color-bg);color:var(--color-text);font-family:sans-serif}.app{width:100%;padding:1rem;box-sizing:border-box;color:var(--color-text)}.topbar{display:grid;grid-template-columns:1fr minmax(0,3fr) 1fr;align-items:center;gap:16px;margin-bottom:20px}.topbar__left{font-size:20px;font-weight:700}.topbar__center .search-form{margin-bottom:0}.topbar__right{display:flex;justify-content:flex-end;gap:12px}.topbar__link{color:var(--color-text-muted);text-decoration:none;padding:6px 10px;border-radius:4px;transition:background .12s ease,color .12s ease;background:transparent;border:none;cursor:pointer;font:inherit}.topbar__link:hover,.topbar__link--active{background:var(--color-context-hover);color:var(--color-text)}.board-title{margin:0 0 16px;font-size:18px;font-weight:600}.board-title-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.action-filter-pills{display:flex;flex-wrap:wrap;gap:8px}.action-filter-pill{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:999px;padding:4px 12px;font-size:12px;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.action-filter-pill:hover{background:var(--color-button-hover-bg);border-color:var(--color-input-border-focus)}.action-filter-pill--active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-base)}h1{margin-top:0;color:var(--color-text)}input,textarea,select{background:var(--color-input-bg);color:var(--color-text);border:1px solid var(--color-input-border);border-radius:6px;padding:8px;transition:border-color .12s ease,box-shadow .12s ease}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;border-color:var(--color-input-border-focus);box-shadow:0 0 0 2px #3b82f659}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}button{font:inherit;background:var(--color-button-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:6px;padding:6px 12px;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}button:hover{background:var(--color-button-hover-bg)}button:focus-visible{outline:2px solid var(--color-input-border-focus);outline-offset:2px}.task-form{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.task-form input,.task-form textarea,.task-form select{width:100%}.task-form textarea{resize:vertical}.search-form{display:flex;align-items:center;gap:8px;margin-bottom:16px}.search-form__input{flex:1;min-width:0}.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:stretch;grid-auto-rows:1fr;width:100%}.work-board{display:flex;flex-direction:column;gap:24px;width:100%}.swimlane{display:flex;flex-direction:column;gap:12px}.swimlane,.swimlane--today{position:relative;padding:16px 16px 24px;border-radius:8px}.swimlane:before,.swimlane--today:before{content:"";position:absolute;top:-16px;right:-16px;bottom:-24px;left:-16px;border-radius:24px;background:#0f172a59;z-index:0}.swimlane--today:before{background:linear-gradient(135deg,#2db7f31f,#05966914)}.swimlane>*,.swimlane--today>*{position:relative;z-index:1}.swimlane__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.swimlane__header-main{display:flex;align-items:baseline;gap:8px;font-size:16px;font-weight:600}.swimlane__header--muted{color:var(--color-text-muted)}.swimlane__label{font-size:12px;color:var(--color-text-muted)}.swimlane__toggle{border:1px solid var(--color-border);background:var(--color-button-bg);color:var(--color-text);border-radius:4px;padding:2px 10px;font-size:12px;cursor:pointer;transition:background .12s ease,border-color .12s ease}.swimlane__toggle:hover{background:var(--color-button-hover-bg);border-color:var(--color-input-border-focus)}.swimlane--collapsed{padding-bottom:12px}.swimlane__board{width:100%}.lane{border:1px solid var(--color-border);border-radius:6px;padding:8px;background:var(--color-surface);min-height:200px;transition:background .12s ease,border-color .12s ease;display:flex;flex-direction:column;height:100%}.lane--active{border:2px dashed var(--color-accent);background:var(--color-accent-soft)}.lane__title{font-weight:700;margin-bottom:8px}.task-card{margin-bottom:12px;border:1px solid var(--color-border);padding:8px;border-radius:4px;background:var(--color-surface-elevated);box-shadow:0 1px 2px #02061759;word-break:break-word;overflow-wrap:anywhere}.task-card--standalone{-webkit-user-select:none;user-select:none}.task-card--parent{background:var(--color-parent-surface)}.task-card--done{background:var(--color-success-soft);border-color:#22c55e73}.task-card--hovered{background:var(--color-warning-soft)}.task-card__title{font-weight:700}.task-card__description{margin-top:4px;font-size:13px;color:var(--color-text-muted);line-height:1.35}.task-card__header{display:flex;justify-content:space-between;align-items:center;gap:8px}.task-card__title-group{display:flex;align-items:baseline;gap:6px}.parent-subtask-count{font-size:12px;font-style:italic;color:var(--color-text-muted)}.task-card__actions{display:flex;align-items:center;gap:6px}.task-card__action{border:1px solid var(--color-border);background:var(--color-button-bg);color:var(--color-text);border-radius:4px;padding:4px 8px;font-size:12px;cursor:pointer;transition:background .12s ease,border-color .12s ease;min-width:28px}.task-card__action:hover{background:var(--color-button-hover-bg);border-color:var(--color-input-border-focus)}.task-card__meta{font-size:12px;color:var(--color-text-muted)}.task-card__body{position:relative;margin-top:6px;padding-top:0}.task-card__body.has-action{padding-top:24px}.task-card__tag{padding:4px 8px;border-radius:999px;background:var(--color-tag-bg);border:1px solid var(--color-tag-border);font-size:12px;color:var(--color-text)}.task-card__tag--header{margin-left:4px}.task-card__tag--body{position:absolute;top:0;right:0}.subtask-list{margin-top:8px;border-top:1px solid var(--color-border-strong);padding-top:8px}.subtask-list--collapsed{margin-top:8px;border-top:1px solid var(--color-border-strong);padding-top:8px;font-size:12px;font-style:italic;color:var(--color-text-muted)}.subtask-list--empty{margin-top:8px;border-top:1px dashed var(--color-border);padding:12px 0;font-size:13px;color:var(--color-text-muted);text-align:center}.subtask-card{margin-bottom:8px;border:1px solid var(--color-border);padding:8px;border-radius:4px;background:var(--color-surface);word-break:break-word;overflow-wrap:anywhere}.subtask-card--done{background:var(--color-success-soft);border-color:#22c55e59}.subtask-card__title{font-weight:600}.subtask-card__description{margin-top:4px;font-size:12px;color:var(--color-text-muted)}.subtask-card__meta{font-size:12px;color:var(--color-text-muted)}.subtask-card__body{position:relative;padding-right:48px}.subtask-card__tag{position:absolute;top:0;right:0}.is-draggable{cursor:grab}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);z-index:1200}.modal{position:fixed;z-index:1201;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--color-surface-elevated);border-radius:8px;box-shadow:var(--color-shadow);width:min(640px,92vw);max-height:80vh;overflow:auto}.modal__header{padding:16px 20px;border-bottom:1px solid var(--color-border-strong);display:flex;align-items:center;gap:8px}.modal__title-stack{display:flex;flex-direction:column;align-items:flex-start;gap:4px;flex:1}.modal__parent-link{font-size:12px;color:var(--color-text-muted);text-decoration:underline;background:none;border:none;padding:0;cursor:pointer;text-align:left}.modal__parent-link:hover{color:var(--color-accent)}.modal__title-input{flex:1;font-size:18px;font-weight:700;padding:6px 10px;border-radius:6px;border:1px solid #ddd}.modal__title-display{font-size:18px;font-weight:700;padding:6px 10px;border-radius:6px;border:1px solid transparent;cursor:text;background:transparent}.modal__title-display:hover{border-color:var(--color-border);background:var(--color-surface-hover)}.modal__button{padding:6px 12px;border-radius:6px;border:1px solid var(--color-border);cursor:pointer;background:var(--color-button-bg);color:var(--color-text)}.modal__button--primary{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-text-on-primary)}.modal__button--ghost{border-color:var(--color-border);background:transparent}.modal__button--ghost:hover{background:var(--color-surface-hover)}.modal__button--primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.modal__body{padding:20px}.modal__section{margin-bottom:12px}.modal__section--inline{display:flex;align-items:flex-start;gap:12px}.modal__section--inline .modal__section-title{margin-bottom:0;min-width:110px;padding-top:6px}.modal__section--inline .modal__text-display,.modal__section--inline .modal__date-input,.modal__section--inline .modal__textarea{flex:1}.modal__section--inline .date-quick-buttons{margin-left:auto;display:flex;gap:6px}.modal__section-title{font-weight:600;margin-bottom:6px}.modal__section-title--actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal__icon-button{border:1px solid var(--color-border);background:var(--color-button-bg);color:var(--color-text);border-radius:4px;padding:2px 10px;font-size:16px;line-height:1;cursor:pointer;transition:background .12s ease,border-color .12s ease}.modal__icon-button:hover{background:var(--color-button-hover-bg);border-color:var(--color-input-border-focus)}.modal__textarea{width:100%;resize:vertical}.modal__text-display{min-height:auto;padding:4px 8px;border-radius:6px;border:1px solid transparent;cursor:text;background:transparent;transition:border-color .12s ease,background .12s ease}.modal__text-display:hover{border-color:var(--color-border);background:var(--color-surface-hover)}.placeholder-text{color:var(--color-text-muted);font-style:italic}.subtask-table-wrapper{overflow-x:auto;margin-top:8px;border-top:1px solid var(--color-border-strong);padding-top:8px}.subtask-empty{margin-top:12px;font-size:13px;color:var(--color-text-muted);font-style:italic}.subtask-table{width:100%;border-collapse:collapse;font-size:13px}.subtask-table th{text-align:left;padding:6px 8px;color:var(--color-text-muted);font-weight:600}.subtask-table td{padding:6px 8px;border-bottom:1px solid var(--color-border-strong);vertical-align:middle}.subtask-table__link,.subtask-table__description,.subtask-table__cell-button{background:none;border:none;color:var(--color-accent);cursor:pointer;padding:0;font:inherit;text-align:left}.subtask-table__description{color:var(--color-text-muted);max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.subtask-table__cell-button{color:var(--color-text)}.subtask-table__cell-button:hover,.subtask-table__link:hover,.subtask-table__description:hover{text-decoration:underline}.subtask-table__date-input,.subtask-table__status-select,.subtask-table__action-input{width:100%;padding:4px 6px;border-radius:4px;border:1px solid var(--color-border);background:var(--color-input-bg);color:var(--color-text)}.modal__date-input{width:100%}.modal__link-button{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--color-accent);cursor:pointer;text-align:left;transition:background .12s ease,border-color .12s ease,color .12s ease}.modal__link-button:hover{background:var(--color-context-hover);border-color:var(--color-border)}.date-quick-buttons{display:flex;gap:8px;margin-top:8px}.date-quick-buttons button{flex:1;padding:6px 8px}.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.tag-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:var(--color-tag-bg);border:1px solid var(--color-tag-border);font-size:13px}.tag-pill__remove{border:none;background:transparent;cursor:pointer;font-size:14px;line-height:1;color:var(--color-tag-remove)}.tag-input-row{display:flex;gap:8px}.tag-input{flex:1;border:1px solid var(--color-input-border)}.tag-add-button{padding:6px 12px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-button-bg);cursor:pointer}.tag-add-button:hover{background:var(--color-button-hover-bg)}.modal__subtask-list{display:flex;flex-direction:column;gap:8px}.detail-subtask{border:1px solid var(--color-border);border-radius:6px;padding:8px;background:var(--color-surface);cursor:pointer;word-break:break-word;overflow-wrap:anywhere}.detail-subtask--done{background:var(--color-success-soft);border-color:#22c55e59}.detail-subtask__header{display:flex;justify-content:space-between;align-items:center}.detail-subtask__title{font-weight:600}.detail-subtask__status{font-size:12px;color:var(--color-text-muted);border:1px solid var(--color-border-strong);padding:2px 6px;border-radius:999px}.detail-subtask__description{font-size:13px;color:var(--color-text-muted);margin-top:4px}.detail-subtask__meta{font-size:12px;color:var(--color-text-muted);margin-top:6px}.inline-link{color:var(--color-accent);text-decoration:underline;word-break:break-all}.modal__meta{margin-bottom:12px;font-size:13px;color:var(--color-text-muted)}.menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:transparent}.context-menu{position:fixed;z-index:1001;background:var(--color-context-bg);border:1px solid var(--color-border);border-radius:4px;box-shadow:0 4px 18px #080f2373;min-width:160px;padding:4px 0}.context-menu__item{padding:8px 12px;cursor:pointer;color:var(--color-text)}.context-menu__item:hover{background:var(--color-context-hover)}.context-menu__item--danger{color:var(--color-danger)}.context-menu__item--with-picker{position:relative}.context-menu__item--with-picker:hover,.context-menu__item--with-picker:focus-within{background:var(--color-context-hover)}.context-menu__date-picker{display:none;position:absolute;top:50%;left:100%;transform:translate(8px,-50%);background:var(--color-context-bg);border:1px solid var(--color-border);border-radius:4px;padding:6px;box-shadow:0 4px 18px #080f2359;z-index:1002}.context-menu__item--with-picker:hover .context-menu__date-picker,.context-menu__item--with-picker:focus-within .context-menu__date-picker{display:block}.context-menu__date-picker input[type=date]{background:var(--color-input-bg);color:var(--color-text);border:1px solid var(--color-input-border);border-radius:4px;padding:4px 6px}.task-card:last-child{margin-bottom:0}.subtask-card:last-child{margin-bottom:0}
