@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
/* Dark palette: charcoal surfaces, gray borders, and off-white text. */
:root{font-family:'DM Sans',sans-serif;color:#323232;background:#f3f3f3;font-size:16px;--accent:#383838;--secondary:#717171;--line:#dbdbdb}*{box-sizing:border-box}body{margin:0}header{padding:24px 5vw;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:12px;color:var(--accent);font-size:28px;text-decoration:none}.brand span{font-size:14px;font-weight:700;letter-spacing:.12em}.brand small{display:block;letter-spacing:0;font-size:14px;font-weight:400;margin-top:4px}.private,.muted{color:#6f6f6f;font-size:14px;line-height:1.6}main{max-width:1320px;margin:auto;padding:40px 5vw 60px}.intro{padding:10px 0 28px;position:relative}.intro:after{content:'✦';position:absolute;right:7%;top:5%;font-size:145px;font-family:serif;color:#d7d7d7;font-weight:normal}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--secondary)}h1{font-family:'DM Sans',sans-serif;font-size:64px;line-height:1.02;letter-spacing:-.02em;font-weight:400;margin:14px 0}h1 em{color:#797979;font-style:normal}.intro p{line-height:1.6;color:#6d6d6d}.card{background:#fefefe;border:1px solid var(--line);border-radius:12px;padding:25px;box-shadow:0 3px 12px #32323204}.settings{display:grid;grid-template-columns:1fr .7fr 1.3fr;gap:24px;margin-bottom:24px}.workspace{display:grid;grid-template-columns:1fr 1.35fr;gap:24px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px}h2{font-family:'DM Sans',sans-serif;font-size:28px;font-weight:600;margin:5px 0 0}h3{font-size:17px}label{display:block;font-size:14px;font-weight:600}input,select,textarea{font:inherit;font-size:16px;background:#fefefe;border:1px solid #d6d6d6;border-radius:6px;padding:10px 12px;color:#323232;max-width:100%}label input,label select{display:block;width:100%;margin-top:8px}input:focus,select:focus,button:focus-visible{outline:2px solid #878787;outline-offset:3px}button,.file-button{background:var(--accent);color:white;border:1px solid var(--accent);padding:11px 16px;border-radius:6px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.ghost,.file-button{background:transparent;color:var(--accent);border-color:var(--line)}button:hover{filter:brightness(1.15)}button:disabled{opacity:.5;cursor:wait}.pill{border-radius:50px;background:#eeeeee;color:#686868;padding:6px 12px;font-size:13px;white-space:nowrap}.drop{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px dashed #acacac;border-radius:8px;padding:26px 15px;background:#f4f4f4;cursor:pointer;gap:8px}.drop span{font-size:14px;color:#6e6e6e;font-weight:400;line-height:1.5}.drop .upload-icon{font-size:28px;color:var(--accent)}.drop input{width:100%;font-size:14px}.manual{display:grid;grid-template-columns:1fr 65px 44px;gap:8px;align-items:end;margin:20px 0}.manual button{padding:10px}.inventory-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--line)}.inventory-row span{flex:1}.inventory-row input{width:65px}.icon{padding:7px 10px;background:transparent;color:#727272;border:0;font-size:18px}.character{border-top:1px solid var(--line);padding:16px 0}.character-top{display:flex;align-items:center;gap:10px}.character-top strong{flex:1}.character-top input[type=checkbox]{accent-color:var(--accent);width:18px;height:18px}.heart{width:64px;padding:7px}.requirement{font-size:14px;line-height:1.6;color:#707070;margin:8px 0 0 28px}.blocked{color:#6b6b6b}.ready{color:#676767}#search{width:100%;margin-bottom:10px}#characterRows{max-height:580px;overflow:auto;padding-right:4px}summary{font-size:14px;color:#646464;cursor:pointer;margin:12px 0}details label{margin:10px 0}textarea{width:100%;line-height:1.5}#review{background:#f0f0f0;padding:14px;border-radius:8px;margin:15px 0}.review-row{display:grid;grid-template-columns:1fr 65px 35px;gap:5px;margin:8px 0}.review-row input{min-width:0}#scanStatus{font-size:14px;line-height:1.5}.plan{margin-top:24px}.move{display:grid;grid-template-columns:40px 1fr auto;gap:15px;padding:20px 0;border-top:1px solid var(--line);align-items:center}.move-number{background:#efefef;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;color:#7d7d7d}.move strong{display:block;font-size:17px;margin:4px 0}.move p{margin:5px 0;font-size:14px;line-height:1.5;color:#727272}.move .eyebrow{font-size:12px}footer{font-size:14px;color:#767676;line-height:1.7;margin-top:25px}a{color:var(--accent)}.file-button{display:inline-block;margin:8px}.file-button input{display:none}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--accent);color:white;padding:12px 20px;border-radius:8px;display:none;max-width:90vw}.empty{padding:20px 0;color:#7d7d7d;font-size:14px}.extras{display:flex;gap:8px;align-items:center;font-weight:400;font-size:14px}.extras input{width:auto}.rules{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rules textarea,.rules button{grid-column:1/-1}@media(max-width:760px){header{padding:18px 5vw}.private{font-size:12px;max-width:90px;text-align:right}main{padding-top:24px}h1{font-size:48px}.intro:after{font-size:90px;right:0;top:30px}.settings{gap:12px;grid-template-columns:1fr 1fr}.settings label:last-child{grid-column:auto}.workspace{grid-template-columns:1fr}.card{padding:20px}.move{grid-template-columns:32px 1fr}.move button{grid-column:2;justify-self:start}.plan .section-title{align-items:flex-start;flex-direction:column}#characterRows{max-height:520px}.brand span{font-size:12px}}@media(prefers-reduced-motion:no-preference){button{transition:filter .2s}}

:root{color-scheme:dark;color:#ededed;background:#141414;--accent:#d1d1d1;--secondary:#c4c4c4;--line:#3d3d3d}
body{background:#141414}
.card{background:#202020;box-shadow:0 3px 12px #00000018}
.private,.muted,.intro p,.requirement,.move p,footer,.empty{color:#b8b8b8}
h1 em{color:#c0c0c0}
.intro:after{color:#3b3b3b}
input,select,textarea{background:#181818;border-color:#4c4c4c;color:#ededed}
input::placeholder,textarea::placeholder{color:#ababab;opacity:1}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid #c4c4c4;outline-offset:3px}
button{background:#d1d1d1;border-color:#d1d1d1;color:#191919}
.ghost,.file-button{background:transparent;color:#d6d6d6;border-color:#4c4c4c}
.icon{background:transparent;color:#cdcdcd;border:0}
.pill{background:#303030;color:#d4d4d4}
.drop{background:#252525;border-color:#7b7b7b}
.drop span{color:#bdbdbd}
.drop .upload-icon{color:#d6d6d6}
input::file-selector-button{font:inherit;background:#393939;color:#ededed;border:1px solid #6b6b6b;border-radius:5px;padding:7px 10px;margin-right:8px}
.blocked{color:#c8c8c8}
.ready{color:#e0e0e0}
summary{color:#cecece}
#review{background:#292929}
.move-number{background:#323232;color:#cbcbcb}
#toast{background:#d1d1d1;color:#191919;box-shadow:0 4px 20px #00000055}
::selection{background:#636363;color:#ffffff}

.page-title{font-family:'DM Sans',sans-serif;font-size:28px;font-weight:600;line-height:1.3;letter-spacing:0;margin:0 0 24px}
#inventoryRows .inventory-row{padding:4px 0;gap:8px;font-size:14px;min-height:40px}#inventoryRows .inventory-row>span{flex:1;min-width:0}#inventoryRows .inventory-row input{width:54px;height:32px;padding:4px 7px;font-size:14px}#inventoryRows .inventory-row .icon{width:32px;height:32px;padding:4px;flex:0 0 32px}
.recruits{display:flex;flex-direction:column;min-height:0}.recruits>:not(#characterRows){flex-shrink:0}.recruits #characterRows{border-top:1px solid #555;border-bottom:1px solid #555;flex:1 1 0;height:0;min-height:320px;max-height:none;overflow-y:auto;scrollbar-gutter:stable}@media(max-width:760px){.recruits #characterRows{flex:none;height:520px;min-height:0;max-height:520px}}
.character-controls{display:flex;align-items:flex-end;gap:12px;margin-bottom:12px}.character-controls input{flex:1;min-width:0}.character-controls #search{margin-bottom:0;height:44px}.character-controls label{flex:0 0 150px}.character-controls select{display:block;width:100%;height:44px}@media(max-width:480px){.character-controls{flex-wrap:wrap}.character-controls input{flex-basis:100%}.character-controls label{flex-basis:100%}}

.settings{grid-template-columns:1fr .55fr .65fr .75fr}.shopping{margin-top:24px}.stock-form{display:grid;grid-template-columns:1fr 1fr 85px auto;gap:10px;align-items:end;margin:18px 0}.stock-form>label{margin:0}.stock-location{display:block;color:#b8b8b8;font-size:13px;margin-top:4px}.purchase-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:900px){.settings{grid-template-columns:repeat(3,1fr)}.settings label:last-child{grid-column:auto}.stock-form{grid-template-columns:1fr 1fr}.stock-form button{align-self:end}}@media(max-width:760px){.purchase-actions{grid-column:2}.settings{grid-template-columns:1fr 1fr}.settings label:last-child{grid-column:1/-1}}

.character-portrait{position:relative;display:grid;place-items:center;width:68px;height:68px;flex:0 0 68px;color:#c4c4c4;font-size:14px}.character-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.character-portrait:has(img:not([hidden]))>span{visibility:hidden}.character-portrait img[hidden]{display:none}.character-top strong{min-width:0;overflow-wrap:anywhere}@media(max-width:760px){.character-top{display:grid;grid-template-columns:56px minmax(0,1fr) 30px 12px 52px;gap:6px}.character-portrait{width:56px;height:56px}.character-top .icon{padding:5px}.character-top .heart{width:52px;padding:7px 4px}}
.reaction-summary{margin:14px 0;font-size:.85rem;line-height:1.5}.reaction-summary>div{margin:10px 0}.reaction-summary p{margin:3px 0;overflow-wrap:anywhere}.reaction-summary strong{font-size:.85rem}

#plannerAbout{padding:16px;margin:12px 0 18px;border:1px solid var(--line);border-radius:8px}#plannerAbout p{font-size:14px;line-height:1.6;color:#c4c4c4}#plannerAbout h3{margin-top:0}
.support-link{margin:0 0 16px}.support-link a{display:inline-block;padding:8px 12px;border:1px solid var(--line);border-radius:6px;text-decoration:none}.support-link a:hover{background:#393939}
.searched-reactions{font-size:14px;line-height:1.5;margin:10px 0 0;color:#c4c4c4;overflow-wrap:anywhere}.searched-reactions strong{color:#ededed}#characterSearchHint{margin:0 0 12px}
#aboutPlanner{display:inline-flex;align-items:center;gap:6px}.info-icon{display:block;flex:0 0 18px}
.assignment-recipient{display:flex;align-items:center;gap:8px}.assignment-recipient .character-portrait{width:36px;height:36px;flex:0 0 36px;font-size:11px}.assignment-recipient strong{min-width:0;overflow-wrap:anywhere}

.character-top .support-icon{width:30px;height:30px;object-fit:contain;flex:0 0 30px}.character-top .icon{font-size:26px;line-height:1;width:30px;min-width:30px;padding:2px}@media(max-width:760px){.character-top{grid-template-columns:56px minmax(0,1fr) 30px 30px 52px}.character-top .icon{padding:2px}}

.favorite-star{display:block;width:28px;height:28px;fill:none;stroke:#b8b8b8;stroke-width:1.25;stroke-linejoin:round}.character-top .icon[aria-pressed="true"] .favorite-star{fill:#f4c84b;stroke:#f4c84b}

.brand{align-items:center}.brand-gift{display:block;width:40px;height:40px;object-fit:contain;flex:0 0 40px}.support-indicator{position:relative;display:flex;width:30px;height:30px;flex:0 0 30px}.support-check{position:absolute;right:-5px;bottom:-2px;font-size:16px;font-weight:800;color:#70ca30;line-height:1;text-shadow:0 1px 2px #222}.condition.met{color:#e8e2cf}.condition.unmet{color:#999}.condition.unmet .condition-number{color:#ef5144;font-weight:700}.condition-check{color:#70ca30;font-weight:800}
.gift-history{margin:16px 0;padding-bottom:12px;border-bottom:1px solid var(--border,#444)}.gift-history h4{margin:0 0 8px;font-size:14px}.gift-history ul{list-style:none;margin:0;padding:0}.gift-history li{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:14px}.gift-history-count{flex:none;color:var(--muted,#aaa);font-variant-numeric:tabular-nums}
#addGift{width:44px;height:42px;min-width:0;padding:0;display:grid;place-items:center}#addGift svg{display:block}
.assignment-conditions{display:flex;flex-wrap:wrap;gap:6px 16px}.assignment-conditions .condition{display:inline-flex;align-items:center;gap:5px}.assignment-support-icon{width:18px;height:18px;object-fit:contain}.assignment-renown-icon{color:#b8b8b8;font-size:21px;line-height:18px}
.extras input[type="checkbox"]{margin:0;flex-shrink:0;align-self:center}
.move.last-gift{background:#262626;border:1px solid #626262;border-left:4px solid #aaa;border-radius:8px;padding:18px;margin:0 0 24px}.last-gift .eyebrow{color:#eee}.move.last-gift + .move{border-top:2px solid #626262;padding-top:24px}

.manual{grid-template-columns:minmax(0,1fr) 65px 44px}.manual select{height:42px;min-width:0}.review-row select{width:100%;min-width:0}
