:root{--wood-darkest: #1c120a;--wood-dark: #2b1a0d;--wood-mid: #3d2615;--wood-warm: #5a371c;--wood-light: #7a4c2a;--parchment: #f1e3c1;--parchment-warm: #ecd8a8;--parchment-cool: #f8eed1;--parchment-dim: #d9c28a;--parchment-deep: #c5a868;--ink: #2b1a0d;--ink-soft: #5a4226;--ink-faint: #8a6f4a;--ink-mute: #b29770;--brass: #b08930;--brass-bright: #d4a849;--brass-dim: #856626;--candle: #f0b870;--candle-soft: #fadca0;--ember: #c85a2a;--ember-deep: #8a3a18;--wine: #7a2828;--wine-deep: #561919;--wine-soft: #f0d4cf;--ale: #b87a2e;--moss: #4a6843;--moss-deep: #2f4a2c;--moss-soft: #d9e2cc;--shadow-warm-sm: 0 1px 2px rgba(40, 22, 8, .18);--shadow-warm-md: 0 5px 16px rgba(40, 22, 8, .22), 0 1px 2px rgba(40, 22, 8, .15);--shadow-warm-lg: 0 14px 44px rgba(20, 10, 4, .45), 0 4px 14px rgba(40, 22, 8, .25);--shadow-hearth: 0 0 24px rgba(240, 184, 112, .35);--shadow-inset-carved: inset 0 1px 0 rgba(255, 240, 200, .35), inset 0 -1px 0 rgba(0, 0, 0, .25);--radius: 6px;--radius-sm: 4px;--radius-lg: 10px;--font-display: "Book Antiqua", "Palatino Linotype", Palatino, Georgia, "Hoefler Text", "Times New Roman", serif;--font-body: Georgia, "Hoefler Text", "Iowan Old Style", "Book Antiqua", "Times New Roman", serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);font-size:15px;line-height:1.6;color:var(--ink);background-color:var(--parchment);background-image:radial-gradient(ellipse at 50% -10%,rgba(240,184,112,.22) 0%,transparent 55%),radial-gradient(ellipse at 12% 18%,rgba(120,70,30,.1) 0%,transparent 45%),radial-gradient(ellipse at 88% 82%,rgba(120,70,30,.09) 0%,transparent 50%),radial-gradient(ellipse at 40% 110%,rgba(90,50,20,.14) 0%,transparent 55%);background-attachment:fixed;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);margin:0;line-height:1.18;font-weight:700;letter-spacing:.01em}a{color:var(--wine);text-decoration:none;border-bottom:1px dotted rgba(122,40,40,.5)}a:hover{color:var(--wine-deep);border-bottom-style:solid}code,kbd{font-family:SF Mono,Consolas,Menlo,monospace;font-size:.86em;background:#6e461e1a;padding:1px 4px;border-radius:3px}.spinner{width:36px;height:36px;border:3px solid var(--parchment-dim);border-top-color:var(--ember);border-right-color:var(--brass);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.full-screen-center{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--ink-soft);font-style:italic}.loading-block{display:flex;justify-content:center;padding:56px 0}.btn{font-family:var(--font-display);font-size:14px;font-weight:700;letter-spacing:.04em;border:1px solid transparent;border-radius:var(--radius);padding:10px 20px;cursor:pointer;transition:transform .06s,filter .15s,box-shadow .15s;white-space:nowrap;text-shadow:0 1px 0 rgba(0,0,0,.18)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg,#8d3232 0%,var(--wine) 50%,var(--wine-deep) 100%);color:#fdf4dc;border-color:var(--wine-deep);box-shadow:var(--shadow-warm-sm),var(--shadow-inset-carved)}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-ghost{background:linear-gradient(180deg,var(--parchment-cool),var(--parchment-warm));color:var(--ink);border-color:var(--wood-warm);box-shadow:var(--shadow-warm-sm),var(--shadow-inset-carved)}.btn-ghost:hover:not(:disabled){background:var(--parchment-dim)}.btn-danger{background:linear-gradient(180deg,#a83a30,#8a2a23);color:#fdf4dc;border-color:#5a1814;box-shadow:var(--shadow-warm-sm),var(--shadow-inset-carved)}.btn-danger:hover:not(:disabled){filter:brightness(1.1)}.btn-danger-ghost{color:var(--wine)}.btn-danger-ghost:hover:not(:disabled){background:var(--wine-soft)}.btn-block{display:block;width:100%}.btn-sm{padding:6px 13px;font-size:12.5px}.btn-roll{background:radial-gradient(ellipse at 50% 40%,var(--candle-soft) 0%,var(--brass-bright) 35%,var(--brass) 70%,var(--brass-dim) 100%);color:#2b1c14;border:1px solid var(--brass-dim);font-size:16px;padding:12px 26px;text-shadow:0 1px 0 rgba(255,240,200,.6);box-shadow:var(--shadow-warm-md),var(--shadow-hearth),inset 0 1px #fff5d2b3,inset 0 -2px #50280a40}.btn-roll:hover:not(:disabled){filter:brightness(1.06)}.app-shell{display:flex;min-height:100vh}.app-main{flex:1;min-width:0;padding:34px 44px 90px;margin-left:248px}.sidebar{position:fixed;top:0;left:0;bottom:0;width:248px;z-index:20;display:flex;flex-direction:column;padding:22px 16px;color:var(--parchment);background-color:var(--wood-dark);background-image:linear-gradient(180deg,var(--wood-mid) 0%,var(--wood-dark) 35%,var(--wood-darkest) 100%),repeating-linear-gradient(180deg,transparent 0,transparent 3px,rgba(0,0,0,.1) 3px,rgba(0,0,0,.1) 4px),repeating-linear-gradient(180deg,transparent 0,transparent 27px,rgba(255,200,130,.04) 27px,rgba(255,200,130,.04) 28px);border-right:3px solid var(--wood-darkest);box-shadow:inset -10px 0 22px #00000073,inset 14px 0 28px #f0b8700a,0 0 14px #00000059}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:4px 10px 16px;border-bottom:1px solid rgba(176,137,48,.35);margin-bottom:12px}.sidebar-brand-icon{display:flex;color:var(--brass-bright);filter:drop-shadow(0 0 6px rgba(240,184,112,.5))}.sidebar-brand-text{font-family:var(--font-display);font-size:20px;font-weight:700;line-height:1.05;color:var(--candle-soft);letter-spacing:.04em;text-shadow:0 1px 0 rgba(0,0,0,.6)}.sidebar-nav{display:flex;flex-direction:column;gap:3px;margin-top:4px}.sidebar-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius);color:var(--ink-mute);font-family:var(--font-display);font-weight:600;font-size:14px;letter-spacing:.03em;border:1px solid transparent;border-bottom:none;transition:background .15s,color .15s,border-color .15s}.sidebar-link:hover{background:#f0b87014;color:var(--candle-soft);text-decoration:none}.sidebar-link.active{background:linear-gradient(180deg,#c85a2a2e,#7a282847);color:var(--candle-soft);border-color:#b0893073;box-shadow:inset 0 0 12px #f0b87026,0 0 0 1px #00000040}.sidebar-cta{margin-top:auto;padding:16px 4px}.sidebar-cta .btn-primary{background:linear-gradient(180deg,#8d3232 0%,var(--wine) 100%);border-color:var(--brass-dim);box-shadow:inset 0 1px #fff0c859,inset 0 -1px #0006,0 0 0 1px #00000059,0 0 14px #f0b8702e}.sidebar-user{display:flex;align-items:center;gap:10px;padding:14px 8px 4px;border-top:1px solid rgba(176,137,48,.3)}.sidebar-user-avatar{position:relative;width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--candle-soft) 0%,var(--brass) 70%,var(--brass-dim) 100%);color:#2b1c14;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:15px;flex-shrink:0;box-shadow:inset 0 1px #fff5d299,inset 0 -2px 4px #50280a66,0 0 0 2px var(--wood-darkest),0 0 8px #f0b8704d;border:none;padding:0;overflow:hidden;cursor:pointer;transition:box-shadow .15s,transform .15s}.sidebar-user-avatar:disabled{cursor:default}.sidebar-user-avatar img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}.sidebar-user-avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#140a048c;color:var(--candle-soft);opacity:0;transition:opacity .15s;pointer-events:none}.sidebar-user-avatar:hover:not(:disabled) .sidebar-user-avatar-overlay,.sidebar-user-avatar:focus-visible .sidebar-user-avatar-overlay{opacity:1}.sidebar-user-avatar:hover:not(:disabled){box-shadow:inset 0 1px #fff5d299,inset 0 -2px 4px #50280a66,0 0 0 2px var(--brass-bright, var(--brass)),0 0 12px #f0b8708c}.sidebar-avatar-error{margin:6px 8px 0;padding:6px 8px;font-size:11.5px;color:var(--candle-soft);background:#8c1e2859;border:1px solid var(--wine);border-radius:6px}.sidebar-user-info{display:flex;flex-direction:column;min-width:0;flex:1}.sidebar-user-settings{background:transparent;border:none;color:var(--ink-mute);cursor:pointer;padding:6px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s,transform .4s ease;flex-shrink:0}.sidebar-user-settings:hover:not(:disabled),.sidebar-user-settings:focus-visible{background:#f0b8701a;color:var(--candle-soft)}.sidebar-user-settings:hover:not(:disabled) svg{transform:rotate(60deg);transition:transform .4s ease}.sidebar-user-settings svg{transition:transform .3s ease}.sidebar-user-settings:disabled{cursor:default;opacity:.5}.sidebar-user-settings:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.sidebar-user-name{font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--candle-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-handle{font-size:12px;color:var(--ink-mute);display:flex;align-items:center;gap:6px;font-style:italic}.admin-badge{background:linear-gradient(180deg,var(--brass-bright),var(--brass-dim));color:var(--wood-darkest);font-family:var(--font-display);font-size:9.5px;font-weight:800;padding:1px 6px;border-radius:3px;letter-spacing:.08em;text-shadow:0 1px 0 rgba(255,240,200,.5);box-shadow:inset 0 -1px #50280a66}.sidebar-logout{background:transparent;border:none;color:var(--ink-mute);cursor:pointer;display:flex;align-items:center;gap:10px;width:100%;margin:4px 0 8px;padding:8px 10px;border-radius:var(--radius);font-size:13px;font-family:inherit;text-align:left;transition:background .15s,color .15s}.sidebar-logout:hover,.sidebar-logout:focus-visible{background:#f0b8701a;color:var(--candle-soft)}.sidebar-logout:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.sidebar-logout svg{flex-shrink:0}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;background-color:var(--wood-dark);background-image:radial-gradient(ellipse at 50% 0%,rgba(240,184,112,.28) 0%,transparent 55%),repeating-linear-gradient(90deg,transparent 0,transparent 110px,rgba(0,0,0,.25) 110px,rgba(0,0,0,.25) 112px),repeating-linear-gradient(180deg,transparent 0,transparent 6px,rgba(0,0,0,.06) 6px,rgba(0,0,0,.06) 7px),linear-gradient(180deg,var(--wood-mid),var(--wood-darkest))}.auth-card{width:100%;max-width:440px;background-color:var(--parchment);background-image:radial-gradient(ellipse at 20% 10%,rgba(240,184,112,.2) 0%,transparent 50%),radial-gradient(ellipse at 80% 90%,rgba(140,80,30,.1) 0%,transparent 55%);border:1px solid var(--wood-warm);border-radius:var(--radius-lg);box-shadow:var(--shadow-warm-lg),inset 0 0 0 1px #f0dcaa99,inset 0 0 60px #8c501e1a;padding:38px 36px}.auth-brand{text-align:center;margin-bottom:26px;color:var(--wine)}.auth-brand h1{font-size:28px;margin:8px 0 4px;color:var(--ink);letter-spacing:.06em}.auth-tagline{margin:0;color:var(--ink-soft);font-size:14px;font-style:italic}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-family:var(--font-display);font-weight:700;letter-spacing:.06em;color:var(--ink-soft);text-transform:uppercase}.auth-switch{text-align:center;margin:18px 0 0;font-size:14px;color:var(--ink-soft);font-style:italic}.auth-hint{margin-top:22px;padding:14px 16px;background:#b089301a;border:1px dashed var(--brass-dim);border-radius:var(--radius);font-size:12.5px;color:var(--ink-soft);line-height:1.7}.auth-hint code{background:#6e461e2e;padding:1px 5px;border-radius:3px}input[type=text],input[type=password],input[type=number],input[type=search],input[type=email],select,textarea{font-family:var(--font-body);font-size:14px;line-height:1.4;color:var(--ink);background:var(--parchment-cool);border:1px solid var(--wood-warm);border-radius:var(--radius);padding:9px 12px;width:100%;box-shadow:inset 0 1px 2px #5032142e,inset 0 0 0 1px #fff5d266;transition:border-color .15s,box-shadow .15s,background .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brass);box-shadow:inset 0 1px 2px #5032142e,0 0 0 3px #f0b8704d,0 0 14px #f0b87033}textarea{resize:vertical;line-height:1.6}::placeholder{color:var(--ink-mute);font-style:italic}.form-error{background:var(--wine-soft);border:1px solid #c69690;border-left:4px solid var(--wine);color:var(--wine-deep);padding:11px 14px;border-radius:var(--radius);font-size:13.5px;margin:14px 0;font-style:italic}.form-notice{background:var(--moss-soft);border:1px solid #a8c098;border-left:4px solid var(--moss);color:var(--moss-deep);padding:11px 14px;border-radius:var(--radius);font-size:13.5px;margin:14px 0;font-style:italic}.page{max-width:980px;margin:0 auto}.page-wide{max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;padding-bottom:14px;border-bottom:2px solid var(--parchment-deep);position:relative}.page-header:after{content:"❦";position:absolute;left:50%;bottom:-13px;transform:translate(-50%);background:var(--parchment);padding:0 12px;color:var(--brass);font-size:18px}.page-header h1{font-size:30px;color:var(--ink);letter-spacing:.03em}.page-subtitle{margin:8px 0 0;color:var(--ink-soft);font-size:14px;font-style:italic;max-width:620px}.back-link{background:none;border:none;color:var(--wine);font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:.04em;cursor:pointer;padding:0;margin-bottom:16px}.back-link:hover{color:var(--wine-deep)}.empty-state{text-align:center;background:var(--parchment-cool);border:1px solid var(--wood-warm);border-radius:var(--radius-lg);padding:58px 30px;box-shadow:var(--shadow-warm-md),inset 0 0 60px #8c501e14}.empty-state h2{font-size:22px;margin-bottom:10px;color:var(--wine)}.empty-state p{color:var(--ink-soft);margin:0 auto 22px;max-width:420px;font-style:italic}.muted-note{color:var(--ink-faint);font-size:13.5px;font-style:italic}.panel{position:relative;background-color:var(--parchment);background-image:radial-gradient(ellipse at 18% 15%,rgba(240,184,112,.16) 0%,transparent 50%),radial-gradient(ellipse at 82% 85%,rgba(140,80,30,.1) 0%,transparent 55%);border:1px solid var(--wood-warm);border-radius:var(--radius-lg);box-shadow:var(--shadow-warm-md),inset 0 0 0 1px #f0dcaa80,inset 0 0 80px #8c501e0f;padding:24px 26px;margin-bottom:20px}.panel:before,.panel:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--candle-soft) 0%,var(--brass) 60%,var(--brass-dim) 100%);box-shadow:0 1px 2px #0006;pointer-events:none}.panel:before{top:10px;left:12px}.panel:after{top:10px;right:12px}.panel-title{font-family:var(--font-display);font-size:18px;margin-bottom:18px;padding-bottom:10px;color:var(--wine);letter-spacing:.04em;border-bottom:1px solid var(--parchment-deep);position:relative}.panel-title:after{content:"";position:absolute;left:0;bottom:-1px;width:64px;height:2px;background:linear-gradient(90deg,var(--brass),transparent)}.panel-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--parchment-deep);margin-bottom:18px;padding-bottom:10px}.panel-head .panel-title{border:none;margin:0;padding:0}.panel-head .panel-title:after{display:none}.subhead{font-family:var(--font-display);font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-soft);margin:18px 0 10px}.subhead:first-of-type{margin-top:4px}.pill{display:inline-block;background:linear-gradient(180deg,var(--candle-soft),var(--candle));color:var(--wood-darkest);font-family:var(--font-display);font-size:11.5px;font-weight:700;padding:3px 11px;border-radius:999px;letter-spacing:.06em;border:1px solid var(--brass-dim);text-shadow:0 1px 0 rgba(255,245,210,.5)}.pill-muted{background:var(--parchment-warm);color:var(--ink);border-color:var(--brass-dim);text-shadow:0 1px 0 rgba(255,245,210,.4)}.tag{display:inline-block;font-family:var(--font-display);font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:4px;letter-spacing:.06em;border:1px solid}.tag-good{background:var(--moss-soft);color:var(--moss-deep);border-color:#a8c098}.tag-active{background:#f0b87038;color:var(--ember-deep);border-color:var(--candle)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:22px}.character-card{position:relative;background-color:var(--parchment-cool);background-image:radial-gradient(ellipse at 50% 10%,rgba(240,184,112,.18) 0%,transparent 60%),radial-gradient(ellipse at 50% 90%,rgba(140,80,30,.1) 0%,transparent 60%);border:2px solid var(--wood-warm);border-radius:var(--radius-lg);box-shadow:var(--shadow-warm-md),inset 0 0 0 1px #f0dcaa80,inset 0 0 30px #8c501e1a;padding:0 0 22px;cursor:pointer;text-align:center;font-family:var(--font-body);transition:transform .15s,box-shadow .15s;overflow:hidden;display:flex;flex-direction:column}.character-card:hover{transform:translateY(-3px);box-shadow:0 18px 36px #28160852,inset 0 0 0 1px #f0dcaa99,inset 0 0 40px #f0b8702e,0 0 22px #f0b8702e}.character-card-actions{position:absolute;top:8px;right:8px;display:flex;flex-direction:column;gap:6px;z-index:3}.character-card-action{width:28px;height:28px;padding:0;border-radius:50%;border:1.5px solid var(--wine);background:var(--parchment);color:var(--wine);font-family:var(--font-body);font-size:17px;font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #140a0480,inset 0 1px #fff5dc99;transition:background .12s,color .12s,transform .12s,border-color .12s,box-shadow .12s}.character-card-action:hover{background:var(--brass);color:var(--wood-dark);border-color:var(--parchment);transform:scale(1.1);box-shadow:0 3px 10px #140a0499,0 0 12px #f0b87066}.character-card-action:disabled{opacity:.5;cursor:not-allowed;transform:none}.character-card-action-danger{color:var(--wine);border-color:var(--wine)}.character-card-action-danger:hover{background:var(--wine);color:var(--parchment);border-color:var(--parchment);box-shadow:0 3px 10px #140a0499,0 0 12px #8c1e2873}.character-card-banner{height:48px;flex-shrink:0;background:linear-gradient(180deg,var(--wood-warm),var(--wood-dark)),repeating-linear-gradient(180deg,transparent 0,transparent 3px,rgba(0,0,0,.1) 3px,rgba(0,0,0,.1) 4px);border-bottom:1px solid var(--wood-darkest);box-shadow:inset 0 -8px 18px #00000059}.character-card-portrait{margin-top:-38px;display:flex;justify-content:center;flex-shrink:0;position:relative}.character-card-portrait-x{position:absolute;top:50%;left:50%;width:92px;height:92px;transform:translate(-50%,-50%);pointer-events:none;stroke:#ff1f1f;stroke-width:8;stroke-linecap:round;filter:drop-shadow(0 0 1px rgba(0,0,0,.9)) drop-shadow(0 1px 2px rgba(0,0,0,.6))}.character-card-portrait .avatar{border:4px solid var(--parchment-cool);box-shadow:0 0 0 4px var(--wine),0 0 0 5px var(--brass),var(--shadow-warm-md),0 0 18px #f0b87040}.character-card-body{padding:8px 16px 10px;flex:1 1 auto;display:flex;flex-direction:column;align-items:center}.character-card-name{font-size:18px;margin:4px 0 2px;color:var(--wine);letter-spacing:.03em}.character-card-class{color:var(--ink-soft);font-size:13px;font-style:italic;display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;margin:2px 0}.character-card-level{font-family:var(--font-display);background:var(--parchment-warm);color:var(--ink);font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:3px;border:1px solid var(--parchment-deep);letter-spacing:.08em;font-style:normal}.character-card-owner{font-size:12px;color:var(--ink-faint);margin:4px 0 0;font-style:italic}.character-card-campaign{display:inline-block;margin-top:5px;font-family:var(--font-display);font-size:10.5px;font-weight:700;letter-spacing:.08em;color:var(--wood-darkest);background:linear-gradient(180deg,var(--candle-soft),var(--candle));padding:2px 10px;border-radius:999px;border:1px solid var(--brass-dim)}.character-card-xp{margin-top:auto;padding-top:8px;display:flex;flex-direction:column;gap:3px;align-items:stretch;width:100%}.character-card-xp-text{font-family:var(--font-display);font-size:11px;letter-spacing:.06em;color:var(--ink-faint);font-weight:700;text-align:center;font-variant-numeric:tabular-nums}.character-card-add{display:flex;align-items:center;justify-content:center;border:2px dashed var(--brass-dim);background:radial-gradient(ellipse at center,rgba(240,184,112,.1),transparent 70%),var(--parchment-warm);box-shadow:none;min-height:200px;color:var(--ink-soft)}.character-card-add:hover{border-color:var(--wine);color:var(--wine);background:var(--parchment-cool);transform:translateY(-2px)}.character-card-add-inner{display:flex;flex-direction:column;align-items:center;gap:8px;font-family:var(--font-display);font-weight:600;font-size:14px;letter-spacing:.04em}.character-card-add-plus{font-size:44px;line-height:1;color:var(--brass)}.character-card-deceased{background-color:#b8b1a6;background-image:radial-gradient(ellipse at 22% 22%,rgba(255,255,255,.22) 0%,transparent 55%),radial-gradient(ellipse at 78% 78%,rgba(0,0,0,.16) 0%,transparent 60%),radial-gradient(ellipse at 60% 40%,rgba(120,110,100,.18) 0%,transparent 50%),linear-gradient(180deg,#c5beb3,#ada69b 55%,#8e8779);border-color:#514c43;border-width:2px;border-radius:46% 46% 10px 10px/28% 28% 10px 10px;box-shadow:0 8px 22px #14100a52,inset 0 0 0 1px #fff3,inset 0 -6px 14px #0000002e,inset 0 6px 12px #ffffff1a}.character-card-deceased:hover{transform:translateY(-2px);box-shadow:0 12px 28px #14100a66,inset 0 0 0 1px #ffffff38,inset 0 -6px 14px #0003}.character-card-deceased:before{content:none}.character-card-deceased .character-card-banner{height:64px;background:linear-gradient(180deg,#6e685e,#56514a 60%,#45413a),repeating-linear-gradient(180deg,transparent 0,transparent 4px,rgba(0,0,0,.1) 4px,rgba(0,0,0,.1) 5px);border-bottom-color:#2c2823;box-shadow:inset 0 -6px 14px #0006,inset 0 2px 4px #ffffff14}.character-card-deceased .character-card-portrait{margin-top:-54px}.character-card-deceased .character-card-portrait .avatar{border:4px solid #d6cfc2;box-shadow:0 0 0 4px #4f4a42,0 0 0 5px #2b2723,0 4px 14px #00000059,0 0 0 transparent}.character-card-deceased .character-card-name{color:#2a2520;text-shadow:1px 1px 0 rgba(255,255,255,.3),-1px -1px 0 rgba(0,0,0,.4)}.character-card-deceased .character-card-skull{filter:grayscale(.6) brightness(.85)}.character-card-deceased .character-card-class,.character-card-deceased .character-card-owner{color:#3a342d}.character-card-deceased .character-card-level{background:#4f4a42;color:#e8e2d6;border-color:#2b2723}.character-card-deceased .character-card-campaign{background:linear-gradient(180deg,#4a443c,#322d27);color:#ede5d4;border-color:#1f1c18;text-shadow:0 1px 0 rgba(0,0,0,.35);box-shadow:inset 0 1px #fff5dc26,0 1px 2px #00000059}.character-card-deceased .xp-progress-track{background:#14100a6b;border-color:#2b2723;box-shadow:inset 0 1px 2px #00000073}.character-card-deceased .xp-progress-fill{background:linear-gradient(90deg,#b8b1a3,#d8d2c4,#b8b1a3);box-shadow:0 0 4px #d8d2c48c}.character-card-deceased .character-card-xp-text{color:#2a2520;text-shadow:0 1px 0 rgba(255,255,255,.18)}.character-card-deceased .character-card-actions{top:36px;right:14px;gap:5px}.character-card-deceased .character-card-action{width:24px;height:24px;font-size:14px;background:#dcd5c6f0;border-color:#2b2723;color:#2a2520;box-shadow:0 2px 4px #0006,inset 0 1px #fff6}.character-card-deceased .character-card-action:hover{background:#4f4a42;color:#e8e2d6;border-color:#d6cfc2;box-shadow:0 3px 6px #00000073,0 0 8px #d8d2c459}.character-card-deceased .character-card-action-danger{border-color:#2b2723;color:#6b1818}.character-card-deceased .character-card-action-danger:hover{background:#6b1818;color:#f0e8d4;border-color:#d6cfc2}.character-card-deceased .character-card-banner:after{display:none}.avatar{position:relative;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#fdf4dc;font-family:var(--font-display);font-weight:700;flex-shrink:0;-webkit-user-select:none;user-select:none;background-color:var(--wood-warm)}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.avatar-editable{cursor:pointer}.avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#2816088c;color:var(--candle-soft);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.avatar-editable:hover .avatar-overlay,.avatar-editable:focus .avatar-overlay{opacity:1}.toolbar{display:flex;gap:14px;margin-bottom:22px;flex-wrap:wrap}.toolbar-search{flex:1;min-width:240px}.toolbar-select{width:auto;min-width:170px}.campaign-list{display:flex;flex-direction:column;gap:14px}.campaign-row{background-color:var(--parchment-cool);border:1px solid var(--wood-warm);border-radius:var(--radius-lg);box-shadow:var(--shadow-warm-md),inset 0 0 40px #8c501e0f;overflow:hidden}.campaign-row-head{width:100%;background:none;border:none;cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:18px 22px;text-align:left;font-family:var(--font-body);color:var(--ink)}.campaign-row-head:hover{background:#f0b8701a}.campaign-row-head h3{font-size:18px;color:var(--wine);letter-spacing:.03em}.campaign-row-desc{margin:5px 0 0;font-size:13px;color:var(--ink-soft);font-style:italic;max-width:540px}.campaign-row-dm{margin:4px 0 0;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}.campaign-row-dm strong{color:var(--ink);letter-spacing:.02em;text-transform:none;font-weight:700;font-family:var(--font-display)}.campaign-row-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.chevron{color:var(--brass);transition:transform .18s;font-size:14px}.chevron.open{transform:rotate(180deg)}.campaign-row-body{padding:6px 22px 22px;border-top:1px dashed var(--parchment-deep)}.campaign-row-body .card-grid{margin-top:18px}.character-hero{position:relative;background-color:var(--parchment);background-image:radial-gradient(ellipse at 18% 15%,rgba(240,184,112,.16) 0%,transparent 50%),radial-gradient(ellipse at 82% 85%,rgba(140,80,30,.1) 0%,transparent 55%);border:2px solid var(--wood-warm);border-radius:var(--radius-lg);box-shadow:var(--shadow-warm-lg),inset 0 0 0 1px #f0dcaa80;overflow:hidden;margin-bottom:20px}.character-hero-banner{height:132px;background:linear-gradient(180deg,var(--wood-warm) 0%,var(--wood-dark) 100%),repeating-linear-gradient(180deg,transparent 0,transparent 3px,rgba(0,0,0,.1) 3px,rgba(0,0,0,.1) 4px);background-blend-mode:multiply;border-bottom:1px solid var(--wood-darkest);box-shadow:inset 0 -12px 28px #00000073,inset 0 12px 32px #f0b87014}.character-hero-content{display:flex;align-items:center;gap:24px;padding:0 30px 24px;flex-wrap:wrap}.character-hero-portrait{margin-top:-40px}.character-hero-portrait .avatar{border:5px solid var(--parchment);box-shadow:0 0 0 5px var(--wood-warm),0 0 0 7px var(--brass),var(--shadow-warm-lg),0 0 28px #f0b87059}.character-hero-info{flex:1;min-width:240px;padding-top:18px;padding-bottom:4px}.character-hero-name{font-size:30px;color:var(--wine);letter-spacing:.04em}.hero-name-input{font-family:var(--font-display);font-size:26px;font-weight:700;line-height:1.05;max-width:380px;color:var(--wine);padding-top:22px;padding-bottom:4px}.character-hero-sub{margin:6px 0 10px;color:var(--ink-soft);font-size:16px;font-style:italic}.hero-edit-row{display:inline-flex;gap:8px;flex-wrap:wrap;align-items:center}.hero-edit-row input,.hero-edit-row select{width:auto;min-width:100px;padding:5px 9px;font-size:13px}.hero-level-edit{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft);font-style:normal;white-space:nowrap;flex-shrink:0}.hero-level-edit input,.hero-level-edit select{width:64px;min-width:0;padding:5px 9px;font-size:13px}.character-hero-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0;font-size:13px;color:var(--ink-faint);font-style:italic}.character-hero-actions{display:flex;gap:8px;padding-bottom:4px;flex-wrap:wrap}.hero-class-button{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;font-size:13px;font-family:inherit;font-style:normal;background:var(--parchment-deep);border:1px solid var(--border-soft);border-radius:999px;color:var(--ink);cursor:pointer;transition:background-color .15s ease,border-color .15s ease;max-width:100%}.hero-class-button:hover{background:var(--parchment);border-color:var(--wine)}.hero-class-button-edit{font-size:11px;color:var(--wine);flex-shrink:0}.class-summary-button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;background:var(--parchment-deep);border:1px solid var(--border-soft);border-radius:6px;color:var(--ink);font-family:inherit;font-size:14px;cursor:pointer;text-align:left;transition:background-color .15s ease,border-color .15s ease}.class-summary-button:hover{background:var(--parchment);border-color:var(--wine)}.class-summary-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-summary-total{flex-shrink:0;font-family:var(--font-display);font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--wine);background:var(--parchment);padding:3px 8px;border-radius:999px;border:1px solid var(--border-soft)}.class-summary-edit{font-size:12px;color:var(--wine);flex-shrink:0}.class-editor .modal-body{padding-top:12px}.class-editor-hint{margin:0 0 12px;font-size:13px}.class-editor-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.class-editor-row{display:flex;gap:10px;align-items:flex-end;padding:10px;background:var(--parchment-deep);border:1px solid var(--border-soft);border-radius:6px}.class-editor-row .field{margin-bottom:0;flex:1;min-width:0}.class-editor-row .field-narrow{flex:0 0 90px}.class-editor-remove{flex-shrink:0;padding:6px 10px;font-size:14px;line-height:1;align-self:stretch;display:inline-flex;align-items:center}.class-editor-remove:disabled{opacity:.35;cursor:not-allowed}.class-editor-actions{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px dashed var(--border-soft)}.class-editor-total{font-family:var(--font-display);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.class-editor-total strong{color:var(--wine);font-size:15px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px}.detail-item{display:flex;flex-direction:column;gap:3px}.detail-label{font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-faint);font-weight:700;line-height:1.1}.detail-value{font-size:15px;font-weight:600;color:var(--ink);line-height:1.2}.detail-status-info{text-decoration:underline dotted var(--brass-dim);text-underline-offset:3px;text-decoration-thickness:1px;cursor:help;outline:none;transition:text-decoration-color .12s,color .12s}.detail-status-info:hover,.detail-status-info:focus-visible{color:var(--wine);text-decoration-color:var(--wine)}.ability-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.ability-card{background:radial-gradient(ellipse at 50% 12%,rgba(240,184,112,.18) 0%,transparent 65%),var(--parchment-warm);border:1px solid var(--wood-warm);border-radius:var(--radius);padding:12px 8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:3px;box-shadow:var(--shadow-warm-sm),inset 0 1px #fff5d280}.ability-abbr{font-family:var(--font-display);font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--wine)}.ability-score{font-family:var(--font-display);font-size:28px;font-weight:700;color:var(--ink)}.ability-score-input{width:60px;text-align:center;font-size:19px;font-weight:700;padding:4px;font-family:var(--font-display);-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.ability-score-input::-webkit-outer-spin-button,.ability-score-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stat-box-input{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.stat-box-input::-webkit-outer-spin-button,.stat-box-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ability-mod{font-size:13px;font-weight:700;color:var(--ink);background:linear-gradient(180deg,var(--candle-soft),var(--candle));border:1px solid var(--brass-dim);border-radius:999px;padding:0 10px;text-shadow:0 1px 0 rgba(255,245,210,.5)}.ability-name{font-family:var(--font-display);font-size:10.5px;color:var(--ink-faint);margin-top:2px;letter-spacing:.06em}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:14px}.stat-box{background:radial-gradient(ellipse at 50% 12%,rgba(240,184,112,.18) 0%,transparent 65%),var(--parchment-warm);border:1px solid var(--wood-warm);border-radius:var(--radius);padding:13px;text-align:center;display:flex;flex-direction:column;gap:7px;box-shadow:var(--shadow-warm-sm),inset 0 1px #fff5d280}.stat-box-label{font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);font-weight:700}.stat-box-value{font-family:var(--font-display);font-size:25px;font-weight:700;color:var(--ink)}.stat-box-input{text-align:center;font-size:18px;font-weight:700;padding:4px;font-family:var(--font-display)}.prof-chips{display:flex;flex-wrap:wrap;gap:8px}.prof-chip{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(180deg,var(--candle-soft),var(--candle));color:var(--wood-darkest);font-family:var(--font-display);font-size:12px;font-weight:700;padding:5px 12px;border-radius:999px;letter-spacing:.05em;border:1px solid var(--brass-dim);text-shadow:0 1px 0 rgba(255,245,210,.5);box-shadow:var(--shadow-warm-sm)}.prof-chip-bonus{display:inline-flex;align-items:center;margin-left:4px;padding:1px 7px;border-radius:999px;background:linear-gradient(180deg,var(--wine),var(--wine-deep));color:var(--candle-soft);border:1px solid var(--wine-deep);font-weight:800;font-variant-numeric:tabular-nums;font-size:11px;letter-spacing:.04em;text-shadow:0 1px 0 rgba(0,0,0,.35);box-shadow:inset 0 1px #ffffff1a,0 1px #0000002e}.prof-toggle{display:inline-flex;align-items:center;gap:6px;background:var(--parchment-warm);border:1px solid var(--parchment-deep);color:var(--ink-soft);font-family:var(--font-display);font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px;cursor:pointer;letter-spacing:.05em;transition:all .12s}.prof-toggle:hover{border-color:var(--brass);color:var(--ink)}.prof-toggle.active{background:linear-gradient(180deg,var(--candle-soft),var(--candle));border-color:var(--brass-dim);color:var(--wood-darkest);box-shadow:var(--shadow-warm-sm),inset 0 -2px #50280a2e;text-shadow:0 1px 0 rgba(255,245,210,.5)}.prof-toggle-abbr{font-size:9px;font-weight:800;opacity:.7}.bio-text{margin:0;white-space:pre-wrap;line-height:1.75;color:var(--ink);font-size:15px}.bio-text:first-line{font-style:italic;color:var(--ink-soft)}.bio-input{width:100%}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field-label{font-family:var(--font-display);font-size:11.5px;font-weight:700;letter-spacing:.1em;color:var(--ink-soft);text-transform:uppercase}.field-row{display:flex;gap:14px;flex-wrap:wrap}.field-row .field{flex:1;min-width:140px}.field-narrow{flex:0 0 110px!important;min-width:90px!important}.field-checkbox{flex:0 0 auto!important;flex-direction:row;align-items:center;gap:8px;min-width:0!important;margin-bottom:0}.field-checkbox input{width:auto;accent-color:var(--wine)}.field-checkbox span{white-space:nowrap}.create-identity{display:flex;gap:26px;flex-wrap:wrap}.create-portrait{display:flex;flex-direction:column;align-items:center;gap:12px}.create-portrait .avatar{border:4px solid var(--parchment);box-shadow:0 0 0 4px var(--wood-warm),0 0 0 5px var(--brass),var(--shadow-warm-md)}.create-identity-fields{flex:1;min-width:280px}.create-actions{display:flex;justify-content:flex-end;gap:10px;margin:22px 0 40px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#140a04b8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:100}.modal{background-color:var(--parchment);background-image:radial-gradient(ellipse at 20% 10%,rgba(240,184,112,.2) 0%,transparent 50%),radial-gradient(ellipse at 80% 90%,rgba(140,80,30,.12) 0%,transparent 55%);border:1px solid var(--wood-warm);border-radius:var(--radius-lg);box-shadow:var(--shadow-warm-lg),inset 0 0 0 1px #f0dcaa99,inset 0 0 60px #8c501e1a;width:100%;max-width:460px;max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden;animation:pop .14s ease-out}@keyframes pop{0%{transform:scale(.96);opacity:0}}.portrait-modal{max-width:440px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-bottom:1px solid var(--parchment-deep);flex-shrink:0}.modal-header h2{font-size:19px;color:var(--wine);letter-spacing:.04em}.modal-close{background:none;border:none;font-size:26px;line-height:1;color:var(--ink-faint);cursor:pointer;padding:0 4px}.modal-close:hover{color:var(--wine)}.modal-body{padding:22px;flex:1 1 auto;min-height:0;overflow-y:auto}.modal>form{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}.modal-body p{margin:0;color:var(--ink-soft)}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--parchment-deep);background:#d9c28a33;flex-shrink:0}.modal-subtitle{display:block;margin-top:2px;font-size:12px;font-weight:500;font-family:var(--font-body);font-style:italic;color:var(--ink-soft);letter-spacing:.02em;text-transform:none}.services-list{display:flex;flex-direction:column;gap:24px}.services-campaign{padding:20px 22px}.services-campaign-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px}.services-campaign-head .panel-title{margin:0}.services-campaign-actions{display:flex;flex-direction:row;align-items:center;gap:10px;flex-shrink:0}.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.service-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.service-preview-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 16px 16px;text-align:center;background:linear-gradient(180deg,var(--parchment-warm),var(--parchment-cool));border:1px solid var(--brass-dim);border-radius:var(--radius);box-shadow:var(--shadow-warm-sm);cursor:pointer;color:var(--ink);font:inherit;min-height:200px;transition:transform .08s ease,box-shadow .12s,border-color .12s}.service-preview-card:hover{transform:translateY(-2px);border-color:var(--brass);box-shadow:var(--shadow-warm-md),0 0 16px #f0b8702e}.service-preview-card:active{transform:translateY(0)}.service-preview-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:var(--radius);background:#8c501e1a;border:1px solid var(--brass-dim);color:var(--wine)}.service-preview-body{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;flex:1 1 auto}.service-preview-name{margin:0;font-family:var(--font-display);font-size:17px;color:var(--wine);letter-spacing:.02em;line-height:1.2;word-wrap:break-word;overflow-wrap:anywhere}.service-preview-meta{margin:0;font-size:11.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em;font-weight:600;line-height:1.3}.service-preview-gold{margin-top:auto;padding-top:4px;font-family:var(--font-display);font-size:14px;font-weight:800;letter-spacing:.04em;color:var(--wood-darkest);text-shadow:0 1px 0 rgba(255,245,210,.55)}.service-detail-head{align-items:flex-start;gap:18px;flex-wrap:wrap;padding-bottom:24px}.service-detail-head-left{display:flex;align-items:center;gap:14px;flex:1 1 auto;min-width:0}.service-detail-icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:var(--radius);background:#8c501e1a;border:1px solid var(--brass-dim);color:var(--wine);flex-shrink:0}.service-detail-actions{display:flex;gap:8px;flex-wrap:wrap}.service-card{display:flex;flex-direction:column;gap:12px;padding:16px 18px;background:linear-gradient(180deg,var(--parchment-warm),var(--parchment-cool));border:1px solid var(--brass-dim);border-radius:var(--radius);box-shadow:var(--shadow-warm-sm)}.service-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.service-card-name{font-family:var(--font-display);font-size:16px;color:var(--wine);margin:0 0 2px;letter-spacing:.02em}.service-card-meta{margin:0;font-size:12px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.service-card-gold{flex-shrink:0;background:linear-gradient(180deg,var(--candle-soft),var(--candle));border:1px solid var(--brass-dim);color:var(--wood-darkest);font-family:var(--font-display);font-size:11px;font-weight:700;letter-spacing:.05em;padding:3px 9px;border-radius:999px;text-shadow:0 1px 0 rgba(255,245,210,.5)}.service-card-section h4{margin:0 0 8px;padding-bottom:4px;font-family:var(--font-display);font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--wine);font-weight:700;border-bottom:1px dashed rgba(176,137,48,.35)}.service-card-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.ware-subsection{margin-top:14px}.ware-subsection:first-of-type{margin-top:6px}.ware-subsection-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 6px;padding-bottom:4px;border-bottom:1px dashed var(--parchment-deep);font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.service-panel-note{font-family:var(--font-body);font-size:11.5px;font-weight:500;letter-spacing:.04em;color:var(--ink-soft);text-transform:none;cursor:help}.temple-cap-banner{margin:0 0 18px;padding:10px 14px;display:flex;align-items:center;gap:12px;background:linear-gradient(180deg,#fff7e28c,#d9c28a1a);border:1px solid var(--parchment-deep);border-left:3px solid var(--brass);border-radius:10px;font-size:13px;color:var(--ink)}.temple-cap-banner-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:26px;height:26px;border-radius:50%;border:1px solid var(--brass-dim);color:var(--brass);font-size:13px;background:transparent}.temple-cap-banner-text strong{color:var(--wood-darkest);font-family:var(--font-display);font-weight:700}.service-subsection-note{font-family:var(--font-body);font-size:11.5px;font-weight:500;letter-spacing:.03em;color:var(--ink-soft)}.domain-chip-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;background:#fff7e28c;border:1px solid var(--parchment-deep);border-radius:8px;min-height:40px}.domain-chip{display:inline-flex;align-items:center;gap:2px;padding:3px 6px 3px 10px;background:linear-gradient(180deg,var(--candle-soft),var(--candle));border:1px solid var(--brass);border-radius:999px;font-family:var(--font-display);font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--wood-darkest)}.domain-chip-name{line-height:1}.domain-chip-remove{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;background:transparent;border-radius:50%;color:var(--ink-soft);font-size:14px;line-height:1;cursor:pointer;margin-left:2px}.domain-chip-remove:hover{color:var(--wine);background:#8c1e2814}.domain-chip-input{flex:1 1 140px;min-width:120px;border:none;background:transparent;padding:4px 6px;font-family:var(--font-body);font-size:13px;color:var(--ink);outline:none}.domain-chip-input:disabled{opacity:.55}.domain-chip-static{display:inline-flex;align-items:center;padding:2px 10px;background:linear-gradient(180deg,var(--candle-soft),var(--candle));border:1px solid var(--brass);border-radius:999px;font-family:var(--font-display);font-size:11.5px;font-weight:700;letter-spacing:.05em;color:var(--wood-darkest);text-transform:none;white-space:nowrap}.service-preview-domains{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 6px}.service-detail-domains{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.pool-editor{margin:12px 0;padding:12px 14px;background:#fff7e273;border:1px solid var(--parchment-deep);border-radius:10px}.pool-editor-head{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}.pool-editor-head h4{margin:0;font-family:var(--font-display);font-size:14px;letter-spacing:.04em;color:var(--ink)}.pool-editor-hint{margin:6px 0 10px;font-size:12.5px;color:var(--ink-soft);font-style:italic}.pool-editor-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}.pool-editor-picker{background:var(--parchment);border:1px solid var(--parchment-deep);border-radius:8px;padding:6px 10px;font-size:13px;color:var(--ink);cursor:pointer}.pool-editor-picker:disabled{opacity:.55;cursor:not-allowed}.pool-editor-save-inline{display:inline-flex;align-items:center;gap:6px}.pool-editor-save-inline input[type=text]{width:180px;background:var(--parchment);border:1px solid var(--parchment-deep);border-radius:8px;padding:6px 10px;font-size:13px}.pool-editor-manage{margin-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft)}.pool-editor-manage-label{font-family:var(--font-display);font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-right:2px}.pool-editor-manage-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 9px;background:var(--parchment);border:1px solid var(--parchment-deep);border-radius:999px;font-size:11.5px;color:var(--ink)}.pool-editor-pkg-count{font-family:var(--font-body);font-weight:500;font-size:11px;color:var(--ink-soft);margin-left:2px}.pool-editor-empty-note{margin:6px 0 8px;font-size:12.5px}.roster-section{margin:0 0 18px}.roster-section+.roster-section{padding-top:14px;border-top:1px dashed var(--parchment-deep)}.roster-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.roster-section-head h3{margin:0;font-family:var(--font-display);font-size:14px;letter-spacing:.04em;color:var(--ink)}.roster-section-hint{margin:0 0 8px;font-size:12.5px;color:var(--ink-soft);font-style:italic}.roster-add-row{display:flex;gap:8px;margin:0 0 10px}.roster-add-row input{flex:1 1 auto;background:var(--parchment);border:1px solid var(--parchment-deep);border-radius:8px;padding:6px 10px;font-size:13px;color:var(--ink)}.roster-overall-chips{display:flex;flex-wrap:wrap;gap:5px;align-items:center;padding:4px 0}.roster-package-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.roster-package-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:#fff7e28c;border:1px solid var(--parchment-deep);border-radius:8px;cursor:pointer;transition:border-color .12s ease,background .12s ease}.roster-package-row:hover{border-color:var(--brass-dim);background:#d9c28a40}.roster-package-name{font-family:var(--font-display);font-weight:700;color:var(--ink)}.roster-package-meta{font-size:12px;color:var(--ink-soft)}.roster-package-author{color:var(--ink);font-style:italic}.roster-pkg-entries{margin:10px 0}.roster-overall-picker{width:100%;background:var(--parchment);border:1px solid var(--parchment-deep);border-radius:8px;padding:7px 10px;font-size:13px;color:var(--ink);cursor:pointer}.domain-chip-edit{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;background:transparent;border-radius:50%;color:var(--brass-dim);font-size:12px;line-height:1;cursor:pointer;margin-left:2px}.domain-chip-edit:hover{color:var(--wood-darkest);background:#d9c28a66}.entry-editor-fieldset{border:1px solid var(--parchment-deep);border-radius:10px;padding:10px 14px 12px;margin:14px 0;background:#fff7e273}.entry-editor-fieldset legend{font-family:var(--font-display);font-size:13px;letter-spacing:.04em;color:var(--ink);padding:0 6px}.entry-editor-abilities{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:6px}.entry-editor-abilities .field-narrow{margin:0}@media (max-width: 540px){.entry-editor-abilities{grid-template-columns:repeat(3,minmax(0,1fr))}}.entry-editor-prof-row{margin-top:8px}.modal .field-row .field{justify-content:space-between}.admin-log-filters .field-row{align-items:flex-end}.admin-log-filter-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.admin-log-table-panel{padding-bottom:18px}.admin-log-table-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px}.admin-log-counter{font-size:12.5px;color:var(--ink-soft)}.admin-log-page-size{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}.admin-log-page-size select{padding:2px 6px;background:var(--parchment);border:1px solid var(--parchment-deep);border-radius:6px}.admin-log-table-wrap{overflow-x:auto}.admin-log-table{width:100%;border-collapse:collapse;font-size:12.5px}.admin-log-table th,.admin-log-table td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--parchment-deep);vertical-align:top}.admin-log-table th{font-family:var(--font-display);font-size:11px;letter-spacing:.08em;color:var(--ink-soft);text-transform:uppercase;background:#d9c28a2e}.admin-log-table tbody tr:hover{background:#d9c28a1f}.admin-log-when{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink)}.admin-log-who-name{font-family:var(--font-display);font-weight:700;color:var(--ink)}.admin-log-who-handle{font-style:italic;color:var(--ink-soft);margin-left:5px;font-size:11.5px}.admin-log-who-anon{font-style:italic;color:var(--ink-faint)}.admin-log-method{display:inline-block;padding:1px 7px;border-radius:999px;font-family:var(--font-display);font-size:10.5px;font-weight:800;letter-spacing:.05em;background:var(--parchment);border:1px solid var(--parchment-deep);color:var(--ink)}.admin-log-method-post{background:#4a68432e;border-color:var(--moss, #4a6843)}.admin-log-method-put{background:#d9c28a59;border-color:var(--brass-dim)}.admin-log-method-delete{background:#8c1e281f;border-color:var(--wine);color:var(--wine)}.admin-log-path code{font-family:SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;color:var(--ink);background:#0000000a;padding:1px 5px;border-radius:4px}.admin-log-status{display:inline-block;font-family:var(--font-display);font-size:11px;font-weight:800;padding:1px 6px;border-radius:4px;min-width:32px;text-align:center}.admin-log-status-ok{background:#4a684329;color:#2c4a26}.admin-log-status-warn{background:#d9c28a73;color:#5a4112}.admin-log-status-err{background:#8c1e2829;color:var(--wine)}.admin-log-status-unk{background:#3c38321a;color:var(--ink-soft)}.admin-log-details-row td{background:#00000008;padding:0 10px 8px}.admin-log-details{margin:0;padding:8px 10px;background:var(--parchment);border:1px solid var(--parchment-deep);border-radius:6px;font-family:SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;color:var(--ink);white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto}.admin-log-page-users{margin-top:8px;font-size:11.5px}.admin-log-pagination{display:flex;align-items:center;gap:6px;margin-top:12px;flex-wrap:wrap}.admin-log-page-of{margin:0 4px;font-size:12px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.service-card-section-cost{font-family:var(--font-display);font-size:14px;font-weight:800;letter-spacing:.05em;text-transform:none;color:var(--wood-darkest);background:linear-gradient(180deg,var(--candle-soft),var(--candle));border:1px solid var(--brass);padding:3px 12px;border-radius:999px;text-shadow:0 1px 0 rgba(255,245,210,.6);box-shadow:var(--shadow-warm-sm)}.service-offer-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.service-offer{display:flex;flex-direction:column;gap:2px;padding:6px 10px;background:#fff5d273;border:1px solid rgba(176,137,48,.25);border-radius:6px}.service-offer-line,.service-offer:not(:has(.service-offer-desc)){display:flex;justify-content:flex-start;align-items:baseline;gap:8px}.service-offer-line .service-offer-meta,.service-offer:not(:has(.service-offer-desc)) .service-offer-meta{margin-left:auto;margin-right:4px}.service-offer-name{font-weight:600;color:var(--ink);font-size:13px}.service-offer-leading{display:inline-flex;align-items:center;gap:8px;min-width:0}.service-offer-icon{flex-shrink:0;color:var(--brass);filter:drop-shadow(0 1px 0 rgba(255,245,210,.6))}.service-offer-icon-ink{color:var(--wine)}.service-offer-icon-spell{color:var(--wood-darkest)}.service-offer-icon-potion{color:var(--wine)}.service-offer-stock-badge{display:inline-flex;align-items:center;margin-left:8px;padding:1px 9px;font-family:var(--font-display);font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--wood-darkest);background:linear-gradient(180deg,var(--candle-soft),var(--candle));border:1px solid var(--brass);border-radius:999px;text-shadow:0 1px 0 rgba(255,245,210,.6);white-space:nowrap}.service-offer-stock-badge-out{color:var(--wine);background:#8c1e2814;border-color:#8c1e2873;text-shadow:none;font-weight:700;text-transform:uppercase;font-size:10px}.service-offer-weight{display:inline-flex;align-items:center;margin-left:6px;padding:0 4px;font-family:var(--font-body);font-size:11px;font-style:italic;color:var(--ink-soft);letter-spacing:.02em;white-space:nowrap}.service-offer-price{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-family:var(--font-display);font-size:13px;font-weight:800;letter-spacing:.04em;color:var(--candle-soft);background:linear-gradient(180deg,var(--wine),var(--wine-deep));border:1px solid var(--wine-deep);text-shadow:0 1px 0 rgba(0,0,0,.35);box-shadow:inset 0 1px #ffffff1a,0 1px #0000002e}.service-offer-meta{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:11px;color:var(--wine);font-weight:700;letter-spacing:.03em;white-space:nowrap}.service-offer-desc{margin:4px 0 0;font-size:13.5px;color:var(--ink);font-weight:500;line-height:1.45}.service-card-actions{display:flex;justify-content:flex-end;gap:6px;padding-top:8px;border-top:1px dashed var(--parchment-deep)}.service-offer-buy{cursor:pointer;transition:background .12s,border-color .12s,transform .06s}.service-offer-buy:hover{background:#f0b87033;border-color:var(--brass)}.service-offer-buy:active{transform:translateY(1px)}.service-offer-out{opacity:.55;cursor:not-allowed}.service-offer-out:hover{background:#fff5d273;border-color:#b0893040}.service-offer-tag{display:inline-block;margin-left:8px;padding:1px 7px;font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--wood-darkest);background:linear-gradient(180deg,var(--candle-soft),var(--candle));border:1px solid var(--brass-dim);border-radius:999px;vertical-align:middle}.service-card-ledger{padding-top:10px;border-top:1px dashed var(--parchment-deep)}.service-ledger-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.service-ledger-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:12px;color:var(--ink-soft)}.service-ledger-character{color:var(--ink);font-weight:700}.service-ledger-action{font-style:italic}.service-ledger-name{color:var(--ink)}.service-ledger-cost{color:var(--wine);font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.04em}.service-ledger-week{font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.05em;color:var(--wood-darkest);background:#d9c28a73;border:1px solid var(--brass-dim);padding:0 6px;border-radius:999px}.service-ledger-time{color:var(--ink-faint);font-size:11px;margin-left:auto}.service-ledger-cost-sell{color:var(--mossy, #3f7d3a)}.sell-register-head{margin:18px 0 6px;font-family:var(--font-display);font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.sell-register-list{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:6px}.sell-register-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:8px 12px;background:#d9c28a2e;border:1px solid var(--parchment-deep);border-radius:8px}.sell-register-tier{font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--wood-darkest);background:#d9c28a8c;border:1px solid var(--brass-dim);padding:2px 7px;border-radius:999px;white-space:nowrap}.sell-register-name{color:var(--ink);font-weight:600}.sell-register-price{font-family:var(--font-display);font-weight:700;color:var(--mossy, #3f7d3a);white-space:nowrap}.sell-register-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:4px;padding:10px 12px;background:#d9c28a52;border:1px solid var(--brass-dim);border-radius:8px;font-family:var(--font-display);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.sell-register-total-amount{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--mossy, #3f7d3a);letter-spacing:.02em;text-transform:none}.service-queue{margin:0 0 20px;padding:14px 18px 16px;background:linear-gradient(180deg,#fff7e28c,#d9c28a1a);border:1px solid var(--parchment-deep);border-radius:14px}.service-queue-active{border-color:var(--brass-dim)}.service-queue-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid transparent;border-image:linear-gradient(90deg,transparent 0%,var(--brass-dim) 18%,var(--brass-dim) 82%,transparent 100%) 1}.service-queue-title{display:flex;align-items:center;gap:11px}.service-queue-title h3{margin:0;font-family:var(--font-display);font-size:16px;letter-spacing:.04em;color:var(--ink)}.service-queue-subtitle{margin:1px 0 0;font-size:12.5px;color:var(--ink-soft)}.service-queue-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:transparent;border:1px solid var(--brass-dim);color:var(--brass);font-size:13px}.service-queue-actions{display:flex;gap:8px}.service-queue-join-select{background:var(--parchment);border:1px solid var(--parchment-deep);border-radius:8px;padding:6px 10px;font-family:var(--font-body);font-size:13px;color:var(--ink);cursor:pointer;transition:border-color .12s ease}.service-queue-join-select:hover{border-color:var(--brass-dim)}.service-queue-join-select:disabled{opacity:.55;cursor:not-allowed}.service-queue-roll-flash{margin:14px 0 0;padding:7px 36px 7px 12px;position:relative;background:#fff7e2d9;border:1px solid var(--parchment-deep);border-left:3px solid var(--brass);border-radius:6px;font-size:13px;color:var(--ink)}.service-queue-roll-total{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--wood-darkest);margin:0 3px}.service-queue-roll-breakdown{color:var(--ink-soft);font-size:12px}.service-queue-roll-dismiss{position:absolute;top:5px;right:6px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--ink-soft);cursor:pointer;font-size:17px;line-height:1;border-radius:50%}.service-queue-roll-dismiss:hover{background:#0000000f;color:var(--ink)}.service-queue-line{list-style:none;margin:14px 0 0;padding:2px;display:flex;gap:10px;overflow-x:auto;scrollbar-width:thin}.service-queue-spot{display:flex;align-items:center;gap:10px;padding:6px 8px 6px 6px;background:var(--parchment);border:1px solid var(--parchment-deep);border-radius:12px;flex:0 0 auto;position:relative;transition:transform .15s ease,box-shadow .15s ease}.service-queue-spot:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0000000f}.service-queue-spot-leader{background:radial-gradient(circle at 14% 50%,rgba(217,194,138,.22),transparent 65%),var(--parchment);border-color:var(--brass);box-shadow:0 0 0 1px var(--brass) inset,0 2px 10px #c49c5c2e}.service-queue-portrait{flex-shrink:0;line-height:0}.service-queue-meta{display:flex;flex-direction:column;line-height:1.15;min-width:0;gap:1px}.service-queue-score{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--wood-darkest);white-space:nowrap;letter-spacing:.02em;line-height:1}.service-queue-score strong{font-weight:700}.service-queue-score-breakdown{font-size:10.5px;color:var(--ink-faint, var(--ink-soft));opacity:.75;white-space:nowrap;letter-spacing:.02em}.service-queue-done{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex-shrink:0;width:22px;height:22px;margin-left:2px;display:inline-flex;align-items:center;justify-content:center;padding:0;font-family:var(--font-body);font-size:16px;line-height:1;color:var(--ink-soft);background:transparent;border:1px solid transparent;border-radius:50%;cursor:pointer;transition:color .12s ease,border-color .12s ease,background .12s ease}.service-queue-done:hover:not(:disabled){color:var(--wine);border-color:var(--wine);background:#8c1e280f}.service-queue-done:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.service-queue-done:disabled{opacity:.45;cursor:not-allowed}.service-queue-locked-note{margin:12px 0 0;padding:8px 12px;background:#8c1e280f;border-left:3px solid var(--wine);border-radius:4px;font-size:12.5px;color:var(--wine)}.modal-service{max-width:760px;width:100%}.service-subsection{margin-top:18px;padding-top:14px;border-top:1px dashed var(--parchment-deep)}.service-subsection:first-of-type{margin-top:6px;padding-top:0;border-top:none}.service-subsection-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.service-subsection-head h3{margin:0;font-family:var(--font-display);font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--wine)}.service-row-list{display:flex;flex-direction:column;gap:10px}.service-row{display:grid;grid-template-columns:1fr 110px 110px auto;gap:10px;align-items:end;padding:10px;background:#fff5d266;border:1px solid rgba(176,137,48,.3);border-radius:var(--radius)}.service-row-ware{grid-template-columns:1fr 110px auto}.service-row-ware .service-ware-desc{grid-column:1 / -1}.dropzone{border:2px dashed var(--brass-dim);border-radius:var(--radius-lg);padding:40px 20px;text-align:center;color:var(--ink-soft);cursor:pointer;background:var(--parchment-warm);transition:all .15s}.dropzone:hover,.dropzone-active{border-color:var(--wine);background:var(--parchment-cool);color:var(--wine);box-shadow:var(--shadow-hearth)}.dropzone p{margin:10px 0 0;font-size:14px}.portrait-help{font-size:12.5px;color:var(--ink-soft);text-align:center;margin:0 0 12px;font-style:italic}.crop-viewport{position:relative;margin:0 auto;overflow:hidden;background:var(--wood-darkest);border-radius:var(--radius);cursor:grab;touch-action:none;box-shadow:inset 0 0 0 1px var(--wood-warm),inset 0 0 0 4px var(--brass),var(--shadow-warm-md)}.crop-viewport:active{cursor:grabbing}.crop-image{position:absolute;top:0;left:0;max-width:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.crop-circle-mask{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;box-shadow:0 0 0 9999px #140a04b8;pointer-events:none}.zoom-control{display:flex;align-items:center;gap:14px;margin-top:18px;font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--ink-soft)}.zoom-control input[type=range]{flex:1;accent-color:var(--wine)}.downtime-panel{border-color:var(--wood-warm)}.downtime-empty{background:var(--parchment-warm);border:1px dashed var(--brass-dim);border-radius:var(--radius);padding:18px 20px;color:var(--ink-soft);font-size:14px;font-style:italic}.downtime-empty p{margin:0}.downtime-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:16px}.downtime-overview-stat{background:radial-gradient(ellipse at 50% 12%,rgba(240,184,112,.18) 0%,transparent 65%),var(--parchment-warm);border:1px solid var(--wood-warm);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:5px;box-shadow:var(--shadow-warm-sm)}.stat-label{font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);font-weight:700}.stat-value{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--ink)}.progress-bar{height:10px;background:var(--wood-warm);border-radius:999px;overflow:hidden;margin-bottom:20px;box-shadow:inset 0 1px 2px #0006,inset 0 -1px #ffdca01a}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--ember) 0%,var(--candle) 50%,var(--brass-bright) 100%);box-shadow:0 0 12px #f0b8708c;transition:width .4s}.downtime-start-btn{margin-bottom:18px}.downtime-caughtup{background:var(--moss-soft);border:1px solid #a8c098;border-left:4px solid var(--moss);color:var(--moss-deep);padding:14px 16px;border-radius:var(--radius);font-size:14px;font-style:italic;margin-bottom:18px}.downtime-form{background-color:var(--parchment-cool);background-image:radial-gradient(ellipse at 18% 15%,rgba(240,184,112,.14) 0%,transparent 50%);border:1px solid var(--wood-warm);border-left:4px solid var(--wine);border-radius:var(--radius-lg);padding:20px 22px;margin-bottom:24px;box-shadow:var(--shadow-warm-md),inset 0 0 0 1px #f0dcaa80}.downtime-form-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.downtime-form-head h3{font-size:18px;color:var(--wine);letter-spacing:.04em}.activity-rules{background:radial-gradient(ellipse at 50% 0%,rgba(240,184,112,.14) 0%,transparent 60%),var(--parchment-warm);border:1px solid var(--wood-warm);border-left:4px solid var(--brass);border-radius:var(--radius);padding:16px 18px;margin-bottom:18px;box-shadow:inset 0 0 0 1px #f0dcaa66}.activity-rules-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.activity-rules-head h4{font-size:16px;color:var(--wine);letter-spacing:.03em}.activity-source{font-size:11px;color:var(--ink-faint);font-style:italic;flex-shrink:0;letter-spacing:.04em}.activity-summary{margin:6px 0 10px;font-weight:700;font-size:14px;color:var(--ink);font-style:italic}.activity-text{margin:0 0 10px;font-size:13.5px;line-height:1.7;color:var(--ink-soft)}.activity-gold{margin:0;font-size:12.5px;color:var(--ember-deep);background:#f0b8702e;border:1px solid var(--brass-dim);padding:9px 11px;border-radius:var(--radius-sm)}.activity-gold strong{color:var(--ember-deep)}.roll-builder{margin-bottom:18px}.suggested-rolls{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 16px}.chip{background:var(--parchment-cool);border:1px solid var(--brass-dim);color:var(--ink-soft);font-family:var(--font-display);font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px;cursor:pointer;letter-spacing:.04em;transition:all .12s}.chip:hover{border-color:var(--wine);color:var(--wine);background:var(--wine-soft)}.roll-builder-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 16px;margin-bottom:16px}.roll-builder-grid .field{margin-bottom:0}.roll-result{display:flex;align-items:center;gap:18px;background:radial-gradient(ellipse at 0% 50%,rgba(240,184,112,.2) 0%,transparent 55%),var(--parchment-cool);border:1px solid var(--wood-warm);border-left:5px solid var(--brass);border-radius:var(--radius);padding:16px 20px;margin-top:10px;flex-wrap:wrap;box-shadow:var(--shadow-warm-md),var(--shadow-hearth)}.roll-result-hit{border-left-color:var(--moss);background:radial-gradient(ellipse at 0% 50%,rgba(74,104,67,.18) 0%,transparent 55%),var(--moss-soft)}.roll-result-miss{border-left-color:var(--wine);background:radial-gradient(ellipse at 0% 50%,rgba(122,40,40,.18) 0%,transparent 55%),var(--wine-soft)}.roll-result-total{display:flex;flex-direction:column;align-items:center;min-width:76px}.roll-result-number{font-family:var(--font-display);font-size:44px;font-weight:700;line-height:1;color:var(--wine);text-shadow:0 1px 0 rgba(255,245,210,.6),0 0 18px rgba(240,184,112,.35)}.roll-result-label{font-family:var(--font-display);font-size:11px;color:var(--ink-soft);text-align:center;margin-top:4px;letter-spacing:.06em}.roll-result-detail{flex:1;min-width:180px}.roll-result-detail code{display:block;background:#6e461e1f;padding:7px 11px;border-radius:var(--radius-sm);color:var(--ink);border:1px solid var(--parchment-deep)}.crit{display:inline-block;margin-top:8px;font-family:var(--font-display);font-size:12.5px;font-weight:800;letter-spacing:.08em}.crit-hit{color:var(--moss-deep)}.crit-miss{color:var(--wine-deep)}.outcome-fields{border-top:1px dashed var(--parchment-deep);padding-top:16px}.outcome-fields>.field-label{display:block;margin-bottom:8px}.timeline{margin-top:26px;border-top:2px solid var(--parchment-deep);padding-top:20px}.timeline-title{font-family:var(--font-display);font-size:17px;color:var(--wine);margin-bottom:18px;letter-spacing:.05em}.timeline-list{list-style:none;margin:0;padding:0;position:relative}.timeline-list:before{content:"";position:absolute;left:19px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,var(--brass),var(--wood-warm));border-radius:1px}.timeline-item{display:flex;gap:18px;margin-bottom:16px;position:relative}.timeline-marker{width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#b04848 0%,var(--wine) 60%,var(--wine-deep) 100%);color:var(--candle-soft);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:16px;flex-shrink:0;z-index:1;box-shadow:inset 0 1px #ffc8b466,inset 0 -2px 4px #280a0a80,0 0 0 3px var(--parchment),0 0 0 4px var(--wood-warm),var(--shadow-warm-md);text-shadow:0 1px 1px rgba(0,0,0,.45)}.timeline-card{flex:1;background:radial-gradient(ellipse at 0% 0%,rgba(240,184,112,.12) 0%,transparent 55%),var(--parchment-warm);border:1px solid var(--wood-warm);border-radius:var(--radius);padding:14px 18px;box-shadow:var(--shadow-warm-sm),inset 0 0 0 1px #f0dcaa66}.timeline-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.timeline-card-head h4{font-size:15px;color:var(--wine);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;letter-spacing:.03em}.timeline-activity{font-family:var(--font-display);font-size:11.5px;font-weight:700;letter-spacing:.06em;color:var(--wood-darkest);background:linear-gradient(180deg,var(--candle-soft),var(--candle));padding:2px 10px;border-radius:999px;border:1px solid var(--brass-dim)}.timeline-roll{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:9px 0;font-size:12.5px}.timeline-roll-label{font-family:var(--font-display);font-weight:700;color:var(--ink-soft);letter-spacing:.03em}.timeline-roll code{background:#6e461e1f;padding:2px 8px;border-radius:4px;border:1px solid var(--parchment-deep)}.timeline-roll-total{font-family:var(--font-display);font-weight:800;color:var(--wine)}.timeline-outcome{margin:10px 0;font-size:14px;line-height:1.65;white-space:pre-wrap;color:var(--ink)}.timeline-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}.gold-change{font-family:var(--font-display);font-weight:800;font-size:13px;padding:2px 10px;border-radius:var(--radius-sm);letter-spacing:.04em;border:1px solid}.gold-up{background:var(--moss-soft);color:var(--moss-deep);border-color:#a8c098}.gold-down{background:var(--wine-soft);color:var(--wine-deep);border-color:#c69690}.timeline-notes{font-size:12.5px;color:var(--ink-soft);font-style:italic}.admin-create-form .field-row{margin-bottom:4px}.admin-campaign-list{display:flex;flex-direction:column;gap:18px}.admin-campaign-row{background:radial-gradient(ellipse at 0% 0%,rgba(240,184,112,.1) 0%,transparent 55%),var(--parchment-warm);border:1px solid var(--wood-warm);border-left:4px solid var(--brass);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-warm-sm),inset 0 0 0 1px #f0dcaa66}.admin-campaign-row-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px}.admin-campaign-row-actions{display:flex;gap:8px}.admin-table{width:100%;border-collapse:collapse;font-size:13.5px}.admin-table th{text-align:left;font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);padding:9px 10px;border-bottom:2px solid var(--wood-warm)}.admin-table td{padding:10px;border-bottom:1px dashed var(--parchment-deep);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table-name{font-family:var(--font-display);font-weight:700;color:var(--wine)}.admin-table select{min-width:170px}@media (max-width: 860px){.sidebar{width:76px;padding:18px 8px}.sidebar-brand-text,.sidebar-link span,.sidebar-user-info,.sidebar-logout span,.sidebar-cta .btn span{display:none}.sidebar-logout{justify-content:center;padding:8px}.sidebar-brand{justify-content:center;padding-bottom:14px}.sidebar-link{justify-content:center}.sidebar-cta .btn{padding:9px 0}.sidebar-user{justify-content:center}.app-main{margin-left:76px;padding:24px 20px 70px}.ability-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 520px){.app-main{padding:18px 14px 60px}.ability-grid{grid-template-columns:repeat(2,1fr)}.page-header{flex-direction:column}.character-hero-content{padding:0 18px 18px}}:root{--font-tavern: "IM Fell English SC", "Cinzel", "Book Antiqua", "Palatino Linotype", Palatino, Georgia, serif;--font-signboard: "Cinzel", "IM Fell English SC", "Book Antiqua", "Palatino Linotype", Palatino, Georgia, serif;--font-handwritten: "IM Fell English", "Book Antiqua", Palatino, Georgia, serif;--paper-fiber: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.18  0 0 0 0 0.10  0 0 0 0 0.04  0 0 0 0.08 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");--wood-grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='w'><feTurbulence type='turbulence' baseFrequency='0.012 0.5' numOctaves='2' seed='3'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.18 0'/></filter><rect width='100%25' height='100%25' filter='url(%23w)'/></svg>")}body{background-image:var(--paper-fiber),radial-gradient(ellipse at 50% -10%,rgba(240,184,112,.22) 0%,transparent 55%),radial-gradient(ellipse at 12% 18%,rgba(120,70,30,.1) 0%,transparent 45%),radial-gradient(ellipse at 88% 82%,rgba(120,70,30,.09) 0%,transparent 50%),radial-gradient(ellipse at 40% 110%,rgba(90,50,20,.14) 0%,transparent 55%)}.panel,.auth-card,.modal,.character-card,.character-hero,.campaign-row,.downtime-form,.activity-rules,.admin-campaign-row,.timeline-card,.ability-card,.stat-box,.downtime-overview-stat{background-image:var(--paper-fiber),radial-gradient(ellipse at 18% 15%,rgba(240,184,112,.16) 0%,transparent 50%),radial-gradient(ellipse at 82% 85%,rgba(140,80,30,.1) 0%,transparent 55%)}.sidebar,.character-hero-banner,.character-card-banner{background-blend-mode:normal,multiply,normal,normal}.sidebar{background-image:var(--wood-grain),linear-gradient(180deg,var(--wood-mid) 0%,var(--wood-dark) 35%,var(--wood-darkest) 100%),repeating-linear-gradient(180deg,transparent 0,transparent 3px,rgba(0,0,0,.1) 3px,rgba(0,0,0,.1) 4px),repeating-linear-gradient(180deg,transparent 0,transparent 27px,rgba(255,200,130,.04) 27px,rgba(255,200,130,.04) 28px);background-size:200px 200px,auto,auto,auto}.sidebar-brand-text,.auth-brand h1,.character-hero-name,.character-card-name,.panel-title,.timeline-title,.downtime-form-head h3,.activity-rules-head h4,.campaign-row-head h3,.empty-state h2,.modal-header h2,.page-header h1{font-family:var(--font-signboard);letter-spacing:.06em}.panel-title,.timeline-title,.activity-rules-head h4,.empty-state h2,.modal-header h2{font-family:var(--font-tavern);letter-spacing:.1em}.detail-label,.stat-label,.stat-box-label,.ability-name,.field-label,.subhead,.admin-table th{font-family:var(--font-tavern);letter-spacing:.16em}.sidebar-brand{position:relative;padding-top:22px}.sidebar-brand:before{content:"";position:absolute;top:2px;left:18%;right:18%;height:2px;background:linear-gradient(90deg,transparent,var(--brass-dim),var(--brass),var(--brass-dim),transparent);box-shadow:0 1px #0006}.sidebar-brand:after{content:"";position:absolute;top:4px;left:22%;right:22%;height:8px;background:linear-gradient(90deg,transparent 0%,rgba(176,137,48,.55) 0%,rgba(176,137,48,.55) 1px,transparent 1px,transparent calc(100% - 1px),rgba(176,137,48,.55) calc(100% - 1px),rgba(176,137,48,.55) 100%)}@keyframes candle-flicker{0%,to{filter:drop-shadow(0 0 6px rgba(240,184,112,.55));opacity:1}18%{filter:drop-shadow(0 0 10px rgba(240,184,112,.85));opacity:.96}43%{filter:drop-shadow(0 0 4px rgba(240,184,112,.4));opacity:1}72%{filter:drop-shadow(0 0 9px rgba(240,184,112,.75));opacity:.98}85%{filter:drop-shadow(0 0 5px rgba(240,184,112,.45));opacity:1}}.sidebar-brand-icon{animation:candle-flicker 5s ease-in-out infinite}@keyframes hearth-pulse{0%,to{box-shadow:0 0 12px #f0b8708c}50%{box-shadow:0 0 20px #f0b870d9}}.progress-bar-fill{animation:hearth-pulse 4s ease-in-out infinite}.bio-text:first-letter{font-family:var(--font-signboard);font-size:3.4em;font-weight:700;float:left;line-height:.85;padding:.05em .12em 0 0;color:var(--wine);text-shadow:0 1px 0 rgba(255,245,210,.5)}.bio-text:first-line{font-style:normal;color:var(--ink)}.character-hero,.panel{background-clip:padding-box}.character-hero{box-shadow:var(--shadow-warm-lg),inset 0 0 0 1px #f0dcaa99,inset 0 0 0 3px #6e461e2e,inset 0 0 0 5px #f0dcaa59}.panel-title{text-align:left;padding-right:28px}.panel-title:after{background:radial-gradient(circle at 72px 1px,var(--brass) 0 2px,transparent 2.5px),linear-gradient(90deg,var(--brass),rgba(176,137,48,.4) 60%,transparent);width:96px}.page-header:after{content:"❦   ⚔   ❦";letter-spacing:.6em}.character-card{border-width:3px;box-shadow:var(--shadow-warm-md),inset 0 0 0 1px #f0dcaa80,inset 0 0 0 3px #6e461e33,inset 0 0 30px #8c501e1a}.character-card-name{margin-top:4px}.character-card-banner:after{content:"";display:block;position:relative;top:100%;height:2px;background:linear-gradient(90deg,transparent,var(--brass-dim),var(--brass),var(--brass-dim),transparent)}.character-card:hover{box-shadow:0 18px 36px #28160852,inset 0 0 0 1px #f0dcaa99,inset 0 0 0 3px #b089304d,inset 0 0 40px #f0b87033,0 0 28px #f0b87047}.empty-state{position:relative;overflow:hidden}.empty-state:before{content:"✒";position:absolute;top:12px;right:18px;font-size:30px;color:var(--ink-mute);opacity:.35}.empty-state:after{content:"🜚";position:absolute;bottom:14px;left:22px;font-size:26px;color:var(--brass);opacity:.45}.auth-card:after{content:"“No good story starts with a salad.”";display:block;margin:22px -10px -6px;text-align:center;font-family:var(--font-handwritten);font-style:italic;font-size:13px;color:var(--ink-faint);letter-spacing:.02em}.roll-result-number{animation:hearth-pulse 5s ease-in-out infinite;text-shadow:0 1px 0 rgba(255,245,210,.7),0 0 20px rgba(240,184,112,.45)}.btn-primary{box-shadow:var(--shadow-warm-sm),var(--shadow-inset-carved),inset 0 0 14px #0000002e}.btn-primary:hover:not(:disabled){filter:brightness(1.12);box-shadow:var(--shadow-warm-md),var(--shadow-inset-carved),0 0 18px #f0b8704d}.btn-roll{position:relative;letter-spacing:.08em}.btn-roll:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:inherit;pointer-events:none;box-shadow:0 0 22px #f0b87040}.timeline-marker{box-shadow:inset 0 1px #ffc8b466,inset 0 -2px 4px #280a0a80,inset 0 0 18px #280a0a59,0 0 0 3px var(--parchment),0 0 0 4px var(--wood-warm),0 0 0 5px #6e461e4d,var(--shadow-warm-md)}.pill{box-shadow:inset 0 1px #fff5d28c,inset 0 -1px #50280a4d}.sidebar-link.active{background:radial-gradient(ellipse at 0% 50%,rgba(240,184,112,.1) 0%,transparent 60%),linear-gradient(180deg,#c85a2a38,#7a282852);box-shadow:inset 0 0 14px #f0b8702e,inset 0 1px #ffc8822e,0 0 0 1px #00000040}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:999;background:radial-gradient(ellipse 110% 90% at 50% 38%,transparent 0%,transparent 45%,rgba(20,10,4,.18) 80%,rgba(20,10,4,.42) 100%);mix-blend-mode:multiply}.app-main{position:relative;padding-top:56px}.app-main:before{content:"";position:absolute;top:0;left:-20px;right:-20px;height:22px;background:linear-gradient(180deg,var(--wood-warm) 0%,var(--wood-dark) 100%),repeating-linear-gradient(180deg,transparent 0,transparent 2px,rgba(0,0,0,.1) 2px,rgba(0,0,0,.1) 3px);background-blend-mode:multiply;border-bottom:2px solid var(--wood-darkest);box-shadow:inset 0 -4px 8px #00000073,0 4px 14px #00000059,0 8px 24px #0000002e;pointer-events:none}.app-main:after{content:"";position:absolute;top:6px;left:8%;right:8%;height:10px;background:radial-gradient(circle at 5% 50%,var(--brass) 0 3px,transparent 4px),radial-gradient(circle at 50% 50%,var(--brass) 0 3px,transparent 4px),radial-gradient(circle at 95% 50%,var(--brass) 0 3px,transparent 4px);pointer-events:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5))}.sidebar{padding-bottom:28px}.sidebar:after{content:"";position:absolute;left:0;right:0;bottom:0;height:70px;pointer-events:none;background:radial-gradient(ellipse at 50% 100%,rgba(240,184,112,.5) 0%,rgba(240,130,60,.3) 25%,rgba(122,40,40,.12) 60%,transparent 100%);animation:hearth-glow 4.2s ease-in-out infinite}@keyframes hearth-glow{0%,to{opacity:.85}40%{opacity:1}70%{opacity:.7}}.sidebar-brand{transform-origin:50% 0;animation:sign-sway 9s ease-in-out infinite}@keyframes sign-sway{0%,to{transform:rotate(-.6deg)}50%{transform:rotate(.6deg)}}.character-card{isolation:isolate}.character-card:before{content:"";position:absolute;right:0;bottom:0;width:30px;height:30px;background:linear-gradient(135deg,transparent 0 50%,rgba(110,70,30,.35) 50%,rgba(60,30,10,.55) 100%);border-bottom-right-radius:var(--radius-lg);pointer-events:none;opacity:.55;transition:opacity .18s,transform .18s;z-index:1}.character-card:hover:before{opacity:1;transform:translate(-2px,-2px)}.downtime-form .btn-primary.btn-block{background:radial-gradient(ellipse at 50% 30%,#a33636 0%,var(--wine) 55%,var(--wine-deep) 100%);border:1px solid var(--wine-deep);font-family:var(--font-tavern);letter-spacing:.12em;padding:13px 22px;box-shadow:inset 0 2px #ffc8b44d,inset 0 -2px #28080873,inset 0 0 18px #2808084d,0 0 0 1px #00000040,0 6px 14px #28160852}.activity-rules-head h4:before{content:"⚜";margin-right:8px;color:var(--brass);font-size:.9em}.roll-result-detail:before{content:"— rolled —";display:block;margin-bottom:6px;font-family:var(--font-handwritten);font-style:italic;font-size:12px;color:var(--ink-faint);letter-spacing:.08em}.page-header h1:before{content:"🍺";margin-right:12px;font-size:.7em;filter:sepia(.4) hue-rotate(-10deg) brightness(.9);vertical-align:middle}.page-header:has(h1) h1[data-icon=quill]:before{content:"✒"}.service-detail-head h1:before{content:none}.sidebar-link svg{color:var(--brass)}.sidebar-link.active svg,.sidebar-link:hover svg{color:var(--candle-soft)}input:focus,select:focus,textarea:focus{background:linear-gradient(180deg,transparent 96%,rgba(122,40,40,.45) 96%),var(--parchment-cool)}.modal-close{font-family:var(--font-tavern);font-weight:400}.auth-brand h1{position:relative;padding-bottom:4px}.auth-brand h1:after{content:"";position:absolute;left:50%;bottom:0;transform:translate(-50%);width:120px;height:2px;background:linear-gradient(90deg,transparent,var(--brass),transparent)}.sidebar-link.active:before{content:"🜚";position:absolute;left:-2px;color:var(--candle);font-size:12px;text-shadow:0 0 8px rgba(240,184,112,.65)}.sidebar-link{position:relative;padding-left:16px}html,body{min-height:100%}body{background-color:#e6d5ad}.theme-picker{margin:8px -4px 0;padding:12px 8px 4px;border-top:1px dashed rgba(176,137,48,.3)}.theme-picker-label{display:block;font-family:var(--font-tavern);font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-mute);text-align:center;margin-bottom:8px;opacity:.85}.theme-picker-buttons{display:flex;gap:6px}.theme-chip{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:#00000040;border:1px solid rgba(176,137,48,.3);color:var(--ink-mute);font-family:var(--font-tavern);font-size:10px;letter-spacing:.1em;padding:6px 4px;border-radius:4px;cursor:pointer;transition:background .15s,color .15s,border-color .15s,box-shadow .15s}.theme-chip:hover{border-color:var(--brass);color:var(--candle-soft)}.theme-chip.active{background:#f0b8701f;border-color:var(--brass);color:var(--candle-soft);box-shadow:inset 0 0 10px #f0b8702e,0 0 0 1px #00000040}.theme-chip-icon{display:flex}.theme-chip-name{letter-spacing:.08em}@media (max-width: 860px){.theme-picker-label,.theme-chip-name{display:none}.theme-chip{padding:6px}}html[data-theme=midnight]{--wood-darkest: #050200;--wood-dark: #0b0703;--wood-mid: #14100a;--wood-warm: #1d1610;--wood-light: #2a1c12;--parchment: #1a130a;--parchment-warm: #1f160c;--parchment-cool: #221810;--parchment-dim: #2a1c12;--parchment-deep: #3a2818;--ink: #ead7a5;--ink-soft: #c9a86b;--ink-faint: #9a8866;--ink-mute: #6e5d40;--brass: #c9a86b;--brass-bright: #e9c87a;--brass-dim: #8a7240;--candle: #e9b870;--candle-soft: #f4d488;--ember: #a8541f;--ember-deep: #6b3210;--wine: #8a3a1a;--wine-deep: #5a210e;--wine-soft: #3a1810}html[data-theme=midnight] body{background-color:#0a0703;background-image:radial-gradient(ellipse at 50% -10%,rgba(233,184,112,.1) 0%,transparent 55%),radial-gradient(ellipse at 12% 20%,rgba(168,84,31,.07) 0%,transparent 45%),radial-gradient(ellipse at 88% 80%,rgba(168,84,31,.06) 0%,transparent 50%),radial-gradient(ellipse at 40% 110%,rgba(168,84,31,.1) 0%,transparent 55%)}html[data-theme=midnight] body:after{background:radial-gradient(ellipse 110% 90% at 50% 38%,transparent 0%,transparent 30%,rgba(0,0,0,.45) 75%,rgba(0,0,0,.85) 100%)}html[data-theme=midnight] .sidebar-brand-text,html[data-theme=midnight] .auth-brand h1,html[data-theme=midnight] .page-header h1,html[data-theme=midnight] .character-hero-name,html[data-theme=midnight] .character-card-name,html[data-theme=midnight] .panel-title,html[data-theme=midnight] .timeline-title,html[data-theme=midnight] .downtime-form-head h3,html[data-theme=midnight] .activity-rules-head h4,html[data-theme=midnight] .campaign-row-head h3,html[data-theme=midnight] .empty-state h2,html[data-theme=midnight] .modal-header h2,html[data-theme=midnight] .admin-table-name,html[data-theme=midnight] .roll-result-number,html[data-theme=midnight] .timeline-roll-total{color:var(--candle-soft);text-shadow:0 0 12px rgba(233,184,112,.25)}html[data-theme=midnight] .character-hero-name{color:#f4d488}html[data-theme=midnight] .panel,html[data-theme=midnight] .auth-card,html[data-theme=midnight] .modal,html[data-theme=midnight] .character-card,html[data-theme=midnight] .character-hero,html[data-theme=midnight] .campaign-row,html[data-theme=midnight] .downtime-form,html[data-theme=midnight] .activity-rules,html[data-theme=midnight] .admin-campaign-row,html[data-theme=midnight] .timeline-card,html[data-theme=midnight] .ability-card,html[data-theme=midnight] .stat-box,html[data-theme=midnight] .downtime-overview-stat,html[data-theme=midnight] .empty-state{background-color:#14100a;background-image:radial-gradient(ellipse at 50% 0%,rgba(233,184,112,.05) 0%,transparent 60%);border-color:#c9a86b4d;box-shadow:0 6px 18px #0009,inset 0 0 0 1px #c9a86b0f}html[data-theme=midnight] .character-card,html[data-theme=midnight] .character-hero{border-width:1px}html[data-theme=midnight] .panel:before,html[data-theme=midnight] .panel:after{background:radial-gradient(circle at 35% 30%,#f4d488 0%,var(--brass) 60%,#5a4226 100%);box-shadow:0 1px 2px #0009}html[data-theme=midnight] .character-card-banner,html[data-theme=midnight] .character-hero-banner,html[data-theme=midnight] .app-main:before{background:linear-gradient(180deg,#1d1610,#050200),repeating-linear-gradient(180deg,transparent 0,transparent 3px,rgba(0,0,0,.25) 3px,rgba(0,0,0,.25) 4px);background-blend-mode:normal,multiply;border-color:#050200}html[data-theme=midnight] .sidebar{background-color:#050200;background-image:linear-gradient(180deg,#14100a,#050200),repeating-linear-gradient(180deg,transparent 0,transparent 3px,rgba(0,0,0,.2) 3px,rgba(0,0,0,.2) 4px)}html[data-theme=midnight] .sidebar:after{background:radial-gradient(ellipse at 50% 100%,rgba(233,184,112,.35) 0%,rgba(168,84,31,.25) 25%,rgba(122,40,40,.1) 60%,transparent 100%)}html[data-theme=midnight] .sidebar-link{color:#c9a86bb3}html[data-theme=midnight] .sidebar-link:hover{color:var(--candle-soft);background:#c9a86b14}html[data-theme=midnight] .sidebar-link.active{background:#a8541f38;color:#f4d488;border-color:#c9a86b73}html[data-theme=midnight] input[type=text],html[data-theme=midnight] input[type=password],html[data-theme=midnight] input[type=number],html[data-theme=midnight] input[type=search],html[data-theme=midnight] input[type=email],html[data-theme=midnight] select,html[data-theme=midnight] textarea{background:#0c0703;border-color:#c9a86b4d;color:var(--ink);box-shadow:inset 0 1px 3px #0009,inset 0 0 0 1px #c9a86b0f}html[data-theme=midnight] input:focus,html[data-theme=midnight] select:focus,html[data-theme=midnight] textarea:focus{border-color:var(--brass);box-shadow:inset 0 1px 3px #0009,0 0 0 3px #e9b8702e,0 0 16px #e9b87033}html[data-theme=midnight] ::placeholder{color:#c9a86b66}html[data-theme=midnight] .btn-ghost{background:linear-gradient(180deg,#1d1610,#14100a);color:var(--ink);border-color:#c9a86b59}html[data-theme=midnight] .btn-ghost:hover:not(:disabled){background:#221810;border-color:var(--brass)}html[data-theme=midnight] .btn-primary{background:linear-gradient(180deg,#a83a30 0%,var(--wine) 50%,var(--wine-deep) 100%);border-color:#2a1410}html[data-theme=midnight] .pill,html[data-theme=midnight] .prof-chip,html[data-theme=midnight] .character-card-campaign,html[data-theme=midnight] .timeline-activity,html[data-theme=midnight] .ability-mod{background:#c9a86b1a;color:var(--candle-soft);border-color:#c9a86b73;text-shadow:none;box-shadow:inset 0 0 0 1px #0003}html[data-theme=midnight] .pill-muted{background:#c9a86b14;color:var(--candle-soft);border-color:#c9a86b59;opacity:.85}html[data-theme=midnight] .tag-good{background:#4a68432e;color:#b8d8b8;border-color:#4a684380}html[data-theme=midnight] .tag-active{background:#a8541f33;color:#f4d488;border-color:#e9b87066}html[data-theme=midnight] .prof-toggle{background:#c9a86b0a;color:var(--ink-soft);border-color:#c9a86b33}html[data-theme=midnight] .prof-toggle:hover{border-color:var(--brass);color:var(--ink)}html[data-theme=midnight] .prof-toggle.active{background:#c9a86b2e;color:var(--candle-soft);border-color:#c9a86b99}html[data-theme=midnight] code,html[data-theme=midnight] kbd,html[data-theme=midnight] .roll-result-detail code,html[data-theme=midnight] .timeline-roll code{background:#00000073;border-color:#c9a86b40;color:var(--ink)}html[data-theme=midnight] .roll-result{background:#1a130a;border-color:#c9a86b59;border-left-color:var(--brass)}html[data-theme=midnight] .roll-result-hit{background:#4a68431f;border-left-color:#6b9a5a}html[data-theme=midnight] .roll-result-miss{background:#a8541f1a;border-left-color:var(--ember)}html[data-theme=midnight] .timeline-list:before{background:linear-gradient(180deg,var(--brass),#1d1610)}html[data-theme=midnight] .timeline-marker{background:radial-gradient(circle at 35% 30%,#a83a30 0%,var(--wine) 60%,var(--wine-deep) 100%);box-shadow:inset 0 1px #ffc8b44d,inset 0 -2px 4px #0009,0 0 0 3px #14100a,0 0 0 4px #c9a86b59,0 0 12px #0009}html[data-theme=midnight] .progress-bar{background:#0a0703;box-shadow:inset 0 1px 2px #000c}html[data-theme=midnight] .progress-bar-fill{background:linear-gradient(90deg,var(--ember) 0%,var(--candle) 50%,var(--brass-bright) 100%)}html[data-theme=midnight] .page-subtitle,html[data-theme=midnight] .campaign-row-desc,html[data-theme=midnight] .character-hero-sub,html[data-theme=midnight] .character-card-class,html[data-theme=midnight] .character-card-owner,html[data-theme=midnight] .auth-tagline,html[data-theme=midnight] .auth-switch,html[data-theme=midnight] .activity-source,html[data-theme=midnight] .activity-summary,html[data-theme=midnight] .activity-text,html[data-theme=midnight] .timeline-outcome,html[data-theme=midnight] .timeline-notes,html[data-theme=midnight] .muted-note,html[data-theme=midnight] .empty-state p,html[data-theme=midnight] .modal-body p{color:var(--ink-soft)}html[data-theme=midnight] .auth-screen{background-color:#050200;background-image:radial-gradient(ellipse at 50% 0%,rgba(233,184,112,.16) 0%,transparent 55%),repeating-linear-gradient(90deg,transparent 0,transparent 110px,rgba(0,0,0,.4) 110px,rgba(0,0,0,.4) 112px),linear-gradient(180deg,#14100a,#050200)}html[data-theme=midnight] .auth-card:after{color:var(--ink-mute)}html[data-theme=midnight] .theme-chip{background:#00000080;border-color:#c9a86b40}html[data-theme=midnight] .theme-chip.active{background:#e9b8701a;border-color:var(--brass)}html[data-theme=midnight] .empty-state:before,html[data-theme=midnight] .empty-state:after{opacity:.3}html[data-theme=midnight] .bio-text:first-letter{color:var(--candle-soft)}html[data-theme=midnight] .form-error{background:#7a282833;color:#f0c0b8;border-color:#a8541f73}html[data-theme=midnight] .form-notice{background:#4a68432e;color:#c0e0c0;border-color:#4a684373}html[data-theme=midnight] .field-locked-tag{background:#ffffff0f;color:#d8c189;border-color:#d8c18959}html[data-theme=midnight] .field-locked-tag svg{opacity:.85}html[data-theme=midnight] .field-readonly{background:#0000004d;border-color:#d8c18940;color:#c8b27a;box-shadow:inset 0 1px 3px #00000080}html[data-theme=midnight] .profile-header h1,html[data-theme=midnight] .profile-section-head h2{color:#fbe6a8}html[data-theme=midnight] .profile-header-sub,html[data-theme=midnight] .profile-section-sub{color:#c8b27a}html[data-theme=midnight] .profile-form .field label{color:#fbe6a8}html[data-theme=midnight] .field-hint{color:#a59371}html[data-theme=midnight] .profile-section-avatar{background:radial-gradient(ellipse at 0% 0%,rgba(240,184,112,.1) 0%,transparent 60%),#ffffff08}html[data-theme=midnight] .profile-avatar-name{color:#fbe6a8}html[data-theme=midnight] .profile-avatar-handle{color:#c8b27a}.admin-users-table{width:100%;border-collapse:collapse}.admin-users-table th,.admin-users-table td{vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--rule);font-size:13.5px}.admin-users-table th{text-align:left;font-family:var(--font-display);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute);border-bottom:1px solid var(--brass-dim, var(--rule));background:#00000005}.admin-users-table .num-col{text-align:right}.admin-users-table .actions-col{text-align:right;width:1%;white-space:nowrap}.admin-user-cell{display:flex;flex-direction:column;gap:2px}.admin-user-cell-name{font-weight:700;color:var(--ink);display:flex;align-items:center;gap:6px}.admin-user-cell-handle{font-size:12px;color:var(--ink-mute);font-style:italic}.admin-user-email{font-family:var(--font-mono, ui-monospace, monospace);font-size:12.5px;color:var(--ink-soft);word-break:break-all}.admin-user-ip{font-family:var(--font-mono, ui-monospace, monospace);font-size:11.5px;color:var(--ink-mute);margin-top:2px}.admin-user-row-banned td{background:#8c1e280f;color:var(--ink-mute)}.admin-user-row-banned .admin-user-cell-name{color:var(--ink-mute)}.status-pill{display:inline-block;padding:3px 9px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:3px;border:1px solid}.status-pill-active{color:#2f5a3a;background:#4c895c1f;border-color:#4c895c66}.status-pill-banned{color:var(--wine-deep);background:var(--wine-soft);border-color:var(--wine)}.admin-user-actions{display:inline-flex;gap:6px;justify-content:flex-end}.btn-small{padding:4px 10px;font-size:12px;border-radius:4px}.btn-warning{background:linear-gradient(180deg,#c08940,#98662a);color:#fff5e0;border:1px solid #7a4d20;text-shadow:0 1px 0 rgba(0,0,0,.25)}.btn-warning:hover:not(:disabled){filter:brightness(1.08)}.btn-warning:disabled{opacity:.5;cursor:not-allowed}.modal-narrow{max-width:480px}.confirm-list{margin:14px 0 8px;padding-left:18px}.confirm-list li{margin-bottom:6px;font-size:13.5px;color:var(--ink-soft)}html[data-theme=midnight] .admin-users-table th{color:#c8b27a;background:#ffffff0a}html[data-theme=midnight] .admin-user-cell-name{color:#fbe6a8}html[data-theme=midnight] .admin-user-cell-handle{color:#a59371}html[data-theme=midnight] .admin-user-email{color:#c8b27a}html[data-theme=midnight] .admin-user-ip{color:#a59371}html[data-theme=midnight] .admin-user-row-banned td{background:#8c1e2826;color:#a59371}html[data-theme=midnight] .status-pill-active{color:#c0e0c0;background:#4a68432e;border-color:#4a684373}html[data-theme=midnight] .status-pill-banned{color:#f0c0b8;background:#7a282833;border-color:#a8541f73}.campaign-allow-list{border:1px solid var(--rule);border-radius:var(--radius);padding:14px 16px;background:#00000005;margin-top:12px}.campaign-allow-list-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:4px}.campaign-allow-list-title{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--ink);margin:0;letter-spacing:.02em}.campaign-allow-list-status{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:3px;color:#2f5a3a;background:#4c895c1f;border:1px solid rgba(76,137,92,.4)}.campaign-allow-list-status-restricted{color:var(--wine-deep);background:var(--wine-soft);border-color:var(--wine)}.campaign-allow-list-status-empty{color:#fff;background:var(--wine);border-color:var(--wine-deep)}.campaign-allow-list-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none}.campaign-allow-list-toggle input{margin:0;cursor:pointer}.campaign-allow-list-toggle strong{color:var(--ink)}.campaign-allow-list-hint{margin:0 0 10px;font-size:12.5px;color:var(--ink-mute);font-style:italic;line-height:1.45}.campaign-allow-list-actions{display:flex;gap:8px;margin-bottom:10px}.campaign-allow-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px 10px}.campaign-allow-list-chip{display:flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:var(--parchment-deep, rgba(0, 0, 0, .04));border:1px solid var(--rule);font-size:12.5px;color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s,opacity .15s;-webkit-user-select:none;user-select:none}.campaign-allow-list-chip:hover{background:#f0b8701f;border-color:var(--brass)}.campaign-allow-list-chip.is-off{opacity:.5;text-decoration:line-through;background:transparent}.campaign-allow-list-chip input[type=checkbox]{margin:0;cursor:pointer}html[data-theme=midnight] .campaign-allow-list{background:#ffffff08;border-color:#d8c18940}html[data-theme=midnight] .campaign-allow-list-title{color:#fbe6a8}html[data-theme=midnight] .campaign-allow-list-hint{color:#a59371}html[data-theme=midnight] .campaign-allow-list-status{color:#c0e0c0;background:#4a68432e;border-color:#4a684373}html[data-theme=midnight] .campaign-allow-list-status-restricted{color:#f0c0b8;background:#7a282833;border-color:#a8541f73}html[data-theme=midnight] .campaign-allow-list-chip{color:#fbe6a8;background:#ffffff0a;border-color:#d8c18940}html[data-theme=midnight] .campaign-allow-list-chip:hover{background:#f0b8701a;border-color:var(--brass)}.spellcasting-groups{display:flex;flex-direction:column;gap:16px;margin-top:8px}.spell-group-title{font-family:var(--font-display);font-size:14px;margin:0 0 8px;color:var(--wine);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px dashed var(--rule);padding-bottom:4px}.spell-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.spell-row{border:1px solid var(--rule);border-radius:var(--radius);background:#00000005;overflow:hidden}.spell-row-head{display:flex;align-items:center;gap:12px;width:100%;background:transparent;border:0;padding:9px 12px;cursor:pointer;color:var(--ink);font:inherit;text-align:left;transition:background .15s}.spell-row-head:hover{background:#f0b87014}.spell-row-head:focus-visible{outline:2px solid var(--brass);outline-offset:-2px}.spell-row-name{font-family:var(--font-display);font-weight:700;font-size:14.5px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spell-row-tags{display:inline-flex;gap:4px;flex-shrink:0}.spell-tag{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:2px 6px;border-radius:3px;border:1px solid}.spell-tag-ritual{color:var(--wine-deep);background:var(--wine-soft);border-color:var(--wine)}.spell-tag-concentration{color:#6f4a18;background:#f0b8702e;border-color:var(--brass)}.spell-tag-prepared{color:#2f5a3a;background:#4c895c26;border-color:#4c895c80}.spell-row-chevron{flex-shrink:0;color:var(--ink-mute);transition:transform .2s;font-size:13px}.spell-row-head.is-open .spell-row-chevron{transform:rotate(180deg)}.spell-row-body{padding:4px 14px 12px;border-top:1px dashed var(--rule);background:var(--parchment)}.spell-meta{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:8px 0;font-size:13px}.spell-meta dt{font-weight:700;color:var(--ink-mute);text-transform:uppercase;letter-spacing:.06em;font-size:11px;align-self:center}.spell-meta dd{margin:0;color:var(--ink)}.spell-description{margin:8px 0;color:var(--ink-soft);font-size:13.5px;line-height:1.55;white-space:pre-wrap}.spell-subhead{font-family:var(--font-display);font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--wine);margin:12px 0 4px}.spell-row-actions{display:flex;gap:8px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--rule)}html[data-theme=midnight] .spell-row{background:#ffffff08;border-color:#d8c18940}html[data-theme=midnight] .spell-row-head{color:#fbe6a8}html[data-theme=midnight] .spell-row-head:hover{background:#f0b87014}html[data-theme=midnight] .spell-group-title{color:#d8c189}html[data-theme=midnight] .spell-row-body{background:#0003}html[data-theme=midnight] .spell-meta dt{color:#a59371}html[data-theme=midnight] .spell-meta dd{color:#fbe6a8}html[data-theme=midnight] .spell-description,html[data-theme=midnight] .spell-subhead{color:#d8c189}html[data-theme=midnight] .spell-tag-ritual{color:#f0c0b8;background:#7a282838;border-color:#a8541f73}html[data-theme=midnight] .spell-tag-concentration{color:#fbe6a8;background:#f0b8701a;border-color:#d8c18966}html[data-theme=midnight] .spell-tag-prepared{color:#c0e0c0;background:#4a68432e;border-color:#4a684373}.spell-picker-body{display:flex;flex-direction:column;gap:14px}.spell-picker-filters{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}.spell-picker-filters .field{min-width:160px}.spell-picker-list{display:flex;flex-direction:column;gap:16px;max-height:60vh;overflow-y:auto;padding-right:4px}.spell-tag-school{font-weight:700}.spell-picker-counter{font-style:italic;color:var(--ink-mute);font-size:13px;margin-right:auto}html[data-theme=midnight] .spell-picker-counter{color:#c8b27a}.spell-tag-school-abjuration{color:#1f3a66;background:#5f90c82e;border-color:#5f90c8b3}.spell-tag-school-conjuration{color:#6f4a18;background:#f0b87038;border-color:var(--brass)}.spell-tag-school-divination{color:#4a2466;background:#966ec82e;border-color:#966ec8b3}.spell-tag-school-enchantment{color:#803060;background:#dc8cb433;border-color:#be6496b3}.spell-tag-school-evocation{color:#8a2a14;background:#dc643c33;border-color:#be461eb3}.spell-tag-school-illusion{color:#4d4870;background:#8c82b42e;border-color:#786eaab3}.spell-tag-school-necromancy{color:#1f4a2c;background:#50825a33;border-color:#3c6e46b3}.spell-tag-school-transmutation{color:#5a3a14;background:#aa784638;border-color:#8c5a32b3}html[data-theme=midnight] .spell-tag-school-abjuration{color:#a8c8f0;background:#5f90c82e;border-color:#8cb4e673}html[data-theme=midnight] .spell-tag-school-conjuration{color:#f0c878;background:#f0b8702e;border-color:#d8ad6480}html[data-theme=midnight] .spell-tag-school-divination{color:#d2b8e8;background:#966ec82e;border-color:#b48cdc73}html[data-theme=midnight] .spell-tag-school-enchantment{color:#f0b8d0;background:#dc8cb42e;border-color:#dc96be73}html[data-theme=midnight] .spell-tag-school-evocation{color:#f5a890;background:#dc643c2e;border-color:#dc826473}html[data-theme=midnight] .spell-tag-school-illusion{color:#c8c4e0;background:#8c82b42e;border-color:#aaa0c873}html[data-theme=midnight] .spell-tag-school-necromancy{color:#a8d8b0;background:#50825a2e;border-color:#78aa8273}html[data-theme=midnight] .spell-tag-school-transmutation{color:#d8a878;background:#aa78462e;border-color:#be8c5a73}html[data-theme=midnight] .sidebar{background-color:#050200;background-image:linear-gradient(180deg,#1a1208,#0c0703 55%,#050200);background-size:auto;background-repeat:no-repeat}html[data-theme=midnight] .sidebar-link{color:#e6cf95}html[data-theme=midnight] .sidebar-link svg{color:#d4b870}html[data-theme=midnight] .sidebar-link:hover{color:#fbe6a8;background:#e9c8821a}html[data-theme=midnight] .sidebar-link:hover svg{color:#fbe6a8}html[data-theme=midnight] .sidebar-brand-text,html[data-theme=midnight] .sidebar-user-name{color:#fbe6a8}html[data-theme=midnight] .sidebar-user-handle,html[data-theme=midnight] .sidebar-logout{color:#c8b27a}html[data-theme=midnight] .sidebar-logout:hover{color:#fbe6a8}html[data-theme=midnight] .theme-picker-label{color:#b59c66}html[data-theme=midnight] .sidebar-link{color:#fbf0c8;font-weight:600}html[data-theme=midnight] .sidebar-link svg{color:#f6e3a4}html[data-theme=midnight] .sidebar-link:hover{color:#fffaea;background:#ffebaa1a}html[data-theme=midnight] .sidebar-link:hover svg{color:#fffaea}html[data-theme=midnight] .sidebar-link.active{color:#fff5cc;text-shadow:0 0 12px rgba(255,200,110,.45);border-color:#ffdc968c}html[data-theme=midnight] .sidebar-link.active svg{color:#fff5cc}html[data-theme=midnight] .sidebar-brand-text,html[data-theme=midnight] .sidebar-user-name{color:#fff3c8}html[data-theme=midnight] .sidebar-user-handle,html[data-theme=midnight] .sidebar-logout{color:#d8c189}html[data-theme=midnight] .sidebar-logout:hover{color:#fff3c8}html[data-theme=midnight] .theme-picker-label{color:#c8b27a}html[data-theme=midnight] .theme-chip{color:#d8c189}html[data-theme=midnight] .theme-chip.active{color:#fff3c8}html[data-theme=midnight] .sidebar-user-handle{color:#f0d8a0}html[data-theme=midnight] .sidebar-user-info .admin-badge{color:#1a120a}html[data-theme=midnight] .sidebar-logout{color:#f0d8a0}html[data-theme=midnight] .sidebar-logout:hover{color:#fffaea}html[data-theme=midnight] .theme-picker-label{color:#f0d8a0;opacity:1}html[data-theme=midnight] .theme-chip{background:#00000059;color:#f0d8a0;border-color:#f0d8a04d}html[data-theme=midnight] .theme-chip:hover{color:#fffaea;border-color:#f0d8a08c}html[data-theme=midnight] .theme-chip.active{background:#f0d8a024;color:#fffaea;border-color:#e9c87a;box-shadow:inset 0 0 10px #f0b87038,0 0 0 1px #0000004d}html[data-theme=midnight] .theme-chip-icon{color:inherit}html[data-theme=midnight] .sidebar-user-handle,html[data-theme=midnight] .sidebar-logout{color:#fbf0c8}html[data-theme=midnight] .sidebar-logout:hover{color:#fff}html[data-theme=midnight] .theme-picker-label{color:#fbf0c8;opacity:1}html[data-theme=midnight] .theme-chip{color:#fbf0c8;background:#0000004d;border-color:#fbf0c852}html[data-theme=midnight] .theme-chip:hover{color:#fff;border-color:#fbf0c899}html[data-theme=midnight] .theme-chip.active{color:#fff;background:#fbf0c829;border-color:var(--brass-bright)}html[data-theme=midnight] .sidebar-user-avatar{background:radial-gradient(circle at 35% 30%,#ffe9a8,#d8b06a 65%,#8a6628);box-shadow:inset 0 1px #fff5d2b3,inset 0 -2px 4px #50280a66,0 0 0 2px #050200,0 0 10px #f0b87059}html[data-theme=midnight] .sidebar-brand-text,html[data-theme=midnight] .sidebar-user-name,html[data-theme=midnight] .sidebar-user-handle,html[data-theme=midnight] .sidebar-logout,html[data-theme=midnight] .theme-picker-label,html[data-theme=midnight] .theme-chip,html[data-theme=midnight] .theme-chip-name{color:#fbf0c8!important}html[data-theme=midnight] .sidebar-brand-icon,html[data-theme=midnight] .sidebar-brand-icon svg,html[data-theme=midnight] .sidebar-link svg,html[data-theme=midnight] .sidebar-logout svg,html[data-theme=midnight] .theme-chip-icon,html[data-theme=midnight] .theme-chip-icon svg{color:#fbf0c8!important;fill:currentColor}html[data-theme=midnight] .sidebar-cta .btn-primary{color:#fbf0c8!important}html[data-theme=midnight] .sidebar-link:hover,html[data-theme=midnight] .sidebar-link:hover svg,html[data-theme=midnight] .sidebar-logout:hover,html[data-theme=midnight] .sidebar-logout:hover svg,html[data-theme=midnight] .theme-chip:hover{color:#fff!important}html[data-theme=midnight] .sidebar-link.active,html[data-theme=midnight] .sidebar-link.active svg,html[data-theme=midnight] .theme-chip.active{color:#fff!important}.sidebar{isolation:isolate}body:after{left:248px}@media (max-width: 860px){body:after{left:76px}}.sidebar-link{text-decoration:none}.sidebar-link:focus,.sidebar-link:focus-visible{outline:2px solid var(--brass);outline-offset:-2px;border-radius:var(--radius)}html[data-theme=midnight] .sidebar-link:focus,html[data-theme=midnight] .sidebar-link:focus-visible{outline-color:var(--brass-bright)}:root{accent-color:var(--brass)}.theme-chip:focus,.theme-chip:focus-visible,.btn:focus,.btn:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.sidebar-link,.sidebar-link:link,.sidebar-link:visited,.sidebar-link:hover,.sidebar-link:focus,.sidebar-link:focus-visible,.sidebar-link:active,.sidebar-link.active{border-bottom:0 none transparent!important;text-decoration:none!important;-webkit-tap-highlight-color:transparent}.sidebar-link:focus,.sidebar-link:focus-visible{outline:2px solid var(--brass)!important;outline-offset:-2px!important}html[data-theme=midnight] .sidebar-link:focus,html[data-theme=midnight] .sidebar-link:focus-visible{outline-color:var(--brass-bright)!important}.sidebar-link.active{box-shadow:inset 0 0 14px #f0b8702e,inset 0 1px #ffc8822e,0 0 0 1px #00000040,0 2px 0 0 var(--brass)!important}html[data-theme=midnight] .sidebar-link.active{box-shadow:inset 0 0 14px #f0b8702e,inset 0 1px #ffc8822e,0 0 0 1px #0000004d,0 2px 0 0 var(--brass-bright)!important}.sidebar-link.active{box-shadow:inset 0 0 14px #f0b8702e,inset 0 1px #ffc8822e,0 0 0 1px #00000040!important}html[data-theme=midnight] .sidebar-link.active{box-shadow:inset 0 0 14px #f0b8702e,inset 0 1px #ffc8822e,0 0 0 1px #0000004d!important}.sidebar-link:hover,.sidebar-link:focus-visible,.sidebar-link.active:hover,.sidebar-link.active:focus-visible{box-shadow:0 2px 0 0 var(--brass)!important;outline:none!important}html[data-theme=midnight] .sidebar-link:hover,html[data-theme=midnight] .sidebar-link:focus-visible,html[data-theme=midnight] .sidebar-link.active:hover,html[data-theme=midnight] .sidebar-link.active:focus-visible{box-shadow:0 2px 0 0 var(--brass-bright)!important}.character-card-banner,.character-hero-banner{background:linear-gradient(180deg,#6b2323,#3a1212 60%,#260808),repeating-linear-gradient(180deg,transparent 0,transparent 3px,rgba(0,0,0,.1) 3px,rgba(0,0,0,.1) 4px);background-blend-mode:normal,multiply;border-bottom:1px solid #1a0606;box-shadow:inset 0 -8px 18px #0006,inset 0 1px #ffc8b41a}input:not([type]),input[type=tel],input[type=url],input[type=date],input[type=time],input[type=datetime-local]{font-family:var(--font-body);font-size:14px;line-height:1.4;color:var(--ink);background:var(--parchment-cool);border:1px solid var(--wood-warm);border-radius:var(--radius);padding:9px 12px;width:100%;box-shadow:inset 0 1px 2px #5032142e,inset 0 0 0 1px #fff5d266;transition:border-color .15s,box-shadow .15s,background .15s}input:not([type]):focus,input[type=tel]:focus,input[type=url]:focus,input[type=date]:focus,input[type=time]:focus,input[type=datetime-local]:focus{outline:none;border-color:var(--brass);box-shadow:inset 0 1px 2px #5032142e,0 0 0 3px #f0b8704d,0 0 14px #f0b87033}html[data-theme=midnight] input:not([type]),html[data-theme=midnight] input[type=tel],html[data-theme=midnight] input[type=url],html[data-theme=midnight] input[type=date],html[data-theme=midnight] input[type=time],html[data-theme=midnight] input[type=datetime-local]{background:#0c0703;border-color:#c9a86b4d;color:var(--ink);box-shadow:inset 0 1px 3px #0009,inset 0 0 0 1px #c9a86b0f}html[data-theme=midnight] input:not([type]):focus,html[data-theme=midnight] input[type=tel]:focus,html[data-theme=midnight] input[type=url]:focus,html[data-theme=midnight] input[type=date]:focus,html[data-theme=midnight] input[type=time]:focus,html[data-theme=midnight] input[type=datetime-local]:focus{border-color:var(--brass);box-shadow:inset 0 1px 3px #0009,0 0 0 3px #e9b8702e,0 0 16px #e9b87033}input,select,textarea{box-sizing:border-box;line-height:1.4}.admin-table td:last-child .btn{min-width:92px;text-align:center}.character-hero-banner{height:84px}.character-hero-portrait{margin-top:-54px}.character-hero-content{padding-top:0}.prof-chip-remove{background:transparent;border:none;color:inherit;cursor:pointer;margin-left:6px;padding:0;font-family:var(--font-body);font-size:16px;line-height:1;font-weight:700;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;opacity:.55;transition:opacity .12s,color .12s,transform .06s}.prof-chip-remove:hover{opacity:1;color:var(--wine-deep)}.prof-chip-remove:active{transform:translateY(1px)}html[data-theme=midnight] .prof-chip-remove:hover{color:#f4d488}.prof-list-block{margin-bottom:14px}.prof-list-block:last-of-type{margin-bottom:0}.prof-list-picker{margin-top:10px;max-width:320px}html[data-theme=midnight] .character-card-action{background:var(--parchment);border-color:var(--brass-bright);color:var(--brass-bright);box-shadow:0 2px 6px #0009,inset 0 1px #fff5dc99}html[data-theme=midnight] .character-card-action-danger{color:var(--brass-bright);border-color:var(--brass-bright)}html[data-theme=midnight] .character-card-action:hover{background:var(--brass-bright);color:#1a1208;border-color:var(--parchment);box-shadow:0 3px 10px #000000b3,0 0 14px #d4a84980}html[data-theme=midnight] .character-card-action-danger:hover{background:var(--brass-bright);color:#1a1208;border-color:var(--parchment)}html[data-theme=midnight] .back-link{color:var(--brass-bright)}html[data-theme=midnight] .back-link:hover{color:var(--candle-soft)}html[data-theme=midnight] .character-card-portrait .avatar{border:4px solid var(--parchment-cool);box-shadow:0 0 0 4px var(--wood-warm),0 0 0 5px var(--brass),var(--shadow-warm-md),0 0 18px #f0b87040}.hero-player-input{display:inline-block;width:auto;min-width:140px;max-width:260px;padding:3px 8px;font-size:13px;font-style:italic;margin-left:2px}.downtime-head-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.timeline-lifestyle{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:var(--parchment-warm);border:1px solid var(--parchment-deep);color:var(--ink-soft);font-size:12px;font-style:italic;letter-spacing:.02em}.detail-sub{color:var(--ink-faint);font-size:13px;font-style:italic;font-weight:400}.edit-save-bar{position:absolute;right:18px;bottom:18px;z-index:5;display:flex;gap:10px}.hero-name-field{display:flex;flex-direction:column;gap:3px;margin-bottom:6px}.hero-name-label{font-family:var(--font-body);font-size:12px;font-style:italic;color:var(--ink-faint);letter-spacing:.02em}.hero-meta-campaign{margin-top:6px}.stat-box-value{position:relative;display:inline-flex;align-items:center;justify-content:center}.stat-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;color:var(--brass);opacity:.35;pointer-events:none}.stat-icon-shield{color:var(--brass-dim);opacity:.4}.stat-icon-heart{color:var(--wine);opacity:.32}.stat-box-number{position:relative;z-index:1}.feat-add-row{display:flex;gap:8px;align-items:center;max-width:480px}.feat-add-row input{flex:1}.timeline-item-delve .timeline-marker{background:var(--wine);color:var(--parchment);border-color:var(--wine-deep)}.timeline-card-delve{background-color:var(--parchment-warm);border-left:3px solid var(--wine)}.timeline-activity-delve{color:var(--wine);font-weight:700;font-style:normal}.delve-party{margin:8px 0 0;font-size:13px;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:6px;align-items:center}.delve-party-label{font-style:italic;color:var(--ink-faint);margin-right:4px}.delve-party-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 3px;border-radius:999px;background:var(--parchment-cool);border:1.5px solid var(--brass);box-shadow:0 0 0 1px #b089302e;font-weight:600;color:var(--ink)}html[data-theme=midnight] .delve-party-chip{border-color:var(--brass-bright);box-shadow:0 0 0 1px #e9c87a40}.delve-party-chip .avatar{width:22px;height:22px;flex-shrink:0}.delve-party-chip-name{line-height:1}.delve-gold-row{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}.delve-gold-pill{display:inline-flex;align-items:center;padding:3px 12px;border-radius:999px;background:linear-gradient(180deg,var(--brass-bright),var(--brass));color:var(--wood-dark);font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.04em}.delve-gold-split-note{font-style:italic;font-size:13px;color:var(--ink-faint)}.gear-add-block{margin-top:12px;max-width:480px}.gear-textarea{font-family:var(--font-body);font-size:14px;width:100%;resize:vertical}.stat-box-input-inline{cursor:text}.stat-box-input-inline:hover{border-color:var(--brass)}.gear-chip-name{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:inherit;letter-spacing:inherit;text-shadow:inherit}button.gear-chip-name{cursor:pointer}button.gear-chip-name:hover{color:var(--wine);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}.prof-chip-give{background:transparent;border:none;color:inherit;cursor:pointer;padding:0;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;opacity:.55;transition:opacity .12s,color .12s,transform .06s}.prof-chip-give:hover{opacity:1;color:var(--wine);transform:translate(1px)}.prof-chip-give:active{transform:translate(2px)}.timeline-delve-title{margin-left:8px;font-family:var(--font-display);font-weight:700;letter-spacing:.03em;color:var(--wine)}html[data-theme=midnight] .timeline-delve-title{color:var(--brass-bright)}.roster-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.gear-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.modal-inventory{max-width:1040px;width:100%}.inventory-body{display:grid;grid-template-columns:minmax(330px,460px) 1fr;gap:28px;align-items:start}@media (max-width: 720px){.inventory-body{grid-template-columns:1fr}}.inv-doll{display:flex;justify-content:center}.inv-doll-frame{position:relative;width:100%;max-width:450px;aspect-ratio:1 / 1;background:radial-gradient(ellipse at 50% 30%,rgba(60,30,14,.45) 0%,transparent 75%),linear-gradient(180deg,#3a2818,#241608);border:2px solid var(--brass-dim);border-radius:var(--radius);box-shadow:inset 0 0 28px #0000008c,inset 0 0 0 1px #0009,0 4px 14px #0006;padding:6px}.inv-silhouette{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;fill:#8c501e2e;stroke:#50321473;stroke-width:1.2}.inv-slot{position:absolute;transform:translate(-50%,-50%);border-radius:6px;border:1.5px dashed var(--brass);background:#00000052;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--brass);font-family:var(--font-body);font-size:12px;letter-spacing:.08em;text-transform:uppercase;transition:background .12s,transform .06s,border-color .12s,box-shadow .12s;padding:3px;box-shadow:inset 0 0 10px #00000080}.inv-slot:hover{border-color:var(--brass-bright);background:#0003}.inv-slot.occupied{background:var(--parchment);border-style:solid;border-color:var(--brass-bright);color:var(--wine);box-shadow:inset 0 0 0 1px #fff5d280,0 0 8px #b0893066}.inv-slot.eligible{border-color:var(--brass-bright);box-shadow:inset 0 0 10px #0006,0 0 0 2px #f0b87080}.inv-slot.inv-slot-belt,.inv-slot.inv-slot-forearms{border-radius:4px}.inv-slot:hover{background:#f0dcaacc;border-color:var(--brass-bright)}.inv-slot.occupied{background:var(--parchment);border-style:solid;color:var(--wine)}.inv-slot.eligible{border-color:var(--brass-bright);box-shadow:0 0 0 2px #f0b87066}.inv-slot-label{font-size:12px;opacity:.7}.inv-grid-wrap{display:flex;flex-direction:column}.inv-grid-title{font-family:var(--font-display);letter-spacing:.06em;color:var(--wine);font-size:14px;margin:0 0 8px;text-transform:uppercase}.inv-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-auto-rows:64px;gap:4px;background:var(--parchment-warm);border:1px solid var(--wood-warm);border-radius:var(--radius);padding:6px;box-shadow:inset 0 0 18px #8c501e2e}.inv-grid-belt{grid-template-columns:repeat(4,64px);justify-content:start}.inv-cell{position:relative;background:#f8eed180;border:1px dashed var(--brass-dim);border-radius:4px;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.inv-cell:hover{background:#f0dcaacc;border-color:var(--brass-bright)}.inv-cell.occupied{background:var(--parchment);border-style:solid}.inv-cell.eligible{border-color:var(--brass-bright);box-shadow:0 0 0 2px #f0b87080}.inv-cell-item{position:absolute;inset:2px auto 2px 2px;height:calc(100% - 4px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:linear-gradient(180deg,var(--parchment-cool),var(--parchment-warm));border:1px solid var(--brass-dim);border-radius:4px;color:var(--wood-dark);pointer-events:none;z-index:2}.inv-cell-item-fit{top:2px;right:2px;bottom:2px;left:2px;width:auto}.inv-cell-item-label{font-family:var(--font-body);font-size:10px;letter-spacing:.02em;color:var(--ink-soft);white-space:nowrap}.inv-cursor-item{position:fixed;pointer-events:none;transform:translate(-50%,-50%);z-index:200;color:var(--wine);filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}.inv-tooltip{position:fixed;z-index:250;pointer-events:none;max-width:260px;padding:10px 14px 12px;background:#140e08f0;border:1px solid var(--brass);border-radius:4px;color:#f0e6c8;font-family:var(--font-body);font-size:13px;box-shadow:0 6px 18px #00000080,inset 0 0 0 1px #0006}.inv-tooltip-name{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--brass-bright);letter-spacing:.04em;margin-bottom:4px}.inv-tooltip-type{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#c6a560;margin-bottom:6px}.inv-tooltip-desc{font-style:italic;color:#d8c89a;margin-bottom:6px;line-height:1.35}.inv-tooltip-notes{list-style:none;margin:0 0 6px;padding:0}.inv-tooltip-notes li{margin:2px 0;padding-left:10px;position:relative;color:#ead7a5}.inv-tooltip-notes li:before{content:"•";position:absolute;left:0;color:var(--brass)}.inv-tooltip-size{margin-top:6px;padding-top:6px;border-top:1px solid rgba(176,137,48,.4);font-size:11px;color:#b29c6a;font-style:italic}.inv-tooltip-category{font-size:10px;letter-spacing:.04em;color:#9a8866;margin-bottom:6px;font-style:italic}.character-hero-back{position:absolute;top:12px;left:12px;width:36px;height:36px;z-index:4;padding:0;border-radius:50%;border:1.5px solid var(--brass);background:var(--parchment);color:var(--wine);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 6px #140a0480,inset 0 1px #fff5dc99;transition:background .12s,color .12s,transform .12s,border-color .12s,box-shadow .12s}.character-hero-back:hover{background:var(--brass);color:var(--wood-dark);border-color:var(--parchment);transform:translate(-2px);box-shadow:0 3px 10px #140a0499,0 0 12px #f0b87066}html[data-theme=midnight] .character-hero-back{background:var(--parchment);border-color:var(--brass-bright);color:var(--brass-bright)}html[data-theme=midnight] .character-hero-back:hover{background:var(--brass-bright);color:#1a1208;border-color:var(--parchment)}.character-hero-corner-actions{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:6px;z-index:4}.character-hero-corner-edit{color:var(--wine);border-color:var(--wine)}.character-hero-corner-edit:hover{background:var(--wine);color:var(--parchment);border-color:var(--parchment)}html[data-theme=midnight] .character-hero-corner-edit{color:var(--brass-bright);border-color:var(--brass-bright)}html[data-theme=midnight] .character-hero-corner-edit:hover{background:var(--brass-bright);color:#1a1208;border-color:var(--parchment)}.character-hero-edit{position:absolute;bottom:12px;right:12px;width:36px;height:36px;z-index:4;padding:0;border-radius:50%;border:2px solid #ffffff;background:linear-gradient(180deg,#6dd97a,#3ea84f);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 0 0 1.5px var(--moss-deep),0 2px 8px #140a048c,0 0 12px #5ac86e73,inset 0 1px #ffffff80;transition:transform .12s,box-shadow .12s,filter .12s}.character-hero-edit:hover{transform:scale(1.08);filter:brightness(1.08);box-shadow:0 0 0 1.5px var(--moss-deep),0 4px 14px #140a04a6,0 0 20px #6ee68ca6,inset 0 1px #ffffff8c}.character-hero-edit:disabled{opacity:.5;cursor:not-allowed;transform:none}html[data-theme=midnight] .character-hero-edit{border-color:var(--brass-bright);color:var(--brass-bright)}html[data-theme=midnight] .character-hero-edit:hover{background:var(--brass-bright);color:#1a1208;border-color:var(--parchment)}.detail-status-alive{color:#2fa84a;font-weight:700}.detail-status-dead{color:var(--wine);font-style:italic}.detail-xp{display:flex;flex-direction:column;gap:6px;align-items:stretch}.detail-xp-text{font-variant-numeric:tabular-nums}.xp-progress-track{position:relative;display:block;width:100%;height:8px;background:#3c1e0e2e;border:1px solid var(--brass-dim);border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 2px #00000040}.xp-progress-fill{position:absolute;inset:0 auto 0 0;display:block;height:100%;background:linear-gradient(90deg,#d4a04a,#f0c878,#d4a04a);box-shadow:0 0 6px #f0c8788c;transition:width .25s ease-out}.character-hero-skull,.character-card-skull{display:inline-block;margin-left:6px;font-size:.85em;vertical-align:.05em;color:initial;font-family:"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji",Twemoji Mozilla,EmojiOne Color,sans-serif;font-variant-emoji:emoji;text-shadow:none}.page-narrow{max-width:980px;margin:0 auto}.profile-header{margin-bottom:22px}.profile-header h1{font-family:var(--font-display);margin:0 0 4px;font-size:30px;color:var(--ink);letter-spacing:.01em}.profile-header-sub{margin:0;color:var(--ink-soft);font-size:14.5px;font-style:italic;max-width:640px}.profile-section{background:var(--parchment);border:1px solid var(--rule);border-radius:var(--radius);padding:22px 26px 24px;margin-bottom:20px;box-shadow:0 1px #00000008}.profile-section-avatar{background:radial-gradient(ellipse at 0% 0%,rgba(240,184,112,.1) 0%,transparent 55%),var(--parchment-warm, var(--parchment));border-left:4px solid var(--brass)}.profile-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;padding-bottom:12px;border-bottom:1px dashed var(--rule)}.profile-section-head h2{font-family:var(--font-display);margin:0 0 3px;font-size:20px;color:var(--ink);letter-spacing:.01em}.profile-section-sub{margin:0;color:var(--ink-soft);font-size:13px;font-style:italic;max-width:560px;line-height:1.5}.profile-form{display:flex;flex-direction:column;gap:16px}.profile-form .field{display:flex;flex-direction:column;gap:6px}.profile-form .field label{font-size:12.5px;font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:8px}.field-locked-tag{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--wine-deep);background:var(--wine-soft);border:1px solid var(--wine);border-radius:3px;line-height:1}.field-locked-tag svg{opacity:.95}.field-readonly{padding:10px 12px;background:linear-gradient(180deg,rgba(0,0,0,.03) 0%,transparent 100%),var(--parchment-deep, var(--parchment));border:1px dashed var(--rule);border-radius:var(--radius);color:var(--ink-soft);font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);font-size:14px;font-style:italic;-webkit-user-select:text;user-select:text;cursor:default;box-shadow:inset 0 1px 2px #0000000d}.field-hint{margin:4px 0 0;font-size:12.5px;color:var(--ink-mute);font-style:italic}.profile-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px}@media (max-width: 640px){.profile-grid-2{grid-template-columns:1fr}}.profile-avatar-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.profile-avatar-tile{width:112px;height:112px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--candle-soft, var(--parchment-deep)) 0%,var(--brass) 70%,var(--brass-dim, var(--brass)) 100%);border:3px solid var(--brass-dim, var(--brass));display:flex;align-items:center;justify-content:center;overflow:hidden;font-family:var(--font-display);font-size:40px;font-weight:700;color:#2b1c14;flex-shrink:0;box-shadow:inset 0 2px #fff5d28c,inset 0 -3px 6px #50280a59,0 1px 6px #0000001f}.profile-avatar-tile img{width:100%;height:100%;object-fit:cover}.profile-avatar-meta{display:flex;flex-direction:column;gap:6px;flex:1;min-width:200px}.profile-avatar-name{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--ink);line-height:1.1}.profile-avatar-handle{color:var(--ink-soft);font-size:13.5px;font-style:italic;display:flex;align-items:center;gap:8px}.profile-avatar-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}.form-actions{display:flex;gap:10px;margin-top:6px}.form-success{background:#4c895c1f;border:1px solid rgba(76,137,92,.35);border-left:4px solid #4c895c;color:#2f5a3a;padding:10px 14px;border-radius:var(--radius);font-size:13.5px;margin:4px 0;font-style:italic}.btn-quiet{background:transparent;border:1px solid var(--rule);color:var(--ink-mute)}.btn-quiet:hover:not(:disabled){background:var(--parchment-deep);color:var(--ink)}.btn-quiet:disabled{opacity:.5;cursor:not-allowed}
