:root{--primary:#4a90e2;--success:#7ed321;--accent:#f5a623;--surface:#fff;--surface-alt:#f9fafb;--text:#2c3e50;--text-muted:#7f8c8d;--text-light:#95a5a6;--radius:12px;--shadow:0 4px 12px #4a90e21a;--shadow-sm:0 2px 6px #0000000d}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--surface-alt);color:var(--text);font-family:var(--font-noto-sans-jp), -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", Meiryo, sans-serif;-webkit-font-smoothing:antialiased;font-size:14px;font-weight:400;line-height:1.8}button,input,select,textarea{font:inherit;color:inherit}.header{background:linear-gradient(135deg, var(--primary) 0%, #5fa3f0 100%);color:#fff;margin-bottom:0;padding:32px 24px}.header-inner{max-width:1200px;margin:0 auto}.header-top{align-items:center;gap:12px;margin-bottom:20px;display:flex}.header-icon{font-size:32px}.header-titles h1{letter-spacing:-.8px;font-size:32px;font-weight:700;font-family:var(--font-noto-sans-jp);margin:0}.header-titles p{opacity:.95;margin:4px 0 0;font-size:14px}.tab-nav{background:linear-gradient(135deg,#3d7fcc 0%,#4a90e2 100%);border-bottom:2px solid #fff3;padding:0;box-shadow:0 2px 8px #4a90e226}.tab-nav-inner{gap:24px;max-width:1200px;margin:0 auto;padding:0 24px;display:flex}.tab-btn{color:#ffffffd9;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:14px 0;font-size:14px;font-weight:600;transition:all .2s;position:relative}.tab-btn:hover{color:#fff;border-bottom-color:#fff6}.tab-btn.active{color:#fff;border-bottom-color:#fff}.stats{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:14px;display:grid}.stat{border-radius:var(--radius);text-align:center;background:#ffffff1f;padding:14px}.stat-value{color:#fff;font-size:24px;font-weight:700}.stat-label{color:#fffc;margin-top:4px;font-size:12px}.main{grid-template-columns:320px 1fr;align-items:start;gap:32px;max-width:1200px;margin:32px auto 60px;padding:0 24px;display:grid}@media (max-width:900px){.main{grid-template-columns:1fr}}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px}.card+.card{margin-top:24px}.card-title{color:var(--text);margin:0 0 18px;font-size:18px;font-weight:700}.field{margin-bottom:16px}.field label{color:var(--text);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field input,.field select,.field textarea{background:var(--surface);border:1.5px solid #e0e6f2;border-radius:10px;width:100%;padding:10px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.field textarea{resize:vertical;min-height:90px;font-family:inherit}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #4a90e226}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.error{color:#c0392b;margin:-4px 0 10px;font-size:12px}.btn{cursor:pointer;border:none;border-radius:10px;padding:11px 18px;font-size:14px;font-weight:600;transition:all .2s}.btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.btn-primary{background:var(--primary);color:#fff;width:100%}.btn-primary:hover{background:#3d7fcc}.btn-accent{background:var(--success);color:#fff;font-size:13px}.btn-accent:hover{background:#6cbd0f}.btn-ghost{color:var(--text-muted);background:0 0;border:1.5px solid #e0e6f2;padding:8px 14px;font-size:13px}.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}.btn-link{color:var(--text-light);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:none;transition:color .15s}.btn-link:hover{color:var(--primary);text-decoration:underline}.btn-sm{padding:7px 12px;font-size:13px}.book-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.book-item{text-align:left;background:var(--surface-alt);cursor:pointer;border:2px solid #0000;border-radius:12px;width:100%;padding:12px 14px;font-size:14px;transition:all .2s}.book-item:hover{border-color:var(--primary);background:#f0f6ff}.book-item.selected{background:var(--primary);border-color:var(--primary);color:#fff}.book-item-title{margin-bottom:4px;font-size:14px;font-weight:700}.book-item-meta{color:var(--text-muted);flex-wrap:wrap;gap:6px;font-size:12px;display:flex}.book-item.selected .book-item-meta{color:#ffffffd9}.search-box{margin-bottom:16px}.search-box input{font-size:14px}.badge{color:var(--primary);white-space:nowrap;background:#4a90e21f;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.badge-count{color:var(--success);background:#7ed3211f}.detail-head{border-bottom:1px solid #e8ecf1;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:18px;display:flex}.detail-head h2{color:var(--text);word-break:break-word;flex:1;margin:0;font-size:24px;font-weight:700}.detail-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:12px;width:100%;margin-top:10px;font-size:13px;display:flex}.learning{border:none;border-left:3px solid var(--primary);background:var(--surface-alt);border-radius:8px;margin-bottom:16px;padding:16px}.learning-text{white-space:pre-wrap;color:var(--text);margin:0 0 12px;font-size:14px;line-height:1.6}.learning-tools{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.action-list{flex-direction:column;gap:10px;margin:14px 0 0;padding:0;list-style:none;display:flex}.action{background:var(--surface);border:1px solid #e8ecf1;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;transition:all .2s;display:flex}.action:hover{border-color:var(--primary);box-shadow:0 2px 8px #4a90e214}.action-text{color:var(--text);flex:200px;font-size:14px}.action.done .action-text{color:var(--text-muted);text-decoration:line-through}.action-due{color:var(--text-muted);font-size:12px}.action-due.overdue{color:#e74c3c;font-weight:600}.status-group{background:#fff;border:1.5px solid #e0e6f2;border-radius:999px;display:inline-flex;overflow:hidden}.status-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:5px 11px;font-size:12px;font-weight:600;transition:all .15s}.status-btn+.status-btn{border-left:1px solid #e0e6f2}.status-btn[data-active=true][data-status=todo]{color:var(--primary);background:#f0f6ff}.status-btn[data-active=true][data-status=doing]{background:var(--accent);color:#fff}.status-btn[data-active=true][data-status=done]{background:var(--success);color:#fff}.empty{text-align:center;color:var(--text-muted);padding:48px 20px;font-size:14px;line-height:1.7}.empty strong{color:var(--text);margin-bottom:8px;font-size:16px;font-weight:600;display:block}.inline-form{background:var(--surface-alt);border:1px solid #e8ecf1;border-radius:10px;margin-top:14px;padding:14px}.progress-summary{background:linear-gradient(135deg,#f0f6ff 0%,#f9fbff 100%);border:1px solid #e8ecf1;border-radius:10px;margin-bottom:18px;padding:16px}.progress-summary h3{color:var(--text);margin:0 0 10px;font-size:14px;font-weight:700}.progress-summary p{color:var(--text-muted);margin:0;font-size:13px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-top:14px;display:grid}.stat-box{text-align:center;background:linear-gradient(135deg,#f0f6ff 0%,#f9fbff 100%);border:1px solid #e8ecf1;border-radius:12px;padding:16px}.stat-box-value{color:var(--primary);font-size:32px;font-weight:700;line-height:1}.stat-box-label{color:var(--text-muted);margin-top:6px;font-size:13px}.stat-box-trend{margin-top:4px;font-size:12px;font-weight:600}.progress-bar-container{margin-top:14px}.progress-bar{background:#e8ecf1;border-radius:8px;height:24px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--primary) 0%, #5fa3f0 100%);height:100%;transition:width .3s}.progress-text{color:var(--text-muted);margin:8px 0 0;font-size:13px}.recent-actions{flex-direction:column;gap:10px;margin-top:12px;display:flex}.recent-action-item{background:var(--surface-alt);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.recent-action-text{color:var(--text);flex:1;font-size:14px}.recent-action-date{color:var(--text-muted);white-space:nowrap;font-size:12px}.learning-tags{flex-wrap:wrap;gap:6px;margin:10px 0 12px;display:flex}.tag{color:var(--primary);white-space:nowrap;background:#4a90e21f;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.calendar-header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px;display:flex}.calendar-title{color:var(--text);text-align:center;flex:1;margin:0;font-size:20px;font-weight:700}.calendar-table{border-collapse:collapse;background:var(--surface);width:100%}.calendar-table thead th{color:var(--text-muted);background:var(--surface-alt);border-bottom:2px solid #e8ecf1;padding:12px 8px;font-size:13px;font-weight:700}.calendar-table tbody td{vertical-align:top;background:var(--surface);border:1px solid #e8ecf1;width:14.28%;height:100px;padding:8px;position:relative}.calendar-table tbody td.today{background:linear-gradient(135deg,#f0f6ff 0%,#f9fbff 100%)}.calendar-day{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:flex-start;width:100%;height:100%;padding:4px;transition:all .2s;display:flex;position:relative}.calendar-day:hover{border:2px solid var(--primary);background:#4a90e214}.calendar-day.selected{background:var(--primary);color:#fff}.calendar-day-num{color:var(--text);font-size:14px;font-weight:600}.calendar-day.selected .calendar-day-num{color:#fff}.calendar-day-count{background:var(--success);color:#fff;border-radius:999px;margin-top:4px;padding:2px 6px;font-size:11px;font-weight:700}.calendar-day.selected .calendar-day-count{background:#ffffff4d}.calendar-actions{flex-direction:column;gap:10px;margin-top:12px;display:flex}.calendar-action-item{background:var(--surface-alt);border-left:4px solid var(--primary);border-radius:8px;align-items:flex-start;gap:12px;padding:12px;transition:all .2s;display:flex}.calendar-action-item:hover{box-shadow:0 2px 8px #4a90e214}.calendar-action-item.done{opacity:.6;border-left-color:var(--success);background:#f5f5f5}.calendar-action-item.done .calendar-action-text{color:var(--text-muted);text-decoration:line-through}.calendar-action-status{flex-shrink:0}.status-badge{white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;display:inline-block}.status-badge.status-todo{color:var(--primary);background:#4a90e21f}.status-badge.status-doing{color:var(--accent);background:#f5a6231f}.status-badge.status-done{color:var(--success);background:#7ed3211f}.calendar-action-text{color:var(--text);flex:1;font-size:14px;line-height:1.4}
