@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+JP:wght@300;400;500;600;700&display=swap";:root{--color-bg: #eceff1;--color-surface: #ffffff;--color-surface-solid: #ffffff;--color-surface-hover: #f8fafc;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-text-primary: #0f172a;--color-text-secondary: #475569;--color-text-tertiary: #94a3b8;--color-text-inverse: #ffffff;--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--color-accent-light: #eff6ff;--color-success: #10b981;--color-success-light: #d1fae5;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-danger: #ef4444;--color-danger-light: #fee2e2;--color-cat-work: #0078d7;--color-cat-health: #107c10;--color-cat-learning: #5c2d91;--color-cat-finance: #ffb900;--color-cat-relationship: #e81123;--color-cat-other: #00bcf2;--color-priority-a: #e81123;--color-priority-b: #ffb900;--color-priority-c: #737373;--font-family: "Segoe UI", "Inter", "Noto Sans JP", sans-serif;--font-size-xs: .6875rem;--font-size-sm: .75rem;--font-size-base: .875rem;--font-size-md: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 0px;--radius-md: 2px;--radius-lg: 4px;--radius-xl: 6px;--radius-full: 9999px;--shadow-inner-border: inset 0 0 0 1px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24);--shadow-md: 0 3px 6px rgba(0, 0, 0, .16), 0 3px 6px rgba(0, 0, 0, .23);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .19), 0 6px 6px rgba(0, 0, 0, .23);--shadow-focus: 0 0 0 3px rgba(37, 99, 235, .3);--transition-fast: .1s ease-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out;--sidebar-width: 250px;--header-height: 60px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-bg);line-height:1.6}#root{min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;background:none;font-size:inherit}input,textarea,select{font-family:inherit;font-size:inherit;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);outline:none;transition:all var(--transition-base);background:var(--color-surface-solid);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}input:focus,textarea:focus,select:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}textarea{resize:vertical;min-height:80px}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236E6E73' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}ul,ol{list-style:none}a{text-decoration:none;color:var(--color-accent)}.app-layout{display:flex;min-height:100vh;background:var(--color-bg)}.sidebar{width:var(--sidebar-width);background:var(--color-surface-solid);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:transform var(--transition-base)}.sidebar-logo{padding:var(--space-4) var(--space-5);display:flex;align-items:center;gap:var(--space-3)}.sidebar-logo img:first-child{width:40px;height:40px;object-fit:contain;flex-shrink:0}.sidebar-logo-text-img{height:28px;width:auto;object-fit:contain;flex-shrink:1;min-width:0}.sidebar-nav{flex:1;padding:0 var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:2px}.sidebar-nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500;transition:all var(--transition-base);width:100%;text-align:left}.sidebar-nav-item svg{stroke-width:1.5px;opacity:.7;transition:opacity var(--transition-base),transform var(--transition-base)}.sidebar-nav-item:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.sidebar-nav-item:hover svg{opacity:1;transform:scale(1.05)}.sidebar-nav-item.active{background:var(--color-accent);color:#fff;font-weight:600}.sidebar-nav-item.active svg{opacity:1;color:#fff}.sidebar-nav-item.active:hover{background:var(--color-accent);opacity:.9}.sidebar-nav-item svg{width:20px;height:20px;flex-shrink:0}.main-content{margin-left:var(--sidebar-width);flex:1;min-height:100vh}.page{padding:var(--space-8) var(--space-10);width:100%;box-sizing:border-box}.page-header{margin-bottom:var(--space-8)}.page-title{font-size:var(--font-size-xl);font-weight:700;color:var(--color-text-primary);letter-spacing:-.04em}.page-subtitle{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-top:var(--space-1)}.tabular-nums{font-variant-numeric:tabular-nums}.card{background:var(--color-surface-solid);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base),transform var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card-title{font-size:var(--font-size-md);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-2)}.card-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-weight:500;font-size:var(--font-size-sm);transition:all var(--transition-fast);white-space:nowrap;letter-spacing:.01em}.btn:active{transform:scale(.96)}.btn-primary{background:var(--color-accent);color:var(--color-surface-solid);box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--color-accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--color-surface-solid);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background:var(--color-surface-hover)}.btn-danger{background:var(--color-surface-solid);color:var(--color-danger);box-shadow:var(--shadow-sm)}.btn-danger:hover{background:var(--color-danger-light)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.btn-icon{width:32px;height:32px;padding:0;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:background var(--transition-fast),color var(--transition-fast)}.btn-icon:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.badge{display:inline-flex;align-items:center;justify-content:center;padding:1px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600;min-width:22px;height:20px}.badge-a{background:#ff3b301a;color:var(--color-priority-a)}.badge-b{background:#ff95001a;color:var(--color-priority-b)}.badge-c{background:#8e8e931a;color:var(--color-priority-c)}.badge-status-todo{background:var(--color-surface-hover);color:var(--color-text-secondary)}.badge-status-in-progress{background:var(--color-accent-light);color:var(--color-accent)}.badge-status-done{background:var(--color-success-light);color:var(--color-success)}.category-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.category-dot-work{background:var(--color-cat-work)}.category-dot-health{background:var(--color-cat-health)}.category-dot-learning{background:var(--color-cat-learning)}.category-dot-finance{background:var(--color-cat-finance)}.category-dot-relationship{background:var(--color-cat-relationship)}.category-dot-other{background:var(--color-cat-other)}.cal-cell .cal-add-btn{opacity:0;transition:opacity .15s}.cal-cell:hover .cal-add-btn{opacity:1}.mandala-picker{display:grid;grid-template-columns:repeat(3,22px);grid-template-rows:repeat(3,22px);gap:2px}.mandala-picker-cell{border-radius:3px;border:1.5px solid var(--color-border);background:var(--color-surface);cursor:pointer;transition:background .12s,border-color .12s}.mandala-picker-cell:hover{border-color:var(--color-accent);background:var(--color-accent-light)}.mandala-picker-cell.selected{background:var(--color-accent);border-color:var(--color-accent)}.mandala-picker-cell.center{background:var(--color-border-light);border-color:var(--color-border);cursor:default;opacity:.5}.mandala-picker-cell.occupied{background:var(--color-surface-hover);border-color:var(--color-border);cursor:not-allowed;opacity:.45;background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--color-border) 3px,var(--color-border) 4px)}.modal-overlay{position:fixed;inset:0;background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn var(--transition-base)}.modal{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-8);width:92%;max-width:640px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:slideUp var(--transition-slow)}.modal-title{font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--space-6);color:var(--color-text-primary)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6)}.form-group{display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-2)}.form-label{min-width:90px;flex-shrink:0;padding-top:4px;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);text-align:right;line-height:1.4}.form-input{flex:1;min-width:0;width:100%;padding-top:var(--space-1);padding-bottom:var(--space-1)}.grid{display:grid;gap:var(--space-5)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.progress-ring-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.progress-ring-label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);text-align:center}.progress-ring-value{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text-primary)}.task-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);transition:background var(--transition-fast);border:1px solid transparent}.task-item:hover{background:var(--color-surface-hover);border-color:var(--color-border-light)}.task-checkbox{width:20px;height:20px;border-radius:var(--radius-full);border:2px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;flex-shrink:0}.task-checkbox:hover{border-color:var(--color-accent)}.task-checkbox.checked{background:var(--color-success);border-color:var(--color-success)}.task-checkbox.checked:after{content:"✓";color:#fff;font-size:12px;font-weight:700}.task-title{flex:1;font-size:var(--font-size-base);color:var(--color-text-primary)}.task-title.completed{text-decoration:line-through;color:var(--color-text-tertiary)}.calendar{width:100%}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.calendar-title{font-size:var(--font-size-lg);font-weight:600}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--color-border-light);border-radius:var(--radius-md);overflow:hidden}.calendar-day-header{padding:var(--space-2);text-align:center;font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;background:var(--color-surface)}.calendar-day{min-height:80px;padding:var(--space-2);background:var(--color-surface);cursor:pointer;transition:background var(--transition-fast);min-width:0;overflow:hidden}.calendar-day:hover{background:var(--color-surface-hover)}.calendar-day.today{background:var(--color-accent-light)}.calendar-day.other-month{opacity:.3}.calendar-day.selected{box-shadow:inset 0 0 0 2px var(--color-accent)}.calendar-day-number{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--space-1)}.week-view .calendar-day-number{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--space-2)}.calendar-day.today .calendar-day-number{color:var(--color-accent);font-weight:700}.calendar-task-dots{display:flex;gap:3px;flex-wrap:wrap}.calendar-task-dot{width:9px;height:9px;border-radius:var(--radius-full);background:var(--color-accent)}.calendar-task-dot.done{background:var(--color-success)}.breadcrumb{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);font-size:var(--font-size-sm)}.breadcrumb-item{color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast)}.breadcrumb-item:hover{color:var(--color-accent)}.breadcrumb-separator{color:var(--color-text-tertiary)}.breadcrumb-current{color:var(--color-text-primary);font-weight:500}.empty-state{text-align:center;padding:var(--space-12) var(--space-8);color:var(--color-text-tertiary)}.empty-state-icon{font-size:48px;margin-bottom:var(--space-4);opacity:.5}.empty-state-title{font-size:var(--font-size-md);font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--space-2)}.empty-state-description{font-size:var(--font-size-sm);margin-bottom:var(--space-5)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media(max-width:768px){:root{--sidebar-width: 0px}.sidebar{transform:translate(-100%);transition:transform var(--transition-slow)}.sidebar.open{transform:translate(0);width:260px}.main-content{margin-left:0}.page{padding:var(--space-5) var(--space-4)}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.mobile-menu-btn{display:flex}}@media(min-width:769px){.mobile-menu-btn,.mobile-overlay{display:none}}.gantt-sidebar-header{height:60px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;padding:0 var(--space-3);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);background:var(--color-bg)}.gantt-item{height:36px;display:flex;align-items:center;padding:0 var(--space-3);font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid rgba(0,0,0,.04)}.gantt-item-goal{font-weight:700;background-color:#00000005;color:var(--color-text-primary)}.gantt-item-project{font-weight:600;background:var(--color-surface-hover);-webkit-user-select:none;user-select:none}.gantt-item-project:hover{background:var(--color-border-light)}.gantt-item-task{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.gantt-item-task-done{color:var(--color-text-tertiary)}.gantt-timeline-cell{padding:4px 0;text-align:center;border-right:1px solid var(--color-border-light);display:flex;flex-direction:column;justify-content:center}.gantt-month-row{grid-row:1;border-bottom:1px solid var(--color-border-light);display:flex;align-items:center;padding-left:var(--space-2);font-size:11px;color:var(--color-text-secondary);font-weight:600;background:var(--color-surface-hover)}.gantt-cell-sat{color:#2563eb}.gantt-cell-sun{color:#ef4444}.gantt-cell-today{color:var(--color-accent);font-weight:700}.gantt-grid-line{border-right:1px dashed var(--color-border-light);pointer-events:none}.gantt-grid-today{border-right:2px solid var(--color-accent)}.gantt-cell-month-start,.gantt-grid-month-start{border-left:2px solid var(--color-border)}.gantt-bar{height:24px;border-radius:var(--radius-sm);display:flex;align-items:center;padding:0 var(--space-2);font-size:10px;color:#fff;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:var(--shadow-sm)}.gantt-bar-project{background-color:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.gantt-bar-todo{background-color:#1e40af}.gantt-bar-in-progress{background-color:#3b82f6}.gantt-bar-pending{background-color:#93c5fd;color:#1e3a5f;border:1px solid #60a5fa}.gantt-bar-overdue{background-color:#991b1b!important;color:#fff!important}.gantt-bar-done{background-color:#dbeafe;color:#64748b}.gantt-milestone{color:#f59e0b;font-size:18px;line-height:1;text-shadow:0 0 2px rgba(0,0,0,.2);cursor:help}.gantt-legend-item{display:inline-flex;align-items:center;gap:var(--space-1);margin-right:var(--space-4)}.gantt-legend-item .gantt-bar{width:24px;height:12px;font-size:0}
