:root{color-scheme:light;--text: #243128;--text-strong: #314438;--text-muted: #75806f;--text-soft: #5f6f65;--text-nav: #627061;--accent-text: #1f7a4d;--accent-solid: #1f7a4d;--accent-strong: #2f8a59;--accent-rgb: 31, 122, 77;--ink-rgb: 36, 49, 40;--shadow-rgb: 45, 58, 44;--surface: #fffdf7;--surface-rgb: 255, 253, 247;--surface-card: #fffaf0;--surface-column: #f8f0df;--tint-rgb: 232, 244, 222;--input-bg: rgba(255, 255, 255, .72);--highlight-strong: rgba(255, 255, 255, .7);--highlight-soft: rgba(255, 255, 255, .26);--panel-sheen: rgba(255, 255, 255, .52);--danger-text: #a55539;--danger-border: #c96b45;--danger-rgb: 165, 85, 57;--danger-soft-bg: rgba(255, 239, 229, .9);--body-bg: radial-gradient(circle at 20% 0%, rgba(229, 184, 75, .14), transparent 30%), linear-gradient(135deg, #f6f8f2 0%, #eef4e8 100%);--logo-bg: linear-gradient(145deg, #fffdf7, #e2efd7);color:var(--text);background:#f3f6ee;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}[data-theme=dark]{color-scheme:dark;--text: #e3eae0;--text-strong: #d6e0d1;--text-muted: #93a18e;--text-soft: #a2b09c;--text-nav: #98a893;--accent-text: #74cf9f;--accent-solid: #2e8757;--accent-strong: #35935f;--accent-rgb: 108, 199, 148;--ink-rgb: 213, 227, 209;--shadow-rgb: 0, 0, 0;--surface: #212b22;--surface-rgb: 33, 43, 34;--surface-card: #263026;--surface-column: #1c261d;--tint-rgb: 54, 74, 56;--input-bg: rgba(255, 255, 255, .07);--highlight-strong: rgba(255, 255, 255, .06);--highlight-soft: rgba(255, 255, 255, .08);--panel-sheen: rgba(255, 255, 255, .045);--danger-text: #e0906f;--danger-border: #cf7a55;--danger-rgb: 224, 144, 111;--danger-soft-bg: rgba(224, 144, 111, .14);--body-bg: radial-gradient(circle at 20% 0%, rgba(229, 184, 75, .08), transparent 30%), linear-gradient(135deg, #161d16 0%, #11170f 100%);--logo-bg: linear-gradient(145deg, #2b372b, #1e281f);background:#121812}html,body,#app{width:100%;height:100%;overflow:hidden}*{box-sizing:border-box}body{margin:0;color:var(--text);background:var(--body-bg)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}*{scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.34) rgba(var(--surface-rgb),.42)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:rgba(var(--surface-rgb),.42);border-radius:999px}*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(var(--accent-rgb),.72),rgba(var(--accent-rgb),.58));border:2px solid rgba(var(--surface-rgb),.8);border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(var(--accent-rgb),.9),rgba(var(--accent-rgb),.78))}*::-webkit-scrollbar-corner{background:transparent}.viret-shell{height:100dvh;overflow:hidden;display:grid;grid-template-columns:214px minmax(0,1fr);transition:grid-template-columns .22s ease}.viret-shell.sidebar-collapsed{grid-template-columns:74px minmax(0,1fr)}.viret-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;min-height:0;padding:20px 12px;border-right:1px solid rgba(var(--ink-rgb),.08);background:rgba(var(--surface-rgb),.72);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:12px;padding:8px 8px 22px}.brand h1{margin:0;font-size:17px;line-height:1.1}.brand p{margin:3px 0 0;color:var(--text-muted);font-size:12px;letter-spacing:.12em;text-transform:uppercase}.brand-text{min-width:0}.sidebar-create{width:calc(100% - 16px);height:42px;display:flex;align-items:center;gap:10px;margin:0 8px 18px;border:0;border-radius:15px;padding:0 14px;color:#fff;background:linear-gradient(145deg,#3d9b63,#1f7a4d);box-shadow:0 14px 28px rgba(var(--accent-rgb),.2),inset 0 1px #ffffff42;text-align:left}.sidebar-create span{width:24px;height:24px;display:grid;place-items:center;border-radius:9px;background:#ffffff2e;font-size:18px;line-height:1}.sidebar-create strong{font-size:14px}.viret-logo{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;border-radius:14px;color:var(--accent-text);background:var(--logo-bg);box-shadow:0 12px 26px rgba(var(--accent-rgb),.16),inset 0 1px 0 var(--highlight-strong)}.viret-logo img{width:30px;height:30px}.nav-list{display:grid;gap:4px;align-content:start;overflow-y:auto}.nav-item{width:100%;display:flex;align-items:center;gap:10px;border:0;border-radius:13px;padding:10px 11px;background:transparent;color:var(--text-nav);text-align:left;transition:background .16s ease,box-shadow .16s ease,color .16s ease,transform .16s ease}.nav-item:hover,.nav-item.active{color:var(--accent-text);background:var(--surface);box-shadow:0 8px 22px rgba(var(--shadow-rgb),.08),inset 0 1px 0 var(--highlight-strong)}.nav-item.active{transform:translateY(-1px)}.nav-icon{width:24px;height:24px;flex:0 0 auto;display:grid;place-items:center;border-radius:8px;background:rgba(var(--accent-rgb),.08);font-size:12px}.sidebar-footer{margin-top:auto;display:flex;align-items:center;gap:8px;padding:14px 8px 0}.sidebar-tool{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(var(--ink-rgb),.08);border-radius:12px;color:var(--text-soft);background:rgba(var(--surface-rgb),.66);font-size:15px;line-height:1;transition:color .16s ease,box-shadow .16s ease}.sidebar-tool:hover{color:var(--accent-text);box-shadow:0 8px 22px rgba(var(--shadow-rgb),.08)}.sidebar-user{position:relative;flex:1;min-width:0}.user-button{width:100%;display:flex;align-items:center;gap:10px;border:0;border-radius:13px;padding:6px 8px;color:var(--text-nav);background:transparent;text-align:left;transition:background .16s ease,box-shadow .16s ease,color .16s ease}.user-button:hover{color:var(--accent-text);background:var(--surface);box-shadow:0 8px 22px rgba(var(--shadow-rgb),.08),inset 0 1px 0 var(--highlight-strong)}.user-avatar{width:30px;height:30px;flex:0 0 auto;display:grid;place-items:center;border-radius:999px;color:#fff;background:linear-gradient(145deg,#3d9b63,#1f7a4d);font-size:13px;font-weight:800}.user-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700}.user-menu-backdrop{position:fixed;top:-100vh;right:-100vw;bottom:-100vh;left:-100vw;z-index:40;border:0;background:transparent;cursor:default}.user-menu{position:absolute;left:0;bottom:calc(100% + 8px);z-index:41;min-width:168px;padding:12px;border:1px solid rgba(var(--ink-rgb),.1);border-radius:14px;background:var(--surface);box-shadow:0 18px 44px rgba(var(--shadow-rgb),.18)}.user-menu-name{margin:0 0 10px;color:var(--text-strong);font-size:13px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-logout{width:100%;border:1px solid rgba(var(--danger-rgb),.2);border-radius:10px;padding:8px 10px;color:var(--danger-text);background:transparent;font-size:13px;font-weight:700;transition:background .15s ease,border-color .15s ease}.user-menu-logout:hover{background:var(--danger-soft-bg);border-color:rgba(var(--danger-rgb),.32)}.user-menu-enter-active,.user-menu-leave-active{transition:opacity .15s ease,transform .15s ease}.user-menu-enter-from,.user-menu-leave-to{opacity:0;transform:translateY(6px)}.sidebar-collapsed .viret-sidebar{padding:20px 10px}.sidebar-collapsed .brand{justify-content:center;padding:8px 0 18px}.sidebar-collapsed .sidebar-create{width:42px;margin:0 auto 18px;justify-content:center;padding:0}.sidebar-collapsed .nav-item{justify-content:center;padding:10px 0}.sidebar-collapsed .sidebar-footer{flex-direction:column;align-items:center;padding:14px 0 0}.sidebar-collapsed .sidebar-tool{width:42px}.sidebar-collapsed .sidebar-user{flex:0 0 auto;width:100%}.sidebar-collapsed .user-button{justify-content:center;padding:6px 0}.viret-main{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.eyebrow{margin:0 0 6px;color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.content{flex:1;min-width:0;min-height:0;overflow:hidden;padding:8px 30px 30px}.content>section{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.page-header{flex:0 0 auto;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-top:6px;margin-bottom:16px}.page-header-main{flex:1;min-width:0;display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}.page-header-title h2{margin:0;font-size:27px;line-height:1.1}.page-header-title p{margin:7px 0 0;color:var(--text-muted);font-size:14px;line-height:1.45}.page-header-time{flex:0 0 auto;text-align:right}.page-header-time .date-line{font-size:16px;font-weight:750}.page-header-time .taihe-line{margin-top:4px;color:var(--text-muted);font-size:12px}.page-actions{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.primary-action,.secondary-action{border:0;border-radius:13px;padding:9px 13px;font-size:13px;font-weight:700}.primary-action{color:#fff;background:var(--accent-solid);box-shadow:0 12px 24px rgba(var(--accent-rgb),.22)}.secondary-action{color:var(--accent-text);background:var(--surface);box-shadow:0 8px 20px rgba(var(--shadow-rgb),.08)}.secondary-action.active{color:#fff;background:var(--accent-strong)}.today-grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px}.paper-panel,.board-column{border:1px solid rgba(var(--ink-rgb),.08);border-radius:18px;background:linear-gradient(135deg,var(--panel-sheen),transparent 32%),var(--surface);box-shadow:0 1px 1px rgba(var(--shadow-rgb),.04),0 10px 30px rgba(var(--shadow-rgb),.1)}.paper-panel{padding:16px}.task-column{min-height:0;display:flex;flex-direction:column;overflow:hidden}.panel-title,.task-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.panel-title h3,.task-title-row h3{margin:0}.panel-title p{margin:5px 0 0;color:var(--text-muted);font-size:12px}.quick-add{flex:0 0 auto;display:flex;gap:8px;margin:16px 0}.quick-add input,.search-input,.login-form input{min-width:0;border:1px solid rgba(var(--ink-rgb),.1);border-radius:13px;padding:10px 12px;color:var(--text);background:var(--input-bg);outline:none}.quick-add input{flex:1}.quick-add button,.login-form button{border:0;border-radius:13px;padding:0 14px;color:#fff;font-weight:700;background:var(--accent-solid)}.quick-add button:disabled,.login-form button:disabled{opacity:.55;cursor:not-allowed}.task-stack{display:grid;gap:10px}.task-list-scroll{flex:1;min-height:0;overflow-y:auto;padding-right:4px}.task-stack.compact{gap:9px}.task-stack.list{gap:4px}.task-stack.grid{grid-template-columns:repeat(auto-fill,minmax(236px,1fr));align-items:stretch}.task-card{position:relative;min-width:0;display:flex;gap:10px;padding:12px;border:1px solid rgba(var(--ink-rgb),.08);border-radius:14px;background:var(--surface-card);box-shadow:0 7px 18px rgba(var(--shadow-rgb),.08);transition:box-shadow .16s ease,transform .16s ease}.task-card:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(var(--shadow-rgb),.13)}.task-card.completed{opacity:.62}.task-card.overdue{border-left:4px solid var(--danger-border)}.task-card.grid{min-height:180px;flex-direction:column;gap:12px}.task-card.grid .check{position:absolute;top:12px;left:12px}.task-card.grid .task-body{height:100%;display:flex;flex-direction:column;padding-left:32px}.task-card.grid .task-title-row{gap:8px}.task-card.grid .task-title-row h3,.task-card.grid .task-title-button{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-card.grid p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.task-card.grid .task-meta{margin-top:auto;padding-top:10px}.task-card.list{align-items:center;padding:8px 12px}.task-card.list .task-body{display:flex;align-items:center;gap:12px;min-width:0}.task-card.list .task-title-row{flex:1;min-width:0;align-items:center}.task-card.list .task-title-row h3,.task-card.list .task-title-button{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-card.list p{display:none}.task-card.list .task-meta,.task-card.list .task-actions{flex:0 0 auto;flex-wrap:nowrap;margin-top:0}.check{width:22px;height:22px;flex:0 0 auto;display:grid;place-items:center;border:2px solid rgba(var(--accent-rgb),.28);border-radius:999px;color:#fff;background:var(--input-bg)}.completed .check{background:var(--accent-solid);border-color:var(--accent-solid)}.task-body{min-width:0;flex:1}.panel-title h3{font-size:17px;line-height:1.25}.task-title-row h3{min-width:0;font-size:15px;line-height:1.3;overflow-wrap:anywhere}.task-title-button{width:100%;min-width:0;border:0;padding:0;color:inherit;background:transparent;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:left;overflow-wrap:anywhere;cursor:pointer}.task-title-button:hover,.task-title-button:focus-visible{color:var(--accent-text)}.task-title-button:focus-visible{outline:2px solid rgba(var(--accent-rgb),.32);outline-offset:2px;border-radius:6px}.task-body p{margin:6px 0 0;color:var(--text-muted);font-size:13px;line-height:1.42}.task-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.task-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.task-actions button{border:1px solid rgba(var(--accent-rgb),.12);border-radius:999px;padding:4px 8px;color:var(--accent-text);background:rgba(var(--surface-rgb),.72);font-size:11px;font-weight:700;transition:background .15s ease,border-color .15s ease,transform .15s ease}.task-actions button:hover{transform:translateY(-1px);border-color:rgba(var(--accent-rgb),.24);background:rgba(var(--tint-rgb),.92)}.task-actions button.danger{color:var(--danger-text);border-color:rgba(var(--danger-rgb),.16)}.task-actions button.danger:hover{background:var(--danger-soft-bg);border-color:rgba(var(--danger-rgb),.28)}.view-mode-toggle{display:flex;flex:0 0 auto;gap:2px;padding:3px;border-radius:12px;background:rgba(var(--accent-rgb),.08)}.view-mode-toggle button{width:28px;height:26px;border:0;border-radius:9px;color:var(--text-muted);background:transparent;font-size:13px;line-height:1}.view-mode-toggle button.active{color:#fff;background:var(--accent-solid)}.task-meta span,.grain,.badge{border-radius:999px;padding:3px 7px;color:var(--text-soft);background:rgba(var(--accent-rgb),.08);font-size:11px;font-weight:650}.task-meta span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grain,.badge{flex:0 0 auto}.side-stack{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px;align-content:start;overflow:hidden}.side-panel{min-height:0}.overdue-panel{display:flex;flex-direction:column;overflow:hidden}.overdue-list-scroll{min-height:0;overflow-y:auto;padding-right:4px}.stat-panel strong{display:block;font-size:38px;line-height:1}.stat-panel span,.muted-text{color:var(--text-muted)}.tasks-panel{flex:1}.empty-state,.board-placeholder,.gantt-placeholder,.calendar-placeholder{display:grid;place-items:center;min-height:160px;color:var(--text-muted);text-align:center}.empty-state.compact{min-height:76px}.board-scroll{flex:1;min-height:0;display:flex;align-items:stretch;gap:14px;overflow-x:auto;overflow-y:hidden;padding:0 2px 10px;scroll-snap-type:x proximity}.board-column{flex:0 0 clamp(212px,24vw,340px);min-width:212px;min-height:0;padding:14px;display:flex;flex-direction:column;background:var(--surface-column);overflow:hidden;scroll-snap-align:start;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.board-column.drop-target{border-color:rgba(var(--accent-rgb),.34);box-shadow:0 1px 1px rgba(var(--shadow-rgb),.04),0 16px 36px rgba(var(--accent-rgb),.16),inset 0 0 0 2px rgba(var(--accent-rgb),.14)}.board-column.drop-disabled{border-color:rgba(var(--danger-rgb),.3);box-shadow:0 1px 1px rgba(var(--shadow-rgb),.04),inset 0 0 0 2px rgba(var(--danger-rgb),.12)}.column-title{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.column-title h3{margin:0;font-size:17px;line-height:1.25}.column-title p{margin:5px 0 0;color:var(--text-muted);font-size:12px}.board-task-scroll{flex:1;min-height:0;display:grid;align-content:start;gap:10px;overflow-y:auto;padding-right:4px}.board-task-item{min-width:0;touch-action:none;transition:opacity .15s ease,transform .15s ease}.board-task-item.dragging{opacity:.22;transform:scale(.985)}.board-task-item.moving{opacity:.54;pointer-events:none}.board-drag-ghost{position:fixed;z-index:90;pointer-events:none;margin:0;transform:rotate(1deg) scale(1.01);border-color:rgba(var(--accent-rgb),.3);box-shadow:0 18px 44px rgba(var(--ink-rgb),.22),inset 0 1px 0 var(--highlight-strong)}.board-error{flex:0 0 auto;margin:-6px 0 12px;color:var(--danger-text);font-size:13px;font-weight:700}.gantt-shell{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:0}.gantt-scope-toggle{display:flex;flex:0 0 auto;gap:2px;padding:3px;border-radius:13px;background:rgba(var(--accent-rgb),.08)}.gantt-scope-toggle button{border:0;border-radius:10px;padding:7px 10px;color:var(--text-muted);background:transparent;font-size:12px;font-weight:700}.gantt-scope-toggle button.active{color:#fff;background:var(--accent-solid)}.gantt-zoom-toggle{display:flex;flex:0 0 auto;align-items:center;gap:2px;padding:3px;border-radius:13px;background:rgba(var(--accent-rgb),.08)}.gantt-zoom-toggle button{border:0;border-radius:10px;width:26px;height:26px;color:var(--text-muted);background:transparent;font-size:14px;font-weight:800;line-height:1}.gantt-zoom-toggle button:not(:disabled):hover{color:var(--accent-text);background:rgba(var(--surface-rgb),.72)}.gantt-zoom-toggle button:disabled{opacity:.35}.gantt-zoom-value{min-width:38px;padding:0 2px;text-align:center;color:var(--text-muted);font-size:11px;font-weight:700}.gantt-scroll{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto}.gantt-scroll::-webkit-scrollbar:horizontal{display:none}.gantt-floating-nav{position:absolute;top:50%;z-index:8;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:0;border-radius:999px;color:var(--accent-text);background:rgba(var(--surface-rgb),.58);box-shadow:0 8px 18px rgba(var(--shadow-rgb),.1);font-size:0;font-weight:760;opacity:.68;transform:translateY(-50%);transition:opacity .14s ease,background .14s ease,transform .14s ease}.gantt-floating-nav span{display:block;width:18px;height:18px;color:currentColor;font-size:24px;line-height:16px;text-align:center}.gantt-floating-nav.reset span{width:9px;height:9px;border:2px solid currentColor;border-radius:999px}.gantt-floating-nav:hover{background:rgba(var(--surface-rgb),.92);opacity:1;transform:translateY(-50%) scale(1.03)}.gantt-floating-nav:active{transform:translateY(-50%) scale(.98)}.gantt-floating-nav.left{left:228px}.gantt-floating-nav.reset{left:268px}.gantt-floating-nav.right{right:10px}.gantt-head,.gantt-row{display:flex;width:-moz-max-content;width:max-content;min-width:100%}.gantt-head{position:sticky;top:0;z-index:3;border-bottom:1px solid rgba(var(--ink-rgb),.08);color:var(--text-muted);background:rgba(var(--surface-rgb),.96);font-size:12px;font-weight:800}.gantt-title-cell,.gantt-task-name{position:sticky;left:0;z-index:1;flex:0 0 220px;width:220px;background:var(--surface)}.gantt-head .gantt-title-cell{z-index:4;padding:12px 14px;border-right:1px solid rgba(var(--ink-rgb),.08);background:rgba(var(--surface-rgb),.96)}.gantt-task-name{display:flex;align-items:center;border:0;border-right:1px solid rgba(var(--ink-rgb),.08);padding:10px 14px;color:var(--text-strong);font-size:14px;font-weight:760;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.gantt-timeline-head{position:relative;flex:0 0 auto;min-height:40px;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:pan-y}.gantt-timeline-head.panning{cursor:grabbing}.gantt-tick{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;border-right:1px solid rgba(var(--ink-rgb),.06);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px}.gantt-tick.today{color:var(--accent-text);font-weight:800}.gantt-rows{flex:1;min-height:0}.gantt-row{min-height:46px;border-bottom:1px solid rgba(var(--ink-rgb),.06)}.gantt-row:hover .gantt-task-name{background:rgba(var(--surface-rgb),.56)}.gantt-track{position:relative;flex:0 0 auto;min-height:46px}.gantt-gridline{position:absolute;top:0;bottom:0;border-right:1px solid rgba(var(--ink-rgb),.06)}.gantt-gridline.today{background:rgba(var(--accent-rgb),.06)}.gantt-bar{position:absolute;top:10px;height:26px;display:flex;align-items:center;padding:0 10px;border-radius:9px;color:#fff;background:linear-gradient(145deg,#47a469,#1f7a4d);box-shadow:0 8px 18px rgba(var(--accent-rgb),.2),inset 0 1px #ffffff3d;overflow:hidden;cursor:grab;touch-action:none}.gantt-bar:active{cursor:grabbing}.gantt-bar.saving{opacity:.6}.gantt-bar.fixed{box-shadow:0 0 0 2px #ffffff80,0 8px 18px rgba(var(--accent-rgb),.2)}.gantt-bar-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:800}.gantt-bar-handle{position:absolute;top:0;bottom:0;width:9px;cursor:ew-resize}.gantt-bar-handle.left{left:0}.gantt-bar-handle.right{right:0}.gantt-bar.week{background:linear-gradient(145deg,#5aa472,#2c7e53)}.gantt-bar.ling{background:linear-gradient(145deg,#d6a844,#9c7828)}.gantt-bar.year{background:linear-gradient(145deg,#6b8e66,#465f43)}.settings-saved{color:var(--accent-text);font-size:13px;font-weight:700;opacity:0;transition:opacity .2s ease}.settings-saved.show{opacity:1}.settings-groups{flex:1;min-height:0;display:grid;align-content:start;gap:16px;max-width:560px;overflow-y:auto}.settings-group h3{margin:0 0 14px;font-size:15px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}.settings-row+.settings-row{border-top:1px solid rgba(var(--ink-rgb),.08)}.settings-row span{display:grid;gap:4px}.settings-row strong{font-size:14px}.settings-row small{color:var(--text-muted)}.settings-row input[type=checkbox]{flex:0 0 auto;width:18px;height:18px;accent-color:var(--accent-solid)}.settings-select-wrap{position:relative;flex:0 0 auto}.settings-select{width:128px;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:112px;border:1px solid rgba(var(--ink-rgb),.1);border-radius:12px;padding:8px 10px;color:var(--text);background:var(--input-bg);box-shadow:inset 0 1px 0 var(--highlight-soft),0 8px 20px rgba(var(--shadow-rgb),.06);outline:none;font:inherit;font-weight:760}.settings-select:hover,.settings-select[aria-expanded=true]{border-color:rgba(var(--accent-rgb),.34);background:rgba(var(--surface-rgb),.88)}.select-chevron{color:var(--text-muted);font-size:14px;line-height:1}.settings-select-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:10;width:128px;display:grid;gap:3px;padding:5px;border:1px solid rgba(var(--ink-rgb),.12);border-radius:14px;background:var(--surface);box-shadow:0 18px 46px rgba(var(--shadow-rgb),.18),inset 0 1px 0 var(--highlight-soft)}.settings-select-menu button{width:100%;border:0;border-radius:10px;padding:9px 10px;color:var(--text);background:transparent;font-size:13px;font-weight:760;text-align:left}.settings-select-menu button:hover{background:rgba(var(--accent-rgb),.1)}.settings-select-menu button.active{color:#fff;background:var(--accent-solid)}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);padding:34px;border-radius:24px;background:var(--surface);box-shadow:0 1px 1px rgba(var(--shadow-rgb),.04),0 24px 60px rgba(var(--shadow-rgb),.14)}.login-card h1{margin:20px 0 8px;font-size:30px}.login-card p{color:var(--text-muted)}.login-form{display:grid;gap:14px;margin-top:26px}.login-form label{display:grid;gap:8px;color:var(--text-soft);font-size:13px;font-weight:700}.login-form button{height:46px}.form-error{margin:0;color:var(--danger-text)}.drawer-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;justify-content:flex-end}.drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:rgba(var(--ink-rgb),.24);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}[data-theme=dark] .drawer-backdrop{background:#00000073}.task-drawer{position:relative;z-index:1;width:min(460px,calc(100vw - 24px));height:calc(100dvh - 24px);margin:12px 12px 12px 0;display:flex;flex-direction:column;border:1px solid rgba(var(--ink-rgb),.1);border-radius:22px;background:linear-gradient(135deg,var(--panel-sheen),transparent 36%),var(--surface);box-shadow:0 24px 70px rgba(var(--shadow-rgb),.24);overflow:hidden}.result-layer{align-items:center;justify-content:center}.result-modal{position:relative;z-index:1;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 48px);display:flex;flex-direction:column;border:1px solid rgba(var(--ink-rgb),.1);border-radius:22px;background:linear-gradient(135deg,var(--panel-sheen),transparent 36%),var(--surface);box-shadow:0 24px 70px rgba(var(--shadow-rgb),.24);overflow:hidden}.result-body{flex:1;min-height:0;margin:16px 20px;overflow-y:auto}.drawer-header,.drawer-actions{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px}.drawer-header{border-bottom:1px solid rgba(var(--ink-rgb),.08)}.drawer-header h2{margin:0;font-size:24px}.icon-button{width:36px;height:36px;border:0;border-radius:12px;color:var(--text-muted);background:rgba(var(--accent-rgb),.08);font-size:24px;line-height:1}.drawer-form{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:14px;padding:18px 20px;overflow-y:auto}.field{display:grid;gap:8px}.field.wide,.toggle-row.wide,.timeline-section.wide,.advanced-task-section.wide,.drawer-mode-switch.wide,.drawer-message.wide{grid-column:1 / -1}.drawer-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:5px;border-radius:16px;background:rgba(var(--accent-rgb),.08)}.drawer-mode-switch button{border:0;border-radius:12px;padding:9px 12px;color:var(--text-soft);background:transparent;font-size:13px;font-weight:800}.drawer-mode-switch button.active{color:#fff;background:var(--accent-solid);box-shadow:0 8px 18px rgba(var(--accent-rgb),.18)}.field span{color:var(--text-soft);font-size:13px;font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid rgba(var(--ink-rgb),.1);border-radius:14px;padding:11px 12px;color:var(--text);background:var(--input-bg);outline:none}.field textarea{resize:vertical}.ai-task-field textarea{min-height:190px;line-height:1.55}.drawer-message{margin:-4px 0 0;color:var(--text-soft);font-size:13px;font-weight:700}.drawer-message.error{color:var(--danger-text)}.intake-feedback{display:grid;gap:10px;padding:16px;border:1px solid rgba(var(--ink-rgb),.08);border-radius:16px;background:rgba(var(--accent-rgb),.06)}.intake-feedback-summary{margin:0;color:var(--text-strong);font-size:15px;font-weight:750;line-height:1.5}.intake-feedback-channels{margin:0;color:var(--text-muted);font-size:12px}.intake-feedback-badge{margin:0;color:var(--accent-text);font-size:12px;font-weight:700}.intake-feedback-tasks{display:grid;gap:8px;margin:4px 0 0;padding:0;list-style:none}.intake-feedback-tasks li{padding:10px 12px;border-radius:12px;background:var(--surface);box-shadow:inset 0 1px 0 var(--highlight-strong)}.intake-feedback-task-main{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.intake-feedback-task-main strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.intake-feedback-task-main span{flex:0 0 auto;color:var(--text-muted);font-size:12px}.intake-feedback-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.intake-feedback-tags em{padding:2px 8px;border-radius:999px;background:rgba(var(--accent-rgb),.1);color:var(--accent-text);font-size:11px;font-style:normal}.intake-feedback-notice,.intake-feedback-undone{margin:0;color:var(--text-muted);font-size:12px}.secondary-action.danger{color:var(--danger-text);background:var(--danger-soft-bg);box-shadow:none}.secondary-action.danger:disabled{opacity:.6;cursor:not-allowed}.field input[type=range]{accent-color:var(--accent-solid);padding:0}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid rgba(var(--ink-rgb),.08);border-radius:16px;background:rgba(var(--accent-rgb),.06)}.toggle-row span{display:grid;gap:4px}.toggle-row strong{font-size:14px}.toggle-row small{color:var(--text-muted)}.advanced-task-section{display:grid;gap:12px;border:1px solid rgba(var(--ink-rgb),.08);border-radius:18px;background:rgba(var(--surface-rgb),.58);overflow:hidden}.advanced-task-section.open{padding-bottom:14px}.advanced-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;border:0;padding:14px;color:var(--text-strong);background:linear-gradient(135deg,var(--panel-sheen),transparent 42%),rgba(var(--tint-rgb),.58);text-align:left}.advanced-toggle span{display:grid;gap:4px}.advanced-toggle strong{font-size:14px}.advanced-toggle small{color:var(--text-muted)}.advanced-toggle b{flex:0 0 auto;color:var(--accent-text);font-size:13px}.advanced-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 14px}.advanced-grid .field.wide{grid-column:1 / -1}.drawer-actions{border-top:1px solid rgba(var(--ink-rgb),.08)}.drawer-actions .primary-action:disabled{opacity:.55;cursor:not-allowed}.timeline-section{display:grid;gap:12px;padding:14px;border:1px solid rgba(var(--ink-rgb),.08);border-radius:18px;background:rgba(var(--surface-rgb),.66)}.section-title{display:flex;justify-content:space-between;gap:12px}.section-title h3{margin:0;font-size:15px}.section-title p{margin:4px 0 0;color:var(--text-muted);font-size:12px}.timeline-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.timeline-compose textarea{width:100%;min-height:78px;border:1px solid rgba(var(--ink-rgb),.1);border-radius:14px;padding:11px 12px;color:var(--text);background:var(--input-bg);resize:vertical;outline:none}.timeline-list{display:grid;gap:10px}.timeline-item{padding:12px;border-radius:14px;background:rgba(var(--tint-rgb),.58);box-shadow:inset 0 1px 0 var(--highlight-strong)}.timeline-item p{margin:0;color:var(--text-strong);font-size:13px;line-height:1.55}.timeline-item time{display:block;margin-top:8px;color:var(--text-muted);font-size:12px}.mobile-tabs,.mobile-create{display:none}@media (max-width: 900px){.viret-shell{display:flex;flex-direction:column;padding-bottom:72px}.viret-sidebar{display:none}.content{flex:1;overflow:hidden;padding:10px 16px 24px}.today-grid{grid-template-columns:1fr;overflow-y:auto}.page-header,.page-header-main{align-items:flex-start;flex-direction:column;gap:10px}.page-header-time{text-align:left}.page-header-title h2{font-size:26px}.mobile-tabs{position:fixed;left:12px;right:78px;bottom:12px;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:6px;border-radius:18px;background:rgba(var(--surface-rgb),.88);box-shadow:0 14px 34px rgba(var(--shadow-rgb),.18);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.mobile-tabs button{border:0;border-radius:13px;padding:9px 0;color:var(--text-muted);background:transparent;font-size:13px;font-weight:700}.mobile-tabs button.active{color:#fff;background:var(--accent-solid)}.mobile-create{position:fixed;right:12px;bottom:12px;z-index:31;width:58px;height:58px;display:grid;place-items:center;border:0;border-radius:18px;color:#fff;background:linear-gradient(145deg,#3d9b63,#1f7a4d);box-shadow:0 14px 34px rgba(var(--accent-rgb),.28),inset 0 1px #ffffff42;font-size:28px;line-height:1}.task-drawer{width:calc(100vw - 20px);height:calc(100dvh - 20px);margin:10px}.drawer-form,.advanced-grid,.timeline-compose{grid-template-columns:1fr}.gantt-head,.gantt-row{grid-template-columns:150px minmax(320px,1fr)}}
