:root{--navy: #292f4c;--accent: #0073ea;--accent-dark: #0060c2;--bg: #f7f8fb;--card: #ffffff;--line: #e4e7ef;--text: #292f4c;--muted: #6b7189;--ok: #00a96e;--warn-bg: #fff6dc;--radius: 14px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Figtree,system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select{font-family:inherit}.header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}.header-wrap{max-width:1140px;margin:0 auto;display:flex;align-items:center;gap:28px;padding:14px 24px}.logo{display:flex;align-items:center;gap:8px;font-size:22px;font-weight:800;cursor:pointer;letter-spacing:-.5px}.logo b{color:var(--accent)}.nav{display:flex;gap:22px;font-weight:600;font-size:14.5px;color:var(--muted)}.nav a{cursor:pointer}.nav a:hover{color:var(--accent)}.spacer{flex:1}.btn{border-radius:10px;font-weight:700;font-size:14.5px;padding:10px 18px;transition:.15s;display:inline-flex;align-items:center;gap:7px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark)}.btn-ghost{color:var(--navy);border:1.5px solid var(--line)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.screen{max-width:1140px;margin:0 auto;padding:0 24px 80px}.hero{text-align:center;padding:58px 0 34px}.hero h1{font-size:clamp(30px,4.5vw,46px);font-weight:800;letter-spacing:-1.2px;line-height:1.12}.hero h1 em{font-style:normal;color:var(--accent)}.hero p{margin-top:14px;font-size:17.5px;color:var(--muted);max-width:640px;margin-left:auto;margin-right:auto;line-height:1.55}.tabs{display:flex;justify-content:center;gap:8px;margin:30px 0 26px;flex-wrap:wrap}.tab{padding:9px 20px;border-radius:999px;font-weight:600;font-size:14.5px;color:var(--muted);background:#fff;border:1.5px solid var(--line)}.tab.on{background:var(--navy);color:#fff;border-color:var(--navy)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px 22px;cursor:pointer;transition:.18s;position:relative;text-align:left}.card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #292f4c1a;border-color:#c9d6f5}.card .ic{width:38px;height:38px;margin-bottom:16px;color:var(--accent)}.card .ic svg{width:100%;height:100%;fill:currentColor}.card .ic.ai{color:#7b61ff}.card h3{font-size:16.5px;font-weight:700;margin-bottom:6px}.card p{font-size:13.5px;color:var(--muted);line-height:1.5}.badge{position:absolute;top:14px;right:14px;background:#e8f1ff;color:var(--accent);font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;letter-spacing:.4px}.trust{text-align:center;color:var(--muted);font-size:13.5px;margin-top:44px}.recent{margin-top:54px}.recent h4{font-size:13px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-bottom:14px}.recent-item{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 18px;margin-bottom:8px;cursor:pointer;font-weight:600;font-size:14.5px}.recent-item:hover{border-color:var(--accent)}.recent-item small{color:var(--muted);font-weight:500}.recent-item .del{margin-left:auto;color:var(--muted);font-size:13px;padding:4px 8px;border-radius:7px}.recent-item .del:hover{color:#e2445c;background:#fdecef}.crumb{padding:26px 0 6px;color:var(--muted);font-size:13.5px;font-weight:600}.crumb a{color:var(--accent);cursor:pointer}.tool-head{padding:6px 0 26px;text-align:center}.tool-head h1{font-size:30px;font-weight:800;letter-spacing:-.7px}.tool-head p{color:var(--muted);margin-top:8px;font-size:15.5px}.dropzone{max-width:620px;margin:0 auto;background:#fff;border:2px dashed #b9c6e4;border-radius:18px;padding:56px 30px;text-align:center;cursor:pointer;transition:.15s}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:#f4f8ff}.dropzone h4{font-size:18px;font-weight:700;margin:12px 0 6px}.dropzone p{color:var(--muted);font-size:14px}.formats{display:flex;justify-content:center;gap:8px;margin-top:22px;flex-wrap:wrap}.chip{background:#eef2fa;color:var(--navy);font-size:12.5px;font-weight:700;padding:5px 12px;border-radius:999px}.chip.soon{background:#f3ecff;color:#7b3ff2}.err{max-width:620px;margin:18px auto 0;background:#fdecef;border:1px solid #f2b8c2;color:#a02040;border-radius:12px;padding:13px 18px;font-size:14px;font-weight:600;text-align:center}.rev-note{max-width:980px;margin:0 auto 18px;background:#e9f6ef;border:1px solid #bfe5cf;color:#14683f;border-radius:12px;padding:13px 18px;font-size:14px;font-weight:600;text-align:center}.map-bar{display:flex;gap:14px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:16px;align-items:center}.map-bar label{font-size:12.5px;font-weight:700;color:var(--muted);display:flex;flex-direction:column;gap:4px}.map-bar select{border:1.5px solid var(--line);border-radius:8px;padding:6px 10px;font-size:13.5px;font-weight:600;background:#fff}.rev-table{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.rev-table table{width:100%;border-collapse:collapse;font-size:13.5px}.rev-table th{text-align:left;padding:11px 14px;background:#f5f7fc;font-size:11.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);border-bottom:1px solid var(--line)}.rev-table td{padding:6px 14px;border-bottom:1px solid #f0f2f8}.rev-table input{border:1px solid transparent;border-radius:7px;padding:6px 8px;font-size:13.5px;width:100%;background:transparent}.rev-table input:hover{border-color:var(--line);background:#fff}.rev-table input:focus{outline:none;border-color:var(--accent);background:#fff}.rev-table tr.warn td{background:var(--warn-bg)}.wtag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:#8a6a10;background:#f8e9b8;border-radius:999px;padding:2px 8px;white-space:nowrap}.rev-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:18px}.ed-top{display:flex;align-items:center;gap:14px;padding:22px 0 14px;flex-wrap:wrap}.ed-title input{font-size:21px;font-weight:800;letter-spacing:-.4px;border:1px solid transparent;border-radius:8px;padding:4px 8px;margin-left:-8px;background:transparent;width:min(480px,90vw);color:var(--text)}.ed-title input:hover{border-color:var(--line);background:#fff}.ed-title input:focus{outline:none;border-color:var(--accent);background:#fff}.ed-sub{color:var(--muted);font-size:13px;font-weight:600;padding-left:1px}.themes{display:flex;gap:10px;padding:12px 0 16px;overflow-x:auto}.th{flex:none;width:132px;background:#fff;border:2px solid var(--line);border-radius:12px;padding:8px;cursor:pointer;transition:.15s;position:relative}.th:hover{border-color:#b9c6e4}.th.on{border-color:var(--accent);box-shadow:0 0 0 3px #0073ea26}.th .mini{height:44px;border-radius:7px;padding:7px 8px;display:flex;flex-direction:column;gap:5px;justify-content:center}.th .mini i{display:block;height:7px}.th .nm{font-size:12px;font-weight:700;text-align:center;margin-top:7px}.th .lk{position:absolute;top:5px;right:6px;background:var(--navy);color:#fff;font-size:9.5px;font-weight:800;padding:2px 7px;border-radius:99px}.ed-hint{margin-top:14px;color:var(--muted);font-size:13px;font-weight:600}.zoom{display:inline-flex;border:1.5px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.zoom button{padding:8px 14px;font-size:13px;font-weight:700;color:var(--muted)}.zoom button.on{background:var(--navy);color:#fff}.gantt{background:var(--g-bg);border:1px solid var(--line);border-radius:16px;overflow:hidden;font-family:var(--g-font);position:relative}.gantt.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.gantt-scroll{overflow-x:auto}.sticky-col{position:sticky;left:0;z-index:8;background:var(--g-bg)}.g-row.group .sticky-col{background:var(--g-groupbg)}.g-head{display:grid;grid-template-columns:280px 1fr;border-bottom:2px solid var(--line)}.g-head .l{padding:12px 18px;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.7px;color:var(--g-muted)}.g-months{display:flex;font-weight:700;font-size:12.5px;color:var(--g-text)}.g-months span{padding:12px 14px;border-left:1px solid var(--line);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box}.g-days{display:flex;border-top:1px solid var(--line)}.g-days span{font-size:9.5px;font-weight:700;color:var(--g-muted);text-align:center;padding:3px 0;border-left:1px solid var(--line);box-sizing:border-box;overflow:hidden}.g-days span.we{background:color-mix(in srgb,var(--g-muted) 10%,transparent)}.g-body{position:relative}.g-gridlines{position:absolute;top:0;bottom:0;left:280px;right:0;pointer-events:none}.g-gridlines i{position:absolute;top:0;bottom:0;border-left:var(--g-grid, none)}.g-row{display:grid;grid-template-columns:280px 1fr;align-items:center;min-height:var(--g-rowh);border-bottom:var(--g-rowline, none);position:relative}.g-row.group{background:var(--g-groupbg);font-weight:800;min-height:34px}.g-row.group .g-name{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--g-muted)}.g-name{padding:0 18px;font-size:var(--g-fs);font-weight:var(--g-fw);color:var(--g-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g-lane{position:relative;height:100%;min-height:inherit}.g-bar{position:absolute;top:50%;transform:translateY(-50%);height:var(--g-barh);border-radius:var(--g-barr);display:flex;align-items:center;padding:0 8px;color:#fff;font-size:10.5px;font-weight:700;white-space:nowrap;box-shadow:var(--g-barshadow)}.g-bar.editable{cursor:grab;touch-action:none}.g-bar.editable:hover,.g-bar.active{filter:brightness(1.08);box-shadow:0 3px 10px #00000038;z-index:4}.g-bar.active{cursor:grabbing}.g-h{position:absolute;top:0;bottom:0;width:9px;cursor:ew-resize;opacity:0;touch-action:none}.g-h.l{left:-2px;border-radius:var(--g-barr) 0 0 var(--g-barr)}.g-h.r{right:-2px;border-radius:0 var(--g-barr) var(--g-barr) 0}.g-bar.editable:hover .g-h{opacity:1;background:#ffffff59}.g-bar.ms{width:15px!important;height:15px;border-radius:4px;transform:translateY(-50%) rotate(45deg);padding:0}.g-today{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed var(--g-today);z-index:5}.g-today b{position:absolute;top:4px;left:4px;font-size:9.5px;color:var(--g-today);font-weight:800;letter-spacing:.5px}.g-wm{position:absolute;bottom:8px;right:14px;font-size:10.5px;font-weight:700;color:var(--g-muted);opacity:.7;z-index:6}.task-editor{margin-top:26px}.task-editor h4{font-size:13px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-bottom:12px}.task-editor .add{margin-top:12px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#181c3080;display:flex;align-items:center;justify-content:center;z-index:90}.modal{background:#fff;border-radius:18px;width:min(440px,92vw);padding:28px}.modal h3{font-size:19px;font-weight:800;margin-bottom:4px}.modal .msub{color:var(--muted);font-size:13.5px;margin-bottom:18px}.exp-opt{display:flex;align-items:center;gap:13px;border:1.5px solid var(--line);border-radius:12px;padding:13px 15px;margin-bottom:10px;cursor:pointer;font-weight:700;font-size:14.5px;transition:.12s;width:100%;text-align:left}.exp-opt:hover:not(:disabled){border-color:var(--accent);background:#f4f8ff}.exp-opt small{display:block;font-weight:500;color:var(--muted);font-size:12px;margin-top:2px}.exp-ic{width:26px;height:26px;flex:none;color:var(--accent)}.exp-ic svg{width:100%;height:100%;fill:currentColor}.mnote{background:#fff6dc;border:1px solid #efd98f;border-radius:10px;padding:11px 14px;font-size:12.5px;color:#7a5c0b;font-weight:600;margin-top:6px}.mclose{width:100%;margin-top:14px;text-align:center;color:var(--muted);font-weight:700;font-size:13.5px;padding:8px}.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%);background:var(--navy);color:#fff;font-size:14px;font-weight:600;padding:12px 22px;border-radius:12px;z-index:100;animation:toast-in .25s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(40px)}}.seo{max-width:760px;margin:64px auto 0;color:var(--muted);font-size:14.5px;line-height:1.7}.seo h2{color:var(--text);font-size:17px;font-weight:800;margin:26px 0 8px;letter-spacing:-.3px}.seo a{color:var(--accent);cursor:pointer;font-weight:600}@media (max-width: 780px){.nav{display:none}.g-head,.g-row{grid-template-columns:140px 1fr}.g-gridlines{left:140px}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
