*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0e1116;--card: #161b23;--card-border: #232b37;--text: #e6e9ef;--muted: #8b95a5;--accent: #4f8ef7;--ok: #3fb96f;--warn: #e6a23c;--danger: #e5544b;--mono: ui-monospace, "Cascadia Code", Consolas, monospace}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;min-height:100vh}.app{max-width:1100px;margin:0 auto;padding:24px 16px 48px}header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:20px}.title{display:flex;align-items:center;gap:12px}.logo{font-size:2rem}h1{font-size:1.4rem}h2{font-size:1.05rem;margin-bottom:12px}h2.spaced{margin-top:24px}.header-right{display:flex;align-items:center;gap:12px}.muted{color:var(--muted);font-size:.85rem}.mono{font-family:var(--mono)}.small-text{font-size:.75rem}.status-pill{padding:4px 12px;border-radius:99px;font-size:.85rem;font-weight:600}.status-pill.on{background:#3fb96f26;color:var(--ok)}.status-pill.off{background:#e5544b26;color:var(--danger)}.banner.error{background:#e5544b1f;border:1px solid rgba(229,84,75,.4);color:#ff9d96;padding:10px 14px;border-radius:10px;margin-bottom:16px;font-size:.9rem}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}.card{background:var(--card);border:1px solid var(--card-border);border-radius:14px;padding:16px}.card.stat{display:flex;flex-direction:column;gap:6px}.stat-label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:1.7rem;font-weight:700}.stat-value.small{font-size:1.2rem}.stat-sub{font-size:.9rem;color:var(--muted);font-weight:400;margin-left:2px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}@media(max-width:800px){.grid{grid-template-columns:1fr}}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:left;color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;padding:6px 8px}td{padding:8px;border-top:1px solid var(--card-border);vertical-align:middle}.settings td{font-size:.8rem}button{background:var(--accent);color:#fff;border:0;border-radius:9px;padding:8px 14px;font-size:.88rem;font-weight:600;cursor:pointer}button:hover{filter:brightness(1.1)}button:disabled{opacity:.45;cursor:not-allowed}button.warn{background:var(--warn);color:#1a1205}button.danger{background:var(--danger)}button.ghost{background:transparent;border:1px solid var(--card-border);color:var(--text);font-weight:500}button.armed{outline:2px solid var(--danger);animation:pulse .8s ease-in-out infinite alternate}@keyframes pulse{0%{filter:brightness(1)}to{filter:brightness(1.35)}}.actions{display:flex;gap:6px;justify-content:flex-end}.actions button{padding:5px 10px;font-size:.78rem}.btn-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}input{background:#0b0e13;border:1px solid var(--card-border);border-radius:9px;color:var(--text);padding:9px 12px;font-size:.9rem;width:100%}input:focus{outline:none;border-color:var(--accent)}.inline-form{display:flex;gap:8px;align-items:center;margin-top:12px}.log{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.log-line{font-size:.83rem;padding:4px 8px;border-radius:6px;background:#0b0e13}.log-line.ok{border-left:3px solid var(--ok)}.log-line.err{border-left:3px solid var(--danger)}.log-line.info{border-left:3px solid var(--accent)}footer{text-align:center;margin-top:24px}.nav-link{color:var(--accent);text-decoration:none;font-weight:600;font-size:.9rem}.nav-link:hover{text-decoration:underline}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.toolbar input{flex:1;min-width:200px}select{background:#0b0e13;border:1px solid var(--card-border);border-radius:9px;color:var(--text);padding:9px 12px;font-size:.9rem}.center{text-align:center;margin:16px 0}.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.mod-card{display:flex;flex-direction:column;padding:0;overflow:hidden;text-decoration:none;color:var(--text);transition:border-color .15s,transform .15s}.mod-card:hover{border-color:var(--accent);transform:translateY(-2px)}.mod-card img,.mod-img-placeholder{width:100%;aspect-ratio:16/10;object-fit:cover;background:#0b0e13}.mod-img-placeholder{display:flex;align-items:center;justify-content:center;font-size:2.5rem}.mod-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1}.mod-body h3{font-size:.98rem}.mod-summary{font-size:.82rem;color:var(--muted);flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.mod-stats{display:flex;gap:14px;font-size:.82rem;color:var(--muted)}.pager{display:flex;gap:14px;align-items:center;justify-content:center;margin-top:18px}.item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px}.item-cell{display:flex;align-items:center;gap:10px;background:#0b0e13;border:1px solid var(--card-border);border-radius:8px;padding:6px 11px;font-size:.85rem}.item-cell .item-name{flex:1}.item-cell .mono{color:var(--accent);font-weight:600}.item-icon,.pal-icon{border-radius:8px;object-fit:contain;flex-shrink:0}.icon-fallback{display:inline-flex;align-items:center;justify-content:center;background:#0b0e13;border-radius:8px;flex-shrink:0}.owner-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}.owner-card{display:flex;flex-direction:column;gap:12px;text-align:left;background:var(--card);color:var(--text);font-weight:400;padding:18px;cursor:pointer;transition:border-color .15s,transform .15s}.owner-card:hover{border-color:var(--accent);transform:translateY(-2px);filter:none}.owner-head{display:flex;align-items:center;gap:12px}.owner-avatar{font-size:1.6rem;width:52px;height:52px;border-radius:50%;background:#0b0e13;display:flex;align-items:center;justify-content:center}.owner-stats{display:flex;gap:14px;flex-wrap:wrap;font-size:.88rem;color:var(--muted)}.owner-pals-preview{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.owner-cta{color:var(--accent);font-size:.85rem;font-weight:600}.pal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}.pal-card{display:flex;gap:12px;align-items:center;background:#0b0e13;border:1px solid var(--card-border);border-radius:10px;padding:10px 12px}.pal-info{display:flex;flex-direction:column;gap:1px;min-width:0}.pal-info strong{font-size:.92rem}.iv-line{color:var(--muted)}.mood-line{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:2px}.sick-badge{background:#e5544b26;color:#ff9d96;padding:1px 7px;border-radius:99px;font-weight:600}.attention-badge{background:#e6a23c24;color:var(--warn);padding:3px 10px;border-radius:99px;font-size:.8rem;font-weight:600;align-self:flex-start}@media(max-width:640px){.app{padding:14px 10px 40px}h1{font-size:1.15rem}.logo{font-size:1.5rem}header{margin-bottom:14px}.header-right{gap:8px;width:100%;justify-content:space-between}.cards{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px}.card{padding:12px;border-radius:12px}.stat-value{font-size:1.25rem}.stat-value.small{font-size:1rem}.stat-label{font-size:.68rem}input,select{font-size:16px;padding:10px 12px}button{padding:10px 14px;min-height:42px}.actions button{min-height:36px;padding:6px 10px}.btn-row{flex-direction:column}.btn-row button{width:100%}table{font-size:.8rem}th,td{padding:6px 5px}.hide-mobile{display:none}.inline-form{flex-wrap:wrap}.toolbar select{flex:1}.log{max-height:160px}.owner-grid,.pal-grid,.mod-grid{grid-template-columns:1fr}.item-grid{grid-template-columns:1fr 1fr}.item-cell{padding:6px 8px;font-size:.78rem;gap:6px}.item-cell .item-icon,.item-cell .icon-fallback{width:26px!important;height:26px!important}footer{font-size:.72rem}}@media(max-width:400px){.item-grid{grid-template-columns:1fr}}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{background:var(--card);border:1px solid var(--card-border);border-radius:18px;padding:36px 32px;width:100%;max-width:360px;text-align:center;display:flex;flex-direction:column;gap:14px}.login-logo{font-size:3rem}.error{color:var(--danger);font-size:.85rem}
