:root{
  color-scheme:dark;
  --bg:#071017;--panel:#0d1a23;--panel-2:#12232e;--line:#223744;
  --text:#edf7f7;--muted:#8fa7ad;--ice:#90e4df;--ice-strong:#39c8c2;
  --gold:#e5c177;--danger:#ff806f;--physical:#e6a477;--magic:#9e9af6;
  font-family:Inter,"Noto Sans JP","Yu Gothic UI",sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at 30% -10%,#153342 0,transparent 34rem),var(--bg);color:var(--text);min-height:100vh}
button,input{font:inherit}
a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.masthead{height:72px;padding:0 max(24px,calc((100vw - 1240px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(6,15,21,.88);backdrop-filter:blur(16px);position:sticky;top:0;z-index:20}
.identity{display:flex;align-items:center;gap:11px;text-decoration:none}.identity-mark{font-size:34px;color:var(--ice);line-height:1}.identity span:last-child{display:flex;flex-direction:column}.identity strong{font-size:17px;letter-spacing:.08em}.identity small{font-size:11px;color:var(--muted);letter-spacing:.12em}
.masthead nav{display:flex;gap:8px}.masthead nav a{text-decoration:none;color:var(--muted);font-size:14px;padding:9px 13px;border-radius:9px}.masthead nav a:hover,.masthead nav a.active{background:var(--panel-2);color:var(--text)}
main{width:min(1240px,calc(100% - 32px));margin:auto;padding:58px 0 70px}
.hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:end;margin-bottom:34px}.eyebrow,.panel-heading p:first-child,.dialog-header p{color:var(--ice);font-size:11px;font-weight:800;letter-spacing:.18em;margin:0 0 10px}.hero h1{font-size:clamp(32px,5vw,58px);line-height:1.12;letter-spacing:-.035em;margin:0;max-width:770px}.lead{color:#b7cbcf;max-width:750px;line-height:1.8;margin:20px 0 0}
.hero-stats{display:grid;grid-template-columns:repeat(3,100px);border:1px solid var(--line);border-radius:16px;overflow:hidden;background:rgba(13,26,35,.78)}.hero-stats div{padding:17px 12px;text-align:center}.hero-stats div+div{border-left:1px solid var(--line)}.hero-stats strong{display:block;color:var(--ice);font-size:26px}.hero-stats span{color:var(--muted);font-size:11px}
.control-deck{position:sticky;top:84px;z-index:10;border:1px solid var(--line);border-radius:16px;background:rgba(10,23,31,.94);backdrop-filter:blur(16px);box-shadow:0 16px 36px rgba(0,0,0,.22);overflow:hidden;margin-bottom:20px}.phase-tabs{display:grid;grid-template-columns:repeat(5,1fr)}.phase-tab{appearance:none;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;color:var(--muted);padding:14px 10px;cursor:pointer}.phase-tab:last-child{border-right:0}.phase-tab strong{display:block;color:inherit;font-size:13px}.phase-tab small{font-size:10px}.phase-tab.active{color:var(--text);background:linear-gradient(180deg,rgba(57,200,194,.17),rgba(57,200,194,.04));box-shadow:inset 0 -2px var(--ice-strong)}
.filters{display:flex;align-items:center;gap:12px;padding:12px}.search-field{flex:1}.filters input,.skill-filters input{width:100%;background:#08151d;border:1px solid var(--line);border-radius:10px;color:var(--text);padding:10px 12px;outline:none}.filters input:focus,.skill-filters input:focus{border-color:var(--ice-strong);box-shadow:0 0 0 3px rgba(57,200,194,.12)}.toggle{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;white-space:nowrap}.toggle input{accent-color:var(--ice-strong)}.secondary-button{border:1px solid #3d5e6b;background:#15303c;color:var(--text);padding:10px 14px;border-radius:10px;cursor:pointer;white-space:nowrap}.secondary-button:hover{border-color:var(--ice)}
.timeline-panel{border:1px solid var(--line);border-radius:18px;background:rgba(10,22,30,.72);overflow:hidden}.panel-heading{display:flex;justify-content:space-between;align-items:end;padding:25px 28px;border-bottom:1px solid var(--line)}.panel-heading h2{font-size:25px;margin:0}.panel-heading>p{color:var(--muted);font-size:11px;margin:0}.timeline{padding:8px 20px 20px}.section-heading{position:sticky;top:184px;z-index:3;margin:12px -20px 0;padding:8px 28px;background:#0b1820;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--gold);font-size:11px;font-weight:800;letter-spacing:.1em}
.event-card{display:grid;grid-template-columns:84px minmax(0,1fr) 38px;gap:15px;align-items:center;padding:14px 8px;border-bottom:1px solid rgba(34,55,68,.72)}.event-card:last-child{border-bottom:0}.event-card:hover{background:rgba(144,228,223,.025)}.event-time{font-variant-numeric:tabular-nums}.phase-time{display:block;font-size:18px;font-weight:750}.total-time{color:var(--muted)}.event-title-row{display:flex;align-items:center;gap:8px}.event-title-row h3{font-size:14px;margin:0}.damage-type{font-size:9px;text-transform:uppercase;border:1px solid var(--line);padding:3px 6px;border-radius:99px;color:var(--muted)}.damage-type.magic{border-color:#514d91;color:#c0bdfb}.damage-type.physical{border-color:#795137;color:#ffc296}.event-meta{display:flex;gap:10px;color:var(--muted);font-size:11px;margin-top:5px}.event-meta .danger{color:var(--danger)}.add-action{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;color:var(--ice);background:var(--panel-2);cursor:pointer;font-size:19px}.add-action:hover{border-color:var(--ice)}
.assignments{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.assignment{display:inline-flex;align-items:center;gap:3px;border:1px solid #294652;background:#102832;color:var(--text);border-radius:8px;padding:3px}.assignment-info{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--text);padding:1px;cursor:pointer}.assignment img{width:22px;height:22px;border-radius:4px}.assignment span{font-size:11px}.assignment .remove{border:0;background:transparent;color:var(--muted);font-size:15px;padding:3px 5px;cursor:pointer}.assignment .remove:hover{color:var(--danger)}.assignment.conflict{border-color:#875043;background:#321d1a}.assignment.conflict::after{content:"再使用待ち";font-size:9px;color:var(--danger);padding-right:3px}
.empty-state{padding:50px;text-align:center;color:var(--muted)}.sources{margin-top:24px;padding:25px 28px;border:1px solid var(--line);border-radius:16px;background:rgba(13,26,35,.6)}.sources h2{font-size:15px;margin:0 0 8px}.sources p{font-size:12px;color:var(--muted);line-height:1.75;margin:0}.source-links{display:flex;gap:16px;margin-top:14px}.source-links a{font-size:12px;color:var(--ice)}
dialog{border:0;padding:0;background:transparent;color:var(--text)}dialog::backdrop{background:rgba(2,7,10,.76);backdrop-filter:blur(5px)}.skill-dialog{width:min(980px,calc(100% - 24px));max-height:88vh}.dialog-shell{background:#0b1922;border:1px solid #2b4653;border-radius:18px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.6)}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line)}.dialog-header h2{margin:0;font-size:22px}.icon-button{border:1px solid var(--line);background:var(--panel-2);color:var(--text);width:36px;height:36px;border-radius:9px;font-size:20px;cursor:pointer}.skill-filters{display:grid;grid-template-columns:1fr auto;gap:14px;padding:14px 24px;border-bottom:1px solid var(--line)}.skill-groups{display:flex;gap:5px}.skill-group{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:8px;padding:8px 10px;font-size:11px;cursor:pointer}.skill-group.active{background:#16313c;color:var(--ice);border-color:#37606b}.skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:18px 24px 26px;max-height:60vh;overflow:auto}.skill-card{display:grid;grid-template-columns:46px 1fr;gap:10px;text-align:left;border:1px solid var(--line);background:#0e202a;color:var(--text);padding:10px;border-radius:11px;cursor:pointer}.skill-card:hover,.skill-card:focus-visible{border-color:var(--ice-strong);background:#12303a}.skill-card img{width:46px;height:46px;border-radius:8px}.skill-card strong{display:block;font-size:12px}.skill-card small{color:var(--muted);font-size:10px}.skill-card p{grid-column:1/-1;margin:0;color:#b3c6ca;font-size:10px;line-height:1.55}.skill-card[aria-disabled="true"]{opacity:.45}
.detail-dialog{width:min(540px,calc(100% - 24px))}.detail-card{border:1px solid #31505d;border-radius:17px;background:#0b1922;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.65)}.detail-head{display:flex;gap:14px;align-items:center}.detail-head img{width:64px;height:64px;border-radius:11px}.detail-head h2{font-size:20px;margin:0}.detail-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.detail-effect{font-size:14px;line-height:1.8;color:#ccdcdf;margin:22px 0}.detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.detail-stats div{background:#102630;border-radius:10px;padding:11px}.detail-stats small{display:block;color:var(--muted);font-size:9px}.detail-stats strong{font-size:13px}.detail-actions{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.detail-actions a{color:var(--ice);font-size:11px}.detail-actions button{border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text);padding:9px 14px;cursor:pointer}
@media(max-width:800px){main{width:min(100% - 20px,700px);padding-top:32px}.hero{grid-template-columns:1fr;gap:24px}.hero-stats{grid-template-columns:repeat(3,1fr)}.control-deck{top:76px}.filters{flex-wrap:wrap}.search-field{flex-basis:100%}.phase-tab small{display:none}.panel-heading{align-items:start}.panel-heading>p{max-width:120px;text-align:right}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-filters{grid-template-columns:1fr}.skill-groups{overflow:auto}.section-heading{top:221px}}
@media(max-width:540px){.masthead{height:62px;padding:0 12px}.identity small{display:none}.masthead nav a{padding:8px;font-size:12px}.hero h1{font-size:34px}.lead{font-size:13px}.hero-stats strong{font-size:21px}.event-card{grid-template-columns:58px minmax(0,1fr) 34px;gap:9px}.timeline{padding-left:10px;padding-right:10px}.phase-time{font-size:15px}.event-title-row{align-items:flex-start;flex-direction:column;gap:4px}.skill-grid{grid-template-columns:1fr;padding:14px}.dialog-header,.skill-filters{padding-left:16px;padding-right:16px}.panel-heading{padding:20px 18px}.section-heading{margin-left:-10px;margin-right:-10px;padding-left:18px}.sources{padding:20px}.source-links{flex-direction:column;gap:8px}}

/* Compact mitigation planner */
main{padding-top:30px}.compact-hero{align-items:center;margin-bottom:18px}.compact-hero h1{font-size:clamp(27px,4vw,43px)}.compact-hero .lead{margin-top:10px;line-height:1.55}.compact-hero .hero-stats div{padding:12px 10px}.compact-hero .hero-stats strong{font-size:22px}
.control-deck{top:78px}.party-button{border-color:#4d716f;color:var(--ice)}
.panel-heading{padding:16px 22px}.panel-heading h2{font-size:21px}.table-head{display:grid;grid-template-columns:78px minmax(260px,1fr) 130px 150px 38px;gap:12px;padding:9px 28px;border-bottom:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.05em;background:#0a171f}
.timeline{padding:0 20px 14px}.section-heading{position:static;top:auto;z-index:auto;margin-top:0;padding-top:7px;padding-bottom:7px}.event-card{grid-template-columns:78px minmax(260px,1fr) 130px 150px 38px;gap:12px;padding:10px 8px;min-height:68px}.event-title-row h3{font-size:13px}.event-meta{margin-top:3px;flex-wrap:wrap}.event-meta .target-state,.event-meta .aa-count{padding:1px 5px;border-radius:99px;border:1px solid #31505d;font-size:9px}.event-meta .target-on{color:#9edfd8}.event-meta .target-off{color:#f2c480;border-color:#705d37}.event-meta .aa-count{color:#c8d9ea;border-color:#3b5165}.assignments{margin-top:6px}.phase-time{font-size:16px}.damage-cell{text-align:right;font-variant-numeric:tabular-nums}.damage-cell strong{display:block;font-size:14px}.damage-cell small{display:block;color:var(--muted);font-size:9px}.damage-cell .danger{color:var(--danger)}.muted{color:var(--muted)}
.survival-status{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:43px;border-radius:9px;padding:7px 9px;text-align:left;cursor:pointer}.survival-status strong{font-size:11px}.survival-status small{font-size:9px;margin-top:2px}.survival-status.safe{color:#aaf0cd;border:1px solid #285c4b;background:#102c25}.survival-status.unsafe{color:#ffb0a4;border:1px solid #74443b;background:#321d1a}.survival-status:hover{filter:brightness(1.12)}
.party-dialog,.survival-dialog{width:min(780px,calc(100% - 24px));max-height:90vh}.party-shell,.survival-shell{overflow:auto;max-height:88vh}.party-help{margin:0;padding:16px 24px 8px;color:var(--muted);font-size:12px}.party-grid{padding:10px 24px 20px;display:grid;gap:7px}.party-row{display:grid;grid-template-columns:40px minmax(120px,1fr) auto 130px;gap:10px;align-items:center;background:#0e202a;border:1px solid var(--line);border-radius:10px;padding:8px 10px}.party-row>strong{color:var(--ice)}.party-row>span{font-size:10px;color:var(--muted)}.party-row input,.survival-controls input{width:100%;background:#08151d;border:1px solid var(--line);color:var(--text);border-radius:7px;padding:8px}.party-hp{text-align:right;font-variant-numeric:tabular-nums}.party-footer{display:flex;justify-content:space-between;padding:14px 24px 22px;border-top:1px solid var(--line)}.primary-button{border:1px solid #3d8a81;background:#17635c;color:white;padding:9px 15px;border-radius:9px;cursor:pointer}.text-button{border:0;background:transparent;color:var(--ice);cursor:pointer;padding:8px}
.party-presets{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 24px 24px}.party-presets label{display:grid;grid-template-columns:1fr 130px;gap:14px;align-items:center;background:#0e202a;border:1px solid var(--line);border-radius:11px;padding:14px}.party-presets span{display:flex;flex-direction:column}.party-presets strong{font-size:13px}.party-presets small{color:var(--muted);font-size:9px;margin-top:3px}.party-presets input{width:100%;background:#08151d;border:1px solid var(--line);color:var(--text);border-radius:7px;padding:9px;text-align:right;font-variant-numeric:tabular-nums}
.survival-controls{display:grid;grid-template-columns:1fr 1fr 145px 125px auto;gap:10px;align-items:end;padding:16px 24px;border-bottom:1px solid var(--line)}.survival-controls label{font-size:10px;color:var(--muted)}.survival-controls input,.survival-controls select{display:block;margin-top:5px;font-size:14px;color:var(--text);width:100%;background:#08151d;border:1px solid var(--line);border-radius:7px;padding:8px}.mitigation-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:16px 24px 8px}.mitigation-summary div{background:#102630;border-radius:9px;padding:10px}.mitigation-summary small{display:block;color:var(--muted);font-size:9px}.mitigation-summary strong{font-size:17px}.mitigation-summary p{grid-column:1/-1;margin:2px 0 0;color:#b9ced1;font-size:10px}.survival-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;padding:10px 24px 18px}.survival-member{display:flex;justify-content:space-between;align-items:center;border-radius:9px;padding:10px 12px;border:1px solid var(--line)}.survival-member>span{display:flex;flex-direction:column}.survival-member>span:last-child{text-align:right}.survival-member small{color:var(--muted);font-size:9px}.survival-member.alive{background:#102820;border-color:#285747}.survival-member.dead{background:#321d1a;border-color:#704238}.survival-member.dead>span:last-child strong{color:var(--danger)}.estimate-note{padding:0 24px 22px;margin:0;color:var(--muted);font-size:10px;line-height:1.6}
.assignment.inactive{opacity:.48;border-style:dashed}.assignment.inactive::after{content:"対象不可";font-size:9px;color:#f2c480;padding-right:3px}.skill-card.target-blocked{border-color:#6e5836;background:#251f16}.skill-card.target-blocked p{color:#f2c480}
@media(max-width:900px){.table-head{display:none}.event-card{grid-template-columns:65px minmax(0,1fr) 120px 38px}.damage-cell{display:none}.survival-status{grid-column:3}.add-action{grid-column:4}.survival-controls{grid-template-columns:1fr 1fr}.survival-controls .text-button{grid-column:1/-1}}
@media(max-width:650px){main{padding-top:20px}.compact-hero{grid-template-columns:1fr}.compact-hero .hero-stats{display:none}.filters{gap:7px}.secondary-button{flex:1}.timeline{padding-left:10px;padding-right:10px}.event-card{grid-template-columns:54px minmax(0,1fr) 34px;grid-template-rows:auto auto;align-items:start;padding:12px 4px}.event-time{grid-column:1;grid-row:1/3}.event-main{grid-column:2;grid-row:1}.survival-status{grid-column:2;grid-row:2;min-height:36px;flex-direction:row;gap:8px;align-items:center;margin-top:7px}.add-action{grid-column:3;grid-row:1/3;align-self:center}.section-heading{margin-left:-10px;margin-right:-10px}.party-row{grid-template-columns:36px 1fr}.party-row>span{display:none}.party-presets{grid-template-columns:1fr}.survival-grid{grid-template-columns:1fr}.survival-status small{margin:0}.panel-heading>p{display:none}}
