:root{--bg-1: #eef4ff;--bg-2: #d6e3ff;--ink: #172133;--ink-soft: #4c5b78;--accent: #2f6df6;--accent-2: #0e9f8f;--card: rgba(255, 255, 255, .9);--border: rgba(23, 33, 51, .15)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 18% 6%,rgba(47,109,246,.22),transparent 45%),radial-gradient(circle at 84% 20%,rgba(14,159,143,.16),transparent 36%),linear-gradient(135deg,var(--bg-1),var(--bg-2));color:var(--ink);font-family:Trebuchet MS,Lucida Sans Unicode,sans-serif;transition:background .25s ease,color .25s ease}body.dark-mode{--bg-1: #0c1220;--bg-2: #1a2438;--ink: #e9eefb;--ink-soft: #afbdd6;--accent: #5a8dff;--accent-2: #36c3b1;--card: rgba(22, 31, 50, .92);--border: rgba(180, 197, 230, .26);background:radial-gradient(circle at 15% 10%,rgba(90,141,255,.24),transparent 44%),radial-gradient(circle at 82% 18%,rgba(54,195,177,.2),transparent 36%),linear-gradient(140deg,var(--bg-1),var(--bg-2))}h1,h2,h3,h4,legend{font-family:Palatino Linotype,Book Antiqua,serif;letter-spacing:.02em}.app-shell{max-width:1100px;margin:0 auto;padding:1rem}.hero{background:linear-gradient(120deg,#ffffffe6,#e0ecffe6);border:1px solid var(--border);border-radius:20px;padding:1.5rem;box-shadow:0 12px 34px #22408324;animation:rise-in .6s ease}body.dark-mode .hero{background:linear-gradient(120deg,#1b2230f0,#121722e6)}.theme-toggle-wrap{margin-top:1rem;display:flex;align-items:center;justify-content:flex-end;gap:.8rem}.theme-toggle-wrap>span{color:var(--ink-soft);font-weight:700}.badge{display:inline-block;background:var(--accent);color:#f6faff;border-radius:999px;padding:.3rem .8rem;font-size:.85rem}.mode-switch,.tabs{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.tabs{margin-bottom:1rem}button{border:0;border-radius:12px;background:var(--accent);color:#f8fbff;padding:.7rem 1rem;font-weight:700;cursor:pointer;transition:transform .2s ease,opacity .2s ease}button:hover{transform:translateY(-1px);opacity:.92}.mode-switch button,.tabs button,.ghost{background:#e6eeffe6;color:var(--ink);border:1px solid var(--border)}.mode-switch button.active,.tabs button.active{background:var(--accent);color:#f8fbff}.feedback{margin-top:.8rem;background:#2f6df61a;border-left:4px solid var(--accent-2);padding:.75rem;border-radius:10px}body.dark-mode .feedback{background:#5a8dff29}.panel{margin-top:1rem;background:var(--card);border-radius:18px;border:1px solid var(--border);padding:1rem;animation:rise-in .5s ease}.auth-box,.admin-tab-panel{background:#ffffffdb;border:1px solid var(--border);border-radius:14px;padding:1rem}body.dark-mode .auth-box,body.dark-mode .admin-tab-panel,body.dark-mode .card,body.dark-mode .sheet-card,body.dark-mode .admin-card,body.dark-mode .attribute-card,body.dark-mode .mini-attr,body.dark-mode .notice-card,body.dark-mode .toast-card,body.dark-mode input,body.dark-mode select,body.dark-mode textarea,body.dark-mode .admin-attr-item{background:#1e2534d6}body.dark-mode .master-alert-box{border-color:#5a8dff73;background:#1f2c47e6}body.dark-mode .challenge-box{border-color:#36c3b175;background:#14363dd1}body.dark-mode .notice-card{border-color:#789ae266}body.dark-mode .toast-card{border-color:#36c3b17a;background:#112f35f2}body.dark-mode button{color:#f4f7ff}body.dark-mode .ghost,body.dark-mode .tabs button,body.dark-mode .mode-switch button{background:#2d3a56db;color:#e8efff}body.dark-mode .mode-switch button.active,body.dark-mode .tabs button.active{background:var(--accent);color:#eef4ff}body.dark-mode input,body.dark-mode select,body.dark-mode textarea{color:#f1f5ff}.theme-switch{display:inline-flex;align-items:center;gap:.6rem;cursor:pointer}.theme-switch input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.theme-switch-track{width:52px;height:30px;border-radius:999px;background:#44588359;border:1px solid var(--border);position:relative;transition:background .2s ease}.theme-switch-thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .2s ease}.theme-switch input:checked+.theme-switch-track{background:#5a8dffb3}.theme-switch input:checked+.theme-switch-track .theme-switch-thumb{transform:translate(22px)}.theme-switch-label{min-width:52px;color:var(--ink);font-weight:700}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-dialog{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1.5rem;max-width:420px;width:90vw;box-shadow:0 20px 50px #0000004d;animation:modal-pop .25s ease}.modal-dialog h3{margin-top:0;color:var(--ink)}.modal-dialog p{color:var(--ink-soft);line-height:1.5}@keyframes modal-pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.login-cards{margin-top:1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.login-card{display:grid;gap:.7rem;border-width:2px;opacity:.62;transition:border-color .2s ease,transform .2s ease,opacity .2s ease}.login-card.active{border-color:#357266b3;transform:translateY(-1px);opacity:1}.auth-row{margin-top:.7rem;display:grid;gap:.6rem;grid-template-columns:1fr 2fr}.login-form-row{grid-template-columns:1fr}.password-inline{display:grid;grid-template-columns:1fr auto;gap:.55rem;align-items:center}.password-toggle{white-space:nowrap}.auth-logged-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.auth-logged-row p{margin:0;font-weight:700}.master-alert-box,.challenge-box{margin-bottom:1rem;border-radius:12px;padding:.8rem}.master-alert-box{border:1px solid rgba(47,109,246,.32);background:#e6f0ffd6}.challenge-box{border:1px solid rgba(14,159,143,.4);background:#defaf6e6}.master-alert-box p,.challenge-box p{margin:.35rem 0}.notice-list{margin-top:.7rem;display:grid;gap:.6rem}.notice-card{border:1px solid rgba(47,109,246,.3);background:#fffc;border-radius:10px;padding:.6rem}.notice-card p{margin:0}.notice-card small{display:block;margin-top:.4rem;color:var(--ink-soft)}.toast-stack{position:fixed;right:1rem;bottom:1rem;width:min(360px,calc(100vw - 2rem));display:grid;gap:.6rem;z-index:30}.toast-card{border:1px solid rgba(14,159,143,.5);background:#f1fffcf5;border-radius:12px;padding:.7rem;box-shadow:0 8px 18px #22408333;animation:rise-in .25s ease}.toast-card p{margin:.45rem 0}.toast-card button{width:auto}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:10px;padding:.65rem;font:inherit;color:var(--ink);background:#fffc}label{display:grid;gap:.4rem}.sheet-editor,.form-row{display:grid;gap:1rem}.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.card-grid,.admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.admin-grid{grid-template-columns:1fr}.card,.sheet-card,.admin-card{background:#ffffffd1;border:1px solid var(--border);border-radius:14px;padding:.9rem}.card-full-span{grid-column:1 / -1}.attributes-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.7rem}.attributes-stack{display:grid;gap:.8rem}.attribute-card{border:1px solid var(--border);border-radius:12px;padding:.8rem;background:#ffffffbf}.attribute-card header{display:flex;justify-content:space-between;margin-bottom:.6rem}.attribute-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.inline-btn{margin-top:.6rem}.sum-details{margin-top:.6rem;border-top:1px dashed var(--border);padding-top:.6rem}.sum-details p{margin:.2rem 0}.gear-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.gear-mod-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.action-row{display:flex;gap:.7rem;margin-top:1rem;padding-top:.8rem;border-top:1px dashed var(--border)}.action-top{margin-top:0;padding-top:0;border-top:0}.action-bottom{justify-content:flex-end}.card>button,.card .action-row{margin-top:.9rem}.full-sheet-view .card p{margin:.25rem 0}.skills-card-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.skills-card-table th,.skills-card-table td{border:0;padding:.2rem .35rem;text-align:left}.skills-card-table th{font-size:.78rem;color:var(--ink-soft);font-weight:700}.skills-card-table td:nth-child(2),.skills-card-table td:nth-child(3),.skills-card-table td:nth-child(4){text-align:right}.print-sheet{border:1px solid var(--border);border-radius:8px;background:#fffffff7;padding:1rem;font-family:Courier New,Courier,monospace;line-height:1.5}.print-sheet-header{border-bottom:2px solid rgba(23,33,51,.2);padding-bottom:.6rem;margin-bottom:.8rem}.print-sheet-header h3{margin:0}.print-sheet-header p{margin:.3rem 0 0}.print-group{border-top:1px dashed rgba(23,33,51,.2);padding-top:.6rem;margin-top:.6rem}.print-group h4{margin:0 0 .35rem;text-transform:uppercase;letter-spacing:.04em;font-size:.85rem}.print-group p{margin:0;white-space:pre-wrap}.print-lines{display:grid;gap:.2rem}.print-lines p{margin:0}.print-skills-lines{gap:.1rem}.print-skill-row{display:grid;grid-template-columns:minmax(180px,1fr) 48px 48px 52px;gap:.6rem;align-items:baseline;font-variant-numeric:tabular-nums}.print-skill-row span:nth-child(2),.print-skill-row span:nth-child(3),.print-skill-row span:nth-child(4){text-align:right}.print-skill-header{font-weight:700;color:var(--ink-soft);border-bottom:1px dashed rgba(23,33,51,.2);padding-bottom:.2rem;margin-bottom:.2rem}body.dark-mode .print-skill-header{border-color:#b4c5e647}.print-group.two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}body.dark-mode .print-sheet{background:#141b28f2}body.dark-mode .print-sheet-header,body.dark-mode .print-group{border-color:#b4c5e647}.compact-attributes{grid-template-columns:repeat(3,minmax(0,1fr))}.mini-attr{border:1px solid var(--border);border-radius:10px;padding:.6rem;display:grid;gap:.3rem;background:#ffffffb3}.list-line,.admin-line{display:grid;gap:.25rem;padding:.55rem 0;border-top:1px dashed var(--border)}.list-line:first-of-type,.admin-line:first-of-type{border-top:0}.saved-sheets,.admin-sheet{display:grid;gap:.6rem}.admin-sheet{border-top:1px dashed var(--border);padding-top:.6rem;margin-top:.6rem}.admin-sheet-header{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:nowrap}.admin-sheet-header>div:first-child{display:grid;gap:.2rem;flex:1;min-width:0}.admin-sheet-actions{display:flex;gap:.5rem;flex-wrap:nowrap;justify-content:flex-end;align-items:center;flex-shrink:0}.icon-btn{min-width:auto;width:auto;padding:.5rem .6rem;font-size:1.1rem;line-height:1}.master-modified{background:#2f6df61f!important;border-color:#2f6df666!important;box-shadow:inset 0 0 6px #2f6df626}body.dark-mode .master-modified{background:#5a8dff2e!important;border-color:#789ae280!important}.change-history{display:grid;gap:.6rem;max-height:600px;overflow-y:auto}.history-entry{border:1px solid var(--border);border-radius:10px;padding:.7rem;background:#fff9}.history-entry.master-change-entry{border-left:4px solid rgba(47,109,246,.6)}.history-entry.player-change-entry{border-left:4px solid rgba(23,33,51,.3)}body.dark-mode .history-entry{background:#1e2534b3}body.dark-mode .history-entry.master-change-entry{border-left-color:#5a8dffb3}.history-header{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.5rem}.history-header strong{margin:0}.change-badge{display:inline-block;border-radius:999px;padding:.2rem .6rem;font-size:.75rem;font-weight:700;white-space:nowrap}.change-badge.badge-master{background:#2f6df633;color:var(--accent)}.change-badge.badge-player{background:#6c5ce726;color:var(--ink)}body.dark-mode .change-badge.badge-master{background:#5a8dff40;color:#ffffffe6}body.dark-mode .change-badge.badge-player{background:#6c5ce733;color:var(--ink)}.history-entry small{display:block;margin-top:.4rem;color:var(--ink-soft)}.admin-full-section{margin-top:.65rem;padding-top:.55rem;border-top:1px dashed var(--border)}.admin-full-section h4{margin:0 0 .5rem}.master-player-card{display:grid;gap:.5rem}.master-player-header{display:flex;justify-content:space-between;align-items:baseline;gap:.8rem;flex-wrap:wrap}.master-player-header h3,.master-player-header p{margin:0}.admin-attr-grid{display:grid;gap:.55rem;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-attr-item{border:1px solid var(--border);border-radius:8px;padding:.45rem;background:#fff9;display:grid;gap:.2rem}.admin-mini-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.autosave-line{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem}.history-filters{display:grid;gap:.7rem;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:1rem}.admin-line-horizontal{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem;padding:.5rem 0;border-top:1px dashed var(--border)}.admin-line-horizontal:first-of-type{border-top:0}.admin-line-horizontal>strong{flex:0 0 auto;min-width:120px}.admin-line-horizontal>label{flex:0 1 140px}.admin-line-horizontal .gear-mod-grid{flex:0 1 300px;display:grid;grid-template-columns:repeat(6,1fr);gap:.3rem}.admin-line-horizontal .gear-mod-grid label{flex:unset}.admin-line-horizontal textarea{flex:0 1 150px}.admin-line-horizontal>button,.admin-line-horizontal>.admin-mini-actions{flex:0 0 auto}.combat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.combat-card{display:grid;gap:.35rem}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 900px){.card-grid{grid-template-columns:1fr 1fr}.login-cards,.admin-attr-grid{grid-template-columns:1fr}.attributes-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.compact-attributes,.attribute-grid,.gear-mod-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-sheet-header{flex-direction:column}.admin-sheet-actions{justify-content:flex-start}}@media (max-width: 640px){.app-shell{padding:.75rem}.auth-row,.two-cols,.card-grid,.admin-grid,.history-filters,.attributes-grid,.compact-attributes,.attribute-grid,.gear-grid,.gear-mod-grid,.password-inline{grid-template-columns:1fr}.auth-logged-row{flex-direction:column;align-items:stretch}.theme-toggle-wrap{justify-content:flex-start}.toast-stack{right:.6rem;left:.6rem;width:auto;bottom:.6rem}button{width:100%}.action-row{flex-direction:column}.action-bottom{justify-content:stretch}.admin-line-horizontal>label,.admin-line-horizontal .gear-mod-grid,.admin-line-horizontal>button,.admin-line-horizontal>.admin-mini-actions{flex:1 1 100%}.combat-grid{grid-template-columns:1fr}.modal-dialog{max-width:calc(100vw - 2rem)}}
