.app{display:flex;flex-direction:column;height:100%;min-height:0}.board-area{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px;padding:14px var(--page-pad) var(--page-pad)}.board-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 12px}.board-toolbar__left{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}.board-filter{display:flex;align-items:center;gap:6px}.board-filter__label{margin-bottom:0;white-space:nowrap;flex:none}.board-filter__select{width:auto;min-width:150px;padding-top:5px;padding-bottom:5px;font-size:13px}.board-count{font-size:13px;white-space:nowrap}.confirm-dialog{max-width:380px}.confirm-title{font-size:16px;margin-bottom:8px}.confirm-message{color:var(--text-muted);font-size:14px;line-height:1.7;white-space:pre-wrap}.confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.mm-dialog{max-width:520px;display:flex;flex-direction:column;max-height:80vh}.mm-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.mm-title{font-size:16px}.mm-sub{font-size:12.5px;margin:6px 0 14px;line-height:1.6}.mm-add{display:flex;gap:8px;align-items:center}.mm-add .input{flex:1 1 auto;min-width:0}select.mm-role{width:100px;min-width:100px;flex:0 0 auto}.mm-error{margin-top:8px}.mm-list{margin-top:14px;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:6px}.mm-row{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 4px 6px 8px;border:1px solid var(--border);border-radius:var(--r-md)}.mm-email{flex:1 1 auto;min-width:0;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mm-you{color:var(--text-faint);font-size:12px;margin-left:4px}.mm-remove{flex:none}.mm-remove:hover{color:var(--late);background:var(--late-soft)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;height:60px;padding:0 var(--page-pad);background:var(--surface);border-bottom:1px solid var(--border)}.app-header__brand{display:flex;align-items:center;gap:10px;min-width:0}.app-header__logo{flex:none}.app-header__titles{display:flex;flex-direction:column;min-width:0}.app-header__title{font-size:17px;font-weight:600;line-height:1.2;white-space:nowrap}.app-header__subtitle{font-size:12px;line-height:1.3;white-space:nowrap}.app-header__right{display:flex;align-items:center;gap:12px}.app-header__user{display:flex;align-items:center;gap:6px}.app-header__user-label{margin-bottom:0}.app-header__user-select{width:150px;padding-top:5px;padding-bottom:5px;font-size:13px}.app-header__mode{align-items:center}.app-header__dot{width:8px;height:8px;border-radius:999px;background:var(--text-faint);flex:none}.app-header__dot--accent{background:var(--accent)}.app-header__account{display:flex;align-items:center;gap:8px}.app-header__email{font-size:12px;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.master-manager{max-width:560px;max-height:80vh;display:flex;flex-direction:column}.mm-reassign-backdrop{z-index:110}.mm-reassign{max-width:420px;display:flex;flex-direction:column;gap:10px}.mm-reassign-msg{font-size:13.5px;line-height:1.7;color:var(--text-muted)}.mm-reassign-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.mm-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.mm-title{font-size:18px}.mm-subtitle{margin-top:2px;font-size:13px}.mm-body{margin-top:16px;overflow:auto;display:flex;flex-direction:column}.mm-section{padding:16px 0}.mm-section:first-child{padding-top:0}.mm-section:last-child{padding-bottom:0}.mm-section+.mm-section{border-top:1px solid var(--border)}.mm-section-title{font-size:14px;font-weight:600;margin-bottom:10px}.mm-count{font-weight:400;font-size:13px}.mm-chips{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:8px}.mm-chip{padding-right:2px}.mm-chip-name{color:var(--text)}.mm-chip-del{width:18px;height:18px;border-radius:999px;font-size:11px}.mm-add-row{display:flex;gap:8px;align-items:center}.mm-add-row .input{flex:1}.mm-add-row .btn{flex:none}.dtrp{position:relative;width:100%}.dtrp-fields{display:flex;align-items:stretch;gap:8px}.dtrp-arrow{align-self:center;color:var(--text-faint);font-size:13px}.dtrp-field{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:2px;padding:6px 10px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);cursor:pointer;text-align:left;transition:border-color .14s ease,box-shadow .14s ease}.dtrp-field:hover{border-color:var(--accent)}.dtrp-field.is-active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.dtrp-field:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.dtrp-field-label{font-size:11px;color:var(--text-muted)}.dtrp-field-val{font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dtrp-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:50;width:288px;max-width:92vw;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:12px;animation:pop-in .12s ease}.dtrp-pop-head{display:flex;align-items:center;gap:4px;margin-bottom:8px}.dtrp-month{flex:1;text-align:center;font-size:13px;font-weight:600}.dtrp-close{margin-left:2px}.dtrp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px}.dtrp-weekdays span{text-align:center;font-size:11px;color:var(--text-faint);padding:2px 0}.dtrp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dtrp-day{padding:6px 0;border:none;background:transparent;border-radius:6px;font-size:12.5px;color:var(--text);cursor:pointer;transition:background .1s ease}.dtrp-day:hover{background:var(--surface-2)}.dtrp-day.is-out{color:var(--text-faint);opacity:.55}.dtrp-day.is-today{box-shadow:inset 0 0 0 1px var(--border-strong)}.dtrp-day.is-range{background:var(--accent-soft);color:var(--accent-strong);border-radius:0}.dtrp-day.is-edge{background:var(--accent);color:var(--on-accent)}.dtrp-times{display:flex;gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.dtrp-time{flex:1;display:flex;flex-direction:column;gap:3px}.dtrp-hint{font-size:11px;margin-top:8px}.quick-add{display:flex;flex-direction:column;gap:8px;margin:0 var(--page-pad);padding:12px 14px}.quick-add__hint{font-size:12px;line-height:1.5}.quick-add__row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.quick-add__field{display:flex;flex-direction:column}.quick-add__field--title,.quick-add__field--project{flex:1 1 240px;min-width:200px}.quick-add__field--dept{flex:0 0 150px;width:150px}.quick-add__field--assignee{flex:0 0 140px;width:140px}.quick-add__field--dates{flex:1 1 320px;min-width:280px}.quick-add__submit{flex:0 0 auto}.notes-panel{display:flex;flex-direction:column;gap:14px}.notes-heading{font-size:13px;font-weight:600;color:var(--text);letter-spacing:.02em}.notes-add{display:flex;flex-direction:column;gap:8px}.notes-add-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.notes-poster{font-size:11.5px}.notes-empty{font-size:13px}.notes-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px}.note-item{display:flex;align-items:flex-start;gap:8px;padding-left:10px;border-left:2px solid var(--note-soft)}.note-body{flex:1;min-width:0}.note-text{color:var(--note);white-space:pre-wrap;font-size:14px;line-height:1.6;word-break:break-word}.note-meta{margin-top:3px;font-size:11.5px}.note-del{flex:none}.status-select{position:relative;display:inline-flex;align-items:center;gap:6px;padding:0 8px 0 9px;border-radius:999px;border:1px solid transparent;background:var(--surface-2);transition:filter .14s ease}.status-select:hover{filter:brightness(.98)}.status-select .status-dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--text-faint)}.status-select .status-native{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;padding:0 2px 0 5px;font-size:13px;line-height:1;cursor:pointer;color:inherit;flex:1 1 auto;min-width:0}.status-select .status-native:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.status-select.size-sm{padding:3px 8px;min-width:92px}.status-select.size-sm .status-native{font-size:12.5px}.status-select.size-md{padding:5px 10px;min-width:104px}.status-select.is-todo{background:var(--surface-2);color:var(--text-muted)}.status-select.is-todo .status-dot{background:var(--st-todo-bd)}.status-select.is-doing{background:var(--accent-soft);color:var(--accent-strong)}.status-select.is-doing .status-dot{background:var(--st-doing)}.status-select.is-done{background:var(--surface-3);color:var(--text-muted)}.status-select.is-done .status-dot{background:var(--st-done)}.status-select.is-hold{background:#f3ead4;color:#8a6a1f}.status-select.is-hold .status-dot{background:var(--st-hold)}.td-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border)}.td-title{font-size:16px}.td-body{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:16px}.td-field{display:flex;flex-direction:column}.td-dates{display:flex;gap:10px}.td-date{flex:1;min-width:0}.td-caption{font-size:12px;margin-top:6px}.td-baseline{border:1px solid var(--border);border-radius:var(--r-md);padding:12px;background:var(--surface-2);display:flex;flex-direction:column;gap:8px}.td-baseline-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.td-baseline-title{font-size:13px;font-weight:600;color:var(--text-muted)}.td-baseline-range{font-size:13px;color:var(--text)}.td-baseline-diff{display:flex;align-items:center;gap:8px;font-size:12px}.td-baseline-note{font-size:12px}.td-footer{padding:14px 18px;border-top:1px solid var(--border)}.td-progress{display:flex;align-items:center;gap:10px}.td-progress input[type=range]{flex:1;accent-color:var(--accent)}.td-progress-val{font-size:13px;color:var(--text-muted);min-width:38px;text-align:right}.td-dep{border:1px solid var(--border);border-radius:var(--r-md);padding:12px;display:flex;flex-direction:column;gap:10px}.td-dep-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.td-dep-title{font-size:13px;font-weight:600}.td-dep-body{display:flex;flex-direction:column;gap:8px}.td-dep-body input[type=range]{accent-color:var(--accent)}.td-thresh-label{margin-bottom:0}.td-dep-note{font-size:11.5px;line-height:1.6}.td-ready{font-size:12.5px;padding:6px 10px;border-radius:var(--r-sm)}.td-ready.is-ready{background:var(--accent-soft);color:var(--accent-strong)}.td-ready.is-waiting{background:var(--surface-2);color:var(--text-muted)}.td-switch{position:relative;width:44px;height:26px;flex:none;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface-3);cursor:pointer;padding:0;transition:background .15s ease,border-color .15s ease}.td-switch:disabled{opacity:.5;cursor:not-allowed}.td-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.td-switch-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:left .15s ease}.td-switch.is-on{background:var(--accent);border-color:var(--accent)}.td-switch.is-on .td-switch-knob{left:20px}.zoom-controls{display:inline-flex;padding:2px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface)}.zoom-btn{width:38px;padding:5px 0;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-muted);font-size:14px;line-height:1;cursor:pointer;transition:background .14s ease,color .14s ease}.zoom-btn:hover{background:var(--surface-2)}.zoom-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.zoom-btn.is-active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.gantt{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;padding:0}.gantt-scroll{flex:1;min-height:0;overflow:auto}.gantt-canvas{position:relative;min-width:100%}.gantt-bg{position:absolute;bottom:0;pointer-events:none;z-index:0}.bg-line{position:absolute;top:0;bottom:0;width:1px;background:var(--grid-line)}.bg-line.is-strong{background:var(--grid-line-strong)}.bg-weekend{position:absolute;top:0;bottom:0;background:var(--weekend)}.bg-today{position:absolute;top:0;bottom:0;width:2px;background:var(--today);opacity:.85}.gantt-grid{position:relative;z-index:1;display:grid;width:100%}.g-cell{box-sizing:border-box;border-bottom:1px solid var(--border);min-width:0}.g-corner{position:sticky;top:0;left:0;z-index:5;height:var(--header-h);display:flex;flex-direction:column;justify-content:center;gap:2px;padding:0 16px;background:var(--surface);border-right:1px solid var(--border-strong)}.corner-title{font-size:13px;font-weight:600;color:var(--text)}.corner-sub{font-size:11px;color:var(--text-faint)}.g-timehead{position:sticky;top:0;z-index:4;height:var(--header-h);background:var(--surface);padding:0}.g-left{position:sticky;left:0;z-index:3;height:var(--row-h);display:flex;align-items:center;padding:0 14px 0 16px;background:var(--surface);border-right:1px solid var(--border-strong);overflow:hidden}.g-time{position:relative;z-index:1;height:var(--row-h)}.g-group{grid-column:1 / -1;height:34px;display:flex;align-items:center;background:var(--surface-2);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.g-group-name{position:sticky;left:0;display:inline-flex;align-items:center;gap:8px;padding:0 16px;font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap}.g-group-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}.g-group-count{font-weight:400;font-size:11.5px}.time-head{position:relative;height:var(--header-h)}.time-head-upper{position:relative;height:var(--header-upper-h);border-bottom:1px solid var(--border)}.time-head-lower{position:relative;height:var(--header-lower-h)}.th-cell{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;border-left:1px solid var(--grid-line);overflow:hidden}.th-upper{border-left-color:var(--grid-line-strong)}.th-label{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px}.th-upper .th-label{font-weight:500}.th-lower.is-weekend{background:var(--weekend)}.th-lower.is-weekend .th-label{color:var(--text-faint)}.th-lower.is-today .th-label{color:var(--today);font-weight:700}.time-head-today{position:relative;height:var(--header-today-h)}.today-flag{position:absolute;top:2px;transform:translate(-50%);background:var(--today);color:#fff;font-size:10px;line-height:1;padding:2px 6px;border-radius:999px;z-index:2;white-space:nowrap}.taskbar-layer{position:absolute;top:0;right:0;bottom:0;left:0}.taskbar-layer.is-done{opacity:.55}.ghost-bar{position:absolute;top:calc((var(--row-h) - var(--bar-h)) / 2);height:var(--bar-h);border:1.5px dashed var(--ghost);border-radius:6px;background:transparent;z-index:0}.bar{position:absolute;top:calc((var(--row-h) - var(--bar-h)) / 2);height:var(--bar-h);display:flex;align-items:center;padding:0 9px;border:1px solid transparent;border-radius:6px;cursor:pointer;overflow:hidden;z-index:1;box-shadow:var(--shadow-sm);transition:filter .14s ease,box-shadow .14s ease}.bar:hover{filter:brightness(.97);box-shadow:var(--shadow-md)}.bar:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bar-label{position:relative;z-index:1;font-size:12.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-progress{position:absolute;left:0;top:0;bottom:0;z-index:0;background:#28241e33;border-radius:6px 0 0 6px}.bar-todo{background:var(--surface);border-color:var(--st-todo-bd);color:var(--text-muted)}.bar-doing{background:var(--st-doing);color:var(--on-accent)}.bar-done{background:var(--st-done);color:var(--on-accent)}.bar-hold{background:#f4ecd6;border:1px dashed var(--st-hold);color:#8a6a1f}.diff-pos{position:absolute;top:0;height:var(--row-h);display:flex;align-items:center;gap:6px;white-space:nowrap;z-index:1}.diff-badge{font-size:11.5px}.ready-badge{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:500;background:var(--accent-soft);color:var(--accent-strong);border:1px solid var(--accent);white-space:nowrap}.bar{cursor:grab;-webkit-user-select:none;user-select:none}.taskbar-layer.is-dragging .bar{cursor:grabbing}.taskbar-layer.is-dragging{-webkit-user-select:none;user-select:none}.bar-handle{position:absolute;top:0;bottom:0;width:8px;z-index:2;cursor:ew-resize;opacity:0;transition:opacity .12s ease}.bar-handle-left{left:0;border-radius:6px 0 0 6px}.bar-handle-right{right:0;border-radius:0 6px 6px 0}.bar:hover .bar-handle{opacity:1;background:#fff6}.bar-todo:hover .bar-handle,.bar-hold:hover .bar-handle{background:#28241e24}.g-time.is-dragging-row{z-index:2}.bar-drag-tip{position:fixed;z-index:300;pointer-events:none;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:6px 10px;font-size:12px;line-height:1.55;white-space:nowrap}.bar-drag-tip-k{color:var(--text-faint);margin-right:4px}.rowinfo{display:flex;flex-direction:column;justify-content:flex-start;padding-top:7px;gap:4px;width:100%;height:100%}.rowinfo-line{display:flex;align-items:center;gap:10px}.rowinfo-title{flex:1 1 auto;min-width:0;text-align:left;font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:none;border:none;padding:0;margin:0;color:inherit;cursor:pointer;border-radius:var(--r-sm)}.rowinfo-title:hover{color:var(--accent-strong);text-decoration:underline;text-underline-offset:2px}.rowinfo-title:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rowinfo-sub{flex:1 1 auto;min-width:0;display:flex;gap:5px;font-size:11.5px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ri-dot{opacity:.6}.rowinfo-foot{flex:none;display:flex;align-items:center;gap:2px}.ri-assignee{font-size:11.5px;color:var(--text-muted);max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.ri-del{width:10px;height:10px;flex:none;border-radius:4px;opacity:0;transition:opacity .14s ease,color .14s ease,background .14s ease}.rowinfo:hover .ri-del,.ri-del:focus-visible{opacity:1}.ri-del:hover{color:var(--late);background:var(--late-soft)}.rowinfo.is-done .rowinfo-title{color:var(--text-faint)}.gantt-empty{position:absolute;top:calc(var(--header-h) + 36px);left:calc(var(--left-w) + 28px);display:flex;flex-direction:column;gap:4px;color:var(--text-muted);font-size:14px}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.auth-card{width:100%;max-width:380px;padding:28px 26px 22px;display:flex;flex-direction:column}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:20px}.auth-title{font-size:17px;font-weight:600}.auth-sub{font-size:12.5px;margin-top:2px}.auth-card .field-label{margin-top:12px}.auth-submit{margin-top:18px;width:100%;padding:10px}.auth-error{margin-top:12px;font-size:13px;color:var(--late);background:var(--late-soft);padding:8px 10px;border-radius:var(--r-md)}.auth-notice{margin-top:12px;font-size:13px;color:var(--accent-strong);background:var(--accent-soft);padding:8px 10px;border-radius:var(--r-md)}.auth-links{display:flex;justify-content:space-between;gap:10px;margin-top:16px;flex-wrap:wrap}.auth-link{background:none;border:none;padding:0;font-size:12.5px;color:var(--accent-strong);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.auth-link:hover{color:var(--accent)}.auth-message{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-message-card{max-width:400px;text-align:center;padding:28px 26px;display:flex;flex-direction:column;gap:12px;align-items:center}.auth-message-title{font-size:16px;font-weight:600}.auth-verify-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}:root{--font-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS PMincho", serif;--bg: #f7f5f1;--surface: #ffffff;--surface-2: #f1efe9;--surface-3: #e9e6df;--border: #e5e0d6;--border-strong: #d6cfc1;--text: #2a2926;--text-muted: #6b675f;--text-faint: #9c968b;--on-accent: #f7f9f7;--accent: #2f6f4f;--accent-strong: #265c41;--accent-soft: #e6efe9;--note: #2f5fa0;--note-soft: #ecf1f8;--late: #b3603a;--late-soft: #f4e7e0;--early: #4f7d5a;--early-soft: #e7efe9;--ontime: #8a857b;--st-todo-bd: #cfc8ba;--st-doing: #3f7d5b;--st-done: #b7b1a6;--st-hold: #c2933c;--ghost: rgba(58, 52, 44, .34);--weekend: rgba(58, 52, 44, .035);--grid-line: rgba(58, 52, 44, .07);--grid-line-strong: rgba(58, 52, 44, .13);--today: #c0552f;--r-sm: 5px;--r-md: 8px;--r-lg: 12px;--shadow-sm: 0 1px 2px rgba(40, 36, 30, .06);--shadow-md: 0 6px 22px rgba(40, 36, 30, .12);--row-h: 62px;--header-today-h: 16px;--header-upper-h: 26px;--header-lower-h: 30px;--header-h: 72px;--bar-h: 22px;--left-w: 400px;--page-pad: 20px;color-scheme:light}*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}html,body{font-family:var(--font-serif);font-weight:400;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.55}button,input,select,textarea,optgroup{font-family:inherit;font-size:inherit;color:inherit}h1,h2,h3,h4{font-weight:600;line-height:1.3}a{color:var(--accent-strong)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid var(--bg)}*::-webkit-scrollbar-track{background:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-size:14px;line-height:1;cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease,opacity .14s ease;white-space:nowrap}.btn:hover{background:var(--surface-2)}.btn:active{background:var(--surface-3)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover,.btn-primary:active{background:var(--accent-strong)}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{color:var(--late);border-color:var(--border-strong)}.btn-danger:hover{background:var(--late-soft);border-color:var(--late)}.btn-sm{padding:5px 10px;font-size:13px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .14s ease,color .14s ease}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.input,.select,.textarea{width:100%;padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-size:14px;transition:border-color .14s ease,box-shadow .14s ease}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.textarea{resize:vertical;line-height:1.6}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-faint) 50%),linear-gradient(135deg,var(--text-faint) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:28px;cursor:pointer}.field-label{display:block;font-size:12px;color:var(--text-muted);margin-bottom:4px;letter-spacing:.02em}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);font-size:12px;line-height:1.6;white-space:nowrap}.badge{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:500;line-height:1.7;white-space:nowrap}.badge.is-late{background:var(--late-soft);color:var(--late)}.badge.is-early{background:var(--early-soft);color:var(--early)}.badge.is-ontime{background:var(--surface-2);color:var(--ontime)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#28241e57;display:flex;align-items:center;justify-content:center;padding:20px;z-index:100;animation:fade-in .12s ease}.dialog{width:100%;max-width:420px;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:22px 22px 18px;animation:pop-in .14s ease}.drawer{position:fixed;top:0;right:0;height:100%;width:min(440px,92vw);background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-md);z-index:90;display:flex;flex-direction:column;animation:slide-in .18s ease}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(6px) scale(.99)}}@keyframes slide-in{0%{transform:translate(100%)}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
