:root{color-scheme:dark;--bg:#101319;--panel:#1a1e27;--input:#12161e;--text:#f4f6fa;--muted:#aab3c3;--line:#343d4e;--accent:#81b5ff;--button:#2563eb;--error:#ffabb5;--shadow:0 12px 38px #0002}
[data-theme=light]{color-scheme:light;--bg:#f3f5f9;--panel:#fff;--input:#f8f9fc;--text:#162238;--muted:#536078;--line:#d4dce9;--accent:#1854b5;--button:#205ad0;--error:#b8203b;--shadow:0 12px 38px #17345108}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;line-height:1.65}button,input,textarea{font:inherit}[hidden]{display:none!important}.wrap{width:min(1000px,calc(100% - 40px));margin:auto;padding:52px 0 20px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:32px}.eyebrow,.step{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--accent)}.eyebrow{margin:0 0 8px}h1{font-size:38px;line-height:1.25;margin:0 0 12px;letter-spacing:-.04em}h2{font-size:21px;letter-spacing:-.025em;line-height:1.45;margin:8px 0 14px}h3{font-size:16px;margin:24px 0 8px}p{margin:0}.muted{color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:28px;margin-bottom:20px;box-shadow:var(--shadow)}.login-panel{max-width:530px;margin:56px auto 80px;padding:36px}.login-panel form{margin-top:28px}.login-panel label{display:block;margin:18px 0 8px}label{font-size:14px;font-weight:650}.button{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--line);border-radius:5px;padding:11px 17px;cursor:pointer;color:var(--text);background:var(--panel);font-size:14px;font-weight:650;white-space:nowrap;min-height:44px}.button:hover{filter:brightness(1.12)}.primary{background:var(--button);border-color:var(--button);color:white}.secondary{background:var(--input)}.subtle{background:transparent}.wide{width:100%;margin-top:24px}.button:disabled{opacity:.5;cursor:wait}input,textarea{width:100%;background:var(--input);color:var(--text);border:1px solid var(--line);border-radius:5px;padding:12px 14px;min-width:0;font-size:15px}textarea{min-height:140px;resize:vertical}input:focus-visible,textarea:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.note{background:var(--input);border:1px solid var(--line);border-radius:6px;padding:16px;font-size:13px;color:var(--muted);margin-top:20px}.status{font-size:14px;color:var(--accent);white-space:pre-line;overflow-wrap:anywhere}.status:not(:empty){margin-top:12px}.status.error{color:var(--error)}.identity-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;min-width:0}.identity-heading>div{min-width:0}.identity-panel h2{overflow-wrap:anywhere}.team-roster{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.team-roster h3{margin:0 0 14px}.team-roster h3 .hint{margin-left:8px;font-weight:400}.roster-details{margin:0 0 16px;display:grid;gap:12px}.roster-details>div{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px}.roster-details dt{font-size:13px;color:var(--muted);padding-top:4px}.roster-details dd{margin:0;font-size:14px;overflow-wrap:anywhere}.roster-details>div:first-child dd{padding-top:3px}.member-list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.member-list li{padding:3px 12px;background:var(--input);border:1px solid var(--line);border-radius:4px;max-width:100%}.identity-panel h2{margin-bottom:5px}.badge{font-size:12px;color:var(--accent);border:1px solid var(--line);border-radius:calc(0.25lh + 3.5px);padding:6px 12px;white-space:nowrap}.source-panel{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}.source-panel h2{font-size:17px;margin-top:0;margin-bottom:5px}.source-panel .hint{flex-basis:100%}.hint{font-size:12px;color:var(--muted);line-height:1.7}.grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{display:flex;flex-direction:column;gap:8px}.full{grid-column:1/-1}.required,.optional{font-size:11px;font-weight:500;margin-left:5px}.required{color:var(--accent)}.optional{color:var(--muted)}.section-intro{font-size:14px;margin-bottom:22px}.upload-box{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;padding:20px;border:1px dashed var(--line);border-radius:6px;cursor:pointer}.upload-box strong{color:var(--accent)}.upload-box span{color:var(--muted);font-size:12px}.upload-box input{flex-basis:100%;padding:8px;margin-top:4px}.image-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}.image-card{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--input)}.image-card.selected{outline:2px solid var(--accent);outline-offset:2px}.image-card img{width:100%;aspect-ratio:16/10;object-fit:contain;background:var(--bg);display:block}.image-controls{padding:12px;display:flex;flex-direction:column;gap:10px}.thumbnail-choice{display:flex;align-items:center;gap:8px;cursor:pointer}.thumbnail-choice input{width:18px;height:18px;accent-color:var(--button);margin:0}.image-controls .button{min-height:34px;padding:5px 10px;font-size:12px}.image-source{color:var(--muted);font-size:11px}.preview-grid{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:center}.preview-grid img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:5px}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.save-bar{position:sticky;bottom:12px;padding:20px;border:1px solid var(--line);background:var(--panel);border-radius:8px;box-shadow:0 10px 38px #0003;z-index:5}.save-bar .status{margin:0 0 4px}.save-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:15px}footer{text-align:center;color:var(--muted);font-size:12px;margin:40px 0 16px}
@media(max-width:650px){.wrap{width:calc(100% - 28px);padding-top:28px}.page-head{gap:10px}h1{font-size:30px}.page-head .muted{font-size:14px}.page-head .button{font-size:12px;padding:8px 10px}.panel{padding:20px;border-radius:7px}.login-panel{margin-top:28px;padding:24px}.grid{grid-template-columns:1fr}.identity-heading{align-items:flex-start;flex-direction:column}.roster-details>div{grid-template-columns:1fr;gap:5px}.source-panel .button{width:100%}.image-list{grid-template-columns:repeat(2,minmax(0,1fr))}.image-controls{padding:9px}.thumbnail-choice{font-size:12px}.preview-grid{grid-template-columns:1fr}.preview-grid img{max-width:300px}.save-bar{position:static;padding:16px}.save-actions{display:grid;grid-template-columns:1fr 1fr}.save-actions .button{padding:10px 8px}h2{font-size:19px}}

.icon-heading{display:flex;align-items:center;gap:10px}
.icon-heading>span{min-width:0}
.icon-heading [data-lucide],.icon-heading .lucide{display:block;width:22px;height:22px;flex:none;stroke-width:1.8;color:var(--accent)}
h1.icon-heading{gap:12px}
h1.icon-heading [data-lucide],h1.icon-heading .lucide{width:32px;height:32px}
.step.icon-heading{margin-bottom:16px;gap:7px}
.step.icon-heading [data-lucide],.step.icon-heading .lucide{width:16px;height:16px}

/* Theme switch adapted from https://uiverse.io/Galahhad/heavy-dog-14
 * MIT License
 * Copyright - 2026 https://mui.com/material-ui/react-switch/
 * Copyright - 2026 Galahhad (Galahad)
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
.theme-switch{
  --switch-bg:rgb(135,150,165);--switch-width:48px;--switch-height:20px;
  --circle-diameter:32px;--circle-bg:rgb(0,56,146);
  --circle-inset:calc((var(--circle-diameter) - var(--switch-height))/2);
  position:relative;display:inline-flex;align-items:center;flex:none;
  width:var(--switch-width);height:44px;margin-top:12px;cursor:pointer;
}
.theme-switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;z-index:1;cursor:pointer}
.theme-switch .slider{display:block;width:var(--switch-width);height:var(--switch-height);background:var(--switch-bg);border-radius:999px;position:relative;pointer-events:none}
.theme-switch .circle{
  top:calc(var(--circle-inset)*-1);left:0;width:var(--circle-diameter);height:var(--circle-diameter);
  position:absolute;background:var(--circle-bg);border-radius:inherit;
  background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjAiIHdpZHRoPSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICAgIDxwYXRoIGZpbGw9IiNmZmYiCiAgICAgICAgZD0iTTkuMzA1IDEuNjY3VjMuNzVoMS4zODlWMS42NjdoLTEuMzl6bS00LjcwNyAxLjk1bC0uOTgyLjk4Mkw1LjA5IDYuMDcybC45ODItLjk4Mi0xLjQ3My0xLjQ3M3ptMTAuODAyIDBMMTMuOTI3IDUuMDlsLjk4Mi45ODIgMS40NzMtMS40NzMtLjk4Mi0uOTgyek0xMCA1LjEzOWE0Ljg3MiA0Ljg3MiAwIDAwLTQuODYyIDQuODZBNC44NzIgNC44NzIgMCAwMDEwIDE0Ljg2MiA0Ljg3MiA0Ljg3MiAwIDAwMTQuODYgMTAgNC44NzIgNC44NzIgMCAwMDEwIDUuMTM5em0wIDEuMzg5QTMuNDYyIDMuNDYyIDAgMDExMy40NzEgMTBhMy40NjIgMy40NjIgMCAwMS0zLjQ3MyAzLjQ3MkEzLjQ2MiAzLjQ2MiAwIDAxNi41MjcgMTAgMy40NjIgMy40NjIgMCAwMTEwIDYuNTI4ek0xLjY2NSA5LjMwNXYxLjM5aDIuMDgzdi0xLjM5SDEuNjY2em0xNC41ODMgMHYxLjM5aDIuMDg0di0xLjM5aC0yLjA4NHpNNS4wOSAxMy45MjhMMy42MTYgMTUuNGwuOTgyLjk4MiAxLjQ3My0xLjQ3My0uOTgyLS45ODJ6bTkuODIgMGwtLjk4Mi45ODIgMS40NzMgMS40NzMuOTgyLS45ODItMS40NzMtMS40NzN6TTkuMzA1IDE2LjI1djIuMDgzaDEuMzg5VjE2LjI1aC0xLjM5eiIgLz4KPC9zdmc+");
  background-repeat:no-repeat;background-position:center;
  transition:left 150ms cubic-bezier(.4,0,.2,1);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;
}
.theme-switch .circle::before{content:"";position:absolute;width:100%;height:100%;background:#ffffffbf;border-radius:inherit;transition:all 500ms;opacity:0}
.theme-switch input:checked+.slider .circle{
  left:calc(100% - var(--circle-diameter));
  background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjAiIHdpZHRoPSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICAgIDxwYXRoIGZpbGw9IiNmZmYiCiAgICAgICAgZD0iTTQuMiAyLjVsLS43IDEuOC0xLjguNyAxLjguNy43IDEuOC42LTEuOEw2LjcgNWwtMS45LS43LS42LTEuOHptMTUgOC4zYTYuNyA2LjcgMCAxMS02LjYtNi42IDUuOCA1LjggMCAwMDYuNiA2LjZ6IiAvPgo8L3N2Zz4=");
}
.theme-switch input:active+.slider .circle::before{transition:0s;opacity:1;width:0;height:0}
.theme-switch input:focus-visible+.slider{outline:3px solid var(--accent);outline-offset:5px}
@media(max-width:650px){h1.icon-heading .lucide,h1.icon-heading [data-lucide]{width:27px;height:27px}.theme-switch{margin-top:10px}}
@media(prefers-reduced-motion:reduce){.theme-switch .circle,.theme-switch .circle::before{transition:none}}
