:root{color-scheme:light}html,body,#root{min-height:100%}*{box-sizing:border-box}body{margin:0;font-family:Avenir Next,Avenir,Segoe UI,sans-serif;background:radial-gradient(circle at 20% 10%,#f0fdf4,#e2e8f0 38%,#dbeafe);color:#0f172a;min-height:100dvh;overflow-x:hidden}.planner-app{max-width:1400px;margin:0 auto;padding:12px 14px;width:min(1400px,100%)}.hero{margin-bottom:10px;padding:12px 14px;border-radius:12px;background:transparent;color:#0f172a}.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.hero-actions{display:flex;align-items:end;gap:8px;flex-wrap:wrap;justify-content:flex-end}.hidden-file-input{display:none}@media (max-width: 980px){.hero-top{flex-direction:column}.hero-actions{width:100%;justify-content:flex-start}}.hero h1{margin:0 0 4px;font-size:1.35rem}.hero p{margin:0;font-size:.88rem}.card{background:#ffffffdb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid #cbd5e1;border-radius:10px;padding:10px;box-shadow:0 10px 24px #0f172a14}.auth-card{margin-bottom:10px}.planner-grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 1000px){.planner-grid{grid-template-columns:1fr}}.board-skill-row{display:grid;grid-template-columns:1fr;gap:10px}@media (min-width: 1000px){.board-skill-row{grid-template-columns:1fr 1fr}}h2{margin:0 0 8px;font-size:1rem}h3{margin:0 0 6px;font-size:.85rem}.row{display:flex;align-items:center;gap:8px}.row-wrap{flex-wrap:wrap}.project-grid{display:grid;gap:6px;margin-bottom:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.compact-label{min-width:180px;max-width:240px}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.panel-actions{display:inline-flex;align-items:center;gap:6px}.icon-btn{width:28px;height:28px;padding:0;border-radius:7px;background:#f1f5f9;color:#0f172a;border:1px solid #cbd5e1;display:inline-flex;align-items:center;justify-content:center}.icon-btn svg{width:16px;height:16px;fill:currentColor}.skills-eye-btn{background:#f59276;border-color:#ea7b5a;color:#2b120f}.gantt-eye-btn{background:#9cdcff;border-color:#6dbfe8;color:#0a3347}.tasks-eye-btn{background:#2bba65;border-color:#249f56;color:#0d2b17}.add-tasks-btn{background:#0dd44f;color:#0b1b11;font-weight:600}.add-skills-btn{background:#f2c04b;color:#2b2006;font-weight:600}.add-custom-task-btn{background:#86eaa7;color:#0b1b11}.add-custom-skill-btn{background:#f8e0a5;color:#2b2006}label{display:grid;gap:4px;font-size:.8rem;color:#334155}input,select,textarea,button{font:inherit}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:6px;padding:6px 7px;background:#fff}button{border:none;border-radius:7px;padding:6px 10px;cursor:pointer;background:#0f766e;color:#fff;font-size:.84rem}button:hover{filter:brightness(1.05)}button.ghost{background:#0f172a}button.accent{background:#b45309}button.danger{background:#be123c}.status{margin:10px 0 0;color:#1d4ed8}.user{margin:8px 0 0;color:#047857}.task-pill{text-align:left;border:1px solid #cbd5e1;color:#0f172a;border-radius:7px;padding:5px 7px;font-size:.76rem}.task-pill.is-added{border-color:#166534;color:#166534;box-shadow:inset 0 0 0 1px #166534}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a6b;display:flex;align-items:center;justify-content:center;z-index:1000}.tasks-modal{width:min(1400px,98vw);max-height:82vh;overflow:auto;background:#fff;border-radius:12px;border:1px solid #cbd5e1;box-shadow:0 24px 42px #02061740;padding:10px}.tasks-modal,.skills-export-modal,.gantt-export-modal,.skills-export-grid-wrap,.gantt-export-grid-wrap,.skills-export-table,.gantt-export-table,.skills-export-table td,.gantt-export-table th,.gantt-export-table td{background-color:#fff}@media (min-width: 1000px){.tasks-modal-right{position:fixed;top:112px;left:50%;width:min(700px,47vw);max-height:calc(100vh - 132px);margin:0}.tasks-modal-left{position:fixed;top:112px;right:50%;width:min(700px,47vw);max-height:calc(100vh - 132px);margin:0}}.task-type-columns{display:grid;grid-template-columns:1fr;gap:6px}@media (min-width: 1000px){.task-type-columns,.skills-type-columns{grid-template-columns:repeat(4,minmax(0,1fr))}.tools-column-span{grid-column:span 2}}.task-type-modal-column{display:grid;gap:6px;align-content:start}.task-type-column{display:block;width:auto;margin:0;break-inside:auto;border:1px solid #dbe2ef;border-radius:8px;background:#f8fafc;padding:4px}.tools-wide-column{height:100%}.tools-flow-list{display:block;column-count:2;column-gap:6px;column-fill:auto;height:calc(82vh - 145px)}.tools-flow-list .task-pill{display:block;width:100%;margin-bottom:3px;break-inside:avoid;-webkit-column-break-inside:avoid}.task-type-list{display:grid;gap:3px}.tools-wide-column .tools-flow-list{display:block!important;column-count:2;column-gap:6px;column-fill:auto;height:calc(82vh - 145px)}.tools-wide-column .tools-flow-list .task-pill{display:block;width:100%;margin-bottom:3px;break-inside:avoid;-webkit-column-break-inside:avoid}.task-type-column h3{font-size:.72rem;margin:0 0 4px}.tasks-modal .task-pill{padding:4px 5px;font-size:.68rem}.task-name,.task-type{min-width:0}.inline-loading{margin-top:4px;display:inline-flex;align-items:center;gap:6px;font-size:.72rem;color:#475569}.spinner{width:10px;height:10px;border-radius:50%;border:2px solid #cbd5e1;border-top-color:#0f766e;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.tiny{display:inline-flex;gap:4px;align-items:center}@media (max-width: 980px){.task-row{grid-template-columns:24px 1fr}}.kanban{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.kanban>div{border:1px solid #dbe2ef;border-radius:8px;padding:6px;min-height:70px;background:#f8fafc}.kanban>div:nth-child(1){background:#fff7ed;border-color:#fed7aa}.kanban>div:nth-child(2){background:#eff6ff;border-color:#bfdbfe}.kanban>div:nth-child(3){background:#f8fafc;border-color:#cbd5e1}.kanban-card{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;border:none;background:transparent;border-radius:6px;padding:0;font-size:.74rem;cursor:grab}.kanban-remove{background:#e5e7eb;color:#334155;border:1px solid #cbd5e1;width:18px;height:18px;padding:0;line-height:16px;text-align:center;border-radius:50%;font-size:.7rem;flex:0 0 auto}.skill-remove{background:transparent;color:#334155;border:none;width:18px;height:18px;padding:0;line-height:16px;text-align:center;border-radius:50%;font-size:.7rem;flex:0 0 auto}.task-input-row,.skill-input-row{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center;margin-bottom:6px}.task-input-row input,.skill-input-row input{height:22px;padding:2px 6px;font-size:.74rem}.task-input-row button,.skill-input-row button{height:22px;padding:0 7px;border-radius:6px;font-size:.74rem}.kanban-card:active{cursor:grabbing}.gantt-header-row{display:grid;grid-template-columns:minmax(130px,180px) 1fr;gap:8px;align-items:end;margin-bottom:6px}.gantt-label-head{font-size:.75rem;font-weight:700;color:#334155}.gantt-track-head{border:1px solid #cbd5e1;border-radius:8px;overflow:hidden;background:#f8fafc}.gantt-term-row{display:flex;border-bottom:1px solid #dbe2ef}.gantt-term-block{text-align:center;font-size:.72rem;font-weight:700;padding:3px 0;border-right:1px solid #dbe2ef;color:#1e293b}.gantt-term-block:last-child{border-right:none}.gantt-week-row{display:grid;grid-template-columns:repeat(33,minmax(0,1fr))}.gantt-week-row span{text-align:center;font-size:.65rem;color:#475569;padding:2px 0;border-right:1px solid #e2e8f0}.gantt-week-row span:last-child{border-right:none}.gantt-wrap{display:grid;gap:4px;padding-right:4px}.gantt-row{display:grid;grid-template-columns:minmax(130px,180px) 1fr;gap:8px;align-items:center}.gantt-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.78rem}.gantt-track{position:relative;height:16px;border-radius:6px;border:1px solid #cbd5e1;background:repeating-linear-gradient(to right,#f8fafc,#f8fafc calc(100% / 33 - 1px),#e2e8f0 calc(100% / 33 - 1px),#e2e8f0 calc(100% / 33))}.gantt-bar{position:absolute;top:1px;bottom:1px;border-radius:5px;min-width:6px;cursor:grab;touch-action:none}.gantt-bar:active{cursor:grabbing}.gantt-bar.status-to-do{background:#d97706}.gantt-bar.status-in-progress{background:#2563eb}.gantt-bar.status-done{background:#475569}.gantt-bar.tone-0{filter:brightness(1)}.gantt-bar.tone-1{filter:brightness(1.12) saturate(.95)}.gantt-bar.tone-2{filter:brightness(.88) saturate(1.08)}.gantt-handle{position:absolute;top:1px;bottom:1px;width:7px;border-radius:4px;background:#ffffffd9;border:1px solid rgba(15,23,42,.25)}.gantt-handle.left{left:2px;cursor:ew-resize}.gantt-handle.right{right:2px;cursor:ew-resize}.skills-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.skills-export-list{margin:0 0 8px;padding-left:20px;font-size:.8rem;max-height:180px;overflow:auto}.skills-export-textarea{width:100%;resize:vertical;font-size:.78rem;line-height:1.3;white-space:pre}.skills-export-modal,.gantt-export-modal{width:min(960px,92vw);aspect-ratio:16 / 9;max-height:86vh;display:flex;flex-direction:column}.tasks-export-modal{width:min(760px,90vw);max-height:82vh;display:flex;flex-direction:column}.select-copy-btn{background:#f2c04b;color:#2b2006;font-weight:600;height:28px;padding:0 10px;border-radius:7px}.skills-export-modal h2{font-size:1rem}.skills-export-modal .muted{font-size:.82rem}.skills-export-grid-wrap{min-height:0;flex:1;overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;display:flex}.gantt-export-grid-wrap{min-height:0;flex:1;overflow:auto;border:1px solid #e2e8f0;border-radius:8px}.gantt-export-sections{min-height:0;flex:1;display:flex;flex-direction:column;gap:14px;overflow:auto}.gantt-export-note{margin-bottom:0}.gantt-export-section{border:1px solid #e2e8f0;border-radius:10px;background:#fff;overflow:hidden}.gantt-export-section-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.gantt-export-section-header h3{margin:0;font-size:.85rem;color:#0f172a}.gantt-export-copy-btn{flex:0 0 auto}.tasks-export-grid-wrap{min-height:0;flex:1;overflow:auto;border:1px solid #e2e8f0;border-radius:8px}.skills-export-table{width:100%;height:100%;border-collapse:collapse;table-layout:fixed;font-size:.62rem}.skills-export-table tbody tr{height:5%}.skills-export-table td{border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9;padding:1px 5px;vertical-align:top;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.05;-webkit-user-select:text;user-select:text}.skills-export-table tr:last-child td{border-bottom:none}.skills-export-table td:last-child{border-right:none}.gantt-export-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.64rem}.tasks-export-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.76rem}.gantt-export-table th,.gantt-export-table td{border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9;padding:2px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:text;user-select:text}.tasks-export-table th,.tasks-export-table td{border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9;padding:6px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:text;user-select:text}.gantt-export-table th,.tasks-export-table th{background:#f8fafc;font-weight:700;color:#334155}.gantt-export-table th:last-child,.gantt-export-table td:last-child{border-right:none}.tasks-export-table th:last-child,.tasks-export-table td:last-child{border-right:none}.gantt-export-table tr:last-child td{border-bottom:none}.tasks-export-table tr:last-child td{border-bottom:none}.gantt-task-col,.gantt-task-cell{width:200px;min-width:200px;max-width:200px;text-align:left}.gantt-term-col,.gantt-week-col,.gantt-week-cell{text-align:center}.gantt-week-col,.gantt-week-cell{width:24px;min-width:24px;max-width:24px;padding:1px}.gantt-fill-symbol{display:inline-block;font-size:.72rem;line-height:1}@media (max-width: 900px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.skills-grid,.kanban{grid-template-columns:1fr}}.skill-row{display:flex;justify-content:space-between;align-items:center;gap:8px;border:none;border-radius:7px;background:transparent;padding:0;margin-bottom:5px;font-size:.68rem}.skill-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-name-remove{background:transparent;border:none;color:#334155;padding:0;margin:0;width:100%;text-align:left;font-size:.68rem;line-height:1.2}.tiny-btn{padding:5px 8px;font-size:.78rem}.muted{color:#64748b;margin:0}.footer{margin-top:10px;padding:8px 0;color:#1e293b;text-align:center;font-size:.82rem}
