.tz-tool{padding-top:22px;padding-bottom:36px}
.tz-tool .back-link{font-size:13px;color:var(--muted)}
.tz-heading{display:flex;align-items:center;justify-content:space-between;margin:18px 0 22px;gap:15px}
.tz-title{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.tz-title h1{font-size:30px;letter-spacing:-1px;margin:5px 0 0}
.tz-title p{font-size:14px;color:var(--muted);margin:0}
.tz-tool button,.tz-tool input,.tz-tool select,.tz-tool textarea{font:inherit}
.tz-tool button{cursor:pointer}
.tz-tool button:disabled{opacity:.4;cursor:default}
.tz-tool :focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.tz-tool input,.tz-tool select,.tz-tool textarea{border:1px solid #cbd5df;border-radius:6px;padding:9px 10px;background:#fff;color:var(--ink);min-width:0;max-width:100%}
.tz-tool .button{font-size:13px;padding:10px 14px;border:0;box-shadow:none;white-space:nowrap;justify-content:center}
.tz-board-panel{border:1px solid var(--border);border-radius:12px;background:#fff}
.tz-toolbar{padding:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--border)}
.tz-search-wrap{position:relative;flex:1;min-width:230px}
.tz-search-wrap input{width:100%;height:42px;font-size:14px}
.tz-results{position:absolute;z-index:10;left:0;right:0;top:46px;max-height:310px;overflow:auto;background:#fff;border:1px solid var(--border);box-shadow:0 12px 26px #20394f1a;border-radius:8px;padding:6px}
.tz-results button{display:block;width:100%;text-align:left;background:#fff;border:0;border-radius:5px;padding:10px;font-size:14px}
.tz-results button:hover,.tz-results button:focus{background:var(--blue)}
.tz-results small{display:block;color:var(--muted);font-size:11px}
.tz-date-nav{display:flex;align-items:center;border:1px solid #cbd5df;border-radius:6px;height:42px;overflow:hidden}
.tz-date-nav input{border:0;border-radius:0;font-size:13px;padding:8px 4px;width:133px}
.tz-date-nav button{background:#fff;border:0;font-size:23px;width:30px;height:40px}
.tz-toolbar>select{height:42px;font-size:13px}
.tz-board-caption{padding:11px 16px 5px;display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px;flex-wrap:wrap}
.tz-selection{border-top:1px solid var(--border);padding:14px 16px}
.tz-empty{font-size:13px;color:var(--muted);margin:2px 0}
.tz-selection-title{font-size:12px;color:var(--muted);margin-bottom:10px}
.tz-pills{display:flex;flex-wrap:wrap;gap:8px}
.tz-pill{border:1px solid var(--border);padding:7px 11px;border-radius:7px;min-width:140px}
.tz-pill strong{display:block;font-size:15px;font-variant-numeric:tabular-nums}
.tz-pill span,.tz-pill small{display:block;font-size:11px;color:var(--muted)}
.tz-pill em{font-style:normal;font-size:10px;color:#246545;margin-left:6px}
.tz-pill em.off{color:#7f6a50}
.tz-selection-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 16px 14px;font-size:12px}
.tz-selection-actions label{display:flex;align-items:center;gap:8px}
.tz-selection-actions select{font-size:12px;padding:7px}
.tz-text-button{background:none;border:0;color:var(--muted);padding:8px 0;font-size:12px!important;text-decoration:underline;text-underline-offset:3px}
.tz-overlap{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;padding:13px 16px;background:#f8fafb;border-top:1px solid var(--border);border-radius:0 0 12px 12px;font-size:12px}
.tz-overlap strong{white-space:nowrap;font-size:13px}
.tz-overlap #tz-overlap{display:flex;gap:7px;align-items:center;flex-wrap:wrap;color:var(--muted)}
.tz-overlap button{border:1px solid #c9dfd1;background:#e7f2ed;color:#256046;padding:4px 10px;border-radius:20px;font-size:12px}
.tz-secondary{margin-top:20px;display:grid;gap:10px}
.tz-secondary details{border:1px solid var(--border);border-radius:8px}
.tz-secondary summary{padding:11px 15px;font-size:13px;cursor:pointer;list-style-position:inside;color:var(--muted)}
.tz-secondary details[open]>summary{border-bottom:1px solid var(--border);color:var(--ink)}
.tz-details-body{padding:16px}
.tz-details-body form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
.tz-details-body label{display:grid;gap:5px;font-size:12px}
.tz-details-body label:first-child{flex:1}
.tz-settings-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 0;border-bottom:1px solid var(--border)}
.tz-settings-row>div:first-child{flex:1;min-width:170px}
.tz-settings-row strong{font-size:14px}
.tz-settings-row small{display:block;font-size:11px;color:var(--muted)}
.tz-work-inputs{display:flex;align-items:center;gap:6px;font-size:12px}
.tz-work-inputs input{padding:6px;font-size:12px}
.tz-city-actions{display:flex;gap:7px}
.tz-city-actions button{background:var(--blue);border:1px solid var(--border);padding:7px 9px;border-radius:5px;font-size:12px}
.tz-settings-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}
.tz-hint{font-size:12px;color:var(--muted);line-height:1.8;margin:0}
.tz-notes{margin-top:18px}
#tz-status{font-size:13px;color:#a34e20;margin:10px 0}
#tz-status:empty{display:none}
#tz-ambiguity{padding:12px;background:#fff4e9;border-radius:6px;margin-top:15px}
#tz-ambiguity select{margin-top:8px}
#tz-copy-fallback textarea{width:100%;margin-top:8px}
#tz-copy-fallback{margin:15px 0;font-size:13px}
.tz-tool [hidden]{display:none!important}
@media(max-width:760px){.tz-heading{margin:14px 0 17px}.tz-heading>.badge{display:none}.tz-title{gap:6px}.tz-title h1{font-size:26px}.tz-title p{width:100%;font-size:12px}.tz-toolbar{padding:10px;gap:8px}.tz-search-wrap{flex-basis:100%}.tz-toolbar .button{padding:10px;font-size:12px}.tz-date-nav{flex:1}.tz-date-nav input{width:100%;min-width:104px}.tz-date-nav button{flex-shrink:0;width:25px}.tz-toolbar>select{padding:7px 4px;width:53px}.tz-board-caption{padding:9px 12px 2px;font-size:10px}.tz-board-caption span:last-child{display:none}.tz-selection,.tz-overlap{padding:12px}.tz-selection-actions{padding:0 12px 12px;gap:8px}.tz-pill{flex:1;min-width:125px;padding:7px 9px}.tz-pills{gap:6px}.tz-details-body{padding:12px}.tz-details-body form label:first-child{flex-basis:100%}.tz-details-body form label{flex:1;min-width:0}.tz-details-body form input{width:100%}.tz-settings-row{gap:9px}.tz-work-inputs{flex-wrap:wrap}.tz-work-inputs input{max-width:104px}.tz-tool{padding-top:18px}}
/* ---- 时间轴（网格 + 竖向色带） ---- */
.tz-timeline{--tz-meta:270px;--tz-row:54px;--tz-col:36px;overflow-x:auto;margin:6px 14px 10px;padding:8px 0 6px;touch-action:pan-x pan-y;outline:none}
.tz-grid{display:grid;grid-template-columns:var(--tz-meta) 1fr;row-gap:6px;min-width:calc(var(--tz-meta) + var(--tz-cols) * var(--tz-col));position:relative;user-select:none;-webkit-user-select:none}
.tz-track{grid-column:2;display:grid;grid-template-columns:var(--tz-tracks,repeat(var(--tz-cols),1fr))}
.tz-line-name{grid-column:1;position:sticky;left:0;z-index:4;background:#fff;display:flex;align-items:center;gap:6px;padding:0 10px 0 4px;border-left:3px solid transparent;border-radius:4px;min-width:0}
.tz-line-name.is-home{border-left-color:var(--accent)}
.tz-line-name.tz-drop{box-shadow:inset 0 2px 0 var(--accent)}
.tz-grip{color:#bcc6cf;font-size:11px;letter-spacing:-2px;cursor:grab;padding:0 2px}
.tz-home-button{border:0;background:none;padding:3px;color:#b3bec8;border-radius:4px;display:flex}
.tz-home-button:hover{color:var(--ink)}
.is-home .tz-home-button{color:var(--accent)}
.tz-meta-info{min-width:0;flex:1}
.tz-meta-info strong{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.tz-meta-info strong span{font-size:11px;font-weight:400;color:var(--muted);margin-left:5px}
.tz-meta-info small{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tz-meta-info small b{color:var(--ink);font-weight:600}
.tz-meta-clock{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.tz-meta-clock b{display:block;font-size:17px;line-height:1.15}
.tz-meta-clock small{font-size:10px;color:var(--muted)}
.tz-mobile-clock{display:none}
.tz-row-tools{display:flex;flex-direction:column;gap:0;opacity:0;transition:opacity .15s}
.tz-line-name:hover .tz-row-tools,.tz-line-name:focus-within .tz-row-tools{opacity:1}
.tz-gear,.tz-remove{border:0;background:none;color:#9aa8b5;padding:0 3px;line-height:1.3;font-size:13px!important;border-radius:3px}
.tz-remove{font-size:16px!important}
.tz-gear:hover{color:var(--ink)}.tz-remove:hover{color:#be561f}
.tz-cell{height:var(--tz-row);min-width:0;border:0;border-right:1px solid #fff;padding:0;background:#f3f5f8;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15;font-variant-numeric:tabular-nums;position:relative;border-radius:0}
.tz-cell.tz-night{background:#e2e8ef;color:#4a6078}
.tz-cell.tz-work{background:#e7f2ed;color:#1f6b4a}
.tz-cell.tz-first{border-radius:8px 0 0 8px}
.tz-cell.tz-last{border-radius:0 8px 8px 0;border-right:0}
.tz-cell.tz-daystart{box-shadow:inset 2px 0 0 var(--ink)}
.tz-hour{font-size:14px;font-weight:600}
.tz-hour sup{font-size:9px;margin-left:1px;font-weight:500}
.tz-sub{font-size:9px;color:var(--muted);font-weight:400}
.tz-date{font-size:11px;font-weight:700;color:var(--ink)}
.tz-wd{font-size:10px;color:var(--muted)}
.tz-sep{grid-column:1 / -1;background:var(--border)}
.tz-count-name{font-size:12px}
.tz-count-name strong{display:block;font-size:13px}
.tz-count-name small{display:block;font-size:10px;color:var(--muted)}
.tz-cell.tz-count{height:36px;background:transparent;color:var(--muted);font-size:12px;font-weight:600}
.tz-cell.tz-count.tz-one{background:#f1f7f3;color:#1f6b4a}
.tz-cell.tz-count.tz-some{background:#c9e5d5;color:#1f6b4a}
.tz-cell.tz-count.tz-all{background:#2f8a5b;color:#fff}
.tz-overlay{grid-column:2;position:relative;pointer-events:none;z-index:3}
.tz-band{position:absolute;top:-5px;bottom:-5px;border-radius:9px;display:none}
.tz-band-hover{background:rgba(18,45,75,.07)}
.tz-band-sel{background:rgba(246,154,18,.15);box-shadow:inset 0 0 0 2px var(--accent)}
.tz-nowline{position:absolute;top:-9px;bottom:-5px;width:2px;margin-left:-1px;background:rgba(190,86,31,.38);display:none}
.tz-nowline:before{content:"";position:absolute;top:-3px;left:-3px;width:8px;height:8px;border-radius:50%;background:#be561f}
.tz-timeline:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
/* 搜索结果、选中结果 */
.tz-results button{display:flex;align-items:center;gap:10px}
.tz-results .tz-r-name{font-weight:600;white-space:nowrap}
.tz-results .tz-r-name span{font-weight:400;color:var(--muted);font-size:12px}
.tz-results small{display:inline;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tz-results .tz-r-time{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.tz-selection-title b{color:var(--ink)}
.tz-pill em{font-style:normal;font-size:10px;padding:1px 5px;border-radius:4px;margin-left:6px;background:#e7f2ed;color:#1f6b4a}
.tz-pill.is-off strong{color:#8a99a8}
.tz-pill.is-off em{background:#e2e8ef;color:#4a6078}
.tz-overlap button:hover{border-color:#1f6b4a}
@media(max-width:760px){
.tz-timeline{--tz-meta:128px;--tz-row:50px;--tz-col:34px;margin:4px 8px 10px}
.tz-grip,.tz-meta-clock,.tz-meta-info strong span{display:none}
.tz-line-name{padding:0 2px 0 1px;gap:3px}
.tz-meta-info strong{font-size:13px}
.tz-meta-info small{font-size:10px}
.tz-mobile-clock{display:block;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}
.tz-row-tools{opacity:1}
.tz-count-name strong{font-size:11px}
}
.tz-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;margin:0 3px 0 8px}
.tz-legend .lg-work{background:#e7f2ed}.tz-legend .lg-day{background:#f3f5f8}.tz-legend .lg-night{background:#e2e8ef}.tz-legend .lg-now{background:#be561f;width:3px}
.tz-legend .lg-daystart{background:#f3f5f8;box-shadow:inset 2px 0 0 var(--ink)}
@media(max-width:760px){.tz-drag-hint{display:none}}
.tz-line-name[data-row]{cursor:grab}.tz-line-name[data-row],.tz-track[data-row]{transition:transform .16s ease}.tz-track{position:relative}
.tz-row-lift{transition:none!important;z-index:6!important;position:relative}.tz-track.tz-row-lift{box-shadow:0 10px 24px rgba(18,45,75,.18);border-radius:8px}.tz-line-name.tz-row-lift{position:sticky;box-shadow:0 10px 24px rgba(18,45,75,.18)}
body.tz-row-dragging,body.tz-row-dragging *{cursor:grabbing!important;user-select:none!important}
