*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0e0e12;--surface: #1a1a22;--surface2: #22222e;--border: #2e2e3e;--accent: #e8a020;--accent2: #5b9cf6;--text: #e8e8f0;--text-muted: #888899;--danger: #e05050;--green: #50c070;--radius: 8px}body{background:var(--bg);color:var(--text);font-family:Hiragino Kaku Gothic ProN,Meiryo,sans-serif;font-size:14px;line-height:1.6}.app{max-width:1100px;margin:0 auto;padding:0 16px 48px}.app--wide{max-width:1600px}.app-header{padding:24px 0 16px;border-bottom:2px solid var(--accent);margin-bottom:20px;display:flex;flex-direction:column;align-items:stretch;gap:14px}.site-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;line-height:1.2}.site-title-game{font-size:25px;font-weight:700;letter-spacing:.15em;color:var(--text-muted);text-transform:uppercase;align-self:center}.site-title-chara{font-size:30px;font-weight:700;color:var(--accent);letter-spacing:.12em}.site-title-label{font-size:25px;font-weight:700;letter-spacing:.2em;color:var(--accent2);text-transform:uppercase;align-self:center}.login-status{display:flex;align-items:center;gap:8px}.login-level-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:12px;background:#102035;color:var(--accent2);border:1px solid var(--accent2)}.login-modal{background:var(--surface);border:1px solid var(--accent2);border-radius:var(--radius);padding:24px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:16px}.login-modal-title{color:var(--accent);font-size:16px}.login-label{display:block;font-size:12px;color:var(--text-muted)}.login-input{display:block;width:100%;margin-top:6px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:8px 10px;font-size:14px;font-family:inherit}.login-input:focus{outline:none;border-color:var(--accent2)}.login-actions{display:flex;gap:10px}.csv-footer{display:flex;justify-content:flex-end;padding-top:16px;border-top:1px solid var(--border);margin-top:8px}.import-export{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn-ie{background:var(--surface2);color:var(--text);border:1px solid var(--border);font-size:12px;padding:5px 12px}.btn-ie:hover{border-color:var(--accent2)}.ie-result{font-size:12px;color:var(--green);white-space:pre-line}.app-main{display:flex;flex-direction:column;gap:20px}.controls-bottom{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}.sort-area label{flex-direction:row;align-items:center;gap:8px;color:var(--text);font-size:13px;white-space:nowrap;flex-shrink:0}.count-label{font-size:13px;color:var(--text-muted)}.combo-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.count-page{color:var(--text-muted);font-size:12px}.page-size-toggle{display:flex;gap:4px}.pagination{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 0 4px;flex-wrap:wrap}.pagination-pages{display:flex;gap:4px;flex-wrap:wrap}.btn-page{background:var(--surface2);color:var(--text);border:1px solid var(--border);min-width:72px}.btn-page:disabled{opacity:.3;cursor:default}.btn-page-num{background:var(--surface2);color:var(--text-muted);border:1px solid var(--border);min-width:36px}.btn-page-active{background:var(--surface);color:var(--text);border-color:var(--accent2)}.backend-waiting{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0a0a0f}.backend-waiting-box{display:flex;flex-direction:column;align-items:center;gap:16px;padding:48px 40px;background:#16161f;border:1px solid #2a2a3a;border-radius:12px}.backend-waiting-spinner{width:48px;height:48px;border:4px solid #2a2a3a;border-top-color:#e8c87a;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.backend-waiting-title{font-size:18px;font-weight:700;color:#e8c87a;letter-spacing:.05em}.backend-waiting-sub{font-size:13px;color:#888;text-align:center;line-height:1.8}@media (max-width: 768px){.combo-list{grid-template-columns:1fr!important}.column-toggle{display:none}}@media (max-width: 600px){.app{padding:0 10px 48px}.site-title-chara{font-size:22px}.site-title-game{font-size:12px}.site-title-label{font-size:13px}.filter-row{flex-direction:column;align-items:stretch}.filter-row label{width:100%}.filter-row select,.filter-row input{width:100%;padding:10px 8px;font-size:15px}.filter-text-label{min-width:unset;width:100%}.controls-bottom{flex-direction:column;align-items:stretch;gap:8px}.sort-area{width:100%}.sort-area label{width:100%;justify-content:space-between}.sort-area select{width:100%;padding:10px 8px;font-size:15px}.btn-add{width:100%;padding:12px;font-size:15px;text-align:center}.combo-card{padding:12px}.card-actions{gap:10px}.btn-edit,.btn-delete{flex:1;padding:10px;text-align:center}.stat-damage{font-size:20px}.stat-frame{font-size:15px}.form-section{padding:14px 12px}.form-grid{grid-template-columns:1fr;gap:10px}.form-full{grid-column:1}.form-grid input,.form-grid select,.form-grid textarea{padding:10px 8px;font-size:15px}.form-actions{flex-direction:column;gap:8px}.btn-save,.btn-cancel{width:100%;padding:12px;font-size:15px;text-align:center}}.char-select{font:inherit;font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--accent);background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:5px 8px;cursor:pointer}.char-select:hover{border-color:var(--accent)}.filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px}.filter-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}select,input[type=text],input[type=number],input[type=url],textarea{background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:6px 8px;font-size:13px;font-family:inherit;outline:none;transition:border-color .15s}select:focus,input:focus,textarea:focus{border-color:var(--accent2)}.filter-input--narrow{width:64px}.filter-starter-wrap{display:flex;align-items:center;gap:6px;flex-shrink:0}.filter-starter-label{font-size:12px;color:var(--text-muted);white-space:nowrap}.filter-starter-wrap .starter-autocomplete{position:relative}.filter-starter-wrap .starter-autocomplete input{width:200px}.filter-situation-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter-situation-label{font-size:12px;color:var(--text-muted);white-space:nowrap}.filter-situation-item{display:flex;flex-direction:row;align-items:center;gap:4px;font-size:12px;font-weight:700;cursor:pointer;padding:2px 8px;border-radius:4px;border:1px solid transparent;transition:opacity .15s}.filter-situation-item input[type=checkbox]{cursor:pointer;accent-color:currentColor;width:13px;height:13px}.situation-check-PC{color:#e05050;border-color:#5a2020;background:#2a1010}.situation-check-CH{color:#d0a030;border-color:#5a4018;background:#2a2010}.situation-check-NH{color:#5090d0;border-color:#1a3050;background:#0e1c34}.situation-check-GD{color:#d8d8e8;border-color:#44445a;background:#252530}.situation-check-all{color:var(--text-muted);border-color:var(--border);background:var(--surface2)}.filter-situation-item:has(input:not(:checked)){opacity:.45}.filter-unlinked-label{display:flex;flex-direction:row;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);white-space:nowrap;cursor:pointer}.filter-unlinked-label input[type=checkbox]{cursor:pointer;accent-color:var(--accent2);width:14px;height:14px}.filter-text-label{flex:1;min-width:200px;width:100%}.filter-text-label input{width:100%}.btn{padding:7px 16px;border:none;border-radius:4px;font-size:13px;font-family:inherit;cursor:pointer;transition:opacity .15s,transform .1s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default}.btn-add{background:var(--accent);color:#111;font-weight:700}.column-toggle{display:flex;gap:4px}.btn-col{background:var(--surface2);color:var(--text-muted);border:1px solid var(--border);min-width:40px}.btn-col--xs{font-size:11px;padding:3px 8px}.btn-col-active{background:var(--surface);color:var(--text);border-color:var(--accent2)}.btn-edit{background:var(--accent2);color:#fff}.btn-copy{background:#d4a017;color:#111;border:1px solid #b88a10}.btn-delete{background:var(--danger);color:#fff}.btn-save{background:var(--green);color:#111;font-weight:700}.btn-cancel{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.alias-chip-list{display:flex;flex-wrap:wrap;gap:4px}.alias-chip{font-size:11px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:1px 8px;color:var(--accent2);white-space:nowrap}.alias-chip-removable{display:inline-flex;align-items:center;gap:4px;padding-right:4px}.alias-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12px;padding:0 2px;line-height:1}.alias-remove:hover{color:var(--danger)}.alias-empty,.alias-count{font-size:12px;color:var(--text-muted)}.alias-preview{display:flex;flex-wrap:wrap;gap:6px;min-height:32px;background:var(--surface2);border-radius:6px;padding:8px}.alias-input-label{display:block;font-size:12px;color:var(--text-muted)}.alias-textarea{display:block;width:100%;margin-top:6px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:8px;font-size:13px;font-family:inherit;resize:vertical}.alias-textarea:focus{outline:none;border-color:var(--accent2)}.status-msg{padding:16px;text-align:center;color:var(--text-muted)}.status-msg.error{color:var(--danger)}.tag-editor-hint{font-size:12px;color:var(--text-muted);margin-bottom:10px}.tag-editor-textarea{min-height:260px}.tag-suggest-alias{font-size:11px;color:var(--text-muted);margin-left:6px}.combo-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:8px;transition:border-color .15s;cursor:pointer;-webkit-user-select:none;user-select:none}.combo-card:hover{border-color:var(--accent2)}.card-row-resources{display:flex;gap:6px;flex-wrap:wrap}.card-row-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.card-starter-text{font-size:12px;color:var(--text-muted)}.card-meta-label{font-size:10px;color:var(--text-muted);opacity:.5;margin-left:auto}.card-row-meta{margin-bottom:4px}.card-route{font-size:13px;background:var(--surface2);border-radius:4px;padding:8px 10px;word-break:break-all;line-height:1.7}.card-row-stats{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}.stat-damage{font-size:28px;font-weight:700;color:var(--accent);line-height:1}.stat-damage-large{font-size:48px}.stat-damage small,.stat-frame small{font-size:11px;color:var(--text-muted);margin-left:3px}.stat-sa-gain{font-size:20px;font-weight:700;color:#b880f8;line-height:1}.stat-sa-gain small{font-size:11px;color:var(--text-muted);margin-left:3px}.stat-frame{font-size:20px;font-weight:700;color:var(--accent2);line-height:1}.stat-frame-large{font-size:32px}.badge{font-size:11px;padding:2px 8px;border-radius:4px;font-weight:700}.badge-large{font-size:13px;padding:3px 10px}.badge-drive{background:#0e2818;color:#50c878;border:1px solid #1a4a28}.badge-sa{background:#221535;color:#b880f8;border:1px solid #4a2a70}.badge-req{background:#0e1c34;color:#4a90d8;border:1px solid #1a3a60}.badge-recovery{background:#102028;color:#40c0d0;border:1px solid #1a4050}.badge-recovery-stock{background:#2a2810;color:#e8d878;border:1px solid #504a18}.position-badge{font-size:11px;padding:2px 8px;border-radius:12px;white-space:nowrap;flex-shrink:0}.position-corner{background:#3a2510;color:#e8a020;border:1px solid #5a3a18}.position-center{background:#102035;color:#5b9cf6;border:1px solid #1a4060}.position-any{background:#1a2a1a;color:#50c070;border:1px solid #2a4a2a}.position-corner-switch{background:#2a1a30;color:#c07ae8;border:1px solid #4a2a5a}.situation-badge{font-size:11px;font-weight:700;padding:1px 7px;border-radius:4px;flex-shrink:0}.situation-PC{background:#2a1010;color:#e05050;border:1px solid #5a2020}.situation-CH{background:#2a2010;color:#d0a030;border:1px solid #5a4018}.situation-NH{background:#101828;color:#5090d0;border:1px solid #1a3050}.situation-GD{background:#252530;color:#d8d8e8;border:1px solid #44445a}.card-note{font-size:12px;color:var(--text-muted);background:var(--surface2);border-left:3px solid var(--border);padding:6px 10px;border-radius:0 4px 4px 0;white-space:pre-wrap}.card-actions{display:flex;gap:8px;margin-top:4px}.card-reference-link{display:inline-block;margin-top:6px;font-size:12px;color:#7ab8f5;text-decoration:none;opacity:.85}.card-reference-link:hover{opacity:1;text-decoration:underline}.card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.card-tag{background:#1a2535;border:1px solid #3a5070;color:var(--accent2);border-radius:4px;padding:1px 7px;font-size:11px}.card-tag-clickable{cursor:pointer}.card-tag-clickable:hover{background:#253548;border-color:var(--accent2)}.form-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.form-overlay-modal{background:var(--surface);border:1px solid var(--accent2);border-radius:var(--radius);width:100%;max-width:860px;max-height:90vh;overflow-y:auto;padding:24px}.form-section{background:var(--surface);border:1px solid var(--accent2);border-radius:var(--radius);padding:20px}.combo-form{padding:16px}.combo-form select,.combo-form input[type=text],.combo-form input[type=number],.combo-form input[type=url],.combo-form textarea{padding:5px 8px}.combo-form .starter-autocomplete>input{margin-top:3px}.combo-form h3{margin-bottom:10px;color:var(--accent)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.form-full{grid-column:1 / -1}.form-four-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.form-grid label{display:block;font-size:12px;color:var(--text-muted)}.form-grid label>input,.form-grid label>select,.form-grid label>textarea{display:block;width:100%;margin-top:3px}.form-grid textarea{resize:vertical}.required{color:var(--danger)}.starter-autocomplete{position:relative}.starter-autocomplete>input{display:block;width:100%;margin-top:4px}.starter-readonly{background:var(--surface)!important;color:var(--text-muted)!important;cursor:default!important;opacity:.7}.starter-linked{font-size:10px;color:var(--green);margin-left:8px;font-weight:700}.starter-suggestions{position:absolute;top:100%;left:0;right:0;background:var(--surface2);border:1px solid var(--accent2);border-radius:0 0 6px 6px;margin:0;padding:0;list-style:none;z-index:200;max-height:240px;overflow-y:auto}.starter-suggestion-item{display:flex;justify-content:space-between;align-items:center;padding:7px 12px;cursor:pointer;gap:8px}.starter-suggestion-item:hover,.starter-suggestion-item.suggestion-active{background:var(--surface);outline:1px solid var(--accent2)}.suggestion-name{font-size:13px;color:var(--text)}.suggestion-meta{display:flex;align-items:center;gap:5px;flex-shrink:0}.suggestion-alias{font-size:10px;color:var(--accent2)}.suggestion-section{font-size:10px;color:var(--text-muted);background:var(--surface);padding:1px 6px;border-radius:4px;white-space:nowrap}.form-route-label{font-size:12px;color:var(--text-muted);margin-bottom:6px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.route-preview{font-size:11px;color:var(--text-muted);font-style:italic}.route-chip-wrapper{position:relative}.route-chip-box{display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:8px;min-height:44px;cursor:text}.route-chip-box:focus-within{border-color:var(--accent2)}.route-chip{display:inline-flex;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:2px 6px 2px 8px;font-size:12px;color:var(--text);white-space:nowrap}.route-chip-linked{border-color:var(--accent2);color:var(--accent2)}.route-chip-unlinked{border:1px dashed #555566;color:var(--text-muted)}.route-chip:not(.route-chip-edit-wrap){cursor:pointer}.route-chip:hover{border-color:var(--accent2)}.route-chip-edit-wrap{position:relative;display:inline-flex;align-items:center}.route-chip-edit-input{background:var(--surface);border:1px solid var(--accent);border-radius:4px;color:var(--text);padding:2px 6px;font-size:12px;font-family:inherit;outline:none;min-width:80px;width:auto}.route-chip-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:13px;padding:0 1px;line-height:1}.route-chip-remove:hover{color:var(--danger)}.route-chip-input{background:none;border:none;outline:none;color:var(--text);font-size:13px;font-family:inherit;flex:1;min-width:140px}.route-chip-suggestions{position:absolute;top:100%;left:0;right:0;background:var(--surface2);border:1px solid var(--accent2);border-radius:0 0 6px 6px;margin:0;padding:0;list-style:none;z-index:200;max-height:220px;overflow-y:auto}.route-chip-hint{font-size:10px;color:var(--text-muted);margin-top:4px}.route-chip-unit{display:inline-flex;align-items:center;gap:4px}.route-separator{font-size:12px;color:var(--text-muted);cursor:pointer;padding:0 2px;border-radius:3px;transition:color .15s,background .15s;-webkit-user-select:none;user-select:none}.route-separator:hover{color:var(--accent2);background:#5b9cf626}.route-separator-active{color:var(--accent);background:#e8a02026}.calc-resource-row{display:flex;align-items:center;gap:10px;padding:5px 0 2px;border-top:1px solid var(--border)}.btn-calc{background:var(--surface2);color:var(--accent2);border:1px solid var(--accent2);font-size:12px;padding:5px 14px;white-space:nowrap}.btn-calc:hover{background:#1a2a3a}.btn-calc:disabled{opacity:.4;cursor:default}.calc-note{font-size:11px;color:var(--text-muted)}.route-toolbar{display:flex;align-items:center;gap:10px;margin-top:6px}.btn-arrow{background:var(--surface2);color:var(--accent);border:1px solid var(--border);font-size:13px;padding:4px 12px;white-space:nowrap}.btn-arrow:hover{border-color:var(--accent)}.route-hint{font-size:11px;color:var(--text-muted)}.form-error{background:#2a1010;border:1px solid var(--danger);border-radius:4px;padding:8px 12px;color:var(--danger);margin-bottom:12px;font-size:13px}.form-actions{display:flex;gap:10px;margin-top:10px}.form-actions-delete{margin-left:auto}.detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.detail-modal{background:var(--surface);border:1px solid var(--accent2);border-radius:var(--radius);padding:28px 28px 24px;width:100%;max-width:720px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:16px;position:relative}.detail-close{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;line-height:1;padding:2px 6px;border-radius:4px;transition:color .15s}.detail-close:hover{color:var(--text)}.detail-route{font-size:20px;font-weight:700;color:var(--text);background:var(--surface2);border-left:4px solid var(--accent);border-radius:0 6px 6px 0;padding:14px 18px;line-height:1.7;word-break:break-all}.detail-modal .card-row-resources,.detail-modal .card-row-meta{padding-right:36px}.detail-actions{display:flex;gap:10px;flex-wrap:wrap;padding-top:4px;border-top:1px solid var(--border)}.detail-note-section{display:flex;flex-direction:column;gap:4px}.detail-note-label{font-size:11px;color:var(--text-muted)}.detail-note-body{font-size:13px;color:var(--text);background:var(--surface2);border-left:3px solid var(--border);padding:8px 12px;border-radius:0 4px 4px 0;min-height:36px}.form-hint{display:block;margin-top:4px;font-size:11px;color:#666}.form-hint--warning{color:#e8a020}.form-label--disabled{opacity:.4}.starter-damage-hint{color:var(--green);font-size:11px;font-weight:400;margin-left:6px}.form-situation-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.form-situation-label{font-size:12px;color:var(--text-muted);white-space:nowrap}.form-situation-item{display:flex;flex-direction:row;align-items:center;gap:4px;font-size:12px;font-weight:700;cursor:pointer;padding:3px 10px;border-radius:4px;border:1px solid transparent}.form-situation-item input[type=checkbox]{cursor:pointer;accent-color:currentColor;width:13px;height:13px}.form-label-text{display:block;font-size:12px;color:var(--text-muted);margin-bottom:6px}.tag-input-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px;min-height:38px}.tag-input-wrap:focus-within{border-color:var(--accent2)}.tag-chip{display:inline-flex;align-items:center;gap:4px;background:#1a2535;border:1px solid #3a5070;color:var(--accent2);border-radius:4px;padding:2px 8px;font-size:12px;white-space:nowrap}.tag-chip-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0 2px;font-size:13px;line-height:1}.tag-chip-remove:hover{color:var(--danger)}.tag-input-field-wrap{position:relative;flex:1;min-width:120px}.tag-input-field{width:100%;background:transparent;border:none;outline:none;color:var(--text);font-size:13px;padding:2px 0}.tag-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);list-style:none;z-index:100;max-height:200px;overflow-y:auto;box-shadow:0 4px 16px #00000080}.tag-suggestions li{padding:7px 12px;cursor:pointer;font-size:13px}.tag-suggestions li:hover{background:var(--surface);color:var(--accent2)}.header-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.frame-controls{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.frame-section-tabs{display:flex;flex-wrap:wrap;gap:6px}.frame-search input{width:260px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:6px 10px;font-size:13px;font-family:inherit}.frame-search input:focus{outline:none;border-color:var(--accent2)}.frame-table-wrap{overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 280px);border:1px solid var(--border);border-radius:var(--radius)}.frame-table{width:100%;border-collapse:collapse;font-size:13px}.frame-table th{background:var(--surface2);color:var(--text-muted);font-size:11px;font-weight:700;padding:8px 10px;text-align:left;border-bottom:2px solid var(--border);white-space:nowrap;position:sticky;top:0;z-index:1}.frame-table td{padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.frame-table tr:hover td{background:var(--surface2)}.frame-td-section{font-size:11px;color:var(--text-muted);white-space:nowrap}.frame-td-name{font-weight:700;white-space:nowrap}.frame-td-official{color:var(--text-muted);font-size:12px}.frame-td-center{text-align:center}.frame-td-num{text-align:right;font-variant-numeric:tabular-nums;color:var(--accent)}.frame-td-correction{font-size:12px;color:var(--accent2)}.frame-td-display{color:var(--green)}.frame-hint{font-size:11px;color:var(--text-muted)}.frame-row-clickable{cursor:pointer}.frame-row-clickable:hover td{background:#1e1e2e}.frame-edit-modal{background:var(--surface);border:1px solid var(--accent2);border-radius:var(--radius);padding:24px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:16px;position:relative}.frame-edit-modal-header{display:flex;justify-content:space-between;align-items:center;padding-right:8px}.frame-edit-modal-title{font-size:14px;font-weight:700;color:var(--accent)}.frame-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.frame-modal-full{grid-column:1 / -1}.frame-modal-grid label{display:block;font-size:12px;color:var(--text-muted)}.frame-modal-grid label>input{display:block;width:100%;margin-top:4px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:7px 8px;font-size:13px;font-family:inherit}.frame-modal-grid label>input:focus{outline:none;border-color:var(--accent2)}.frame-modal-actions{display:flex;gap:10px;padding-top:4px;border-top:1px solid var(--border)}.hs-page{min-height:100vh;background:var(--bg);color:var(--text);display:flex;flex-direction:column}.hs-top{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;border-bottom:1px solid var(--border);background:var(--surface)}.hs-link{font-size:13px;color:var(--accent2);text-decoration:none}.hs-link:hover{text-decoration:underline}.hs-counter{font-size:13px;color:var(--text-muted)}.hs-slide{flex:1;width:100%;max-width:760px;margin:0 auto;padding:48px 32px 32px}.hs-title{font-size:26px;color:var(--accent);margin-bottom:20px;letter-spacing:.02em}.hs-lead{font-size:14px;color:var(--text-muted);line-height:1.9;margin-bottom:24px}.hs-items{list-style:none;display:flex;flex-direction:column;gap:8px}.hs-items li{padding:10px 14px;background:var(--surface2);border-radius:6px;border-left:3px solid var(--accent2);font-size:14px;line-height:1.6}.hs-items li strong{color:var(--accent2)}.hs-table{width:100%;border-collapse:collapse;margin:8px 0 0}.hs-table th,.hs-table td{padding:10px 14px;border:1px solid var(--border);font-size:14px;text-align:left}.hs-table th{background:var(--surface2);color:var(--accent);width:32%}.hs-note{margin-top:20px;padding:12px 16px;background:#e8a0200f;border:1px solid rgba(232,160,32,.25);border-radius:6px;font-size:13px;color:var(--text-muted);line-height:1.8}.hs-bottom{padding:20px 24px;border-top:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:16px}.hs-dots{display:flex;gap:8px}.hs-dot{width:8px;height:8px;border-radius:50%;background:var(--border);border:none;cursor:pointer;padding:0;transition:background .2s}.hs-dot--active{background:var(--accent)}.hs-nav{display:flex;gap:12px}.hp-page{min-height:100vh;background:var(--bg);color:var(--text)}.hp-header{display:flex;justify-content:space-between;align-items:center;padding:14px 32px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:100}.hp-title{font-size:18px;color:var(--accent)}.hp-header-links{display:flex;gap:8px}.hp-layout{display:flex;max-width:1080px;margin:0 auto}.hp-toc{width:196px;flex-shrink:0;position:sticky;top:53px;height:calc(100vh - 53px);overflow-y:auto;padding:24px 12px;border-right:1px solid var(--border)}.hp-toc ul{list-style:none;display:flex;flex-direction:column;gap:2px}.hp-toc-link{display:block;padding:7px 10px;font-size:12px;color:var(--text-muted);text-decoration:none;border-radius:4px;transition:all .15s;line-height:1.4}.hp-toc-link:hover{color:var(--text);background:var(--surface2)}.hp-content{flex:1;padding:36px 40px;min-width:0}.hp-section{margin-bottom:56px;scroll-margin-top:68px}.hp-section-title{font-size:18px;color:var(--accent);margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--border)}.hp-lead{font-size:13px;color:var(--text-muted);line-height:1.9;margin-bottom:14px}.hp-list{list-style:none;display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.hp-list li{padding:8px 12px;background:var(--surface2);border-radius:4px;border-left:3px solid var(--accent2);font-size:13px;line-height:1.6}.hp-list li strong{color:var(--accent2)}.hp-table{width:100%;border-collapse:collapse;margin-bottom:14px;font-size:13px}.hp-table th,.hp-table td{padding:8px 12px;border:1px solid var(--border);text-align:left;line-height:1.5}.hp-table th{background:var(--surface2);color:var(--accent)}.hp-table thead th{font-size:12px}.hp-note{padding:10px 14px;background:#e8a0200f;border:1px solid rgba(232,160,32,.22);border-radius:6px;font-size:12px;color:var(--text-muted);line-height:1.8}.analysis-desc{color:var(--text-muted);font-size:12.5px;margin-bottom:12px}.analysis-controls{display:flex;flex-wrap:wrap;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;margin-bottom:14px;font-size:12.5px}.analysis-controls+.analysis-controls{margin-top:-8px}.analysis-controls label{display:flex;align-items:center;gap:6px;color:var(--text-muted)}.analysis-controls select{font:inherit;color:var(--text);background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:3px 6px}.analysis-stats{display:flex;gap:14px;color:var(--text-muted);font-variant-numeric:tabular-nums;margin-left:auto}.analysis-selbar{display:inline-flex;align-items:center;gap:8px;color:var(--text)}.analysis-empty{color:var(--text-muted);text-align:center;padding:32px 0;font-size:13px}.analysis-footnote{margin-top:18px;font-size:11px;color:var(--text-muted);line-height:1.7}.parts-layout{display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:start}@media (max-width: 900px){.parts-layout{grid-template-columns:1fr}}.parts-legend{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto}@media (max-width: 900px){.parts-legend{position:static;max-height:320px}}.parts-legend h2{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:8px;letter-spacing:.03em}.parts-legend-item{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:none;border:none;border-top:1px solid var(--border);padding:8px 6px;cursor:pointer;border-radius:6px}.parts-legend-item:first-of-type{border-top:none}.parts-legend-item:hover{background:var(--surface2)}.parts-legend-item.active{background:color-mix(in srgb,var(--pc) 15%,var(--surface))}.parts-legend-row{display:flex;align-items:center;gap:8px;margin-bottom:3px}.parts-dot{width:9px;height:9px;border-radius:3px;background:var(--pc);flex:none}.parts-pid{font-size:11px;font-weight:700;color:var(--text-muted);width:28px;flex:none}.parts-bar{flex:1;height:5px;border-radius:3px;background:var(--surface2);overflow:hidden}.parts-bar i{display:block;height:100%;border-radius:3px;background:var(--pc)}.parts-count{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums;width:36px;text-align:right;flex:none}.parts-seq{display:block;font-size:11px;color:var(--text-muted);line-height:1.5;word-break:break-all}.parts-list{display:flex;flex-direction:column;gap:10px;min-width:0}.parts-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px 12px;transition:opacity .15s}.parts-card.dim{opacity:.3}.parts-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;font-size:11.5px;color:var(--text-muted)}.parts-cid{font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.parts-chip{border:1px solid var(--border);border-radius:999px;padding:0 8px;font-size:10.5px;color:var(--text-muted)}.parts-meta{margin-left:auto;display:flex;gap:12px;color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:11px}.parts-flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;row-gap:8px}.parts-seg{display:inline-flex;align-items:center;gap:6px}.parts-sep{color:var(--text-muted);font-size:12px}.parts-block{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 6px;padding:4px 9px;border-radius:7px;border:1px solid color-mix(in srgb,var(--pc) 45%,transparent);border-left:3px solid var(--pc);background:color-mix(in srgb,var(--pc) 14%,var(--surface));cursor:pointer;font:inherit;color:inherit;text-align:left;transition:box-shadow .12s}.parts-block.sel{box-shadow:0 0 0 2px var(--pc)}.parts-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:var(--text-muted);letter-spacing:.04em;margin-right:2px}.parts-tk{font-size:12.5px;color:var(--text)}.parts-ar{color:var(--text-muted);font-size:11px}.parts-solo{display:inline-flex;align-items:center;padding:4px 9px;border-radius:7px;border:1px solid var(--border);background:var(--surface);font-size:12.5px;color:var(--text)}.flow-scale{display:inline-flex;align-items:center;gap:8px;color:var(--text-muted);font-size:11.5px}.flow-scale-step{display:inline-flex;align-items:center;gap:4px}.flow-scale-swatch{display:inline-block;width:22px;border-radius:2px}.flow-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:auto;max-height:74vh}.flow-wrap svg{display:block}.flow-ribbon{fill:none;opacity:.55;pointer-events:none;transition:opacity .15s}.flow-ribbon.hl{stroke:var(--accent)!important;opacity:.9}.flow-ribbon.dim{opacity:.08}.flow-block{transition:opacity .15s}.flow-block rect{fill:var(--surface2);stroke:var(--border);stroke-width:1.2;cursor:pointer}.flow-block:hover rect{stroke:var(--text-muted)}.flow-block.hl rect{stroke:var(--accent);stroke-width:2}.flow-block.pin rect{stroke:var(--accent);stroke-width:2.5}.flow-block.dim{opacity:.22}.flow-block text{pointer-events:none}.flow-head{font-size:9.5px;fill:var(--text-muted)}.flow-dmg{font-size:9.5px;font-weight:700;fill:var(--accent);font-variant-numeric:tabular-nums}.flow-move{font-size:11px;fill:var(--text)}.flow-more{font-size:10px;fill:var(--text-muted)}.flow-sit text{font-size:9.5px;font-weight:700;fill:#fff;letter-spacing:.03em}.flow-sit rect{fill:#c0392b}.flow-sit.sit-CH rect{fill:#e67e22}.flow-sit.sit-PC rect{fill:#c0392b}.flow-detail-sit{font-size:10px;font-weight:700;color:#fff;background:#c0392b;padding:1px 6px;border-radius:4px}.flow-toggle{flex-direction:row;align-items:center;gap:6px;white-space:nowrap}.flow-entry rect{fill:var(--surface2);stroke-width:1.5px}.flow-entry .flow-move{font-weight:700;font-size:10px}.flow-entry .flow-head{font-size:8.5px}.flow-entry.entry-NH rect{stroke:var(--text-muted)}.flow-entry.entry-NH .flow-move{fill:var(--text-muted)}.flow-entry.entry-CH rect{stroke:#e67e22}.flow-entry.entry-CH .flow-move{fill:#e67e22}.flow-entry.entry-PC rect{stroke:#c0392b}.flow-entry.entry-PC .flow-move{fill:#c0392b}.flow-entry.entry-GD rect{stroke:var(--accent2)}.flow-entry.entry-GD .flow-move{fill:var(--accent2)}.flow-pivot-panel{margin-bottom:14px}.flow-pivot-head{font-size:13px;font-weight:700;color:var(--accent2);border-left:3px solid var(--accent);padding:4px 2px 4px 8px;margin-bottom:6px}.flow-detail{margin-top:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.flow-detail-head{font-size:12.5px;font-weight:600;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.flow-sort{display:flex;align-items:center;gap:6px;font-weight:400;color:var(--text-muted)}.flow-sort select{font:inherit}.flow-detail-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:6px 0;border-top:1px solid var(--border);font-size:12px}.flow-detail-row:first-of-type{border-top:none}.flow-detail-route{flex-basis:100%;color:var(--text-muted);font-size:11.5px;line-height:1.5}
