:root{color-scheme:light;--bg:#f5f4ef;--card:#fffefa;--ink:#252924;--muted:#687168;--line:#dfe3dc;--accent:#8a6418;--accent2:#fff1bf;--danger:#a43d36}
    body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif}
    main{width:min(1180px,calc(100% - 28px));margin:28px auto 48px}.head{margin-bottom:18px}.head h1{font-size:clamp(22px,4vw,32px);margin:0 0 7px}.head p{margin:0;color:var(--muted);line-height:1.7}
    .card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 8px 24px #28301f0a}.input-grid{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:stretch}
    textarea{width:100%;min-height:210px;resize:vertical;border:1px solid var(--line);border-radius:12px;padding:13px;background:#fff;color:var(--ink);font:13px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;outline:none}textarea:focus,input:focus{border-color:#ba9348;box-shadow:0 0 0 3px #e8c97933}
    .side{display:flex;min-width:170px;flex-direction:column;gap:9px}.btn,.file-label{appearance:none;border:1px solid var(--line);border-radius:10px;padding:11px 14px;background:#fff;color:var(--ink);font:inherit;font-weight:650;text-align:center;cursor:pointer}.btn.primary{background:var(--accent);border-color:var(--accent);color:white}.btn:hover,.file-label:hover{filter:brightness(.98)}input[type=file]{display:none}
    .drop{margin-top:12px;border:1px dashed #b7bdb4;border-radius:10px;padding:10px;text-align:center;color:var(--muted);font-size:13px}.drop.over{background:var(--accent2);border-color:var(--accent)}
    .privacy{margin-top:10px;padding:10px 12px;border-radius:10px;background:#eef5ef;color:#49604d;font-size:12px;line-height:1.65}.privacy strong{color:#304b35}
    #message{min-height:22px;margin:12px 2px 0;color:var(--muted);font-size:14px}#message.error{color:var(--danger)}
    .settings{display:none;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.settings-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.settings-title{font-size:14px;font-weight:700}.saved{font-size:12px;color:var(--muted)}.unit-name-grid{display:grid;gap:9px}.unit-row{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px;align-items:center}.unit-row-label{font-size:13px;color:var(--muted);font-weight:700;white-space:nowrap}.unit-fields{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.unit-field{display:contents}.unit-field input{width:min(180px,28vw);min-width:120px;border:1px solid var(--line);border-radius:9px;padding:9px 10px;font:inherit;background:#fff}.unit-separator{color:#a4aaa3;font-size:13px}
    .notice{display:none;margin-top:12px;padding:12px 14px;border:1px solid #e2b64d;border-radius:11px;background:#fff8db;color:#6f5111;font-size:14px;line-height:1.65}.notice.error{display:block;border-color:#df9a94;background:#fff1ef;color:#87342e}.notice.warning{display:block}.notice-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:9px}.notice .btn{padding:8px 11px;background:#fff}.copy-state{font-size:12px}
    .results{display:none;margin-top:16px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}.toolbar input{flex:1;min-width:220px}.toolbar input,.toolbar select{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;background:#fff}.toolbar select{min-width:150px}.summary{color:var(--muted);font-size:14px}
    .column-settings{position:relative}.column-settings>summary{list-style:none}.column-settings>summary::-webkit-details-marker{display:none}.column-panel{position:absolute;right:0;z-index:8;width:min(430px,88vw);margin-top:7px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 10px 30px #20282022}.column-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.column-panel-title{font-size:14px;font-weight:700}.column-close{flex:none;padding:7px 12px}.column-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;max-height:290px;overflow:auto}.column-option{display:flex;align-items:center;gap:7px;font-size:13px}.column-option input{flex:none;min-width:0}.column-bulk{grid-column:1/-1;padding-bottom:9px;margin-bottom:2px;border-bottom:1px solid var(--line);font-weight:700}.column-note{margin:9px 0 0;color:var(--muted);font-size:12px}
    .table-wrap{overflow:auto;max-height:70vh;border:1px solid var(--line);border-radius:12px;background:#fff}.mobile-cards{display:none}.unit-nav{display:none;align-items:center;gap:8px;margin-bottom:10px}.unit-nav .btn{padding:9px 12px}.unit-nav select{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;background:#fff}.unit-card{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.unit-card.self{background:#f2fbf4}.unit-card.enemy{background:#fff5f4}.unit-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid var(--line);font-weight:750}.unit-card-body{display:grid;grid-template-columns:minmax(118px,42%) minmax(0,1fr)}.unit-card-row{display:contents}.unit-card-label,.unit-card-value{padding:10px 13px;border-bottom:1px solid #edf0eb}.unit-card-label{color:var(--muted);font-size:13px}.unit-card-value{text-align:right;font-weight:650;overflow-wrap:anywhere}.unit-card-row:last-child .unit-card-label,.unit-card-row:last-child .unit-card-value{border-bottom:0}.unit-card-value.empty{color:#b4bab3;font-weight:400}.unit-card-value.unknown-param,.unit-card-label.unknown-param{background:#fff6cf;color:#6d4a00}.unit-card-value.value-warning{background:#fff0a8;color:#6d4a00}.unit-identity{display:inline-flex;align-items:center;gap:8px;min-width:0}.unit-icon{width:34px;height:34px;flex:0 0 34px;border-radius:8px;object-fit:cover;background:#e9ece6}.unit-icon.small{width:27px;height:27px;flex-basis:27px;border-radius:6px}.unit-icon.detail-enabled{cursor:pointer;box-shadow:0 0 0 2px rgba(74,126,82,.18);transition:transform .15s,box-shadow .15s}.unit-icon.detail-enabled:hover,.unit-icon.detail-enabled:focus{transform:scale(1.06);box-shadow:0 0 0 3px rgba(74,126,82,.32);outline:none}.unit-field{display:inline-flex;align-items:center;gap:6px}.unit-field .unit-icon{display:none}.unit-field.has-icon .unit-icon{display:block}.detail-hint{margin:8px 0 0;color:var(--muted);font-size:12px}.view-toggle{display:none}table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px;white-space:nowrap}th,td{padding:9px 12px;border-right:1px solid #edf0eb;border-bottom:1px solid #edf0eb;text-align:right}th:first-child,td:first-child{text-align:left;position:sticky;left:0;background:inherit}thead th{position:sticky;top:0;z-index:2;background:#f1f2ed;color:#4c554d;cursor:pointer;user-select:none}thead th:first-child{z-index:3;background:#f1f2ed}thead th.unknown-param{background:#ffe39a;color:#6d4a00}tbody td.unknown-param{background:#fff6cf;color:#6d4a00;font-weight:650}tbody tr:nth-child(even){background:#fafbf8}tbody tr.self-row{background:#eaf6ec;color:#254d2d}tbody tr.enemy-row{background:#fbeceb;color:#682e2a}tbody tr:hover{background:#fff7dc}tbody tr.self-row:hover{background:#dcefe0}tbody tr.enemy-row:hover{background:#f6ddda}td.empty{color:#b4bab3}.sort{font-size:10px;margin-left:5px;color:#9ba19a}
    .detail-dialog{width:min(760px,calc(100% - 24px));max-height:88vh;padding:0;border:0;border-radius:16px;box-shadow:0 20px 70px rgba(20,30,22,.3);color:var(--text)}.detail-dialog::backdrop{background:rgba(24,30,25,.55)}.detail-shell{display:flex;flex-direction:column;max-height:88vh}.detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid var(--line);background:#f7f8f4}.detail-head h2{margin:0;font-size:19px}.detail-body{padding:16px;overflow:auto;background:#fff}.detail-meta{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:13px}.detail-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}.detail-topline .detail-meta{margin-bottom:0}.detail-chip,.skill-tag{display:inline-block;padding:3px 8px;border-radius:999px;background:#edf3eb;color:#3d6545;font-size:12px;font-weight:700}.star-buttons{display:flex;gap:1px;flex:0 0 auto}.star-button{padding:0;border:0;background:transparent;color:#c4cac1;font-size:23px;line-height:1;cursor:pointer}.star-button.selected{color:#e1a62d}.rank-buttons{display:flex;flex:0 0 auto}.rank-button{min-width:34px;padding:4px 7px;border:1px solid var(--line);background:#fff;color:var(--muted);font-size:12px}.rank-button:first-child{border-radius:7px 0 0 7px}.rank-button:last-child{border-radius:0 7px 7px 0}.rank-button+.rank-button{border-left:0}.rank-button.selected{background:var(--accent);color:#fff}.skill-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:11px}.detail-section{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.detail-section.wide{grid-column:1/-1}.detail-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:#f7f8f4;font-weight:750}.detail-section-content{padding:11px 12px;line-height:1.65;font-size:13px}.detail-empty{color:var(--muted)}.detail-levels{display:grid;gap:9px}.detail-level{padding:10px;border-radius:9px;background:#fafbf8;border:1px solid #edf0eb}.detail-level-label{display:block;margin-bottom:4px;color:var(--muted);font-size:12px;font-weight:700}.pathos-details{margin-top:11px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.pathos-details summary{cursor:pointer;padding:11px 12px;background:#f7f8f4;font-weight:750}.skill-number.offense{color:#e34d6b;font-weight:750}.skill-number.support{color:#438fc7;font-weight:750}.skill-keyword{color:#e27652;font-weight:750}
    .detail-head{display:block}.detail-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.detail-topline{position:static;display:flex;flex-wrap:wrap;top:auto;z-index:auto;margin:10px 0 0;padding:9px 0 0;border-top:1px solid var(--line);border-bottom:0;background:transparent;box-shadow:none;backdrop-filter:none}.star-button{font-size:0;color:#bfd0d1;text-shadow:0 1px 1px rgba(45,91,95,.1)}.star-button::before{content:"✧";font-size:24px}.star-button.selected{color:#55aeb7;text-shadow:0 1px 2px rgba(42,122,130,.24)}.star-button.selected::before{content:"✦"}.convex-effects{display:grid;gap:8px}.convex-effect{padding:7px 8px;border-radius:7px;background:#fafbf8;transition:opacity .15s}.convex-effect.inactive{opacity:.35;filter:grayscale(1)}
    .attribute-badge{display:inline-flex;align-items:center;gap:6px}.attribute-dot{width:11px;height:11px;border:1px solid #707770;border-radius:50%;background:var(--attribute-color,#bbb);box-shadow:0 0 0 1px #ffffff70 inset}.attr-red{--attribute-color:#d94b4b}.attr-green{--attribute-color:#43a765}.attr-blue{--attribute-color:#4385d0}.attr-white{--attribute-color:#fff}.attr-black{--attribute-color:#292d31}td.value-warning{background:#fff0a8!important;color:#6d4a00;font-weight:700}
    .affinity-action{display:none;margin-top:12px;text-align:center}.affinity-action .btn{min-width:190px}.affinity-analysis{display:none;margin-top:16px}.affinity-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}.affinity-title{font-size:18px;margin:0}.affinity-description{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.strategy-fields{display:grid;gap:7px}.strategy-field{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;font-weight:650}.strategy-field input{width:76px;border:1px solid var(--line);border-radius:9px;padding:8px 9px;font:inherit;text-align:right;background:#fff}.affinity-summary{margin:0 0 10px;color:var(--muted);font-size:13px}.affinity-table th,.affinity-table td{text-align:left}.affinity-table td.number{text-align:right}.affinity-table tr.changed{background:#fff7dc}.affinity-extra{font-weight:700;color:#8a6418}.affinity-extra.none{font-weight:400;color:var(--muted)}.affinity-mobile{display:none}.affinity-event{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.affinity-event+.affinity-event{margin-top:9px}.affinity-event.changed{border-color:#d9ac45;background:#fff9e8}.affinity-event-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;font-weight:700}.affinity-event-grid{display:grid;grid-template-columns:minmax(118px,44%) minmax(0,1fr);font-size:13px}.affinity-event-grid span{padding:5px 0}.affinity-event-grid span:nth-child(even){text-align:right;font-weight:650}.affinity-note{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.6}
    @media(max-width:700px){
      main{width:calc(100% - 18px);margin:14px auto 32px}
      .card{padding:12px;border-radius:13px}
      .input-grid{grid-template-columns:minmax(0,1fr)}
      .side{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:0}
      .side .primary{grid-column:1/-1}
      .side .btn,.side .file-label{min-width:0;padding-inline:8px}
      .unit-row{grid-template-columns:minmax(0,1fr)}
      .unit-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%}
      .unit-field{display:block;min-width:0}
      .unit-field input{width:100%;min-width:0}
      .unit-separator{display:none}
      .toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:8px}
      .toolbar>select,.toolbar>input{grid-column:1/-1;width:100%;min-width:0}
      .toolbar .summary{grid-column:1/-1;min-width:0;padding:2px 1px}
      .toolbar .btn,.toolbar .column-settings{width:100%;min-width:0}
      .toolbar .column-settings>summary{width:100%;padding-inline:8px}
      .view-toggle{display:inline-block}
      .column-settings{position:static}
      .column-panel{position:fixed;left:9px;right:9px;top:max(9px,env(safe-area-inset-top));bottom:max(9px,env(safe-area-inset-bottom));z-index:50;width:auto;max-width:none;margin:0;padding:14px;display:flex;flex-direction:column;border-radius:14px;overflow:hidden}
      .column-list{grid-template-columns:minmax(0,1fr);gap:10px;max-height:none;min-height:0;overflow:auto;overscroll-behavior:contain;padding-right:3px}
      .column-bulk{grid-column:1}
      .column-note{flex:none;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
      .table-wrap{display:none;max-height:none}
      .mobile-cards{display:block}
      .unit-nav{display:flex}
      .unit-card-body{grid-template-columns:minmax(104px,40%) minmax(0,1fr)}
      .unit-card-label,.unit-card-value{padding:10px 11px}
      .results.table-mode .table-wrap{display:block}
      .results.table-mode .mobile-cards,.results.table-mode .unit-nav{display:none}
      .results.card-mode .table-wrap{display:none}
      .results.card-mode .mobile-cards{display:block}
      .results.card-mode .unit-nav{display:flex}
      .affinity-head{align-items:stretch}.strategy-fields{width:100%}.affinity-desktop{display:none}.affinity-mobile{display:block}
    }
    @media(max-width:520px){.skill-grid{grid-template-columns:1fr}.detail-section.wide{grid-column:auto}}

.tool-title-row{display:flex;align-items:center;gap:12px}.tool-title-row h1{flex:1;min-width:0;margin:0}.home-button{flex:none;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--muted);font:inherit;font-size:12px;font-weight:700}.home-button:disabled{cursor:not-allowed;opacity:.48}@media(max-width:520px){.tool-title-row{align-items:flex-start}.home-button{padding:7px 9px}}