html,body,#root{width:100%;height:100%;margin:0;padding:0}html{scrollbar-width:thin;scrollbar-color:#ffffff1f transparent}*{box-sizing:border-box}body{color:#fff;background:#000;font-family:Inter,system-ui,sans-serif}.app-shell{width:100%;height:100%;position:relative;overflow:hidden}canvas{display:block;width:100%!important;height:100%!important}.auth-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0009;border:1px solid #ffffff1f;border-radius:22px;width:min(420px,92%);padding:26px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 24px 60px #00000073}.auth-panel h1{letter-spacing:-.03em;margin:0 0 18px;font-size:1.9rem}.auth-panel label{margin-bottom:14px;font-size:.95rem;display:block}.auth-panel input{color:#f8fafc;background:#ffffff0f;border:1px solid #ffffff29;border-radius:12px;outline:none;width:100%;margin-top:8px;padding:12px 14px}.auth-panel input:focus{border-color:#38bdf8;box-shadow:0 0 0 4px #38bdf81f}.auth-panel button[type=submit]{color:#040404;cursor:pointer;background:#22c55e;border:none;border-radius:12px;width:100%;margin-top:10px;padding:12px 16px;font-weight:700}.auth-panel button[type=submit]:disabled{opacity:.7;cursor:not-allowed}.auth-panel .primary-full{color:#040404;cursor:pointer;background:#22c55e;border:none;border-radius:12px;width:100%;margin-top:12px;padding:12px 16px;font-weight:700}.auth-panel .primary-full:hover{background:#16a34a}.auth-panel .primary-full:disabled{opacity:.7;cursor:not-allowed}.switch-line{flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0 0;font-size:.95rem;display:flex}.link-button{color:#7dd3fc;cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.info,.error{border-radius:12px;margin-top:14px;padding:12px 14px;font-size:.95rem}.info{color:#dcfce7;background:#22c55e1f;border:1px solid #22c55e40}.error{color:#fee2e2;background:#f8717124;border:1px solid #f8717147}.logout-button{color:#111827;cursor:pointer;background:#f97316;border:none;border-radius:12px;width:100%;margin-top:12px;padding:12px 16px;font-weight:700}.logout-button:hover{background:#fb923c}.close-button{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.5rem;line-height:1;display:flex;position:absolute;top:12px;right:12px}.close-button:hover{background:#fff3}.auth-panel ::-webkit-scrollbar{width:5px}.friends-panel ::-webkit-scrollbar{width:5px}.moderator-panel ::-webkit-scrollbar{width:5px}.inventory-panel ::-webkit-scrollbar{width:5px}.tasks-panel ::-webkit-scrollbar{width:5px}.auth-panel ::-webkit-scrollbar-track{background:0 0}.friends-panel ::-webkit-scrollbar-track{background:0 0}.moderator-panel ::-webkit-scrollbar-track{background:0 0}.inventory-panel ::-webkit-scrollbar-track{background:0 0}.tasks-panel ::-webkit-scrollbar-track{background:0 0}.auth-panel ::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.friends-panel ::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.moderator-panel ::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.inventory-panel ::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.tasks-panel ::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.auth-panel ::-webkit-scrollbar-thumb:hover{background:#fff3}.friends-panel ::-webkit-scrollbar-thumb:hover{background:#fff3}.moderator-panel ::-webkit-scrollbar-thumb:hover{background:#fff3}.inventory-panel ::-webkit-scrollbar-thumb:hover{background:#fff3}.tasks-panel ::-webkit-scrollbar-thumb:hover{background:#fff3}.open-panel-button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#080c14d9;border:none;border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.5rem;display:flex;position:absolute;top:16px;left:16px}.open-panel-button:hover{background:#080c14f2}.pet-creation-container{justify-content:center;align-items:stretch;gap:20px;width:100%;min-height:400px;display:flex}.pet-preview-panel{background:#0000004d;border-radius:16px;flex:1;min-width:200px;overflow:hidden}.pet-preview-panel canvas{width:100%!important;height:100%!important}.pet-creation-wrapper,.pet-creation-wrapper .auth-panel{box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:0 0!important}.pet-creation{flex:1;min-width:280px}.pet-creation h1{text-align:center;margin:0 0 20px;font-size:1.5rem}.pet-creation .form-section{margin-bottom:20px}.pet-creation .form-section label{color:#94a3b8;margin-bottom:8px;font-size:.95rem;display:block}.pet-creation input{color:#f8fafc;background:#ffffff0f;border:1px solid #ffffff29;border-radius:12px;width:100%;padding:12px 14px;font-size:1rem}.pet-creation input:focus{border-color:#38bdf8;outline:none}.option-group{flex-wrap:wrap;gap:8px;display:flex}.option-button{color:#f8fafc;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff29;border-radius:12px;flex:1;min-width:80px;padding:12px 16px;font-size:.95rem;transition:all .2s}.option-button:hover{background:#ffffff1f}.option-button.selected{color:#38bdf8;background:#38bdf833;border-color:#38bdf8}.color-btn{min-width:70px}.pet-creation button[type=submit]{color:#040404;cursor:pointer;background:#22c55e;border:none;border-radius:12px;width:100%;margin-top:16px;padding:14px 16px;font-size:1rem;font-weight:700}.pet-creation button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.pet-creation button[type=submit]:hover:not(:disabled){background:#16a34a}.skip-button{color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:12px;width:100%;margin-top:10px;padding:10px 16px;font-size:.9rem}.skip-button:hover{color:#fff;background:#ffffff0d}.moderator-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#111827bf;border:1px solid #ffffff0f;border-radius:14px;width:min(420px,94%);max-height:86vh;padding:18px;position:absolute;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 12px 40px #0009}.moderator-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.create-mod-button{color:#bfdbfe;cursor:pointer;background:#3b82f614;border:1px solid #ffffff0f;border-radius:12px;margin:8px 0 14px;padding:10px 12px;display:inline-block}.register-mod-form{background:#ffffff05;border:1px solid #ffffff08;border-radius:10px;margin-bottom:16px;padding:12px}.register-mod-form label{color:#cbd5e1;margin-bottom:8px;display:block}.register-mod-form input{color:#fff;background:#ffffff08;border:1px solid #ffffff0a;border-radius:8px;width:100%;margin-top:6px;padding:8px 10px}.register-mod-form button{color:#04142a;cursor:pointer;background:#60a5fa;border:none;border-radius:10px;margin-top:10px;padding:10px 12px;font-weight:700}.user-list{flex-direction:column;gap:12px;margin-top:8px;display:flex}.user-card{background:#ffffff05;border:1px solid #ffffff08;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.user-info p{color:#e6eef8;margin:2px 0;font-size:.95rem}.role-moderator{color:#f97316;background:#f9731614;border-radius:8px;padding:4px 8px;font-size:.85rem;font-weight:700;display:inline-block}.delete-button{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:10px;padding:8px 10px}.delete-button:hover{background:#dc2626}.moderator-panel .error,.moderator-panel .success{border-radius:10px;margin-top:10px;padding:8px 10px}.moderator-panel .success{color:#bbf7d0;background:#22c55e14;border:1px solid #22c55e1f}.moderator-panel .error{color:#fecaca;background:#f8717114;border:1px solid #f871711f}.friends-panel{width:min(640px,94%);max-height:64vh;overflow:auto}.friends-panel .option-button{padding:8px 10px}.inventory-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080c14f2;border:1px solid #ffffff0f;border-radius:12px;width:720px;max-height:80vh;padding:14px;position:relative;overflow:auto}.inventory-controls{gap:8px;margin-bottom:12px;display:flex}.inventory-controls input,.inventory-controls select{color:#fff;background:#ffffff05;border:1px solid #ffffff0f;border-radius:8px;padding:8px 10px}.inventory-add{gap:8px;margin-bottom:12px;display:flex}.inventory-add input,.inventory-add select{color:#fff;background:#ffffff05;border:1px solid #ffffff0a;border-radius:8px;padding:8px 10px}.inventory-add .primary-btn{color:#04142a;cursor:pointer;background:#22c55e;border:none;border-radius:8px;padding:8px 12px}.inventory-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px;display:grid}.inventory-item{background:#ffffff05;border:1px solid #ffffff08;border-radius:10px;flex-direction:column;align-items:flex-start;gap:8px;min-height:84px;padding:10px;display:flex}.inventory-item.empty{opacity:.35;background:#ffffff03;border-style:dashed}.item-swatch{border:1px solid #ffffff0a;border-radius:50%;width:44px;height:44px;box-shadow:inset -8px -8px 20px #00000073,0 6px 14px #0009}.item-swatch.common{background:linear-gradient(#34d399,#10b981)}.item-swatch.uncommon{background:linear-gradient(#60a5fa,#3b82f6)}.item-swatch.rare{background:linear-gradient(#f87171,#ef4444)}.rarity-filters{align-items:center;gap:8px;display:flex}.filter-btn{color:#fff;cursor:pointer;background:#ffffff05;border:1px solid #ffffff0f;border-radius:8px;padding:6px 10px}.filter-btn.selected{color:#7dd3fc;background:#38bdf81f;border-color:#38bdf8}.item-name{font-weight:700}.item-meta{color:#94a3b8;font-size:.85rem}.remove-button{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:8px;margin-top:auto;padding:6px 8px}.inventory-pagination{justify-content:center;align-items:center;gap:12px;padding:8px 0;display:flex}.inventory-pagination button{color:#fff;cursor:pointer;background:#ffffff08;border:none;border-radius:8px;padding:8px 10px}.inventory-pagination .page-info{color:#cbd5e1}.use-btn{color:#04142a;cursor:pointer;background:linear-gradient(90deg,#fbbf24,#fb7185);border:none;border-radius:10px;padding:8px 10px;font-weight:700;transition:transform .12s,opacity .12s}.use-btn:disabled{opacity:.65;cursor:not-allowed;transform:scale(.98)}.tasks-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080c14f2;border:1px solid #ffffff0f;border-radius:12px;width:100%;max-height:72vh;padding:14px;position:relative;overflow:auto}.tasks-panel .panel-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.tasks-panel .tabs{background:#ffffff05;border-radius:10px;gap:8px;margin-bottom:12px;padding:6px;display:flex}.tasks-panel .tabs button{color:#cbd5e1;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:8px 10px;font-weight:600}.tasks-panel .tabs button.active{color:#7dd3fc;background:linear-gradient(90deg,#7dd3fc14,#22c55e0a)}.task-row{background:linear-gradient(#ffffff05,#ffffff03);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:12px;display:flex;box-shadow:0 6px 18px #02061799}.task-row.completed{opacity:.75;filter:grayscale(.2)}.task-left{flex-direction:column;gap:6px;max-width:68%;display:flex}.task-meta{color:#94a3b8;font-size:.85rem}.task-right{align-items:center;gap:10px;display:flex}.task-time{color:#e6eef8;text-align:right;min-width:64px;font-size:.9rem}.task-complete input{width:20px;height:20px}.task-checkbox{width:18px;height:18px}.task-check{cursor:pointer;background:#ffffff05;border:1px solid #ffffff0a;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:transform .12s,background .12s;display:inline-flex}.task-check:hover{transform:translateY(-2px)}.task-check.checked{color:#04142a;background:linear-gradient(90deg,#34d399,#06b6d4);border:none}.task-check.disabled{opacity:.6;cursor:not-allowed}.create-form .form-input{color:#fff;background:#ffffff05;border:1px solid #ffffff0f;border-radius:8px;width:100%;margin-top:6px;padding:10px 12px}.create-form .form-input:focus{border-color:#38bdf8;outline:none;box-shadow:0 0 0 6px #38bdf80f}.create-form .number-control{align-items:center;gap:8px;margin-top:6px;display:inline-flex}.create-form .number-input{text-align:center;width:96px;padding:10px 8px}.create-form .num-btn{color:#fff;cursor:pointer;background:#ffffff05;border:1px solid #ffffff0f;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;font-size:18px;line-height:1;display:inline-flex}.create-form .num-btn:hover{background:#ffffff0a;transform:translateY(-2px)}.create-form .number-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.create-form .number-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.create-form .number-input{-moz-appearance:textfield}.create-form .number-group{flex-direction:column;align-items:center;gap:12px;margin-top:6px;display:flex}.create-form .number-label{flex-direction:column;align-items:center;width:100%;max-width:320px;display:flex}.create-form .number-label .label-text{color:#cbd5e1;margin-bottom:6px;font-size:.95rem}.create-form .number-control{justify-content:center;align-items:center;gap:8px;width:100%;display:inline-flex}.create-form .number-input{text-align:center;width:120px;height:36px;padding:8px 10px}.create-form .num-btn{width:36px;height:36px}.task-progress{background:#ffffff08;border-radius:8px;height:8px;margin-top:6px;overflow:hidden}.task-progress-bar{background:linear-gradient(90deg,#34d399,#06b6d4);width:0%;height:100%;transition:width .4s}.create-form label{margin-bottom:10px;display:block}.friend-results{background:#ffffff05;border:1px solid #ffffff08;border-radius:8px;max-height:140px;overflow:auto}.friend-row{cursor:pointer;padding:8px 10px}.friend-row.selected{color:#bbf7d0;background:#22c55e0f}.create-actions{margin-top:12px}.create-actions .primary-btn{color:#04142a;cursor:pointer;background:#22c55e;border:none;border-radius:10px;padding:10px 14px;font-weight:800}.create-actions .primary-btn:hover{background:#16a34a}.tasks-modal-backdrop{z-index:60;background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.tasks-panel{width:420px}.friends-panel input{border-radius:10px;width:100%;padding:10px 12px}
