:root{--paper:#fff9ee;--card:#fffaf2;--line:#eadbc5;--line-2:#dfc9aa;--text:#2f2a22;--muted:#7b6f60;--primary:#7fa36a;--primary-dark:#5e7f4e;--danger:#cf6f60;--shadow:0 18px 45px rgba(92,62,30,.12),0 2px 7px rgba(73,48,20,.08);--shadow-sm:0 8px 20px rgba(92,62,30,.09),0 1px 4px rgba(73,48,20,.07)}*{box-sizing:border-box}body,html{min-height:100%;text-size-adjust:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}body{margin:0;color:var(--text);font-family:LXGW WenKai,Kaiti SC,STKaiti,Microsoft YaHei,system-ui,-apple-system,sans-serif;background:radial-gradient(circle at 10% 20%,rgba(255,246,219,.55),transparent 25%),radial-gradient(circle at 84% 8%,rgba(233,197,137,.25),transparent 24%),linear-gradient(135deg,#d2aa73,#f0dfc1 36%,#d9b582)}.error-container,.loading-container,.not-found-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px;background:linear-gradient(135deg,#faf6f0,#f5efe7)}.error-content,.not-found-content{width:min(100%,480px);text-align:center;background:#fff9ee;border:1px solid #d8c4a7;border-radius:16px;padding:42px 28px;box-shadow:0 8px 32px rgba(92,62,30,.12)}.error-icon,.not-found-illustration{width:64px;height:64px;margin:0 auto 18px;display:grid;place-items:center;border-radius:18px;background:#f2e4cf;color:#9a6b36;font-weight:800}.not-found-code{color:#9a6b36;font-size:28px;font-weight:800;margin-bottom:10px}.error-content h1,.not-found-content h1{margin:0 0 10px;font-size:24px;color:#4f3e2b}.error-content p,.loading-content p,.not-found-content p{margin:0;color:#806f5c;line-height:1.7}.error-actions,.not-found-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:26px}.error-btn,.not-found-btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px;border-radius:10px;border:1px solid #c9a87c;font-size:15px;font-weight:700;text-decoration:none;cursor:pointer}.error-btn.primary,.not-found-btn.primary{background:#c9a87c;color:#fff}.error-btn.secondary{background:transparent;color:#5c4a36}.error-details{margin-top:24px;padding:14px;text-align:left;background:#faf6f0;border-radius:10px;color:#5c4a36}.error-details summary{cursor:pointer;color:#806f5c}.error-details pre{overflow-x:auto;white-space:pre-wrap;font-size:12px}.loading-content{text-align:center}.loading-spinner{position:relative;width:60px;height:60px;margin:0 auto 24px}.spinner-ring{position:absolute;inset:0;border:3px solid transparent;border-top-color:#c9a87c;border-radius:50%;animation:spin 1.2s linear infinite}.spinner-ring:nth-child(2){inset:6px;border-top-color:#d49a51;animation-delay:.15s;animation-direction:reverse}.spinner-ring:nth-child(3){inset:12px;border-top-color:#b8956a;animation-delay:.3s}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{width:calc(100vw - 64px);height:calc(100vh - 56px);margin:28px 32px;display:grid;grid-template-columns:minmax(340px,var(--sidebar-width,430px)) minmax(0,1fr);background:rgba(255,249,238,.86);border:1px solid rgba(255,255,255,.65);border-radius:34px;box-shadow:0 34px 90px rgba(86,50,20,.22);overflow:hidden;position:relative}.sidebar{position:relative;padding:24px 20px 80px 24px;border-right:1px solid rgba(223,201,170,.68);background:linear-gradient(180deg,rgba(255,251,243,.92),rgba(255,246,231,.84));display:flex;flex-direction:column;min-width:0}.resize-handle{position:absolute;top:0;right:-5px;width:10px;height:100%;cursor:col-resize;z-index:5}.resize-handle:after{content:"";position:absolute;top:42%;left:3px;width:4px;height:64px;border-radius:99px;background:rgba(126,96,56,.18)}.main{overflow:auto;padding:26px 34px 28px;background:linear-gradient(180deg,rgba(255,252,245,.65),rgba(255,249,239,.5))}.brand-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px;white-space:nowrap}.brand-btn{background:none;border:none;padding:0;cursor:pointer;text-align:left;display:block}.brand-btn:hover .brand h1{color:var(--accent)}.brand h1{font-size:30px;line-height:1.1;margin:0;letter-spacing:.08em;-webkit-text-decoration:underline 2px rgba(214,153,72,.55);text-decoration:underline 2px rgba(214,153,72,.55);text-underline-offset:8px;transition:color .2s}.user-bar{position:absolute;bottom:16px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:rgba(255,250,242,.92);border:1px solid var(--line);border-radius:14px}.user-actions{display:flex;gap:4px}.user-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:transparent;color:#7b6f60;cursor:pointer;transition:all .2s}.user-action-btn:hover{background:rgba(255,250,242,.9);color:#3d352d;border-color:#c5af8c}.user-nickname{font-size:14px;font-weight:600;color:var(--text)}.btn-sm{padding:6px 12px;min-height:32px;font-size:13px;border-radius:10px}.btn{border:1px solid transparent;padding:10px 16px;min-height:40px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.16s ease;font-size:14px;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0) scale(.985)}.btn-primary{background:linear-gradient(140deg,#c9a87c,#b8956a);color:#fff;box-shadow:0 4px 16px rgba(180,140,90,.28)}.btn-secondary{background:rgba(255,250,242,.86);color:var(--text);border-color:var(--line);box-shadow:0 4px 12px rgba(92,62,30,.06)}.btn-danger{background:#fae2dc;color:#9b3b31;border-color:#edc4bb}.btn-icon{width:40px;height:40px;padding:0;border-radius:50%}.input-wrap{position:relative;margin:2px 0 14px}.input-wrap svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#a6947d}input,select,textarea{width:100%;border:1px solid var(--line);background:rgba(255,252,247,.9);color:var(--text);border-radius:14px;padding:12px 14px;outline:none;font-size:14px;-webkit-user-select:text;-moz-user-select:text;user-select:text}.input-wrap input{padding-left:40px}textarea{min-height:82px;resize:vertical;line-height:1.55}input:focus,select:focus,textarea:focus{border-color:#a7bc8a;box-shadow:0 0 0 4px rgba(127,163,106,.14);background:#fffefb}.seg{display:flex;background:rgba(244,235,221,.72);border:1px solid rgba(230,211,184,.9);border-radius:15px;padding:4px;gap:4px}.seg button{flex:1 1;border:0;background:transparent;border-radius:12px;padding:8px 6px;color:#64594c;font-size:13px;white-space:nowrap}.seg button.active{background:#fffaf2;color:#557244;box-shadow:0 3px 9px rgba(110,76,35,.1);font-weight:700}.side-stats{margin:14px 0;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:18px;overflow:hidden;background:rgba(255,250,241,.82)}.side-stat{padding:12px 4px;text-align:center;border-right:1px solid var(--line);white-space:nowrap}.side-stat:last-child{border-right:0}.side-stat b{display:block;font-size:20px;margin-bottom:3px}.side-stat span{font-size:12px;color:var(--muted)}.section-title{display:flex;align-items:center;justify-content:space-between;margin:8px 2px;font-size:16px;font-weight:700}.section-title a{font-size:12px;font-weight:400;color:var(--muted);text-decoration:none}.recent-list{display:flex;flex-direction:column;gap:8px;overflow:auto;padding-right:2px;min-height:0}.recent-item{display:grid;grid-template-columns:12px minmax(0,1fr) auto;grid-gap:8px;gap:8px;align-items:center;padding:11px 12px;border:1px solid transparent;border-radius:16px;background:rgba(255,250,242,.75);transition:.16s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.recent-item.active,.recent-item:hover{border-color:#aac28f;background:#fffdf6;box-shadow:var(--shadow-sm);transform:translateX(2px)}.recent-item>span:nth-child(2){display:block;text-align:left;min-width:0}.dot{width:8px;height:8px;border-radius:50%;background:#5f9b6a}.dot.paused{background:#e3a23b}.dot.completed{background:#7f8f85}.recent-title{display:block;text-align:left;font-size:14px;font-weight:700;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.recent-meta{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;margin-top:4px;gap:10px;white-space:nowrap}.recent-item .badges{margin:4px 0 3px}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid transparent;white-space:nowrap}.badge.active{background:#e4f0df;color:#4d7d45;border-color:#cce2bf}.badge.paused{background:#fff0cc;color:#a66b09;border-color:#f2d995}.badge.completed{background:#e9ece5;color:#5d6d60;border-color:#d7dfd3}.badge.high{background:#fde8e8;color:#b84c4c;border-color:#f5c4c4}.badge.medium{background:#fff4e0;color:#a86b09;border-color:#f5dc95}.badge.low{background:#e9f0eb;color:#5d7065;border-color:#d2e0d7}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.title-block h2{font-size:32px;margin:0 0 8px;letter-spacing:.06em;line-height:1.2}.back-title{gap:12px}.actions,.back-title{display:flex;align-items:center}.actions{gap:10px;flex-wrap:wrap;justify-content:flex-end}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.toolbar-filters{gap:12px;min-width:0}.tabs,.toolbar-filters{display:flex;align-items:center;flex-wrap:wrap}.tabs{gap:10px;margin:8px 0}.tab{border:1px solid var(--line);background:rgba(255,250,241,.82);border-radius:12px;padding:8px 16px;color:#605343}.tab.active{background:#eff5e9;color:#557244;border-color:#cbe0bc;font-weight:700}.project-status-tabs{margin:0}.category-select{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:14px;background:#fffaf2;color:#605343;box-shadow:0 4px 12px rgba(92,62,30,.06)}.category-select span{font-size:13px;color:var(--muted)}.category-select select{height:100%;padding:0 22px 0 0;border:0;background:transparent;color:var(--text);box-shadow:none;outline:none;cursor:pointer}.project-toolbar-search{display:inline-flex;align-items:center;gap:8px;width:220px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:14px;background:#fffdf7;color:#9a8b77;box-shadow:0 4px 12px rgba(92,62,30,.06)}.project-toolbar-search input{height:100%;min-width:0;padding:0;border:0}.project-toolbar-search input,.project-toolbar-search input:focus{background:transparent;box-shadow:none}.view-toggle{display:flex;gap:6px}.view-toggle button{border:1px solid var(--line);background:#fffaf2;border-radius:12px;padding:8px 12px}.view-toggle .active{background:#eff5e9;color:#557244}.sort-dropdown{position:relative}.sort-dropdown .btn{min-width:110px}.sort-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(92,62,30,.14);overflow:hidden;z-index:10;min-width:120px}.sort-dropdown:focus-within .sort-menu,.sort-dropdown:hover .sort-menu{display:block}.sort-menu button{width:100%;padding:10px 16px;border:0;background:transparent;text-align:left;font-size:14px;color:#605343;cursor:pointer}.sort-menu button:hover{background:#f5f0e8}.sort-menu button.active{background:#eff5e9;color:#557244;font-weight:700}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:18px;gap:18px}.project-card{background:var(--card);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow-sm);transition:.22s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.project-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#d6c09e}.project-card.is-preview{cursor:default}.project-card.is-preview:hover{transform:none;box-shadow:var(--shadow-sm);border-color:var(--line)}.cover{height:128px;background-size:cover;background-position:50%;border-bottom:1px solid rgba(223,201,170,.72)}.project-body{padding:14px 16px 16px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.badges{display:flex;gap:6px;flex-shrink:0;margin-bottom:8px}.card-title{font-size:17px;font-weight:800;line-height:1.35;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta-row{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;margin:8px 0;gap:12px}.small-label{font-size:12px;color:#9a8b77;margin-top:12px}.desc{font-size:13px;color:#5e5348;line-height:1.55;min-height:40px;margin-top:4px}.tag{display:inline-flex;margin:8px 6px 0 0;padding:4px 9px;background:#f0ead9;color:#675b4d;font-size:12px}.progress,.tag{border-radius:999px}.progress{height:8px;background:#eee0cb;overflow:hidden}.progress i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#85a96b,#c7aa65)}.progress-row{display:flex;align-items:center;gap:10px;margin-top:12px}.progress-row .progress{flex:1 1}.percent{width:40px;text-align:right;color:var(--muted);font-size:13px}.list-view{display:flex;flex-direction:column;gap:12px}.list-card{display:grid;grid-template-columns:72px 1fr auto;grid-gap:16px;gap:16px;align-items:center;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-sm);-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-cover{width:72px;height:54px;border-radius:14px;background-size:cover;background-position:50%}.stat-cards{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));grid-gap:16px;gap:16px;margin:20px 0}.review-stats{grid-template-columns:repeat(4,minmax(160px,1fr))}.panel,.stat-card{background:rgba(255,250,242,.86);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-sm);padding:20px}.stat-card{gap:14px;min-height:92px}.stat-card,.stat-icon{display:flex;align-items:center}.stat-icon{width:48px;height:48px;border-radius:16px;background:#f1ead8;justify-content:center;font-size:24px}.stat-card span{font-size:13px;color:var(--muted)}.stat-card b{display:block;font-size:20px;margin-top:5px}.timeline-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.timeline{display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 315px);overflow:auto;padding-right:6px}.record-row{display:grid;grid-template-columns:110px 1fr;grid-gap:18px;gap:18px}.date-cell{position:relative;padding-left:28px;color:var(--muted);font-size:13px}.date-cell:before{content:"";position:absolute;left:3px;top:6px;width:11px;height:11px;border-radius:50%;background:#5f9b6a;box-shadow:0 0 0 4px #e3f0df}.date-cell b{font-size:16px;color:#4d443b}.stage-chip{display:inline-flex;align-items:center;max-width:78px;margin-top:8px;padding:3px 8px;border-radius:999px;background:#eef5e9;color:#557244;border:1px solid #cfe2c2;font-size:12px;font-weight:700;line-height:1.25;white-space:normal}.record-content{position:relative}.record-actions{position:absolute;right:10px;top:10px;z-index:2;display:flex;gap:6px}.record-action-btn{width:28px;height:28px;border:1px solid var(--line);border-radius:9px;background:rgba(255,250,242,.92);color:#6b5d4f;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(92,62,30,.06);transition:.15s ease}.record-action-btn:hover{transform:translateY(-1px);background:#fffaf2;border-color:#d5c4a8}.record-action-btn.danger{color:#9b3b31;background:#fae2dc;border-color:#edc4bb}.record-card{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:18px;background:#fffaf2;overflow:hidden}.record-col{padding:14px 16px;border-right:1px solid var(--line);min-height:118px}.record-col:last-child{border-right:0}.record-col:last-child h4{padding-right:70px}.record-col h4{margin:0 0 8px;font-size:15px}.record-col ul{margin:0;padding-left:18px;color:#584e42;line-height:1.65;font-size:13px}.review-layout{grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);grid-gap:16px}.review-cards,.review-layout{display:grid;gap:16px;margin-bottom:16px}.review-cards{grid-template-columns:repeat(3,1fr);grid-gap:16px}.summary-list{margin:0;padding-left:20px;line-height:1.85;color:#53493f;font-size:14px}.summary-scroll{max-height:200px;overflow-y:auto}.summary-scroll::-webkit-scrollbar{width:6px}.summary-scroll::-webkit-scrollbar-track{background:#f5ebe0;border-radius:3px}.summary-scroll::-webkit-scrollbar-thumb{background:#d5bf9c;border-radius:3px}.summary-scroll::-webkit-scrollbar-thumb:hover{background:#c5af8c}.heat-grid{display:grid;grid-template-columns:38px repeat(26,1fr);grid-gap:5px;gap:5px;align-items:center}.heat-label{font-size:12px;color:#665b4f;text-align:right;padding-right:5px}.heat-cell{aspect-ratio:1;border-radius:5px;background:#f0e2c8;border:1px solid rgba(118,82,42,.04)}.heat-legend{display:flex;justify-content:flex-end;gap:4px;font-size:12px;color:var(--muted);margin-top:-10px;margin-bottom:10px}.h-dot{width:12px;height:12px;border-radius:4px}.milestone{display:flex;overflow:auto;padding:4px 0 0}.mile{min-width:230px;position:relative;padding:0 18px 0 28px;border-top:2px solid #d7c8ad;margin-top:20px}.mile:before{content:"";position:absolute;left:0;top:-8px;width:14px;height:14px;border-radius:50%;background:#8aad73;box-shadow:0 0 0 4px #edf5e7}.mile.current:before{background:#d49a51;box-shadow:0 0 0 4px #fff0d0}.mile small{display:block;color:var(--muted);margin:10px 0 5px}.mile b{display:block;margin-bottom:5px}.mile p{margin:0;color:#63564a;font-size:13px;line-height:1.55}.form-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;grid-gap:26px;gap:26px;align-items:start}.field{margin-bottom:18px}.field label{display:flex;justify-content:space-between;color:#3d352d;font-weight:700;margin-bottom:8px;font-size:14px}.progress-input{display:flex;align-items:center;gap:12px}.progress-input input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1 1;height:8px;border-radius:4px;background:linear-gradient(to right,#8ab070 0,#8ab070 var(--p,50%),#e8dcc8 var(--p,50%));outline:none;cursor:pointer;padding:0;-moz-user-select:none;user-select:none;-webkit-user-select:none}.progress-input input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid #8ab070;cursor:-webkit-grab;cursor:grab;box-shadow:0 2px 6px rgba(0,0,0,.15);-webkit-transition:transform .15s;transition:transform .15s}.progress-input input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1)}.progress-input input[type=range]::-webkit-slider-thumb:active{cursor:-webkit-grabbing;cursor:grabbing}.progress-input input[type=range]::-moz-range-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid #8ab070;cursor:grab;box-shadow:0 2px 6px rgba(0,0,0,.15)}.progress-input input[type=number]{width:64px;text-align:center;border:2px solid var(--line);border-radius:10px;padding:8px;background:#fffaf2;color:var(--text);font-size:15px;font-weight:600}.progress-input input[type=number]:focus{border-color:#8ab070;outline:none}.hint{color:var(--muted);font-size:12px;margin-top:6px}.cover-selector,.priority-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.choice,.cover-choice{border:1px solid var(--line);background:#fffaf2;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px}.cover-choice{min-height:76px;background-size:cover;background-position:50%;overflow:hidden;text-shadow:0 1px 0 rgba(255,255,255,.8)}.choice.active,.cover-choice.active{border-color:#a7bf8d;box-shadow:0 0 0 4px rgba(127,163,106,.14);color:#557244;font-weight:700}.tag-picker{display:flex;flex-direction:column;gap:10px}.selected-tags{display:flex;flex-wrap:wrap;gap:8px}.tag-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#f0ead9}.tag-chip button{border:0;background:transparent;color:#7b6f60}.empty{padding:40px 20px;text-align:center;color:var(--muted);border:1.5px dashed #d5bf9c;border-radius:20px;background:rgba(255,250,242,.62)}.confirm-mask,.modal-mask{position:fixed;inset:0;background:rgba(51,42,31,.42);display:none;z-index:20;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.confirm-mask.show,.modal-mask.show{display:flex}.modal{width:min(920px,calc(100vw - 56px));max-height:calc(100vh - 80px);overflow:auto;background:var(--paper);border-radius:24px;box-shadow:0 36px 90px rgba(39,25,10,.34);padding:24px 26px}.modal-head{display:flex;justify-content:space-between;gap:16px;margin-bottom:18px}.modal-body{display:grid;grid-template-columns:1fr 260px;grid-gap:24px;gap:24px}.suggestion{background:#fff8eb;border:1px solid var(--line);border-radius:18px;padding:16px}.suggestion-item{padding:10px 0;border-bottom:1px dashed #dcc8aa;color:#60564a;line-height:1.6;font-size:13px}.modal-foot{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.confirm-mask{z-index:28}.confirm-box{width:min(460px,calc(100vw - 48px));background:var(--paper);border-radius:24px;box-shadow:0 34px 90px rgba(39,25,10,.3);padding:24px 26px}.confirm-title{font-size:22px;font-weight:800;margin:0 0 10px}.confirm-desc{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 22px}.confirm-actions{display:flex;justify-content:flex-end;gap:12px}.settings-layout{display:grid;grid-template-columns:420px 1fr;grid-gap:24px;gap:24px;align-items:start}.settings-section{background:rgba(255,250,242,.86);border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:var(--shadow-sm)}.settings-full{grid-column:1/-1}.settings-user{gap:24px;margin-bottom:8px}.avatar-preview,.settings-user{display:flex;align-items:center}.avatar-preview{width:80px;height:80px;background:linear-gradient(135deg,#c9956a,#d4a574);border-radius:50%;justify-content:center;flex-shrink:0;box-shadow:0 4px 16px rgba(201,149,106,.3)}.avatar-large{font-size:36px;color:#fff;font-weight:600}.settings-fields{flex:1 1}.settings-fields .field:last-child{margin-bottom:0}.cover-manage-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px;margin-top:20px}.cover-manage-item{display:flex;align-items:center;gap:12px;padding:14px;background:linear-gradient(135deg,rgba(255,252,247,.9),rgba(255,250,241,.85));border:1px solid var(--line);border-radius:14px;transition:all .2s}.cover-manage-item:hover{border-color:#c5af8c;box-shadow:0 2px 8px rgba(92,62,30,.06)}.cover-thumb{width:48px;height:48px;background-size:cover;background-position:50%;border-radius:10px;display:flex;align-items:flex-end;justify-content:flex-end;flex-shrink:0;box-shadow:0 2px 6px rgba(0,0,0,.08)}.cover-emoji{font-size:14px;padding:2px 4px 0 0}.cover-info{flex:1 1;min-width:0}.cover-info b{display:block;font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.cover-info span{font-size:12px;color:var(--muted)}.cover-actions{display:flex;gap:6px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.settings-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.settings-action-btn:active{transform:scale(.97)}.settings-action-btn.primary{background:linear-gradient(140deg,#c9a87c,#b8956a);color:#fff;box-shadow:0 4px 16px rgba(180,140,90,.28)}.settings-action-btn.primary:hover{background:linear-gradient(140deg,#b8956a,#a88358);box-shadow:0 6px 20px rgba(180,140,90,.35)}.settings-action-btn.secondary{background:rgba(255,250,242,.95);color:#6b5d4f;border:1px solid #dfd0c0;box-shadow:0 2px 8px rgba(92,62,30,.06)}.settings-action-btn.secondary:hover{background:#fffaf2;border-color:#d5c4a8;box-shadow:0 3px 12px rgba(92,62,30,.1)}.settings-action-btn.sm{padding:7px 12px;font-size:13px;border-radius:9px}.settings-action-btn.danger{background:linear-gradient(140deg,#f5c4ba,#e8b0a4);color:#9b3b31}.settings-action-btn.danger:hover{background:linear-gradient(140deg,#e8b0a4,#db9e94)}.user-info{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid transparent;border-radius:10px;padding:6px 10px;cursor:pointer;transition:all .2s}.user-info:hover{border-color:var(--line);background:rgba(255,250,242,.6)}.user-avatar{width:28px;height:28px;background:linear-gradient(135deg,#c9956a,#d4a574);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;font-weight:600}.tag-manage-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.tag-manage-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:rgba(255,250,242,.9);border:1px solid var(--line);border-radius:10px;transition:all .2s}.tag-manage-item:hover{border-color:#c5af8c;background:#fffaf2;box-shadow:0 2px 8px rgba(92,62,30,.08)}.tag-manage-item.is-default{opacity:.85;cursor:default}.tag-color{width:14px;height:14px;border-radius:50%;flex-shrink:0}.tag-label{font-size:14px;color:#5e5348}.tag-badge{font-size:11px;padding:2px 6px;background:#e8dcc8;color:#9a8b77;border-radius:6px}.tag-actions{display:flex;gap:4px;margin-left:auto;position:relative;z-index:1}.color-picker{display:flex;flex-wrap:wrap;gap:8px}.color-option{width:32px;height:32px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all .15s}.color-option:hover{transform:scale(1.1)}.color-option.active{border-color:#fff;box-shadow:0 0 0 2px var(--text)}.toast{position:fixed;right:24px;top:22px;z-index:50;flex-direction:column}.toast,.toast-msg{display:flex;gap:10px}.toast-msg{align-items:flex-start;min-width:280px;max-width:390px;padding:14px 16px;border-radius:16px;background:#fffaf2;border:1px solid var(--line);box-shadow:var(--shadow)}.toast-title{font-weight:800}.toast-text{font-size:13px;margin-top:3px}.tiny,.toast-text{color:var(--muted)}.tiny{font-size:12px}.cover-upload-wrap{width:100%}.cover-upload-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;border:2px dashed #d5c4a8;border-radius:14px;background:rgba(255,250,242,.5);cursor:pointer;transition:all .2s;color:#9a8b77;font-size:13px}.cover-upload-placeholder:hover{border-color:#c5af8c;background:rgba(255,250,242,.8);color:#6b5d4f}.cover-upload-placeholder input{display:none}.cover-upload-icon{font-size:28px}.cover-upload-preview{position:relative;width:100%;height:100px;border-radius:12px;overflow:hidden;background:#f0e8dc}.cover-upload-preview img{width:100%;height:100%;object-fit:cover}.cover-upload-remove{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;border:none;background:rgba(0,0,0,.5);color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.cover-upload-remove:hover{background:rgba(0,0,0,.7)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.page{animation:fadeIn .25s ease-out;animation-fill-mode:backwards}.project-card{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.project-card:hover:not(.is-preview){transform:translateY(-4px);box-shadow:0 18px 45px rgba(92,62,30,.15),0 4px 10px rgba(73,48,20,.1);border-color:#d6c09e}.project-card:active:not(.is-preview){transform:translateY(-2px)}.list-card{transition:transform .18s ease,box-shadow .18s ease}.list-card:hover{transform:translateX(3px);box-shadow:0 10px 25px rgba(92,62,30,.12)}.modal-mask{animation:fadeIn .2s ease-out;animation-fill-mode:both}.modal-mask .modal{animation:scaleIn .25s ease-out;animation-fill-mode:both}.modal-mask.closing .modal{animation:scaleOut .2s ease-in forwards}.confirm-mask{animation:fadeIn .2s ease-out;animation-fill-mode:both}.confirm-mask .confirm-box{animation:scaleIn .25s ease-out;animation-fill-mode:both}.toast-msg{animation:slideInRight .3s ease-out;animation-fill-mode:both}.toast-msg.exiting{animation:fadeOut .2s ease-out forwards}.loading-spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--line);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.skeleton{background:linear-gradient(90deg,#f0ead9 25%,#faf6ee 50%,#f0ead9 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.btn{position:relative;overflow:hidden}.btn:after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.3);transform:scale(0);border-radius:50%;opacity:0;transition:transform .4s ease,opacity .4s ease}.btn:active:after{transform:scale(2);opacity:1;transition:transform 0s,opacity 0s}.badge{transition:transform .15s ease,box-shadow .15s ease}.badge:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(0,0,0,.1)}.modal-body{animation:none}.progress i{transition:width .6s ease-out}.heat-cell{transition:transform .15s ease,box-shadow .15s ease}.heat-cell:hover{transform:scale(1.2);box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:1}@media (max-width:980px){body{background:var(--paper)}.app-shell{width:100%;height:auto;min-height:100vh;margin:0;border-radius:0;grid-template-columns:1fr}.resize-handle{display:none}.main{min-height:800px}.cards-grid,.form-layout,.modal-body,.record-card,.review-cards,.review-layout,.review-stats,.stat-cards{grid-template-columns:1fr}.record-col{border-right:0;border-bottom:1px solid var(--line)}}.workbench-shell{width:calc(100vw - 64px);height:calc(100vh - 56px);margin:28px 32px;display:grid;grid-template-columns:224px minmax(0,1fr);overflow:hidden;border:1px solid rgba(255,255,255,.65);border-radius:30px;background:rgba(255,249,238,.9);box-shadow:0 34px 90px rgba(86,50,20,.22)}.workbench-side{display:flex;flex-direction:column;gap:22px;padding:22px 16px;border-right:1px solid rgba(223,201,170,.72);background:linear-gradient(180deg,rgba(255,252,246,.96),rgba(247,239,225,.9))}.workbench-brand{display:flex;align-items:center;gap:12px;padding:6px 8px}.workbench-brand>span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#2f2a22;color:#fff9ee;font-size:22px;font-weight:800}.workbench-brand b{display:block;font-size:20px}.workbench-brand small{display:block;margin-top:3px;color:var(--muted);font-size:12px}.workbench-menu{display:flex;flex-direction:column;gap:8px}.workbench-menu button{display:flex;align-items:center;gap:10px;width:100%;height:42px;padding:0 12px;border:1px solid transparent;border-radius:12px;background:transparent;color:#5f5448;font-size:14px;text-align:left}.workbench-menu button:hover{background:rgba(255,250,242,.78);border-color:var(--line)}.workbench-menu button.active{background:#eef5e9;color:#557244;border-color:#cfe2c2;font-weight:800;box-shadow:0 6px 16px rgba(92,62,30,.07)}.workbench-side-note{margin-top:auto;display:grid;grid-gap:7px;gap:7px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fffaf2}.workbench-side-note b{font-size:14px}.workbench-side-note span{color:var(--muted);font-size:12px;line-height:1.55}.workbench-main{min-width:0;overflow:auto;padding:24px 28px 30px;background:linear-gradient(180deg,rgba(255,252,246,.66),rgba(255,249,239,.5))}.workbench-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.workbench-topbar p{margin:0 0 4px;color:var(--muted);font-size:13px}.workbench-topbar h1{margin:0;font-size:34px;line-height:1.1}.workbench-tools{display:flex;align-items:center;gap:10px;min-width:0}.workbench-search{display:flex;align-items:center;gap:8px;width:min(320px,30vw);height:42px;padding:0 12px;border:1px solid var(--line);border-radius:14px;background:#fffdf7;color:#9a8b77}.workbench-search input{height:100%;padding:0;border:0}.workbench-search input,.workbench-search input:focus{background:transparent;box-shadow:none}.workbench-icon-btn,.workbench-panel-head button,.workbench-primary,.workbench-user{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;border-radius:13px;border:1px solid var(--line);background:#fffaf2;color:#3d352d}.workbench-icon-btn{width:42px;padding:0}.workbench-user{padding:0 12px}.workbench-primary{padding:0 15px;border-color:#b8956a;background:linear-gradient(140deg,#c9a87c,#b8956a);color:#fff;box-shadow:0 6px 18px rgba(180,140,90,.24)}.workbench-panel-head button{height:34px;padding:0 12px;color:#557244;background:#eef5e9;border-color:#cfe2c2;font-size:13px}.workbench-metrics{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));grid-gap:14px;gap:14px;margin-bottom:16px}.workbench-metric{min-height:104px;padding:16px;border:1px solid var(--line);border-radius:18px;background:#fffaf2;box-shadow:var(--shadow-sm)}.workbench-metric span{display:block;color:var(--muted);font-size:13px}.workbench-metric b{display:block;margin:8px 0 4px;font-size:30px;line-height:1}.workbench-metric small{color:#6b7c64;font-size:12px}.workbench-content{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);grid-template-areas:"todos projects" "todos due";grid-gap:16px;gap:16px}.workbench-panel{padding:18px;border:1px solid var(--line);border-radius:20px;background:rgba(255,250,242,.9);box-shadow:var(--shadow-sm)}.workbench-todos-panel{grid-area:todos}.workbench-content>.workbench-panel:nth-child(2){grid-area:projects}.workbench-content>.workbench-panel:nth-child(3){grid-area:due}.workbench-full-panel{min-height:calc(100vh - 178px)}.workbench-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.workbench-panel-head h2{margin:0 0 4px;font-size:21px}.workbench-panel-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.workbench-project-list,.workbench-todo-list{display:flex;flex-direction:column;gap:10px}.workbench-todo{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;grid-gap:12px;gap:12px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fffdf7}.workbench-todo.urgent{border-color:#efc0b7;background:#fff4f1}.workbench-todo.soon{border-color:#d8c38a;background:#fff9e9}.workbench-todo.completed{opacity:.6}.workbench-todo-check{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;border:1px solid #d9c7ad;background:#fffaf2;color:#6f9fc7;cursor:pointer;transition:all .15s}.workbench-todo-check:hover{background:#e8f5e8;border-color:#a7bf8d}.workbench-check{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;border:1px solid #d9c7ad;background:#fffaf2;color:#6f9fc7}.workbench-todo button{min-width:0;border:0;background:transparent;text-align:left;color:var(--text);padding:0}.workbench-todo-content{display:flex;flex-direction:column;gap:2px;cursor:pointer;min-width:0}.workbench-todo-project{font-size:11px;color:var(--muted);font-weight:600}.workbench-todo b{display:block;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workbench-todo b.line-through{text-decoration:line-through;color:var(--muted)}.workbench-todo small{display:block;margin-top:4px;color:var(--muted);font-size:13px}.workbench-todo time{font-size:13px;color:#9b5a4f;white-space:nowrap}.workbench-todo-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.workbench-todo-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.workbench-todo:hover .workbench-todo-actions{opacity:1}.todo-action-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;border:1px solid var(--line);background:#fffaf2;color:#7b6f60;cursor:pointer;transition:all .15s}.todo-action-btn:hover{background:#fff;border-color:#c5af8c}.todo-action-btn.danger{color:#9b3b31}.todo-action-btn.danger:hover{background:#fde8e8;border-color:#efc0b7}.workbench-project{display:grid;grid-template-columns:12px minmax(0,1fr) 46px;grid-gap:12px;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fffdf7;text-align:left;color:var(--text)}.workbench-project:hover{border-color:#aac28f;box-shadow:var(--shadow-sm)}.workbench-project b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workbench-project small{display:block;margin:4px 0 9px;color:var(--muted);font-size:13px}.workbench-project i{display:block;height:7px;border-radius:999px;background:#eadfce;overflow:hidden}.workbench-project em{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#85a96b,#c7aa65)}.workbench-project strong{text-align:right;font-size:13px}.workbench-todo-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.todo-board-4col{grid-template-columns:repeat(4,minmax(0,1fr))}.workbench-todo-column{display:flex;flex-direction:column;gap:10px;min-height:320px;padding:12px;border:1px solid var(--line);border-radius:18px;background:rgba(255,253,247,.62)}.workbench-todo-column h3{margin:0 0 2px;font-size:16px}.workbench-empty{padding:24px;border:1px dashed #d7c4a5;border-radius:16px;color:var(--muted);text-align:center;background:rgba(255,250,242,.62)}.workbench-btn-primary{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:10px;border:1px solid #b8956a;background:linear-gradient(140deg,#c9a87c,#b8956a);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.workbench-btn-primary:hover{background:linear-gradient(140deg,#b8956a,#a88358);box-shadow:0 4px 12px rgba(180,140,90,.25)}.workbench-user-dropdown{position:relative}.workbench-user-dropdown .workbench-user{background:#fffaf2;border:1px solid var(--line);color:#3d352d;display:flex;align-items:center;gap:6px;white-space:nowrap}.workbench-user-dropdown .workbench-user:hover{background:#fff}.workbench-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px rgba(86,50,20,.18);overflow:hidden;z-index:100}.workbench-dropdown-user{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fffaf2}.workbench-dropdown-avatar{width:40px;height:40px;background:linear-gradient(135deg,#c9956a,#d4a574);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;font-weight:600}.workbench-dropdown-user b{display:block;font-size:15px;color:#3d352d}.workbench-dropdown-user small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.workbench-dropdown-divider{height:1px;background:var(--line)}.workbench-dropdown-item{width:100%;display:flex;align-items:center;gap:10px;padding:12px 16px;border:none;background:transparent;color:#5e5348;font-size:14px;text-align:left;cursor:pointer;transition:all .15s}.workbench-dropdown-item:hover{background:#fff5f0}.workbench-dropdown-item.danger{color:#9b3b31}.workbench-dropdown-item.danger:hover{background:#fde8e8}.workbench-side-user{margin-top:auto}.workbench-side-user .workbench-user{width:100%;justify-content:flex-start;padding:0 12px}.workbench-side-user .workbench-user svg:last-child{margin-left:auto}.workbench-side-user .workbench-dropdown-menu{top:auto;bottom:calc(100% + 8px);left:0;right:auto;width:100%;min-width:0}.embedded-project-view{min-width:0;height:100%;display:flex;flex-direction:column}.embedded-project-view .app-shell{display:block;width:100%;height:auto;min-height:0;margin:0;border:0;border-radius:0;box-shadow:none;background:transparent;overflow:visible}.embedded-project-view .app-shell>.sidebar{display:none}.embedded-project-view .app-shell>.main{padding:0;min-height:0;overflow:visible;background:transparent}.embedded-project-view .page{animation:none}.embedded-project-view .topbar{align-items:center;margin:0 0 16px;padding:0}.embedded-project-view .topbar h2{font-size:28px;line-height:1.15}.embedded-project-view .toolbar{margin-bottom:16px;padding:12px;border:1px solid var(--line);border-radius:18px;background:rgba(255,250,242,.86);box-shadow:var(--shadow-sm)}.embedded-project-view .tabs{gap:6px}.embedded-project-view .tab{height:34px;padding:0 12px;border-radius:10px}.embedded-project-view .cards-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.embedded-project-view .list-card,.embedded-project-view .panel,.embedded-project-view .project-card,.embedded-project-view .stat-card{border-radius:18px;background:#fffdf7;box-shadow:var(--shadow-sm)}.embedded-project-view .list-card:hover,.embedded-project-view .project-card:hover{transform:none;box-shadow:0 10px 28px rgba(92,62,30,.1);border-color:#cfe2c2}.embedded-project-view .cover{height:118px}.embedded-project-view .project-body{padding:14px}.embedded-project-view .stat-cards{margin:0 0 14px;gap:12px}.embedded-project-view .panel{padding:18px}.embedded-project-view .timeline-toolbar{margin-bottom:14px}.embedded-project-view .empty{background:#fffdf7}.date-picker-input{display:flex;align-items:center;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,252,247,.9);color:var(--muted);cursor:pointer;transition:all .2s}.date-picker-input:hover{border-color:#c5af8c;background:#fff}.date-picker-input span{flex:1 1}.date-picker-clear{width:20px;height:20px;border-radius:50%;border:none;background:#e8dcc8;color:#7b6f60;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;transition:all .15s}.date-picker-clear:hover{background:#d4c4a8;color:#5e5348}.date-range-picker{display:grid;grid-template-columns:1fr 28px 1fr;align-items:center;grid-gap:12px;gap:12px}.date-picker-overlay{position:fixed;inset:0;background:rgba(51,42,31,.38);display:flex;align-items:center;justify-content:center;z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:none}.date-picker-modal{width:340px;background:linear-gradient(145deg,#fffaf2,#fff9ee);border:1px solid rgba(223,201,170,.72);border-radius:24px;box-shadow:0 24px 60px rgba(86,50,20,.28),0 4px 12px rgba(73,48,20,.1);overflow:hidden;animation:none}.calendar-header{justify-content:space-between;padding:18px 20px 14px;background:linear-gradient(135deg,rgba(201,168,124,.12),rgba(201,168,124,.06));border-bottom:1px solid rgba(223,201,170,.5)}.calendar-header,.calendar-nav{display:flex;align-items:center}.calendar-nav{width:36px;height:36px;border-radius:12px;border:1px solid var(--line);background:#fffaf2;color:#6b5d4f;font-size:20px;cursor:pointer;justify-content:center;transition:all .15s}.calendar-nav:hover{background:#fff;border-color:#c5af8c;box-shadow:0 2px 8px rgba(92,62,30,.08)}.calendar-title{font-size:17px;font-weight:700;color:#3d352d;letter-spacing:.02em}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:12px 16px 8px;grid-gap:4px;gap:4px}.weekday{text-align:center;font-size:12px;font-weight:600;color:var(--muted);padding:4px 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);padding:4px 16px 16px;grid-gap:4px;gap:4px}.calendar-day,.calendar-empty{aspect-ratio:1}.calendar-day{border-radius:12px;border:1px solid transparent;background:transparent;color:#5e5348;font-size:14px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.calendar-day:hover:not(.disabled):not(.selected){background:#fff;border-color:#d9c7ad;box-shadow:0 2px 6px rgba(92,62,30,.06)}.calendar-day.today{color:#7fa36a;font-weight:700;background:rgba(127,163,106,.08)}.calendar-day.selected{background:linear-gradient(140deg,#c9a87c,#b8956a);color:#fff;border-color:#b8956a;box-shadow:0 3px 10px rgba(180,140,90,.3);font-weight:700}.calendar-day.disabled{color:#ccc;cursor:not-allowed;opacity:.5}.calendar-footer{display:flex;justify-content:space-between;padding:12px 16px 16px;border-top:1px solid rgba(223,201,170,.4);gap:10px}.calendar-clear-btn,.calendar-today-btn{flex:1 1;height:38px;border-radius:12px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.calendar-today-btn{background:#eef5e9;border:1px solid #cfe2c2;color:#557244}.calendar-today-btn:hover{background:#e2eed9;border-color:#a7bf8d}.calendar-clear-btn{background:#f5f0e8;border:1px solid #e0d5c5;color:#7b6f60}.calendar-clear-btn:hover{background:#fff;border-color:#d5c4a8}.date-time-picker-input{display:flex;align-items:center;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,252,247,.9);color:var(--muted);cursor:pointer;transition:all .2s}.date-time-picker-input:hover{border-color:#c5af8c;background:#fff}.date-time-picker-input span{flex:1 1}.date-time-picker-modal{width:360px}.time-selector{justify-content:center;gap:16px;padding:16px;border-top:1px solid rgba(223,201,170,.4);background:rgba(255,250,242,.5)}.time-section,.time-selector{display:flex;align-items:center}.time-section{flex-direction:column;gap:8px}.time-label{font-size:12px;color:var(--muted);font-weight:600}.time-scroll{display:flex;flex-direction:column;gap:4px;max-height:120px;overflow-y:auto;padding:4px;background:#fff;border:1px solid var(--line);border-radius:10px}.time-scroll::-webkit-scrollbar{width:6px}.time-scroll::-webkit-scrollbar-track{background:#f5ebe0;border-radius:3px}.time-scroll::-webkit-scrollbar-thumb{background:#d5bf9c;border-radius:3px}.time-option{padding:6px 16px;border:none;background:transparent;color:#5e5348;font-size:14px;border-radius:8px;cursor:pointer;transition:all .15s;min-width:60px}.time-option:hover{background:#f5f0e8}.time-option.selected{background:linear-gradient(140deg,#c9a87c,#b8956a);color:#fff;font-weight:600}.time-separator{font-size:24px;font-weight:700;color:#c9a87c;margin-top:20px}@media (max-width:980px){.workbench-shell{grid-template-columns:1fr;width:100%;height:auto;min-height:100vh;margin:0;border-radius:0}.workbench-side{position:-webkit-sticky;position:sticky;top:0;z-index:2;display:block;padding:12px;border-right:0;border-bottom:1px solid var(--line)}.workbench-brand,.workbench-side-note{display:none}.workbench-menu{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:6px;gap:6px}.workbench-menu button{justify-content:center;padding:0 8px}.workbench-main{padding:18px}.workbench-topbar{align-items:flex-start;flex-direction:column}.workbench-tools{width:100%;flex-wrap:wrap}.workbench-search{width:100%}.workbench-metrics{grid-template-columns:repeat(2,1fr)}.workbench-content{grid-template-areas:"todos" "projects" "due"}.todo-board-4col,.workbench-content,.workbench-todo-board{grid-template-columns:1fr}.workbench-dropdown-menu{right:auto;left:0}.date-picker-modal{width:calc(100vw - 48px);max-width:340px}}@media (max-width:620px){.workbench-menu button,.workbench-menu button span{font-size:0}.workbench-menu button svg{width:19px;height:19px}.workbench-metrics{grid-template-columns:1fr}.workbench-todo{grid-template-columns:34px minmax(0,1fr)}.workbench-todo time{grid-column:2}.workbench-topbar h1{font-size:28px}}@media (max-width:768px){.app-shell{width:100%;height:auto;min-height:100vh;margin:0;border-radius:0;grid-template-columns:1fr}.sidebar{position:relative;padding:16px;border-right:none;border-bottom:1px solid var(--line)}.resize-handle{display:none}.main{padding:16px;min-height:calc(100vh - 200px)}.brand-row{flex-direction:column;align-items:flex-start;gap:12px}.brand h1{font-size:24px}.stat-cards{grid-template-columns:1fr;gap:12px}.review-stats{grid-template-columns:repeat(2,1fr)}.cards-grid{grid-template-columns:1fr;gap:14px}.list-view{gap:10px}.list-card{grid-template-columns:56px 1fr;gap:12px;padding:12px}.list-cover{width:56px;height:42px}.toolbar{flex-direction:column;align-items:stretch;gap:12px}.toolbar-filters{flex-direction:column;gap:8px}.project-toolbar-search{width:100%}.tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;gap:8px}.tab{flex-shrink:0;padding:8px 12px}.modal{width:calc(100vw - 32px);max-height:calc(100vh - 48px);padding:18px;border-radius:18px}.modal-body{gap:16px}.form-layout,.modal-body{grid-template-columns:1fr}.form-layout{gap:18px}.confirm-box{width:calc(100vw - 32px);padding:18px}.confirm-title{font-size:18px}.timeline{max-height:none}.record-card{grid-template-columns:1fr}.record-col{border-right:0;border-bottom:1px solid var(--line);min-height:auto}.record-col:last-child{border-bottom:0}.review-cards,.review-layout{grid-template-columns:1fr}.review-cards{gap:12px}.heat-grid{overflow-x:auto;min-width:100%}.heat-cell{min-width:20px}.milestone{overflow-x:auto;min-width:200px}.settings-layout{grid-template-columns:1fr;gap:16px}.settings-section{padding:16px}.settings-user{flex-direction:column;align-items:center;text-align:center}.cover-manage-grid{grid-template-columns:1fr}.progress-input{flex-direction:column;gap:8px}.cover-selector,.priority-row{grid-template-columns:1fr;gap:8px}.cover-choice{min-height:60px}.toast{right:12px;left:12px;top:12px}.toast-msg{min-width:0;max-width:none}}@media (max-width:480px){body{font-size:14px}.title-block h2{font-size:24px}.section-title{font-size:14px}.project-card .card-title{font-size:15px}.btn{padding:8px 12px;min-height:36px;font-size:13px}.btn-danger,.btn-primary,.btn-secondary{padding:10px 14px;min-height:38px}.input-wrap input,input,select,textarea{padding:10px 12px;font-size:14px}.badge{min-width:40px;height:22px;padding:0 8px;font-size:11px}.record-col{padding:12px}.record-col h4{font-size:13px}.record-col ul{font-size:12px}.workbench-main{padding:14px}.workbench-topbar h1{font-size:24px}.workbench-metric{padding:14px}.workbench-metric b{font-size:24px}.workbench-todo{padding:12px}.workbench-panel-head h2{font-size:18px}.embedded-project-view .topbar h2{font-size:22px}.embedded-project-view .toolbar{padding:10px}.auth-container{padding:24px 16px}.auth-card{padding:24px 18px;border-radius:20px}.date-picker-modal{width:calc(100vw - 24px);max-width:320px}.calendar-header{padding:14px 16px 10px}.calendar-title{font-size:15px}.calendar-grid{padding:4px 12px 12px;gap:3px}.calendar-day{font-size:13px;border-radius:10px}.error-content,.not-found-content{padding:24px 16px}.error-icon,.not-found-code,.not-found-illustration{font-size:3rem}.loading-content{padding:24px 16px}.loading-spinner{width:48px;height:48px}}@media (pointer:coarse){.btn,button{min-height:44px;min-width:44px}.calendar-day,.tab,.time-option{min-height:40px}.workbench-menu button{min-height:44px}}@media (max-height:500px) and (orientation:landscape){.app-shell{height:auto;min-height:100vh}.sidebar{border-bottom:none}.main,.sidebar{max-height:none}}@media (prefers-contrast:high){:root{--line:#5c4a36;--muted:#3d352d}.btn-primary{border:2px solid var(--text)}.workbench-menu button.active{border-width:2px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.app-shell{box-shadow:none;border:1px solid #ccc}.btn,.sidebar,.toast{display:none}}