@charset "UTF-8";
:root{--ink:#243c34;--muted:#69796f;--green:#173c32;--leaf:#567958;--gold:#b6985c;--paper:#f6f4ed;--card:#fffef9;--line:#dedfd4;--red:#9a4843;--shadow:0 14px 45px #193a3010;--radius:16px;font:15px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:var(--green);text-underline-offset:3px}h1,h2,h3,h4{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.18;margin:0 0 .7em}h1{font-size:clamp(2rem,4vw,3.3rem);letter-spacing:-.035em}h2{font-size:1.8rem}h3{font-size:1.25rem}p{margin:.4em 0 1em}small,.muted{color:var(--muted)}small{font-size:.8rem}strong{font-weight:650}.eyebrow{font:700 .7rem/1.4 system-ui;letter-spacing:.16em;text-transform:uppercase;color:var(--leaf)}.skip{position:fixed;top:-100px;left:10px;z-index:99;background:white;padding:15px}.skip:focus{top:10px}.loading{min-height:100dvh;display:grid;place-content:center;justify-items:center}.sigil{display:inline-grid;place-items:center;width:44px;height:44px;border:1px solid var(--gold);border-radius:50%;font:italic 30px Georgia;color:var(--gold)}.shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;background:var(--green);color:#e7eddf;padding:30px 20px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;margin:0 6px 36px}.brand strong{font:24px Georgia;letter-spacing:.025em}.brand small{display:block;color:#b3c4ac;font-size:.65rem;letter-spacing:.15em;text-transform:uppercase}.sidebar label{color:#b9cbbf}.sidebar select{background:#244c3f;color:white;border-color:#496251;max-width:100%;margin-bottom:22px}.nav{display:grid;gap:5px}.nav a{display:flex;align-items:center;gap:13px;padding:12px 14px;color:#c0d0c2;text-decoration:none;border-radius:9px;font-size:.92rem}.nav a.active{background:#ffffff14;color:white;box-shadow:inset 3px 0 var(--gold)}.nav a:hover{background:#ffffff0c}.icon{font:20px/1.2 Georgia;display:inline-grid;place-items:center;width:22px;flex-shrink:0}.sidebar .account{margin-top:auto;padding:20px 6px 0;font-size:.8rem;color:#c0d0c2}.account button{margin-top:8px;background:none;border:0;color:inherit;padding:4px 0}.workspace{min-width:0}.topbar{height:77px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:0 42px;background:#fbfaf6;position:sticky;top:0;z-index:5}.topbar .group-title{font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status{display:inline-flex;gap:7px;align-items:center;color:var(--muted);font-size:.74rem;white-space:nowrap}.status::before{content:'';width:6px;height:6px;background:#a6936b;border-radius:50%}.status.online::before{background:#6e9866}.main{max-width:1480px;margin:auto;padding:36px 42px 60px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}.page-head p{max-width:660px;color:var(--muted);margin-bottom:0}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:43px;padding:9px 17px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);text-decoration:none;font-weight:550;font-size:.84rem;white-space:normal}.btn:hover{border-color:var(--leaf);background:#eef1e7}.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}.btn.primary:hover{background:#285442}.btn.danger{color:var(--red);border-color:#d9b9b3}.btn.small{min-height:35px;padding:5px 11px;font-size:.76rem}.btn.link{background:none;border-color:transparent;padding-left:0;text-decoration:underline}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:23px;box-shadow:var(--shadow);min-width:0}.card.flush{padding:0;overflow:hidden}.card header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.card header h2,.card header h3{margin:0}.grid{display:grid;gap:20px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.split{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px}.stack{display:grid;gap:18px;align-content:start}.hero{background:var(--green);color:#f1f2df;position:relative;overflow:hidden;padding:35px;border:0;min-height:210px}.hero::after{content:'✧';position:absolute;right:32px;top:-85px;font:310px Georgia;color:#b6b98019;pointer-events:none}.hero .eyebrow{color:#c7c292}.hero h2{font-size:2.3rem;max-width:700px;position:relative;z-index:1}.hero p{max-width:660px;color:#d1ddce;position:relative;z-index:1}.hero .btn{background:#f3f1df;border-color:#f3f1df}.pill{display:inline-flex;align-items:center;gap:5px;border:1px solid #dbe1d3;border-radius:30px;padding:3px 10px;color:var(--leaf);font-size:.73rem;background:#f0f3e9}.pill.gold{color:#8a7040;background:#f6efdc;border-color:#e7d8b9}.pill.red{color:var(--red);background:#fbefed;border-color:#ebd1cc}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.divider{border:0;border-top:1px solid var(--line);margin:20px 0}.list{display:grid;gap:0}.list-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid #e8e9df}.list-row:last-child{border:0}.list-row p{margin:0;font-size:.84rem}.list-row strong{font-size:.92rem}.empty{padding:40px 25px;text-align:center;color:var(--muted);border:1px dashed #cfd4c7;border-radius:12px}.empty h3{color:var(--ink)}.empty .icon{font-size:38px;margin-bottom:14px}.notice{padding:13px 17px;border-radius:9px;background:#eef1e6;border:1px solid #d5decd;font-size:.87rem;white-space:pre-wrap}.notice.warn{background:#faf2e1;border-color:#e9d9b5;color:#705932}.notice.error{background:#faeeea;border-color:#e5c2bc;color:var(--red)}.notice ul{margin:4px 0;padding-left:20px}.avatar{width:58px;height:58px;flex-shrink:0;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,#dae1cb,#a4b898);color:#416647;font:30px Georgia;border:1px solid #9eaf93}.avatar.large{width:92px;height:100px;font-size:45px}.character-head{display:flex;gap:20px;align-items:center}.character-head h1{margin-bottom:.12em}.character-head p{margin:0}.resource{padding:20px 23px;background:var(--card);border:1px solid var(--line);border-radius:12px}.resource .value{font:38px Georgia;line-height:1.3}.resource .value small{font:18px Georgia}.bar{height:5px;background:#e6e9dd;border-radius:5px;overflow:hidden;margin:10px 0}.bar span{display:block;height:100%;background:#829c74;transition:width .2s}.bar.energy span{background:#b99c62}.stat-number{font:28px Georgia;color:var(--green)}.stat-block{border-right:1px solid var(--line);padding-right:20px}.stat-block:last-child{border:0}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:24px 0;overflow:auto}.tabs button{border:0;border-bottom:2px solid transparent;padding:12px 0;background:none;color:var(--muted);white-space:nowrap}.tabs button.active{color:var(--green);border-bottom-color:var(--green);font-weight:650}label{display:block;font-size:.81rem;font-weight:600;margin-bottom:5px}input,select,textarea{background:white;border:1px solid #cdd4c7;border-radius:7px;color:var(--ink);padding:10px 12px;width:100%;min-height:43px;max-width:100%}textarea{min-height:110px;resize:vertical}input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--green);vertical-align:middle}input[type=number]{font-variant-numeric:tabular-nums}.field{display:grid;gap:4px;min-width:0;margin:0 0 17px}.field small{line-height:1.4}.searchbar{display:flex;gap:12px;margin-bottom:22px}.searchbar input{flex:1}.searchbar select{width:auto;min-width:150px}.searchbar .btn{flex-shrink:0}.choice{display:block;text-align:left;position:relative;border:1px solid var(--line);background:var(--card);border-radius:13px;padding:20px;color:inherit;width:100%;transition:border-color .15s,background .15s}.choice:hover{border-color:var(--leaf)}.choice.selected{border:2px solid var(--green);padding:19px;background:#f0f3e7}.choice h3{margin:4px 0 9px}.choice p{font-size:.84rem;color:var(--muted);margin-bottom:10px}.choice .mark{position:absolute;right:15px;top:15px;color:var(--green)}.steps{display:flex;list-style:none;gap:0;margin:0 0 28px;padding:0;counter-reset:step;overflow:auto}.steps li{flex:1;min-width:91px;display:flex;gap:9px;align-items:center;white-space:nowrap;border-bottom:2px solid var(--line);padding:10px 8px 14px;color:var(--muted);font-size:.76rem}.steps li::before{counter-increment:step;content:counter(step);border:1px solid #bfcbb9;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;flex-shrink:0}.steps li.active{border-color:var(--green);color:var(--green);font-weight:650}.steps li.active::before{color:white;background:var(--green);border-color:var(--green)}.wizard-foot{position:sticky;bottom:0;display:flex;justify-content:space-between;gap:12px;padding:17px 0 8px;background:linear-gradient(#f6f4eddd,var(--paper) 30%);z-index:3;margin-top:20px}.point-input{display:flex;align-items:center;gap:8px}.point-input input{width:64px;text-align:center;padding:7px}.point-input .btn{min-width:37px;padding:5px}.attribute-card{border:1px solid var(--line);padding:15px;border-radius:10px;background:var(--card)}.attribute-card header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.attribute-card strong{font-size:.8rem}.attribute-card .sum{font:29px Georgia}.attribute-card small{font-size:.71rem}.point-budget{background:#e9eee0;border-radius:9px;padding:12px 18px;display:flex;gap:25px;align-items:center;flex-wrap:wrap;margin:16px 0}.point-budget strong{font:24px Georgia}.skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px}.skill-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.82rem}.skill-row input{width:64px;min-height:36px;padding:4px 8px}.tree-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:12px;background:#f0f2e8;border-bottom:1px solid var(--line)}.tree-toolbar select{width:auto;max-width:100%;flex:1}.tree-canvas{height:560px;overflow:hidden;background:radial-gradient(circle,#bbc7af70 .8px,transparent 1px);background-size:18px 18px;touch-action:none;position:relative}.tree-canvas svg{width:100%;height:100%;cursor:grab}.tree-canvas svg:active{cursor:grabbing}.tree-edge{stroke:#bbc8b2;stroke-width:2;fill:none}.tree-node{cursor:pointer}.tree-node rect{fill:#fffef9;stroke:#ccd4c2;stroke-width:2}.tree-node.available rect{stroke:#8b9d70}.tree-node.known rect{fill:#204c3d;stroke:#204c3d}.tree-node text{font:14px system-ui;fill:#294435;pointer-events:none}.tree-node.known text{fill:#faf9ef}.tree-node .sub{font:11px system-ui;fill:#829074}.tree-node.known .sub{fill:#c9d7b8}.tree-node:focus rect{stroke:#bb943f;stroke-width:4}.tree-legend{display:flex;gap:20px;padding:10px 15px;font-size:.73rem;color:var(--muted);border-top:1px solid var(--line)}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px}.map-canvas{height:min(68dvh,720px);min-height:360px;position:relative;overflow:hidden;border:1px solid #b9c7b1;border-radius:13px;background:#e7eadf;touch-action:none}.map-canvas svg{width:100%;height:100%;user-select:none}.map-canvas .pawn{cursor:pointer;filter:drop-shadow(0 2px 2px #0003)}.map-canvas .pawn .pawn-letter{pointer-events:none;font:600 .65px system-ui;fill:white}.map-canvas .pawn .label{font:500 .36px system-ui;fill:#263b2f;paint-order:stroke;stroke:#fffdf2;stroke-width:.09px}.map-canvas .pawn.selected circle{stroke:#d8ad57;stroke-width:.14}.map-canvas .pawn circle{stroke:#fff;stroke-width:.075}.map-path{stroke:#9d7733;stroke-width:.12;stroke-dasharray:.25 .18;fill:none}.map-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.map-toolbar .btn{min-height:36px}.turn-item{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid transparent;border-radius:9px}.turn-item.active{background:#e9efdf;border-color:#c6d2b7}.turn-item .count{font:21px Georgia;color:var(--leaf);width:24px}.turn-item small{display:block}.prose{font-size:.95rem;line-height:1.8;overflow-wrap:anywhere}.prose h2{font-size:1.55rem;margin-top:1.4em}.prose h3{margin-top:1.2em}.prose p{white-space:pre-wrap}.prose table,table.data{width:100%;border-collapse:collapse;font-size:.81rem;line-height:1.5}.table-wrap{overflow:auto;max-width:100%}th,td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--leaf);font-size:.74rem;background:#eff2e8}code,pre{font:12px/1.5 ui-monospace,Consolas,monospace}pre{background:#edf0e5;padding:15px;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere}textarea.code{font:12px/1.6 ui-monospace,Consolas,monospace;min-height:320px}.book-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:25px}.book-index{display:grid;gap:5px;align-content:start;position:sticky;top:100px;max-height:75dvh;overflow:auto}.book-index button{border:0;background:none;text-align:left;font-size:.84rem;padding:10px 12px;border-radius:7px;color:var(--muted)}.book-index button.active{background:#e8eee0;color:var(--green)}.login{min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr}.login-art{background:var(--green);color:#eff1de;padding:70px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-art::after{content:'✧';font:680px Georgia;color:#cfb96a12;position:absolute;left:5%;top:0;pointer-events:none}.login-art h1{font-size:clamp(3rem,5vw,5rem);max-width:550px;position:relative}.login-art p{max-width:420px;color:#bccfba}.login-panel{padding:50px;display:grid;place-content:center}.login-panel form{width:min(390px,100%)}.login-panel h2{font-size:2rem}.login-panel .btn{width:100%}.auth-note{font-size:.8rem;color:var(--muted);margin-top:20px}dialog{border:1px solid var(--line);border-radius:18px;padding:0;width:min(740px,calc(100% - 24px));max-height:90dvh;color:var(--ink);background:var(--card);box-shadow:0 25px 100px #122a3555}dialog::backdrop{background:#102c2680;backdrop-filter:blur(4px)}.modal-head{position:sticky;top:0;z-index:2;background:var(--card);border-bottom:1px solid var(--line);padding:20px 25px;display:flex;align-items:center;justify-content:space-between;gap:15px}.modal-head h2{font-size:1.6rem;margin:0}.modal-body{padding:24px 25px}.modal-foot{position:sticky;bottom:0;background:var(--card);padding:15px 25px;border-top:1px solid var(--line);display:flex;gap:9px;justify-content:flex-end}.close{border:0;background:none;font-size:24px;color:var(--muted);padding:0 8px;min-height:36px}.modal-error{display:none}.modal-error:not(:empty){display:block;margin:0 25px 15px}.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:20px 0}.fact small{display:block}.fact strong{font-size:.9rem}#toasts{position:fixed;bottom:25px;right:25px;z-index:99;display:grid;gap:8px;max-width:min(420px,calc(100% - 30px));pointer-events:none}.toast{padding:13px 18px;background:var(--green);color:white;box-shadow:var(--shadow);border-radius:10px;font-size:.87rem}.toast.error{background:var(--red)}.mobile-brand{display:none}.refresh-banner{padding:9px 15px;background:#f2e7c9;display:flex;align-items:center;justify-content:center;gap:12px;font-size:.83rem}.print-only{display:none}.inline-check{display:flex;align-items:center;gap:10px}.detail-list{display:grid;gap:10px}.detail-list dt{font-size:.75rem;color:var(--muted)}.detail-list dd{margin:0;font-size:.9rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1500px){.main{padding:42px 55px}.topbar{padding:0 55px}}
@media(max-width:1150px){.shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding:24px 13px}.main{padding:28px 25px}.topbar{padding:0 25px}.split{grid-template-columns:1fr 280px}.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-layout{grid-template-columns:1fr}.map-side{display:grid;grid-template-columns:1fr 1fr;gap:15px}.book-layout{grid-template-columns:190px minmax(0,1fr)}}
@media(max-width:800px){.shell{display:block}.sidebar{position:fixed;top:auto;bottom:0;left:0;right:0;height:auto;padding:0 4px env(safe-area-inset-bottom);background:#fafbf7;border-top:1px solid var(--line);z-index:20;box-shadow:0 -5px 25px #193a3009}.sidebar .brand,.sidebar>label,.sidebar>select,.sidebar .account{display:none}.nav{display:flex;justify-content:space-around;gap:0}.nav a{flex:1;min-width:0;max-width:100px;display:flex;flex-direction:column;gap:3px;padding:9px 3px 8px;font-size:.62rem;color:var(--muted);border-radius:0}.nav a.active{background:none;color:var(--green);box-shadow:inset 0 3px var(--green)}.nav a .icon{font-size:22px}.main{padding:25px 19px 100px}.topbar{height:62px;padding:0 19px}.mobile-brand{display:flex;align-items:center;gap:10px}.mobile-brand button{border:0;background:none;font:22px Georgia;color:var(--green)}.topbar .group-title{display:none}.topbar>.btn{padding:7px 10px}.page-head{align-items:flex-start;flex-wrap:wrap;gap:14px;margin-bottom:22px}.page-head p{font-size:.87rem}h1{font-size:2.3rem}.page-head .actions{width:100%}.split{grid-template-columns:1fr}.hero{padding:25px;min-height:190px}.hero h2{font-size:2rem}.card{padding:19px}.grid.two{grid-template-columns:1fr}.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.character-head{gap:15px}.avatar.large{width:72px;height:80px;font-size:36px}.character-head h1{font-size:2rem}.resource{padding:16px}.resource .value{font-size:32px}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.book-layout{grid-template-columns:1fr}.book-index{display:flex;position:static;overflow:auto;max-height:unset;gap:6px;padding-bottom:4px}.book-index button{white-space:nowrap;border:1px solid var(--line)}.login{display:block}.login-art{min-height:260px;padding:28px}.login-art .brand{margin-bottom:25px}.login-art h1{font-size:2.5rem;max-width:450px}.login-art p{display:none}.login-panel{padding:28px 24px 50px}.login-panel form{width:min(450px,calc(100vw - 48px))}.steps{margin-bottom:20px}.steps li{min-width:83px;flex-direction:column;gap:5px;padding:8px 5px;font-size:.69rem}.wizard-foot{bottom:62px;padding:15px 0;flex-wrap:wrap}.tree-canvas{height:480px}.searchbar{flex-wrap:wrap;gap:8px}.searchbar input{min-width:180px}.searchbar select{min-width:110px;flex:1}.map-canvas{height:52dvh}.map-side{display:block}.map-side>.card{margin-bottom:15px}.skill-grid{grid-template-columns:1fr}.modal-head,.modal-body{padding:19px}.modal-foot{padding:13px 19px}#toasts{bottom:85px;right:15px}.tabs{gap:22px;margin:20px 0}.tabs button{font-size:.84rem}.point-budget{gap:17px;padding:10px 13px;font-size:.84rem}}
@media(max-width:430px){.grid.three{grid-template-columns:1fr}.grid.four{gap:12px}.attribute-card{padding:13px}.page-head .btn{flex:1}.steps li{min-width:73px}.status{font-size:.65rem}.topbar{gap:8px}.point-input{gap:5px}.point-input input{width:49px}.card{padding:16px}}
.skill-points{flex-shrink:0}.skill-points output{min-width:32px;text-align:center;font-size:1rem;font-weight:650;font-variant-numeric:tabular-nums}.skill-points .btn{min-width:44px;min-height:44px}.skill-row>span{overflow-wrap:anywhere}.development-tree.card.flush{padding:0}.development-tree .tree-toolbar .btn{min-height:44px;min-width:44px}.development-tree .tree-canvas{touch-action:none;overscroll-behavior:contain;user-select:none;-webkit-user-select:none}.development-tree svg{display:block;touch-action:none}.development-tree .tree-node text{font:600 16px/1.3 system-ui;fill:#203a30}.development-tree .tree-node .sub{font:13px system-ui;fill:#4f6657}.development-tree .tree-node.known text{fill:#fffef8}.development-tree .tree-node.known .sub{fill:#e0e9d6}.development-tree .tree-node rect{vector-effect:non-scaling-stroke}.development-tree .tree-node.on-path rect{stroke:#a87515;stroke-width:3}.development-tree .tree-node.selected rect{stroke:#875508;stroke-width:5}.development-tree .tree-node:not(.known).selected rect{fill:#fff0c8}.development-tree .tree-node:focus-visible rect{stroke:#246ba1;stroke-width:4}.development-tree .tree-edge{vector-effect:non-scaling-stroke;stroke:#91a68b}.development-tree .tree-edge.on-path{stroke:#ad7515;stroke-width:4}.tree-selection{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#fff9e9;border-bottom:1px solid var(--line);min-height:94px}.tree-selection>div{min-width:0}.tree-selection strong{display:block;overflow-wrap:anywhere}.tree-selection small{display:block;line-height:1.45;margin-top:3px}.tree-selection .btn{flex-shrink:0;min-height:44px}.development-tree .tree-legend{flex-wrap:wrap;gap:8px 18px;font-size:.8rem}.tree-list{padding:12px;display:grid;gap:8px}.tree-list-node{width:100%;text-align:left;background:var(--card);color:var(--ink);padding:14px;border:1px solid var(--line);border-radius:9px}.tree-list-node small{display:block}.tree-list-node.on-path{border-color:#a87515}.tree-list-node.selected{background:#fff0c8;border:2px solid #875508}.development-tree .tree-toolbar select{flex-basis:200px}.tree-node:focus{outline:none}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{.sidebar,.topbar,.actions,.tabs,.btn,.wizard-foot,#toasts,dialog,.no-print{display:none!important}.shell{display:block}.main{padding:0;max-width:none}.card,.resource{box-shadow:none;break-inside:avoid;background:white;border-color:#ddd}.grid.two{grid-template-columns:1fr 1fr}.print-only{display:block}.book-layout,.split{display:block}.book-index{display:none}body{background:white;font-size:11px}.hero{background:white;color:black;border:1px solid #ddd}.hero p{color:black}.hero::after{display:none}h1{font-size:28px}.page-head{margin-bottom:14px}a{text-decoration:none}.tree-canvas{height:800px}.map-canvas{height:600px}}

.resource-stepper{display:flex;gap:5px}.resource-stepper .btn{width:38px;min-height:38px;padding:4px}.resource .resource-value{display:block;border:0;background:none;padding:0;color:inherit;text-align:left;cursor:pointer}.condition-summary .condition-list{display:flex;gap:5px;flex-wrap:wrap;max-height:120px;overflow:auto;margin-top:15px}.condition-list .pill{white-space:normal;overflow-wrap:anywhere}.subtle-icon{background:transparent;border:0;box-shadow:none;color:var(--muted);font-size:16px;min-width:32px;min-height:32px;padding:4px;flex-shrink:0}.subtle-icon:hover,.subtle-icon:focus-visible{background:#f2e5c3;color:#795300}.temporary-bonus{color:#946709;font-weight:650;font-size:13px;white-space:nowrap}.attribute-value{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.skill-row .actions{gap:6px}.attribute-card header{gap:8px}.condition-summary .row{gap:5px}

.resource:has(.resource-stepper)>.row{flex-wrap:wrap;gap:8px}.resource-stepper{flex-shrink:0}@media(max-width:760px){.resource:has(.resource-stepper)>.row{flex-direction:column;align-items:flex-start}.resource-stepper .btn{width:40px;min-height:40px}}

/* One shared catalog portrait in cards, inventories and map controls. */
.catalog-art{position:relative;display:inline-flex;flex:none;align-items:center;justify-content:center;overflow:hidden;background:#15251f;border:1px solid #b9ad8460;border-radius:9px;vertical-align:middle;color:#c4ad75}
.catalog-art .art-fallback{font-size:28px}.catalog-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.catalog-art img[hidden]{display:none}
.art-thumb{width:52px;height:52px}.art-card{display:flex;width:min(100%,288px);aspect-ratio:1;margin:0 auto 20px}.art-card .art-fallback{font-size:70px}.art-result{width:92px;height:92px;float:right;margin:0 0 10px 12px}.art-creature img{object-fit:cover}
.catalog-row{display:flex;align-items:center;gap:12px;min-width:0}.catalog-row>div{min-width:0}.catalog-row strong{overflow-wrap:anywhere}
.image-selection{display:flex;align-items:center;gap:12px;margin:8px 0}.image-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px;max-height:340px;overflow:auto;overscroll-behavior:contain;padding:6px 0}.image-option{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px;border:1px solid #c7cabc;border-radius:8px;background:var(--paper,#f5f4ec);color:inherit;font:inherit;font-size:12px;cursor:pointer}.image-option .art-thumb{width:70px;height:70px}.image-option[aria-pressed=true]{outline:2px solid #b39252;outline-offset:-2px}.image-picker summary{cursor:pointer;padding:8px 0}.image-picker .searchbar{margin:8px 0}
.roster-avatar{position:relative;overflow:hidden}.roster-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.roster-avatar img[hidden]{display:none}
@media(max-width:600px){.art-thumb{width:44px;height:44px}.catalog-row{gap:8px}.art-card{width:min(100%,240px)}.art-result{width:72px;height:72px}.image-picker .searchbar{display:flex;flex-wrap:wrap}.image-picker input[type=search]{min-width:0;flex:1 1 160px}}

.library-upload{margin-top:14px;border-top:1px solid #c7cabc;padding-top:10px}.library-upload label{display:block;margin:12px 0}.library-upload input,.library-upload select{display:block;width:100%;margin-top:5px}.library-upload input[type=file]{max-width:100%;font-size:13px}.upload-preview{display:flex;align-items:center;gap:12px;margin:12px 0}.upload-preview[hidden]{display:none}.upload-preview img{max-width:160px;width:45%;height:160px;object-fit:contain;background:#15251f;border-radius:8px}.library-upload [data-upload-error][hidden]{display:none}

.npc-choice{text-decoration:none;color:inherit}.npc-choice h3{overflow-wrap:anywhere}.npc-upload-preview{max-width:100%;max-height:220px;object-fit:contain}.npc-inventory-edit{display:grid;grid-template-columns:minmax(100px,1fr) 80px;gap:10px;padding:14px 0;border-bottom:1px solid #ddd}.npc-inventory-edit input[type=number]{width:100%}[data-portrait-library][hidden],[data-portrait-group][hidden]{display:none}

.npc-disposition{font-size:10px}.npc-disposition.friendly{color:#2b7757}.npc-disposition.neutral{color:#957522}.npc-disposition.hostile{color:#ad3f38}

[data-npc-combat][hidden]{display:none}
