:root{color:#17201d;background:#eef2e7;font-family:Atkinson Hyperlegible,Trebuchet MS,sans-serif;font-size:16px;--map-display-width: 614px}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}.app-shell{min-height:100vh;background:linear-gradient(135deg,rgba(34,74,83,.12),transparent 34%),linear-gradient(315deg,rgba(179,71,55,.12),transparent 38%),#eef2e7}.intro-band{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:end;padding:36px clamp(18px,4vw,56px) 28px;border-bottom:1px solid rgba(23,32,29,.16)}.intro-band h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.2rem,5vw,4.8rem);font-weight:700;line-height:.95}.intro-band p{margin:0;max-width:58ch;color:#46534e;line-height:1.5}.eyebrow{margin-bottom:10px!important;color:#9a412f!important;font-size:.8rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.eyebrow-row{position:relative;display:inline-flex;gap:8px;align-items:center;margin-bottom:10px}.eyebrow-row .eyebrow{margin-bottom:0!important}.help-tip{position:relative;display:inline-flex}.help-tip button{display:inline-grid;place-items:center;width:20px;height:20px;padding:0;color:#fbfcf6;background:#2f6866;border:0;border-radius:50%;cursor:help;font-size:.78rem;font-weight:900;line-height:1}.help-tip-content{position:absolute;z-index:10;display:grid;gap:9px;top:calc(100% + 10px);left:50%;width:min(520px,calc(100vw - 36px));padding:12px 14px;color:#283430;background:#fbfcf6;border:1px solid rgba(23,32,29,.2);border-radius:8px;box-shadow:0 18px 42px #17201d2e;font-size:.9rem;font-weight:500;line-height:1.45;opacity:0;pointer-events:none;text-transform:none;transform:translate(-50%,4px);transition:opacity .12s ease,transform .12s ease}.help-tip:hover .help-tip-content,.help-tip:focus-within .help-tip-content{opacity:1;transform:translate(-50%)}.workspace{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:24px;padding:24px clamp(18px,4vw,56px) 56px}.control-panel,.output-panel{background:#ffffffb8;border:1px solid rgba(23,32,29,.16);border-radius:8px;box-shadow:0 18px 40px #17201d14}.control-panel{display:grid;align-content:start;gap:16px;padding:18px}.field{display:grid;gap:7px}.label{color:#46534e;font-size:.78rem;font-weight:800;text-transform:uppercase}select,input[type=text],input[type=number]{width:100%;min-height:42px;padding:0 11px;color:#17201d;background:#fbfcf6;border:1px solid rgba(23,32,29,.22);border-radius:6px}input:not([type]),input[type=search]{width:100%;min-height:42px;padding:0 11px;color:#17201d;background:#fbfcf6;border:1px solid rgba(23,32,29,.22);border-radius:6px}input[type=range]{width:100%;accent-color:#2f6866}.number-control{display:grid;grid-template-columns:minmax(120px,1fr) 82px;gap:10px;align-items:center}.moon-phase-control{grid-template-columns:minmax(120px,1fr) 17ch}.moon-phase-control output{min-height:42px;display:grid;align-items:center;padding:0 11px;color:#17201d;background:#fbfcf6;border:1px solid rgba(23,32,29,.22);border-radius:6px;font-weight:800}.segmented{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;background:#dfe8d9;border-radius:8px}.segmented button{min-height:36px;color:#46534e;background:transparent;border:0;border-radius:6px;cursor:pointer}.segmented button.active{color:#fbfcf6;background:#2f6866}.segmented.compact{width:112px}.toolbar{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:24px;align-items:center;padding:16px clamp(18px,4vw,56px) 0}.tab-bar{display:flex;gap:8px;justify-self:center}.tab-bar button{min-height:40px;padding:0 18px;color:#46534e;background:#ffffff94;border:1px solid rgba(23,32,29,.16);border-radius:8px;cursor:pointer;font-weight:800}.tab-bar button.active{color:#fbfcf6;background:#2f6866;border-color:#2f6866}.map-button{justify-self:end;min-height:40px;padding:0 16px;color:#fbfcf6;background:#2f6866;border:1px solid #2f6866;border-radius:8px;cursor:pointer;font-weight:800}.map-button:hover:not(:disabled){background:#245452}.map-button:disabled{color:#7b867f;background:#ffffff94;border-color:#17201d29;cursor:not-allowed}.toggle{display:flex;gap:10px;align-items:center;min-height:34px;color:#283430;font-weight:700}.toggle input{width:18px;height:18px;accent-color:#2f6866}.checkbox-row{display:flex;flex-wrap:wrap;gap:10px 16px}.dlc-checkbox{display:grid;justify-items:center;gap:6px;min-width:54px;color:#283430;font-size:.82rem;font-weight:800}.dlc-checkbox input{width:18px;height:18px;accent-color:#2f6866}.output-panel{min-width:0;padding:20px}.table-header{display:flex;gap:18px;align-items:start;justify-content:space-between;margin-bottom:14px}.table-header h2{margin:0 0 4px;font-family:Georgia,Times New Roman,serif;font-size:1.7rem}.table-header p{margin:0;color:#5a6761}.share-control{display:flex;gap:10px;align-items:center;justify-content:end;min-width:270px}.share-message{color:#46534e;font-size:.86rem;font-weight:800;opacity:0;pointer-events:none;transform:translate(4px);transition:opacity .16s ease,transform .16s ease;white-space:nowrap}.share-message.visible{opacity:1;transform:translate(0)}.share-button{display:grid;place-items:center;width:38px;height:38px;padding:0;color:#fbfcf6;background:#2f6866;border:1px solid #2f6866;border-radius:8px;cursor:pointer;opacity:1;transition:background .14s ease,border-color .14s ease,opacity .18s ease}.share-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.share-button:hover:not(:disabled){background:#245452;border-color:#245452}.share-button:disabled{color:#7b867f;background:#ffffff94;border-color:#17201d29;cursor:not-allowed}.table-wrap{overflow-x:auto;border:1px solid rgba(23,32,29,.14);border-radius:8px}table{width:100%;min-width:760px;border-collapse:collapse;background:#fbfcf6}th,td{padding:12px 14px;border-bottom:1px solid rgba(23,32,29,.12);text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left}th{color:#46534e;background:#e7edde;font-size:.78rem;text-transform:uppercase}tbody tr:last-child td{border-bottom:0}.link-button,.matrix-button{padding:0;color:#2f6866;background:transparent;border:0;cursor:pointer;font-weight:800;text-decoration:underline;text-underline-offset:2px}.matrix-button{width:100%;color:inherit;text-align:right;text-decoration:none}.link-button:hover,.matrix-button:hover{color:#9a412f}.wiki-table{min-width:1180px}.wiki-table th,.wiki-table td{text-align:left;white-space:normal;vertical-align:top}.source-link,.wiki-table a{color:#2f6866;font-weight:800}.source-link{align-self:center}.finder-wrap{max-height:68vh}.finder-table{min-width:980px}.finder-table th,.finder-table td{text-align:right}.finder-table th:first-child,.finder-table td:first-child{position:sticky;left:0;z-index:1;width:280px;max-width:280px;background:#fbfcf6;text-align:left;white-space:normal}.finder-table th:first-child{z-index:2;background:#e7edde}.finder-table .top-cell{color:#17201d;background:#f2e3b8;font-weight:900}.finder-table .top-cell .matrix-button{font-weight:900}.validation{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.validation span{padding:8px 10px;background:#dfe8d9;border-radius:6px;color:#283430;font-weight:800}.warnings{margin-top:14px;padding:10px 12px;color:#6f2c21;background:#f7d8cf;border:1px solid rgba(111,44,33,.25);border-radius:8px}.warnings p{margin:0}.app-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:0 clamp(18px,4vw,56px) 28px;color:#46534e;font-size:.86rem}.footer-notes{display:grid;gap:4px}.footer-notes p{margin:0}.app-footer button{color:#2f6866;background:transparent;border:0;cursor:pointer;font-weight:800;text-decoration:none}.app-footer button:hover{color:#9a412f;text-decoration:underline;text-underline-offset:2px}.support-overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:18px}.support-backdrop{position:absolute;inset:0;background:#17201d94}.support-dialog{position:relative;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(560px,100%);max-height:min(760px,calc(100vh - 36px));overflow:hidden;background:#fbfcf6;border:1px solid rgba(23,32,29,.22);border-radius:8px;box-shadow:0 24px 70px #17201d47}.support-header{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(23,32,29,.14)}.support-header h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.25rem}.support-header button{min-height:34px;padding:0 12px;color:#fbfcf6;background:#2f6866;border:0;border-radius:6px;cursor:pointer;font-weight:800}.support-body{display:grid;gap:14px;min-height:0;padding:18px;background:#f4f7ee}.support-body p{margin:0;color:#46534e;line-height:1.45}.support-dialog iframe{width:100%;height:min(660px,calc(100vh - 176px));padding:4px;background:#f9f9f9;border:0;border-radius:6px}.map-overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:18px}.map-backdrop{position:absolute;inset:0;background:#17201d94}.map-dialog{position:relative;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(980px,calc(100vw - 36px));max-height:min(860px,calc(100vh - 36px));overflow:hidden;background:#fbfcf6;border:1px solid rgba(23,32,29,.22);border-radius:8px;box-shadow:0 24px 70px #17201d47}.map-header{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(23,32,29,.14)}.map-header h2{margin:0 0 3px;font-family:Georgia,Times New Roman,serif;font-size:1.35rem}.map-header p{margin:0;color:#5a6761}.map-header button{min-height:34px;padding:0 12px;color:#fbfcf6;background:#2f6866;border:0;border-radius:6px;cursor:pointer;font-weight:800}.map-body{display:grid;align-content:start;gap:16px;min-height:0;overflow-y:auto;padding:18px;background:#f4f7ee}.map-source-switch{display:grid;grid-template-columns:repeat(2,minmax(0,150px));gap:4px;justify-content:center;padding:4px;background:#dfe8d9;border-radius:8px}.map-source-switch button{min-height:36px;color:#46534e;background:transparent;border:0;border-radius:6px;cursor:pointer;font-weight:800}.map-source-switch button.active{color:#fbfcf6;background:#2f6866}.map-list{display:grid;gap:18px;justify-items:center}.map-figure{display:grid;gap:8px;width:100%;margin:0;justify-items:center}.map-figure img{display:block;width:min(var(--map-display-width),100%);height:auto;background:#fbfcf6;border:1px solid rgba(23,32,29,.16);border-radius:6px}.map-figure figcaption,.map-empty{color:#46534e;font-size:.88rem}.map-figure a{color:#2f6866;font-weight:800}@media(max-width:880px){.intro-band,.workspace,.toolbar{grid-template-columns:1fr}.intro-band{align-items:start}.tab-bar,.map-button{justify-self:stretch}.app-footer{align-items:flex-start;flex-direction:column}}
