:root{--bg-parchment: #f5f4ed;--bg-ivory: #faf9f5;--text-primary: #141413;--accent-terracotta: #c96442;--accent-coral: #d97757;--text-secondary: #5e5d59;--text-tertiary: #87867f;--border-cream: #f0eee6;--border-warm: #e8e6dc;--dark-surface: #30302e;--danger: #b65348;--success: #5f7c53;--shadow-ring: 0 0 0 1px rgba(94, 93, 89, .08);--shadow-card: 0 2px 12px rgba(0, 0, 0, .06);color:var(--text-primary);background:var(--bg-parchment);font-family:Georgia,Times New Roman,Songti SC,STSong,serif;line-height:1.6}*{box-sizing:border-box}html{background:var(--bg-parchment)}body{margin:0;min-width:0;min-height:100dvh;background:radial-gradient(circle at 14% 8%,rgba(201,100,66,.08),transparent 28rem),linear-gradient(180deg,var(--bg-parchment) 0%,#efede4 100%)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}h1,h2,h3{margin:0;color:var(--text-primary);font-family:Georgia,Times New Roman,Songti SC,STSong,serif;font-weight:500;line-height:1.1;letter-spacing:0}h1{font-size:clamp(2rem,3vw,2.25rem)}h2{font-size:1.5rem}.shell{min-height:100dvh;display:grid;grid-template-columns:280px minmax(0,1fr)}.sidebar{position:sticky;top:0;z-index:100;height:100dvh;display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem 1rem;background:#faf9f5eb;border-right:1px solid var(--border-warm);box-shadow:var(--shadow-ring);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{padding:.35rem .75rem 1.25rem;border-bottom:1px solid var(--border-cream);color:var(--text-primary);font-size:1.6rem;font-weight:700;line-height:1}nav{display:grid;gap:.5rem}.navItem{position:relative;min-height:2.75rem;display:flex;align-items:center;gap:.75rem;border:1px solid transparent;border-radius:.5rem;color:var(--text-secondary);background:transparent;padding:0 .85rem;text-align:left;font-weight:500;transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}.navItem svg{color:var(--text-tertiary)}.navItem:hover{color:var(--text-primary);background:var(--bg-parchment);border-color:var(--border-cream);box-shadow:var(--shadow-card);transform:translateY(-1px)}.navItem.active{color:var(--text-primary);background:var(--bg-parchment);border-color:var(--border-warm);box-shadow:inset 3px 0 0 var(--accent-terracotta),var(--shadow-ring)}.navItem.active svg{color:var(--accent-terracotta)}.navGroup{justify-content:flex-start}.navGroup .navChevron{margin-left:auto;color:var(--text-tertiary)}.navSub{overflow:hidden;max-height:0;transition:max-height .26s ease}.navSubOpen{max-height:32rem}.navSubItem{padding-left:2.75rem;font-size:.9375rem}.account{margin-top:auto;padding:1rem .75rem 0;border-top:1px solid var(--border-cream);color:var(--text-secondary);font-size:.875rem}.account button{margin-top:.75rem;display:inline-flex;gap:.5rem;align-items:center;color:var(--text-primary);background:transparent;border:0;padding:0;font-weight:500}.account button:hover{color:var(--accent-terracotta)}.content{min-width:0;padding:clamp(1.5rem,4vw,3rem);overflow:auto}.content>section{max-width:1280px;margin:0 auto;animation:pageIn .3s ease-out both}.pageHead{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.5rem}.loginPage{min-height:100dvh;display:grid;place-items:center;padding:1.5rem}.loginCard{width:min(100%,26rem);display:grid;gap:1rem;padding:2rem;background:var(--bg-ivory);border:1px solid var(--border-warm);border-radius:.5rem;box-shadow:var(--shadow-card),var(--shadow-ring);animation:pageIn .54s ease-out both}.loginCard h1{margin-bottom:.5rem;text-align:center;font-size:clamp(2.5rem,5vw,4rem);font-weight:700}label{display:grid;gap:.5rem;color:var(--text-secondary);font-size:.875rem;font-weight:500;letter-spacing:.01em}input,select,textarea{width:100%;color:var(--text-primary);background:var(--bg-ivory);border:1px solid var(--border-warm);border-radius:.5rem;padding:.65rem .8rem;outline:none;box-shadow:var(--shadow-ring);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}textarea{min-height:6rem;resize:vertical;line-height:1.6}input:hover,select:hover,textarea:hover{background:#fffdf8}input:focus,select:focus,textarea:focus{border-color:var(--accent-terracotta);box-shadow:0 0 0 2px var(--bg-parchment),0 0 0 4px #c9644252}input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent-terracotta);box-shadow:none}.formError{color:var(--danger);font-size:.875rem}.toolbar{display:grid;grid-template-columns:minmax(16rem,1fr) minmax(12rem,16rem) repeat(3,auto);gap:.75rem;align-items:center;margin-bottom:1rem;padding:.75rem;background:#faf9f5b8;border:1px solid var(--border-cream);border-radius:.5rem;box-shadow:var(--shadow-ring)}.search{min-width:0}.primaryBtn,.secondaryBtn{min-height:2.5rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:0 .95rem;font-weight:600;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease,color .2s ease}.primaryBtn{color:#fffdf8;background:var(--accent-terracotta);border:1px solid var(--accent-terracotta);box-shadow:0 2px 10px #c964422e}.primaryBtn:hover{background:#b95a3b;border-color:#b95a3b;transform:translateY(-1px) scale(1.01);box-shadow:0 5px 18px #c9644233}.primaryBtn:active,.secondaryBtn:active,.miniBtn:active,.iconBtn:active{transform:translateY(1px)}.secondaryBtn{color:var(--text-primary);background:transparent;border:1.5px solid var(--border-warm)}.secondaryBtn:hover{background:var(--bg-ivory);box-shadow:var(--shadow-card);transform:translateY(-1px) scale(1.01)}.linkBtn{color:var(--accent-terracotta);background:transparent;border:0;padding:0;font-weight:600}.linkBtn:hover{text-decoration:underline}.tableWrap{overflow:auto;background:var(--bg-ivory);border:1px solid var(--border-warm);border-radius:.5rem;box-shadow:var(--shadow-card),var(--shadow-ring)}table{width:100%;min-width:980px;border-collapse:collapse;table-layout:fixed}th,td{height:3rem;padding:0 .85rem;border-bottom:1px solid var(--border-cream);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}th{color:var(--text-secondary);background:#f1efe7;font-size:.875rem;font-weight:600}tbody tr{background:var(--bg-ivory);transition:background .16s ease,transform .16s ease}tbody tr:hover{background:#f8f6ef}tbody tr:last-child td{border-bottom:0}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.mono{font-family:JetBrains Mono,SF Mono,ui-monospace,Consolas,monospace;font-size:.875rem}.secretCell,.copyable,.actions{display:flex;align-items:center;gap:.4rem;min-width:0}.copyable a{color:var(--accent-terracotta);text-decoration:none}.copyable a:hover{text-decoration:underline}.miniBtn,.iconBtn{width:1.9rem;height:1.9rem;flex:0 0 auto;display:inline-grid;place-items:center;border-radius:.5rem;border:1px solid var(--border-warm);color:var(--text-secondary);background:#faf9f5b8;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease}.miniBtn:hover,.iconBtn:hover{color:var(--text-primary);background:#fffdf8;box-shadow:var(--shadow-card);transform:translateY(-1px)}.miniBtn.danger{color:var(--danger)}.tag,.role{min-width:3.4rem;height:1.55rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-warm);border-radius:.5rem;font-size:.8125rem;font-weight:600}.tagOrange{color:var(--accent-terracotta);background:#fbede6}.tagGreen{color:var(--success);background:#edf2e8}.tagBlue{color:#596f85;background:#edf1f4}.tagRed{color:var(--danger);background:#f8ebe8}.tagNeutral{color:var(--text-secondary);background:#f1efe7}.role.admin{color:var(--accent-terracotta);background:#fbede6}.role.user{color:var(--success);background:#edf2e8}.drawerBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;justify-content:flex-end;background:#1414133d;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.drawer{width:min(100%,34rem);min-height:100dvh;overflow:auto;padding:1.5rem;background:var(--bg-ivory);border-left:1px solid var(--border-warm);box-shadow:-12px 0 32px #1414131f;animation:drawerIn .3s ease-out both}.drawerHead{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-cream)}.drawerHead h2{font-size:1.5rem}.formGrid{display:grid;gap:1rem}.checkLine{display:flex;align-items:center;gap:.65rem}.writeOnly{display:grid;justify-items:center;gap:1.5rem;padding-top:1rem}.writeOnly .pageHead{width:min(100%,45rem);justify-self:center}.writeChooser{width:min(100%,45rem);padding:1.75rem;background:var(--bg-ivory);border:1px solid var(--border-warm);border-radius:.5rem;box-shadow:var(--shadow-card),var(--shadow-ring)}.writeChooser h2{margin-bottom:1.25rem}.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border-cream)}.segmented button{min-height:2.75rem;color:var(--text-secondary);background:transparent;border:1.5px solid var(--border-warm);border-radius:.5rem;font-weight:600;transition:transform .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}.segmented button:hover{color:var(--text-primary);background:var(--bg-parchment);box-shadow:var(--shadow-card)}.segmented button.active{color:#fffdf8;background:var(--accent-terracotta);border-color:var(--accent-terracotta)}.permSummary{display:flex;flex-wrap:wrap;gap:.5rem .9rem;color:var(--text-secondary);font-size:.875rem}.permSummary b{margin-left:.3rem;color:var(--text-tertiary)}.permSummary b.on{color:var(--accent-terracotta)}.permMatrix{display:grid;gap:.75rem;padding-top:1rem;border-top:1px solid var(--border-cream)}.permMatrix>strong{color:var(--text-secondary);font-size:.875rem;font-weight:600}.matrixRow{display:grid;grid-template-columns:minmax(7.5rem,1fr) repeat(5,2.75rem);align-items:center;gap:.5rem;padding:.55rem .65rem;background:var(--bg-parchment);border:1px solid var(--border-cream);border-radius:.5rem}.matrixRow label{display:grid;place-items:center}.expandedCell{padding:0!important;height:auto;background:#f2f0e9;border-bottom:1px solid var(--border-cream)}.gameAppsPanel{padding:.75rem 1rem}.gameAppsTable{overflow:auto;margin-bottom:.65rem;background:var(--bg-ivory);border:1px solid var(--border-cream);border-radius:.5rem}.gameAppsTable table{min-width:0}.gameAppsTable th,.gameAppsTable td{height:2.5rem;font-size:.875rem}.gameAppsForm{display:flex;gap:.5rem;align-items:center}.gameAppsForm input{width:auto}.toast{position:fixed;right:1.5rem;top:1.5rem;z-index:500;padding:.75rem 1rem;color:#f8fff4;background:var(--success);border:1px solid rgba(95,124,83,.24);border-radius:.5rem;box-shadow:var(--shadow-card);animation:pageIn .3s ease-out both}@keyframes pageIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes drawerIn{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}@media(max-width:1024px){.shell{grid-template-columns:1fr}.sidebar{position:sticky;height:auto;flex-direction:row;align-items:center;gap:.75rem;padding:.75rem;border-right:0;border-bottom:1px solid var(--border-warm);overflow-x:auto}.brand{flex:0 0 auto;padding:0 .75rem 0 0;border-bottom:0;border-right:1px solid var(--border-cream);font-size:1.25rem}nav{display:flex;gap:.5rem;min-width:max-content}.navItem{min-height:2.4rem}.account{margin-top:0;margin-left:auto;padding:0 0 0 .75rem;border-top:0;border-left:1px solid var(--border-cream);white-space:nowrap}.account button{margin-top:.25rem}.toolbar{grid-template-columns:1fr 1fr repeat(3,auto)}}@media(max-width:768px){.content{padding:1rem}.sidebar{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.75rem;padding:.75rem 1rem}.brand{padding:0;border-right:0;border-bottom:0}nav{grid-column:1 / -1;width:100%;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:none}nav::-webkit-scrollbar{display:none}.account{display:flex;align-items:center;justify-content:space-between;margin-left:0;padding:0;border-left:0;border-top:0;gap:.75rem}.account button{margin-top:0}.pageHead{align-items:stretch;flex-direction:column}.toolbar{grid-template-columns:1fr;align-items:stretch}.primaryBtn,.secondaryBtn{width:100%}.segmented{grid-template-columns:1fr}.permSummary{display:grid}.matrixRow{grid-template-columns:1fr repeat(5,2.25rem);overflow-x:auto}.drawer{width:100%}.toast{left:1rem;right:1rem;top:1rem}}
