.kifu-upload{max-width:600px;margin:0 auto}.kifu-upload h2{margin-bottom:1rem;font-size:1.3rem}.input-tabs{display:flex;gap:0;margin-bottom:1rem;border:1px solid #ddd;border-radius:6px;overflow:hidden;width:fit-content}.input-tabs button{padding:.5rem 1.25rem;border:none;background:#f5f5f5;color:#555;cursor:pointer;font-size:.9rem;transition:background .2s,color .2s}.input-tabs button+button{border-left:1px solid #ddd}.input-tabs button.active{background:#1a1a2e;color:#fff}.text-input-area{margin-bottom:0}.text-input-area textarea{width:100%;padding:1rem;border:2px solid #ddd;border-radius:8px;font-family:Courier New,Courier,monospace;font-size:.85rem;line-height:1.6;resize:vertical;background:#fff;color:#333;transition:border-color .2s}.text-input-area textarea:focus{outline:none;border-color:#1a1a2e}.dropzone{border:2px dashed #aaa;border-radius:8px;padding:3rem 2rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:#fff}.dropzone:hover,.dropzone.dragging{border-color:#1a1a2e;background:#f0f0ff}.dropzone p{color:#666;line-height:1.8}.file-list{margin-top:1rem;background:#fff;border-radius:8px;padding:1rem}.file-list ul{list-style:none;margin-top:.5rem;max-height:200px;overflow-y:auto}.file-list li{font-size:.9rem;color:#555;padding:.25rem 0;border-bottom:1px solid #eee}.clear-btn{margin-top:.5rem;padding:.25rem .75rem;background:#eee;border:none;border-radius:4px;cursor:pointer}.analyze-btn{display:block;width:100%;margin-top:1.5rem;padding:.9rem;background:#1a1a2e;color:#fff;border:none;border-radius:8px;font-size:1.1rem;cursor:pointer;transition:background .2s}.analyze-btn:hover:not(:disabled){background:#2d2d5a}.analyze-btn:disabled{opacity:.5;cursor:not-allowed}.player-name-input{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem;padding:1rem;background:#f0f4ff;border-radius:8px;border:1px solid #c0ccee}.player-name-input label{font-size:.9rem;font-weight:700;color:#333}.player-name-input input{padding:.5rem .75rem;border:1px solid #aaa;border-radius:4px;font-size:1rem;outline:none}.player-name-input input:focus{border-color:#1a1a2e}.player-name-hint{font-size:.78rem;color:#777}.player-side-input{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem;padding:1rem;background:#f0f8ff;border-radius:8px;border:1px solid #b0c4de}.player-side-input label{font-size:.9rem;font-weight:700;color:#333}.player-side-buttons{display:flex;gap:0;border:1px solid #ddd;border-radius:6px;overflow:hidden;width:fit-content}.player-side-buttons button{padding:.5rem 1.25rem;border:none;background:#f5f5f5;color:#555;cursor:pointer;font-size:.9rem;transition:background .2s,color .2s}.player-side-buttons button+button{border-left:1px solid #ddd}.player-side-buttons button.active{background:#1a1a2e;color:#fff}.player-side-hint{font-size:.78rem;color:#777}.player-name-select{margin-top:1rem;padding:1rem;background:#fff;border-radius:6px;border:1px solid #d0d0d0}.player-name-select>label{display:block;font-size:.85rem;font-weight:700;color:#333;margin-bottom:.5rem}.saved-names-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.saved-name-btn{padding:.35rem .75rem;background:#e8e8e8;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s}.saved-name-btn:hover{background:#d8d8d8}.saved-name-btn.active{background:#1a1a2e;color:#fff;border-color:#1a1a2e}.player-name-input-row{display:flex;gap:.5rem;align-items:center}.player-name-input-field{flex:1;padding:.5rem .75rem;border:1px solid #aaa;border-radius:4px;font-size:.9rem;outline:none;transition:border-color .2s}.player-name-input-field:focus{border-color:#1a1a2e}.save-name-btn{padding:.5rem 1rem;background:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;transition:background .2s}.save-name-btn:hover{background:#218838}.shogi-board-wrap{display:flex;flex-direction:column;align-items:center;gap:.5rem;outline:none;-webkit-user-select:none;user-select:none}.shogi-hand{display:flex;align-items:center;gap:.5rem;width:100%;max-width:360px;padding:.4rem .6rem;background:#f5f0e8;border-radius:6px;font-size:.85rem}.shogi-hand-label{font-size:.75rem;color:#888;white-space:nowrap}.shogi-hand-pieces{display:flex;flex-wrap:wrap;gap:.3rem}.shogi-hand-empty{color:#bbb;font-size:.8rem}.shogi-board{display:flex;flex-direction:column;align-items:flex-start;border:2px solid #8b6914;background:wheat;box-shadow:2px 2px 8px #0003}.shogi-col-labels{display:flex;padding-left:4px}.shogi-col-labels span{width:38px;text-align:center;font-size:.75rem;color:#555;line-height:1.4}.shogi-rows{display:flex;flex-direction:column}.shogi-row{display:flex;align-items:center}.shogi-row-label{width:20px;text-align:center;font-size:.75rem;color:#555;padding-left:2px}.shogi-cell{width:38px;height:42px;display:flex;align-items:center;justify-content:center;border:1px solid #c8a84b;position:relative;box-sizing:border-box}.shogi-cell-last{background:#ffdc0073}.shogi-piece{display:inline-flex;align-items:center;justify-content:center;width:32px;height:36px;background:#fffef5;border:1px solid #aaa;font-size:.8rem;font-weight:700;cursor:default;position:relative;box-shadow:1px 1px 2px #00000026;clip-path:polygon(50% 0%,100% 22%,100% 100%,0% 100%,0% 22%);line-height:1}.shogi-piece-black,.shogi-piece-white{color:#1a1a1a}.shogi-piece.rotated{transform:rotate(180deg)}.shogi-piece sup{position:absolute;top:1px;right:1px;font-size:.55rem;font-weight:400;transform:rotate(0)}.shogi-piece.rotated sup{transform:rotate(180deg);top:auto;bottom:1px;right:auto;left:1px}.shogi-hand .shogi-piece{width:26px;height:30px;font-size:.75rem}.shogi-nav{display:flex;align-items:center;gap:.4rem;margin-top:.25rem}.shogi-nav button{padding:.25rem .6rem;background:#1a1a2e;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.8rem}.shogi-nav button:disabled{background:#ccc;cursor:not-allowed}.shogi-nav-move{font-size:.9rem;font-weight:700;min-width:80px;text-align:center}.shogi-flip-btn{background:#e8a838!important;margin-left:.5rem}.shogi-nav-total{font-size:.8rem;color:#888;font-weight:400}.shogi-move-text{font-size:.85rem;color:#555;text-align:center}@media (max-width: 480px){.shogi-cell{width:34px;height:38px}.shogi-col-labels span{width:34px}.shogi-piece{width:28px;height:32px;font-size:.72rem}}.advice-panel{max-width:1100px;margin:0 auto}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.panel-header h2{font-size:1.4rem}.panel-header button{padding:.5rem 1rem;background:#1a1a2e;color:#fff;border:none;border-radius:4px;cursor:pointer}.section{background:#fff;border-radius:8px;padding:1.5rem;margin-bottom:1rem}.section h3{font-size:1.1rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #1a1a2e}.board-highlights-row{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;margin-bottom:1rem}.board-highlights-row .section{margin-bottom:0}.highlights-section{min-width:0;max-height:600px;overflow-y:auto}@media (max-width: 900px){.board-highlights-row{grid-template-columns:1fr}.highlights-section{max-height:none}}.summary-box{background:#f8f9ff;border-radius:6px;padding:1rem;line-height:1.8;white-space:pre-wrap;word-break:break-word}.strategy-matchup{display:inline-block;background:#1a1a2e;color:#fff;font-size:.85rem;font-weight:700;padding:.25rem .75rem;border-radius:20px;margin-bottom:1rem}.strategy-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}@media (max-width: 600px){.strategy-grid{grid-template-columns:1fr}}.strategy-side{border-radius:6px;padding:1rem}.strategy-black{background:#1a1a2e12;border-left:4px solid #1a1a2e}.strategy-white{background:#f8f0ff;border-left:4px solid #8e44ad}.strategy-side-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.strategy-player-badge{font-size:.8rem;font-weight:700;padding:.15rem .5rem;border-radius:3px;white-space:nowrap}.strategy-player-badge.black{background:#1a1a2e;color:#fff}.strategy-player-badge.white{background:#8e44ad;color:#fff}.strategy-formation{font-size:.95rem;font-weight:700;color:#333}.strategy-body{font-size:.9rem;line-height:1.7;color:#444;white-space:pre-wrap;word-break:break-word}.strategy-keypoints{background:#fffbea;border:1px solid #f0d060;border-radius:6px;padding:.9rem 1rem}.strategy-keypoints-label{display:block;font-size:.8rem;font-weight:700;color:#b8860b;margin-bottom:.4rem}.strategy-keypoints p{font-size:.9rem;line-height:1.7;color:#555;white-space:pre-wrap;word-break:break-word}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.info-item{display:flex;gap:.5rem;align-items:center}.info-label{font-size:.85rem;color:#888;min-width:60px}.info-value{font-weight:700}.highlight-list{display:flex;flex-direction:column;gap:.75rem}.highlight-item{border-left:4px solid #ccc;padding:.75rem 1rem;background:#fafafa;border-radius:0 4px 4px 0}.highlight-badge{display:inline-block;color:#fff;font-size:.8rem;padding:.2rem .6rem;border-radius:3px;margin-bottom:.4rem;font-weight:700}.highlight-item p{font-size:.9rem;line-height:1.6;color:#444;white-space:pre-wrap;word-break:break-word;margin:0}.advice-item{padding:.75rem 0;border-bottom:1px solid #eee}.advice-item:last-child{border-bottom:none}.advice-item h4{font-size:1rem;margin-bottom:.4rem;color:#1a1a2e}.advice-item p{font-size:.95rem;line-height:1.7;color:#555;white-space:pre-wrap;word-break:break-word}.dashboard{max-width:960px;margin:0 auto;padding:1rem}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.panel-header h2{font-size:1.4rem;margin:0 0 .25rem}.dashboard-meta{font-size:.9rem;color:#666}.panel-header button{padding:.5rem 1rem;background:#1a1a2e;color:#fff;border:none;border-radius:4px;cursor:pointer;white-space:nowrap}.section{background:#fff;border-radius:8px;padding:1.5rem;margin-bottom:1rem;box-shadow:0 1px 4px #0000000f}.section h3{font-size:1.05rem;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #1a1a2e}.two-col-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}@media (max-width: 640px){.two-col-row{grid-template-columns:1fr}}.two-col-row .section{margin-bottom:0}.table-wrap{overflow-x:auto}.game-table{width:100%;border-collapse:collapse;font-size:.85rem}.game-table th,.game-table td{padding:.5rem .6rem;border-bottom:1px solid #eee;text-align:left;white-space:nowrap}.game-table th{background:#f5f5f5;font-weight:600;color:#444}.game-table .row-win{background:#f0fff4}.game-table .row-loss{background:#fff5f5}.td-date{color:#888;font-size:.8rem}.td-mistake{white-space:normal;max-width:200px;font-size:.8rem;color:#555}.result-badge{display:inline-block;padding:.1rem .5rem;border-radius:10px;font-size:.75rem;font-weight:700}.result-badge.win{background:#27ae60;color:#fff}.result-badge.loss{background:#c0392b;color:#fff}.phase-stats{display:flex;flex-direction:column;gap:1rem}.phase-stat-item{display:flex;flex-direction:column;gap:.3rem}.phase-stat-header{display:flex;justify-content:space-between;align-items:center}.phase-stat-name{font-weight:600;font-size:.95rem}.phase-stat-count{font-size:.85rem;font-weight:600}.bar-track{height:14px;background:#eee;border-radius:7px;overflow:hidden}.bar-fill{height:100%;border-radius:7px;transition:width .4s}.phase-stat-issue{font-size:.82rem;color:#666;margin:.1rem 0 0}.formation-list{display:flex;flex-direction:column;gap:.9rem}.formation-item{display:flex;flex-direction:column;gap:.3rem}.formation-header{display:flex;justify-content:space-between;align-items:center}.formation-name{font-weight:600;font-size:.9rem}.formation-rate{font-size:.82rem;color:#555}.formation-challenge{font-size:.8rem;color:#888;margin:.1rem 0 0}.pattern-list{display:flex;flex-direction:column;gap:.75rem}.pattern-item{padding:.75rem;border:1px solid #f0d0d0;border-radius:6px;background:#fff9f9}.pattern-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.3rem}.pattern-name{font-weight:700;color:#c0392b}.pattern-count{background:#c0392b;color:#fff;padding:.1rem .5rem;border-radius:10px;font-size:.75rem}.pattern-type{font-size:.78rem;color:#888;display:block;margin-bottom:.25rem}.pattern-desc{font-size:.85rem;color:#555;line-height:1.6;margin:0}.strength-list{display:flex;flex-direction:column;gap:.75rem}.strength-item{padding:.75rem;border:1px solid #c8e6c9;border-radius:6px;background:#f1fff3}.strength-name{font-weight:700;color:#27ae60;display:block;margin-bottom:.25rem}.strength-desc{font-size:.85rem;color:#555;line-height:1.6;margin:0}.root-cause-list{display:flex;flex-direction:column;gap:.75rem}.root-cause-item{padding:.75rem .75rem .75rem 1rem;border-left:4px solid #888;border-radius:4px;background:#fafafa}.root-cause-badge{display:inline-block;color:#fff;font-size:.75rem;font-weight:700;padding:.15rem .6rem;border-radius:10px;margin-bottom:.4rem}.root-cause-desc{font-size:.9rem;line-height:1.6;margin:0 0 .3rem}.root-cause-evidence{font-size:.8rem;color:#888;margin:0}.study-task-list{display:flex;flex-direction:column;gap:1rem}.study-task-item{border:1px solid #dde;border-radius:8px;padding:1rem;background:#fafbff}.study-task-header{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem}.study-task-rank{font-size:1.1rem;font-weight:700;color:#1a1a2e;min-width:30px}.study-genre-badge,.study-root-badge{display:inline-block;color:#fff;font-size:.73rem;font-weight:700;padding:.15rem .55rem;border-radius:10px}.study-task-title{font-weight:700;font-size:1rem;flex:1}.study-task-score{font-size:.8rem;color:#888;white-space:nowrap}.study-task-desc{font-size:.88rem;line-height:1.65;color:#444;margin:0 0 .75rem}.study-scores{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.75rem}@media (max-width: 500px){.study-scores{grid-template-columns:1fr}}.study-score-item{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;color:#666}.score-bar-wrap{display:flex;align-items:center;gap:.4rem}.score-bar-track{flex:1;height:10px;background:#e8e8e8;border-radius:5px;overflow:hidden}.score-bar-fill{height:100%;border-radius:5px;transition:width .4s}.score-bar-label{font-size:.78rem;color:#555;min-width:28px;text-align:right}.study-menu-box,.study-criteria-box{background:#fff;border:1px solid #e8e8f0;border-radius:6px;padding:.6rem .75rem;margin-bottom:.5rem;font-size:.85rem;line-height:1.65}.study-menu-box p,.study-criteria-box p{margin:0;color:#444}.study-menu-label,.study-criteria-label{font-weight:700;font-size:.75rem;color:#888;margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.03em}.study-related{font-size:.78rem;color:#999}.trend-timeline{display:flex;flex-direction:column;gap:.4rem}.trend-item{display:flex;align-items:center;gap:.6rem;padding:.4rem .6rem;border-radius:4px;font-size:.85rem}.trend-item.trend-win{background:#f0fff4}.trend-item.trend-loss{background:#fff5f5}.trend-index{min-width:40px;font-weight:600;color:#444}.trend-date{min-width:90px;font-size:.78rem;color:#aaa}.trend-phase{font-size:.78rem;color:#888}.summary-box{background:#f8f9ff;border-radius:6px;padding:1rem;line-height:1.8;white-space:pre-wrap;word-break:break-word;font-size:.92rem}.progress-indicator{max-width:400px;margin:4rem auto;text-align:center}.progress-spinner{width:48px;height:48px;border:4px solid #ddd;border-top-color:#1a1a2e;border-radius:50%;animation:spin .9s linear infinite;margin:0 auto 1.25rem}@keyframes spin{to{transform:rotate(360deg)}}.progress-current-label{font-size:1.05rem;font-weight:700;color:#1a1a2e;margin-bottom:1.75rem}.progress-steps{display:flex;flex-direction:column;gap:.6rem;text-align:left;background:#fff;border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:1rem}.progress-step{display:flex;align-items:center;gap:.75rem;color:#bbb;transition:color .3s}.progress-step.completed{color:#27ae60}.progress-step.current{color:#1a1a2e;font-weight:700}.progress-step-icon{font-size:1rem;width:1.2rem;text-align:center;flex-shrink:0}.progress-step.current .progress-step-icon{animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.progress-step-label{font-size:.95rem}.progress-note{font-size:.8rem;color:#aaa}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:#1a1a2e;color:#fff;padding:1rem 2rem;display:flex;align-items:center;gap:2rem}.app-header h1{font-size:1.4rem;white-space:nowrap}.mode-tabs{display:flex;gap:.5rem}.mode-tabs button{padding:.5rem 1rem;border:2px solid #fff;border-radius:4px;background:transparent;color:#fff;cursor:pointer;font-size:.9rem;transition:background .2s}.mode-tabs button.active,.mode-tabs button:hover{background:#fff3}.app-main{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.loading,.error{text-align:center;padding:4rem;font-size:1.1rem;color:#666}.error{color:#c0392b}.error button{margin-top:1rem;padding:.5rem 1.5rem;background:#c0392b;color:#fff;border:none;border-radius:4px;cursor:pointer}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Hiragino Sans,Noto Sans JP,sans-serif;background:#f5f5f0;color:#333}h1,h2,h3{font-weight:700}
