:root{--sky-top: #7FC9F3;--sky-bottom: #D9F0FC;--grass: #8FCB4E;--grass-dark: #6FAE36;--grass-light: #BEE48A;--leather: #5B3B25;--leather-dark: #3F2716;--leather-light:#7A5133;--brass: #E0B968;--brass-dark: #B78C3E;--paper: #FDFEFF;--paper-2: #FFFFFF;--paper-3: #EEF6FC;--paper-line: #BFDBEF;--grid: rgba(96, 160, 220, .22);--ink: #3B4A5C;--ink-soft: #5F6E80;--ink-muted: #8A99AA;--leaf: #7DBE4B;--leaf-dark: #5E9A35;--leaf-light: #DDF1C8;--leaf-pale: #EEF8E4;--blue: #4EA8E8;--blue-dark: #2F86C6;--orange: #F4A83A;--orange-dark: #D48A1E;--red: #EA5A5A;--red-dark: #C63F3F;--pink: #F48FB1;--teal: #5ECFC0;--yellow: #F6D365;--wood: var(--leather-light);--wood-dark: var(--leather-dark);--wood-light: #8F6A4A;--terracotta: var(--orange);--gold: var(--yellow);--sky: #BFE3F7;--cowdi-primary: var(--leaf);--cowdi-primary-dark: var(--leaf-dark);--cowdi-primary-light: #A3D67A;--cowdi-secondary: var(--orange);--cowdi-bg: var(--paper);--font: "Nunito", -apple-system, BlinkMacSystemFont, sans-serif;--font-hand: "Patrick Hand", "Nunito", cursive;--cowdi-font-base: 24px;--cowdi-line-height: 1.55}*{box-sizing:border-box}html{scroll-behavior:smooth;font-size:var(--cowdi-font-base)}body{font-family:var(--font)!important;background-color:var(--cowdi-bg);font-size:1rem;line-height:var(--cowdi-line-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.small,small,.form-text,.text-muted.small{font-size:.92em!important}.nav-link,.dropdown-item,.list-group-item,.breadcrumb-item{font-size:1rem}.badge{font-size:.82em;padding:.38em .62em}.form-control,.form-select,input,textarea,select{font-size:1rem}.form-control-sm,.form-select-sm{font-size:.92rem}.form-control-lg,.form-select-lg{font-size:1.15rem}.btn{font-size:1rem}.btn-sm{font-size:.92rem}.btn-lg{font-size:1.15rem}h1,.h1{font-size:2.1rem}h2,.h2{font-size:1.75rem}h3,.h3{font-size:1.45rem}h4,.h4{font-size:1.2rem}h5,.h5{font-size:1.08rem}h6,.h6,.table{font-size:1rem}.table-sm{font-size:.92rem}.tooltip{font-size:.88rem}.toast{font-size:1rem}.modal-title{font-size:1.25rem;font-weight:700}@media (max-width: 991.98px){:root{--cowdi-font-base: 21px}}@media (max-width: 575.98px){:root{--cowdi-font-base: 20px}}@media (max-width: 400px){:root{--cowdi-font-base: 19px}}.text-cowdi-primary,.text-cowdi{color:var(--cowdi-primary)!important}.bg-cowdi-primary{background-color:var(--cowdi-primary)!important}.btn-cowdi-primary{background:var(--cowdi-primary);border-color:var(--cowdi-primary);color:#fff;font-weight:700}.btn-cowdi-primary:hover,.btn-cowdi-primary:focus{background:var(--cowdi-primary-dark);border-color:var(--cowdi-primary-dark);color:#fff}.btn-outline-cowdi{border:2px solid var(--cowdi-primary);color:var(--cowdi-primary);background:transparent;font-weight:700}.btn-outline-cowdi:hover{background:var(--cowdi-primary);color:#fff;border-color:var(--cowdi-primary)}.progress-bar-cowdi{background:linear-gradient(90deg,var(--cowdi-primary),var(--cowdi-primary-light))}.level-badge-lg{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--leaf),var(--terracotta));color:#fff;font-weight:800;font-size:1.1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.bg-cowdi-gradient{background:linear-gradient(135deg,var(--leaf),var(--leaf-dark))!important}.card-hover{transition:transform .2s ease,box-shadow .2s ease}.card-hover:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f!important}.card-header-level{height:6px;border-radius:0}.card-header-level.beginner{background:#00b894}.card-header-level.intermediate{background:#fdcb6e}.card-header-level.advanced{background:#ff7675}.badge-level-beginner{background-color:#e0f8f1!important;color:#00b894!important}.badge-level-intermediate{background-color:#fff4d4!important;color:#e17055!important}.badge-level-advanced{background-color:#ffe0e0!important;color:#d63031!important}.navbar .nav-link.active{color:var(--cowdi-primary)!important;font-weight:700}.navbar .nav-link:hover{color:var(--cowdi-primary)}.fade-in{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.quiz-option-btn{padding:.75rem 1rem;font-weight:600;font-size:.95rem;text-align:left;transition:all .15s ease}.quiz-option-btn:not(:disabled):hover{transform:translate(4px)}.timer-warning{color:#ff7675;font-weight:800;animation:pulse .8s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.toast-container-fixed{position:fixed;top:76px;right:1rem;z-index:9999}.flashcard-wrapper{width:100%;max-width:460px;height:260px;perspective:1000px;cursor:pointer}.flashcard-inner{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,0,.2,1)}.flashcard-inner.flipped{transform:rotateY(180deg)}.flashcard-front,.flashcard-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:16px!important;padding:2rem;display:flex;flex-direction:column;align-items:center;justify-content:center}.flashcard-front{background:linear-gradient(135deg,var(--leaf),#7b9a5c);color:#fff}.flashcard-back{background:var(--paper-2);transform:rotateY(180deg);border:3px solid var(--paper-line)}.cowdi-chat-btn{position:fixed;bottom:2rem;right:2rem;width:60px;height:60px;border-radius:50%;font-size:1.8rem;background:linear-gradient(135deg,var(--leaf),var(--leaf-dark));color:#fff;border:none;cursor:pointer;box-shadow:0 4px 16px #00000040;z-index:1050;display:flex;align-items:center;justify-content:center;transition:transform .2s ease;user-select:none;-webkit-user-select:none;touch-action:none}.cowdi-chat-btn:hover{transform:scale(1.1)}.cowdi-chat-btn.dragging{opacity:.85;transform:scale(1.08);cursor:grabbing}.cowdi-chat-bubble{position:fixed;bottom:5.5rem;right:2rem;background:#fff;border-radius:16px;padding:1rem 2.5rem 1rem 1.25rem;max-width:280px;box-shadow:0 4px 20px #00000026;z-index:1050;border-left:4px solid #FF6B9D;animation:fadeInUp .2s ease}.cowdi-chat-close{position:absolute;top:6px;right:8px;background:none;border:none;font-size:1rem;line-height:1;color:#aaa;cursor:pointer;padding:2px 4px}.cowdi-chat-close:hover{color:#555}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.bottom-popup-menu{position:absolute;bottom:100%;left:8px;right:8px;background:var(--paper);border-radius:16px;border:2px solid var(--paper-line);box-shadow:0 -8px 28px #00000040;padding:8px;display:flex;flex-wrap:wrap;gap:6px;animation:popupSlideUp .18s ease-out;margin-bottom:6px}@keyframes popupSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.bottom-popup-item{display:flex;align-items:center;gap:10px;flex:1 1 calc(50% - 6px);min-width:0;padding:12px 14px;border-radius:12px;border:none;background:var(--paper-3);font-weight:600;font-size:1rem;color:var(--ink);cursor:pointer;transition:background .15s,color .15s,transform .1s;-webkit-tap-highlight-color:transparent;font-family:inherit}.bottom-popup-item:active{transform:scale(.96)}.bottom-popup-item.active{background:var(--cowdi-primary);color:#fff}.bottom-popup-item:not(.active):hover{background:var(--leaf-pale);color:var(--leaf-dark)}.bottom-popup-icon{font-size:1.45rem;flex-shrink:0}.bottom-popup-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 991.98px){.cowdi-chat-btn{bottom:6.5rem!important}.cowdi-chat-bubble{bottom:10rem!important}}.streak-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-day{aspect-ratio:1;max-height:52px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;background:var(--paper-3);color:var(--ink-muted)}.calendar-day.active{background:linear-gradient(135deg,var(--leaf),#7b9a5c);color:#fff}.calendar-day.today{outline:2px solid var(--leaf);outline-offset:2px;color:var(--leaf-dark);font-weight:800}.calendar-day.active.today{color:#fff}.vocab-stat-bar{display:flex;height:32px;border-radius:16px;overflow:hidden;margin-bottom:1rem;background:#eee}.vocab-bar-fill{display:flex;align-items:center;justify-content:center;color:#fff;font-size:.78rem;font-weight:700;min-width:0;transition:width .5s ease}.vocab-bar-fill.learned{background:#00b894}.vocab-bar-fill.learning{background:#fdcb6e;color:#333}.vocab-bar-fill.new{background:#b2bec3}.correct-flash{animation:correctFlash .6s ease}@keyframes correctFlash{0%{box-shadow:0 0 #00b89499}50%{box-shadow:0 0 0 12px #00b89433;background-color:#e6fff9}to{box-shadow:0 0 #00b89400}}.correct-pop{animation:correctPop .4s ease}@keyframes correctPop{0%{transform:scale(1)}50%{transform:scale(1.06)}to{transform:scale(1)}}.wrong-shake{animation:wrongShake .4s ease}@keyframes wrongShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.bounce-in{animation:bounceIn .6s ease}@keyframes bounceIn{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.1)}70%{transform:scale(.9)}to{transform:scale(1);opacity:1}}.confetti-particle{position:absolute;top:0;pointer-events:none;animation:confettiFall 1.6s ease forwards;z-index:10}@keyframes confettiFall{0%{opacity:1;transform:translateY(-20px) rotate(0)}to{opacity:0;transform:translateY(260px) rotate(720deg)}}.vocab-card{transition:transform .2s ease,box-shadow .2s ease;border-left:4px solid transparent}.vocab-card:hover{border-left-color:var(--cowdi-primary)}.home-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:linear-gradient(135deg,var(--paper-2) 0%,var(--leaf-light) 100%);border-radius:20px;padding:1.5rem 1.75rem;position:relative;overflow:hidden}.home-hero:before{content:"";position:absolute;top:-40px;right:-40px;width:180px;height:180px;border-radius:50%;background:#ff6b9d14}.home-hero-greeting{font-size:.8rem;font-weight:700;color:var(--cowdi-primary);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.25rem}.home-hero-title{font-size:1.65rem;font-weight:800;line-height:1.2;color:#2d2d2d;margin-bottom:.5rem}.home-hero-petname{color:var(--cowdi-primary)}.home-hero-sub{color:#777;font-size:.88rem;line-height:1.5;margin:0}.home-hero-pet{flex-shrink:0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.home-hero-pet-img{width:90px;height:110px;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.12))}.home-hero-pet-emoji{font-size:5rem;line-height:1}.home-hero-pet-badge{font-size:.7rem;font-weight:700;color:var(--cowdi-primary);background:#ff6b9d1a;padding:2px 10px;border-radius:20px}.home-xp-strip{display:flex;align-items:center;gap:.75rem;background:#fff;border-radius:14px;padding:.75rem 1rem;box-shadow:0 2px 10px #0000000f}.home-xp-level{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.home-xp-level-badge{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--leaf),var(--terracotta));color:#fff;font-weight:800;font-size:.85rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.home-xp-level-title{font-weight:700;font-size:.85rem;line-height:1.2}.home-xp-level-sub{font-size:.72rem;color:#888}.home-xp-bar-wrap{min-width:60px}.home-xp-bar{height:8px;border-radius:4px;background:#f0f0f0;overflow:hidden}.home-xp-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--leaf),#7b9a5c);transition:width .6s ease}.home-streak-pill{display:flex;align-items:center;gap:3px;background:#fff3e0;border-radius:20px;padding:4px 10px;flex-shrink:0;font-size:.85rem}.home-streak-label{font-size:.7rem;color:#aaa}.home-daily-card{display:flex;align-items:center;gap:.75rem;background:linear-gradient(135deg,var(--leaf),var(--leaf-dark));border-radius:16px;padding:1rem 1.25rem;color:#fff;box-shadow:0 4px 16px #ff6b9d4d}.home-daily-card.home-daily-done{background:linear-gradient(135deg,#00b894,#55efc4);box-shadow:0 4px 16px #00b8944d}.home-daily-icon{font-size:2rem;flex-shrink:0}.home-daily-body{flex-grow:1;min-width:0}.home-daily-title{font-weight:800;font-size:.95rem}.home-daily-tasks{display:flex;gap:1rem;flex-wrap:wrap;margin-top:4px;font-size:.82rem;opacity:.9}.task-done{opacity:1}.task-todo{opacity:.75}.home-daily-btn{background:#ffffff40;color:#fff;border:1.5px solid rgba(255,255,255,.5);border-radius:10px;font-weight:700;white-space:nowrap;flex-shrink:0}.home-daily-btn:hover{background:#fff6;color:#fff}.home-section-title{font-weight:800;font-size:1rem;color:#333}.home-quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.home-quick-item{display:flex;flex-direction:column;align-items:center;text-align:center;padding:.75rem .5rem;border-radius:14px;background:var(--qa-bg, #f9f9f9);border:1.5px solid transparent;transition:transform .15s,box-shadow .15s,border-color .15s}.home-quick-item:hover{transform:translateY(-3px);box-shadow:0 6px 16px #0000001a;border-color:var(--qa-color, #ccc)}.home-quick-icon{font-size:1.6rem;margin-bottom:4px}.home-quick-label{font-weight:700;font-size:.8rem;color:var(--qa-color, #333);line-height:1.2}.home-quick-sub{font-size:.68rem;color:#999;margin-top:2px}.home-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}.home-stat-card{background:#fff;border-radius:14px;padding:.75rem .5rem;text-align:center;box-shadow:0 2px 8px #0000000f;transition:transform .15s,box-shadow .15s}.home-stat-card:hover{transform:translateY(-3px);box-shadow:0 6px 16px #0000001a}.home-stat-icon{font-size:1.3rem;margin-bottom:2px}.home-stat-value{font-size:1.4rem;font-weight:800;color:var(--cowdi-primary);line-height:1.1}.home-stat-label{font-size:.68rem;color:#999;margin-top:2px}.home-skills-card{border-radius:16px!important}.home-skills-row{display:flex;gap:.75rem}.home-skill-item{flex:1;min-width:0}.home-skill-emoji{font-size:1.3rem;text-align:center}.home-skill-bar-wrap{height:6px;border-radius:3px;background:#f0f0f0;overflow:hidden;margin:4px 0}.home-skill-bar{height:100%;border-radius:3px;transition:width .5s ease}.home-skill-name{font-size:.65rem;font-weight:700;text-align:center}.home-continue-card{display:flex;align-items:center;gap:.75rem;background:#fff;border-radius:16px;padding:1rem 1.25rem;box-shadow:0 2px 10px #0000000f;border-left:4px solid var(--cowdi-primary)}.home-continue-icon{font-size:1.8rem;flex-shrink:0}.home-continue-body{flex-grow:1;min-width:0}.home-continue-label{font-size:.72rem;color:#999;font-weight:700;text-transform:uppercase}.home-continue-title{font-weight:800;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 575px){.home-hero{flex-direction:row;padding:1.1rem}.home-hero-title{font-size:1.3rem}.home-hero-pet-img{width:72px;height:88px}.home-quick-grid{grid-template-columns:repeat(3,1fr);gap:.5rem}.home-quick-icon{font-size:1.4rem}.home-quick-label{font-size:.72rem}.home-stats-row{grid-template-columns:repeat(2,1fr)}.home-skills-row{gap:.5rem}.home-xp-strip{padding:.6rem .75rem;gap:.5rem}.home-xp-level-badge{width:38px;height:38px;font-size:.75rem}}.skill-card{transition:transform .15s,box-shadow .15s}.skill-card:hover{transform:translateY(-3px);box-shadow:0 6px 16px #0000001f!important}@media (max-width: 767px){.learning-path .d-flex{flex-direction:column!important;align-items:center!important}.learning-path .d-flex>div:last-child:not(.card):not(.rounded-circle){display:none!important}.learning-path .d-flex>div:first-child{order:2;width:100%}.learning-path .d-flex>.rounded-circle{order:1}}.vocab-mindmap{text-align:center}.vocab-hero{display:flex;justify-content:center;padding:8px 0 4px}.vocab-hero-badge{position:relative;width:180px;height:180px;display:flex;align-items:center;justify-content:center}.vocab-hero-img{width:150px;height:150px;object-fit:contain;filter:drop-shadow(0 8px 20px rgba(255,107,157,.35));animation:vocabFloat 4s ease-in-out infinite;z-index:2;position:relative}.vocab-hero-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle at 50% 55%,rgba(255,107,157,.22),rgba(78,205,196,.15) 60%,transparent 72%);filter:blur(4px);animation:vocabPulse 3s ease-in-out infinite}.vocab-hero-caption{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 14px;border-radius:999px;background:linear-gradient(135deg,var(--leaf),var(--leaf-dark));color:#fff;box-shadow:0 4px 14px #ff6b9d59;white-space:nowrap;z-index:3}.vocab-hero-title{font-size:.78rem;font-weight:800;letter-spacing:1px;text-transform:uppercase;opacity:.85}.vocab-hero-sub{font-size:.95rem;font-weight:800;margin-top:-4px}@keyframes vocabFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes vocabPulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.mindmap-branches{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}.mindmap-node{background:#fff;border-radius:16px;padding:1rem;width:150px;cursor:pointer;box-shadow:0 2px 12px #00000014;border:2px solid transparent;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative}.mindmap-node:hover{transform:translateY(-4px);box-shadow:0 6px 20px #0000001f;border-color:var(--node-color)}.mindmap-node-icon{font-size:2rem;margin-bottom:.3rem}.mindmap-node-label{font-weight:700;font-size:.95rem;color:var(--node-color)}.mindmap-node-sub{font-size:.75rem;color:#888}.mindmap-node-count{font-size:.7rem;color:#aaa;margin-top:.25rem}.mindmap-progress{height:4px;background:#eee;border-radius:2px;margin-top:.5rem;overflow:hidden}.mindmap-progress-bar{height:100%;background:var(--node-color);border-radius:2px;transition:width .3s}.subtopic-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a!important}@media (max-width: 575px){.mindmap-node{width:130px;padding:.75rem}.vocab-hero-badge{width:140px;height:140px}.vocab-hero-img{width:118px;height:118px}}.pet-display-card{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 4px 20px #0000000f}.pet-stage-container{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 2rem 1.5rem;min-height:220px;background:linear-gradient(160deg,#fff8e1,#ffecb3 30%,#ffe0b2 70%,#fff3e0);border-radius:0 0 40px 40px;transition:background .5s ease}.pet-stage-container.happy{background:linear-gradient(160deg,#e8f5e9,#fff9c4 40%,#ffecb3,#fff8e1)}.pet-stage-container.sad{background:linear-gradient(160deg,#e3f2fd,#e8eaf6 40%,#f3e5f5,#ede7f6)}.pet-stage-container.sick{background:linear-gradient(160deg,#fbe9e7,#ffccbc 40%,#ffe0b2,#fff3e0)}.pet-image-wrapper{position:relative;z-index:2;animation:petFloat 3s ease-in-out infinite}.pet-character-img{max-width:160px;max-height:200px;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 8px 16px rgba(0,0,0,.1));transition:transform .3s ease}.pet-character-img:hover{transform:scale(1.08)}@media (max-width: 576px){.pet-character-img{max-width:120px;max-height:160px}}.pet-emoji-fallback{font-size:6rem;line-height:1}.pet-stage-container.sad .pet-image-wrapper{animation:petSadFloat 3s ease-in-out infinite}.pet-stage-container.sick .pet-image-wrapper{animation:none;opacity:.65}.pet-floating-decor{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden}.pet-effect-icon{position:absolute;top:12px;right:16px;font-size:1.6rem;animation:effectSparkle 2.5s ease-in-out infinite}.pet-hat-img{position:absolute;top:10px;left:50%;transform:translate(-50%);font-size:2.2rem;z-index:3}.pet-outfit-badge{font-size:1.5rem;margin-top:-6px;z-index:3}.pet-mood-indicator{position:absolute;bottom:14px;right:18px;font-size:1.4rem;background:#fff;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000001a}.pet-info-section{padding:1.25rem 1.5rem 1.5rem;text-align:center}.pet-name-area{margin-bottom:.5rem}.pet-name{font-size:1.5rem;font-weight:800;color:#333;margin:0}.pet-name-input{max-width:160px;border-radius:12px;border:2px solid var(--cowdi-primary, #FF9800);text-align:center;font-weight:600}.pet-badges{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-bottom:.4rem}.pet-badge{font-size:.72rem;font-weight:600;padding:3px 10px;border-radius:20px}.pet-badge-power{background:#263238;color:#ffd54f}.pet-evolution-label{font-size:.82rem;color:#888;margin-bottom:.75rem}.pet-speech-bubble{position:relative;max-width:300px;margin:0 auto;background:linear-gradient(135deg,#fff8e1,#fff3e0);border-radius:16px;padding:.75rem 1rem;font-size:.88rem;color:#5d4037;box-shadow:0 2px 10px #ff98001f}.pet-speech-arrow{position:absolute;top:-8px;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #FFF8E1}.pet-section-card{background:#fff;border-radius:20px;padding:1.25rem;box-shadow:0 2px 12px #0000000d}.pet-section-header{display:flex;align-items:center;gap:8px;font-size:1rem;font-weight:700;color:#333;margin-bottom:1rem}.pet-section-icon{font-size:1.2rem}.pet-evo-preview{display:flex;align-items:center;gap:10px;margin-bottom:.75rem}.pet-evo-next-img{max-width:48px;max-height:56px;width:auto;height:auto;object-fit:contain;border-radius:12px;background:#fff8e1;padding:4px}.pet-evo-next-emoji{font-size:2rem}.pet-evo-next-name{font-weight:600;font-size:.9rem;color:#555}.pet-progress-bar{height:10px;background:#f0f0f0;border-radius:10px;overflow:hidden;margin-bottom:4px}.pet-progress-fill{height:100%;background:linear-gradient(90deg,#ffb74d,#ff9800,#f57c00);border-radius:10px;transition:width .6s ease}.pet-progress-text{font-size:.78rem;color:#888;text-align:right}.pet-needs-grid{display:flex;flex-direction:column;gap:10px}.pet-need-item{display:flex;align-items:center;gap:10px}.pet-need-icon{font-size:1.4rem;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border-radius:10px;flex-shrink:0}.pet-need-info{flex:1;min-width:0}.pet-need-label{display:flex;justify-content:space-between;font-size:.82rem;font-weight:600;color:#555;margin-bottom:3px}.pet-need-critical{color:#ef5350!important;font-weight:700;animation:needPulse 1s ease-in-out infinite}.pet-need-bar{height:8px;background:#f0f0f0;border-radius:8px;overflow:hidden}.pet-need-fill{height:100%;border-radius:8px;transition:width .5s ease}.pet-skills-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.pet-skill-card{text-align:center;padding:12px 8px;border-radius:14px;background:color-mix(in srgb,var(--skill-color, #888) 8%,white);border:1.5px solid color-mix(in srgb,var(--skill-color, #888) 15%,transparent);transition:transform .2s ease}.pet-skill-card:hover{transform:translateY(-2px)}.pet-skill-icon{font-size:1.6rem;margin-bottom:2px}.pet-skill-level{font-size:.88rem;font-weight:700;color:var(--skill-color, #888)}.pet-skill-name{font-size:.7rem;color:#888;margin-bottom:4px}.pet-skill-bar{height:4px;background:#eee;border-radius:4px;overflow:hidden;margin:0 4px}.pet-skill-fill{height:100%;background:var(--skill-color, #888);border-radius:4px;transition:width .4s ease}.pet-skill-pts{font-size:.65rem;color:#aaa;margin-top:2px}.pet-badge-done{font-size:.7rem;font-weight:600;background:#c8e6c9;color:#2e7d32;padding:2px 8px;border-radius:12px;margin-left:auto}.pet-quest-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#fafafa;margin-bottom:8px;transition:background .2s ease}.pet-quest-item.done{background:#e8f5e9}.pet-quest-check{font-size:1.1rem;flex-shrink:0}.pet-quest-info{flex:1;min-width:0}.pet-quest-title{font-size:.85rem;font-weight:600;color:#333}.pet-quest-desc{font-size:.72rem;color:#999}.pet-quest-claim{font-size:.78rem;font-weight:700;padding:4px 12px;border-radius:20px;border:none;background:linear-gradient(135deg,#ffd54f,#ffc107);color:#5d4037;cursor:pointer;white-space:nowrap;transition:transform .15s ease}.pet-quest-claim:hover{transform:scale(1.05)}.pet-quest-reward{font-size:.78rem;color:#bbb;font-weight:600;white-space:nowrap}.pet-quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:1.5rem}.pet-action-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 8px;background:#fff;border-radius:16px;box-shadow:0 2px 10px #0000000d;text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease}.pet-action-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px #0000001a;color:inherit}.pet-action-icon{font-size:2rem;margin-bottom:4px}.pet-action-label{font-size:.82rem;font-weight:700;color:#333}.pet-action-hint{font-size:.68rem;color:#aaa}.cowdi-chat-img{width:36px;height:36px;object-fit:contain;pointer-events:none}.collection-pet-img{width:auto;height:auto;max-width:64px;max-height:64px;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.1))}.collection-modal-pet-img{width:auto;height:auto;max-width:120px;max-height:140px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.1))}.collection-evo-thumb{width:auto;height:auto;max-width:36px;max-height:36px;object-fit:contain}@keyframes petFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes petSadFloat{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(3px) rotate(-2deg)}75%{transform:translateY(3px) rotate(2deg)}}@keyframes effectSparkle{0%,to{transform:scale(1) rotate(0);opacity:.8}50%{transform:scale(1.15) rotate(10deg);opacity:1}}@keyframes needPulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes wordFall{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.border-cowdi{border-color:var(--cowdi-primary)!important}.modal.d-block{z-index:1060}.list-group-item{transition:background-color .15s ease}@media (max-width: 576px){.pet-character-img{width:120px;height:120px}.pet-emoji-fallback{font-size:4.5rem}.pet-stage-container{padding:2rem 1.5rem 1.2rem;min-height:180px}.pet-quick-actions{grid-template-columns:repeat(2,1fr);gap:8px}.pet-skills-grid{grid-template-columns:repeat(2,1fr)}.pet-speech-bubble{max-width:240px}}.battle-arena{position:relative;width:100%;max-width:640px;margin:0 auto;min-height:320px;background:linear-gradient(180deg,#87ceeb,#87ceeb 45%,#7cbb6b 45%,#5da34a);border-radius:16px;overflow:hidden;box-shadow:0 4px 20px #0000001f}.battle-ground-line{position:absolute;width:100%;top:45%;border-top:2px dashed rgba(255,255,255,.3)}.battle-pet{position:absolute;transition:transform .3s ease}.battle-pet img,.battle-pet .pet-emoji-lg{max-width:120px;max-height:120px;object-fit:contain;filter:drop-shadow(2px 4px 6px rgba(0,0,0,.3))}.pet-emoji-lg{font-size:5rem;line-height:1}.battle-pet-mine{bottom:6%;left:6%}.battle-pet-opponent{top:5%;right:6%}.battle-pet-opponent img{transform:scaleX(-1)}.battle-hud{position:absolute;background:#ffffffeb;border-radius:10px;padding:8px 14px;box-shadow:0 2px 8px #0000001a;min-width:170px;z-index:5}.battle-hud-mine{bottom:4%;right:4%}.battle-hud-opponent{top:4%;left:4%}.hp-bar{height:10px;background:#ddd;border-radius:5px;overflow:hidden;border:1px solid #ccc}.hp-bar-fill{height:100%;border-radius:5px;transition:width .6s ease,background-color .4s}@keyframes battleAttackRight{0%{transform:translate(0)}30%{transform:translate(60px,-30px) scale(1.1)}50%{transform:translate(60px,-30px) scale(1.1)}to{transform:translate(0)}}@keyframes battleAttackLeft{0%{transform:translate(0)}30%{transform:translate(-60px,30px) scale(1.1)}50%{transform:translate(-60px,30px) scale(1.1)}to{transform:translate(0)}}.anim-attack-mine{animation:battleAttackRight .6s ease-in-out}.anim-attack-opponent{animation:battleAttackLeft .6s ease-in-out}@keyframes battleDamage{0%,to{transform:translate(0);filter:brightness(1)}15%{transform:translate(-6px);filter:brightness(2) saturate(0)}30%{transform:translate(6px);filter:brightness(1)}45%{transform:translate(-4px);filter:brightness(2) saturate(0)}60%{transform:translate(4px);filter:brightness(1)}}.anim-damage{animation:battleDamage .5s ease-in-out}@keyframes battleFaint{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translateY(30px) rotate(15deg);opacity:.2}}.anim-faint{animation:battleFaint .8s ease-in forwards}.battle-effect{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:10}@keyframes skillFire{0%{opacity:0;transform:translate(-100%) scale(.5)}30%{opacity:1;transform:translate(10%) scale(1)}70%{opacity:.8;transform:translate(50%) scale(1.2)}to{opacity:0;transform:translate(100%) scale(.8)}}.effect-fire{background:radial-gradient(ellipse at center,rgba(255,100,0,.6) 0%,rgba(255,50,0,.3) 40%,transparent 70%);animation:skillFire .7s ease-out forwards}@keyframes skillWater{0%{opacity:0;transform:translate(-80%)}40%{opacity:.8}to{opacity:0;transform:translate(80%)}}.effect-water{background:linear-gradient(90deg,transparent 0%,rgba(0,150,255,.4) 30%,rgba(0,100,255,.5) 50%,rgba(0,150,255,.3) 70%,transparent 100%);animation:skillWater .7s ease-out forwards}@keyframes skillNature{0%{opacity:0;transform:translate(-50%,50%) rotate(0)}50%{opacity:1;transform:translate(20%,-20%) rotate(180deg)}to{opacity:0;transform:translate(80%,-60%) rotate(360deg)}}.effect-nature{background:radial-gradient(ellipse at 30% 70%,rgba(0,200,80,.5) 0%,rgba(100,255,0,.2) 50%,transparent 70%);animation:skillNature .8s ease-out forwards}@keyframes skillCosmic{0%{opacity:0;transform:scale(.3) rotate(0)}50%{opacity:1;transform:scale(1.3) rotate(180deg)}to{opacity:0;transform:scale(1.5) rotate(360deg)}}.effect-cosmic{background:radial-gradient(circle at 60% 40%,rgba(150,0,255,.5) 0%,rgba(200,100,255,.3) 40%,transparent 65%);animation:skillCosmic .7s ease-out forwards}@keyframes skillEarth{0%{opacity:0;transform:translateY(100%)}40%{opacity:1;transform:translateY(-10%)}to{opacity:0;transform:translateY(-30%)}}.effect-earth{background:radial-gradient(ellipse at 50% 80%,rgba(139,90,43,.5) 0%,rgba(180,130,60,.3) 50%,transparent 70%);animation:skillEarth .6s ease-out forwards}@keyframes skillNeutral{0%{opacity:0}30%{opacity:.6}to{opacity:0}}.effect-neutral{background:radial-gradient(circle at center,rgba(255,255,255,.7) 0%,transparent 60%);animation:skillNeutral .4s ease-out forwards}@keyframes criticalFlash{0%,to{opacity:0}30%{opacity:1}}.effect-critical{background:#ffd70066;animation:criticalFlash .4s ease-out;z-index:20}@keyframes damagePopup{0%{opacity:0;transform:translateY(0) scale(.5)}30%{opacity:1;transform:translateY(-20px) scale(1.2)}to{opacity:0;transform:translateY(-50px) scale(.8)}}.damage-number{position:absolute;font-weight:900;font-size:1.5rem;text-shadow:0 2px 4px rgba(0,0,0,.3);animation:damagePopup .8s ease-out forwards;z-index:15;pointer-events:none}.damage-number-opponent{top:20%;right:20%;color:#f44}.damage-number-mine{bottom:25%;left:20%;color:#f44}@keyframes comboPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.combo-badge{animation:comboPulse .6s ease-in-out;z-index:15}:root{--tex-paper: linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);--tex-paper-size: 22px 22px;--tex-leather: radial-gradient(ellipse at 20% 0%, rgba(255,255,255,.1), transparent 50%), radial-gradient(ellipse at 80% 100%, rgba(0,0,0,.25), transparent 55%), repeating-linear-gradient(35deg, rgba(0,0,0,.05) 0 2px, transparent 2px 7px), linear-gradient(180deg, var(--leather-light) 0%, var(--leather) 40%, var(--leather-dark) 100%);--tex-sky: radial-gradient(ellipse at 18% 22%, rgba(255,255,255,.75) 0 6%, transparent 14%), radial-gradient(ellipse at 28% 26%, rgba(255,255,255,.85) 0 8%, transparent 16%), radial-gradient(ellipse at 78% 14%, rgba(255,255,255,.8) 0 7%, transparent 15%), radial-gradient(ellipse at 86% 18%, rgba(255,255,255,.7) 0 5%, transparent 12%), linear-gradient(180deg, var(--sky-top) 0%, var(--sky-bottom) 70%, var(--sky-bottom) 100%);--shadow-paper: 0 1px 0 rgba(255,255,255,.8) inset, 0 2px 6px rgba(59,74,92,.1);--shadow-lift: 0 10px 24px rgba(40,60,90,.18);--radius-card: 16px;--bs-body-bg: var(--paper);--bs-body-color: var(--ink);--bs-border-color: var(--paper-line);--bs-link-color: var(--blue-dark);--bs-link-hover-color: var(--blue);--bs-secondary-color: var(--ink-muted);--bs-heading-color: var(--ink)}html{background:var(--sky-bottom)}body{color:var(--ink);background:var(--tex-sky);background-attachment:fixed;min-height:100vh;position:relative}body:before{content:"";position:fixed;left:0;right:0;bottom:0;height:120px;background:radial-gradient(ellipse at 10% 100%,var(--grass-light) 0 30%,transparent 31%),radial-gradient(ellipse at 45% 100%,var(--grass) 0 42%,transparent 43%),radial-gradient(ellipse at 80% 100%,var(--grass-light) 0 34%,transparent 35%),linear-gradient(180deg,transparent 0 30%,var(--grass) 30%,var(--grass-dark) 100%);z-index:0;pointer-events:none}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.card-title,.modal-title,.font-hand{font-family:var(--font-hand);font-weight:400;letter-spacing:.01em;color:var(--ink)}h1,.h1{font-size:2.4rem}h2,.h2{font-size:2rem}h3,.h3{font-size:1.65rem}h4,.h4{font-size:1.4rem}h5,.h5{font-size:1.25rem}.text-muted{color:var(--ink-muted)!important}.ic{display:inline-block;vertical-align:-.2em;flex-shrink:0}.btn .ic,.badge .ic{vertical-align:-.25em}.emoji-sticker{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.emoji-sticker.is-sticker{filter:drop-shadow(1px 0 0 #3A3040) drop-shadow(-1px 0 0 #3A3040) drop-shadow(0 1px 0 #3A3040) drop-shadow(0 -1px 0 #3A3040)}.emoji-native{display:inline-block;vertical-align:-.15em}.emoji-big .emoji-sticker.is-sticker{filter:drop-shadow(2px 0 0 #3A3040) drop-shadow(-2px 0 0 #3A3040) drop-shadow(0 2px 0 #3A3040) drop-shadow(0 -2px 0 #3A3040) drop-shadow(0 4px 0 rgba(58,48,64,.18))}.emoji-big .ic{filter:drop-shadow(0 4px 0 rgba(58,48,64,.18))}.emoji-row{display:inline-flex;align-items:center;gap:.35em}.book-shell{min-height:100vh;padding:18px 18px 60px;display:flex;justify-content:center;position:relative;z-index:1}.book{position:relative;width:100%;min-width:0;max-width:1440px;display:flex;border-radius:26px;background:var(--tex-leather);box-shadow:0 30px 60px #1e3c5a59,0 0 0 2px #ffffff14 inset;padding:16px;gap:0}.book-corner{position:absolute;width:46px;height:46px;background:linear-gradient(135deg,#F3D890,var(--brass) 45%,var(--brass-dark));box-shadow:0 2px 4px #00000059,inset 0 0 0 2px #ffffff40;z-index:5;pointer-events:none}.book-corner.tl{top:-2px;left:-2px;border-radius:26px 0 60%}.book-corner.tr{top:-2px;right:-2px;border-radius:0 26px 0 60%}.book-corner.bl{bottom:-2px;left:-2px;border-radius:0 60% 0 26px}.book-corner.br{bottom:-2px;right:-2px;border-radius:60% 0 26px}.book-side{width:268px;flex-shrink:0;display:flex;flex-direction:column;gap:14px;padding:18px 14px 18px 16px;position:relative;z-index:2;background:var(--paper);background-image:var(--tex-paper);background-size:var(--tex-paper-size);border-radius:14px 4px 4px 14px;box-shadow:inset -22px 0 30px -24px #283c5a59,0 3px 8px #00000040}.book-rings{width:34px;flex-shrink:0;position:relative;z-index:4;display:flex;flex-direction:column;justify-content:space-evenly;align-items:center;padding:40px 0}.book-ring{width:44px;height:18px;border-radius:12px;border:5px solid #C9CED6;border-bottom-color:#8e96a3;border-right-color:#a7aeb9;background:transparent;box-shadow:0 2px 3px #00000059,inset 0 1px #ffffffb3;position:relative}.book-ring:before,.book-ring:after{content:"";position:absolute;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--leather-dark);box-shadow:inset 0 1px 2px #000c}.book-ring:before{left:-12px}.book-ring:after{right:-12px}.book-page{position:relative;flex:1;min-width:0;background:var(--paper);background-image:var(--tex-paper);background-size:var(--tex-paper-size);border-radius:4px 14px 14px 4px;box-shadow:inset 22px 0 30px -24px #283c5a59,0 3px 8px #00000040;padding:22px 34px 40px 30px;display:flex;flex-direction:column}.book-page:before,.book-page:after{content:"";position:absolute;top:6px;bottom:6px;right:-5px;width:6px;background:var(--paper-3);border-radius:0 6px 6px 0;box-shadow:1px 0 #0000001f;z-index:-1}.book-page:after{right:-9px;top:12px;bottom:12px;opacity:.85}.book-page-curl{position:absolute;right:0;bottom:0;width:46px;height:46px;background:linear-gradient(225deg,transparent 50%,#eef4fa 50%,#cfdbe8 100%);border-radius:0 0 14px;box-shadow:-3px -3px 6px #00000014;pointer-events:none}.book-ribbons{position:absolute;right:-30px;top:34%;display:flex;flex-direction:column;gap:14px;z-index:3}.book-ribbon{width:46px;height:32px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.05rem;text-decoration:none;border-radius:0 8px 8px 0;box-shadow:2px 2px 4px #00000040;position:relative;transition:transform .15s}.book-ribbon:after{content:"";position:absolute;right:-8px;top:0;border-top:16px solid transparent;border-bottom:16px solid transparent;border-left:8px solid currentColor;opacity:0}.book-ribbon:hover{transform:translate(6px);color:#fff}.book-ribbon.teal{background:var(--teal)}.book-ribbon.pink{background:var(--pink)}.book-ribbon.yellow{background:var(--yellow);color:#6b5310}.book-ribbon.yellow:hover{color:#6b5310}.book-page-top{display:flex;justify-content:flex-end;align-items:flex-start;gap:12px;margin-bottom:6px;min-height:0}.book-content{flex:1;min-width:0}.book-plaque{margin:0 4px;padding:12px 12px 10px;background:linear-gradient(180deg,#F6E1A2,var(--brass) 55%,var(--brass-dark));border-radius:14px;box-shadow:0 0 0 2px var(--brass-dark) inset,0 0 0 4px #f6e1a2 inset,0 4px 10px #00000040;text-align:center;color:#4a3410;position:relative;transform:rotate(-1deg)}.book-plaque small{display:block;font-family:var(--font-hand);font-size:.85rem;opacity:.85;letter-spacing:.04em}.book-plaque strong{display:block;font-family:var(--font-hand);font-size:1.7rem;line-height:1.05;font-weight:400;text-shadow:0 1px 0 rgba(255,255,255,.5)}.book-plaque em{display:block;font-family:var(--font-hand);font-style:normal;font-size:.9rem;opacity:.9}.book-plaque img{width:42px;height:42px;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}.book-tabs{display:flex;flex-direction:column;gap:6px;padding-right:0;list-style:none;margin:0 0 8px}.book-tab{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:7px 12px 7px 10px;border-radius:14px;background:#ffffffd9;color:var(--ink-soft);text-decoration:none;font-family:var(--font-hand);font-size:.98rem;line-height:1.05;border:2px solid var(--paper-line);box-shadow:0 2px 0 var(--paper-line);transition:transform .15s ease,background .15s,color .15s,box-shadow .15s;position:relative;cursor:pointer;white-space:normal;font-weight:400}.book-tab:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--tab-color, var(--leaf));flex-shrink:0;box-shadow:0 0 0 3px color-mix(in srgb,var(--tab-color, var(--leaf)) 25%,transparent)}.book-tab-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}.book-tab-icon img{width:22px;height:22px;object-fit:contain}.book-tab:hover{background:#fff;color:var(--ink);transform:translate(4px);border-color:var(--tab-color, var(--leaf))}.book-tab.active{background:var(--tab-color, var(--leaf));color:#fff;border-color:var(--tab-color, var(--leaf));box-shadow:0 3px color-mix(in srgb,var(--tab-color, var(--leaf)) 60%,#000);transform:translate(6px);z-index:2}.book-tab.active:before{background:#fff;box-shadow:0 0 0 3px #ffffff59}.book-tab-group{font-family:var(--font-hand);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin:6px 0 4px 6px}.cowdi-invite-fab{position:fixed;right:14px;bottom:84px;width:52px;height:52px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--yellow),var(--orange));color:#fff;font-size:1.6rem;box-shadow:0 0 0 3px #fff,0 6px 16px #0000004d;z-index:1050;display:flex;align-items:center;justify-content:center;transition:transform .15s ease}.cowdi-invite-fab:active{transform:scale(.92)}.book-mascot{margin:auto 0 0;padding-top:8px;text-align:center;position:relative}.book-mascot img{width:120px;height:120px;object-fit:contain;filter:drop-shadow(0 6px 8px rgba(0,0,0,.25));animation:bookFloat 4s ease-in-out infinite}@keyframes bookFloat{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(1deg)}}.book-note{background:#fff7c2;color:#5a4a1a;padding:12px 12px 14px;border-radius:3px;font-family:var(--font-hand);font-size:.98rem;line-height:1.3;transform:rotate(-2deg);box-shadow:0 6px 12px #0000002e;position:relative;margin-top:-6px;text-align:left}.book-note:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%) rotate(-3deg);width:60px;height:16px;background:#ffffff8c;border:1px solid rgba(0,0,0,.06)}.book-note b{display:block;font-size:1.05rem;margin-bottom:2px}.book-hud{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.book-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 8px;background:#fff;border:2px solid var(--paper-line);border-radius:999px;box-shadow:0 2px 0 var(--paper-line),0 4px 10px #283c5a1a;font-family:var(--font-hand);font-size:1.05rem;color:var(--ink);text-decoration:none;white-space:nowrap;line-height:1}.book-pill:hover{color:var(--ink);border-color:var(--blue)}.book-pill-ico{font-size:1.15rem;line-height:1}.book-pill .ic{margin:-2px 0}.book-pill img.book-pill-pet{width:28px;height:28px;object-fit:contain}.book-pill .book-bar{width:90px;height:10px;border-radius:6px}.book-pill .book-bar>i{background:linear-gradient(90deg,var(--leaf),var(--blue))}.book-pill-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 0 0 1px var(--paper-line)}.book-polaroid-btn{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.book-polaroid-btn:hover{color:var(--blue-dark)}.book-login-btn{background:var(--leaf);color:#fff;border:none;border-radius:999px;padding:6px 14px;font-family:var(--font-hand);font-size:1rem;box-shadow:0 2px 0 var(--leaf-dark)}.book-login-btn:hover{background:var(--leaf-dark);color:#fff}.card{background:var(--paper-2);border:2px solid var(--paper-line);border-radius:var(--radius-card);box-shadow:0 3px 0 var(--paper-line),var(--shadow-paper);color:var(--ink)}.card-header,.card-footer{background:var(--paper-3);border-color:var(--paper-line)}.card-hover:hover{transform:translateY(-3px) rotate(-.25deg);box-shadow:var(--shadow-lift)!important}.bg-white{background-color:var(--paper-2)!important}.bg-light{background-color:var(--paper-3)!important}.border{border-color:var(--paper-line)!important}.shadow-sm{box-shadow:var(--shadow-paper)!important}.shadow{box-shadow:var(--shadow-lift)!important}.list-group-item{background:var(--paper-2);border-color:var(--paper-line);color:var(--ink)}.list-group-item.active{background:var(--leaf);border-color:var(--leaf-dark)}.table{--bs-table-bg: transparent;--bs-table-striped-bg: rgba(0,0,0,.025);color:var(--ink)}.table>:not(caption)>*>*{border-bottom-color:var(--paper-line)}hr{border-top:1.5px dashed var(--paper-line);opacity:1}.book-card{background:#ffffffeb;border:2px solid var(--paper-line);border-radius:var(--radius-card);box-shadow:0 3px 0 var(--paper-line),var(--shadow-paper);padding:14px 16px 16px;position:relative}.book-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.book-card-title{display:flex;align-items:center;gap:8px;font-family:var(--font-hand);font-size:1.35rem;color:var(--ink);line-height:1}.book-card-title:before{content:"★";font-size:1rem;color:var(--orange)}.book-card-link{font-family:var(--font-hand);font-size:.95rem;color:var(--ink-muted);text-decoration:none;white-space:nowrap}.book-card-link:hover{color:var(--blue-dark);text-decoration:underline}.book-slip{background:var(--paper-3);border:1px solid var(--paper-line);border-radius:10px;padding:8px 12px}.book-bar{height:9px;border-radius:6px;background:#e3edf5;box-shadow:inset 0 1px 2px #0000001a;overflow:hidden}.book-bar>i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--leaf-dark),var(--leaf));transition:width .5s ease}.book-bar.gold>i{background:linear-gradient(90deg,var(--orange-dark),var(--yellow))}.book-bar.clay>i{background:linear-gradient(90deg,var(--red-dark),var(--orange))}.book-bar.sky>i{background:linear-gradient(90deg,var(--blue-dark),var(--blue))}.btn{border-radius:999px;font-family:var(--font-hand);font-size:1.05rem;letter-spacing:.01em}.btn-sm{font-size:.95rem;padding:.3rem .85rem}.btn-lg{font-size:1.25rem}.btn-cowdi-primary,.btn-primary,.btn-success{background:var(--leaf);border-color:var(--leaf-dark);color:#fff;box-shadow:0 2px 0 var(--leaf-dark),0 3px 6px #00000026}.btn-cowdi-primary:hover,.btn-cowdi-primary:focus,.btn-primary:hover,.btn-primary:focus,.btn-success:hover,.btn-success:focus{background:var(--leaf-dark);border-color:var(--leaf-dark);color:#fff}.btn-outline-cowdi,.btn-outline-primary,.btn-outline-secondary,.btn-outline-success{border:2px solid var(--paper-line);color:var(--ink-soft);background:#fff;box-shadow:0 2px 0 var(--paper-line)}.btn-outline-cowdi:hover,.btn-outline-primary:hover,.btn-outline-secondary:hover,.btn-outline-success:hover{background:var(--leaf-light);color:var(--leaf-dark);border-color:var(--leaf-dark);border-style:solid}.btn-warning{background:var(--orange);border-color:var(--orange-dark);color:#fff;box-shadow:0 2px 0 var(--orange-dark)}.btn-danger{background:var(--red);border-color:var(--red-dark);color:#fff;box-shadow:0 2px 0 var(--red-dark)}.btn-info{background:var(--blue);border-color:var(--blue-dark);color:#fff;box-shadow:0 2px 0 var(--blue-dark)}.btn-light{background:var(--paper-3);border-color:var(--paper-line);color:var(--ink)}.btn-light:hover{background:var(--paper-2);color:var(--ink)}.btn-secondary{background:var(--ink-muted);border-color:var(--ink-soft);color:#fff}.badge{font-family:var(--font-hand);font-weight:400;border-radius:999px;letter-spacing:.02em}.badge.bg-primary{background-color:var(--blue)!important}.badge.bg-success{background-color:var(--leaf)!important}.badge.bg-warning{background-color:var(--yellow)!important;color:#6b5310!important}.badge.bg-danger{background-color:var(--red)!important}.badge.bg-info{background-color:var(--blue)!important}.badge.bg-secondary{background-color:var(--ink-muted)!important}.progress{background:#e3edf5;border-radius:6px;box-shadow:inset 0 1px 2px #0000001a}.progress-bar{background-color:var(--leaf)}.progress-bar-cowdi{background:linear-gradient(90deg,var(--leaf-dark),var(--leaf))}.form-control,.form-select{background:#fff;border:2px solid var(--paper-line);border-radius:12px;color:var(--ink)}.form-control:focus,.form-select:focus{border-color:var(--blue);box-shadow:0 0 0 .2rem #4ea8e833;background:#fff}.alert{border-radius:var(--radius-card);border:2px solid var(--paper-line);background:var(--paper-2);color:var(--ink)}.alert-success{background:var(--leaf-pale);border-color:var(--leaf-light);color:var(--leaf-dark)}.alert-warning{background:#fff7d6;border-color:#f2dd8a;color:#6b5310}.alert-danger,.alert-info{background:var(--paper-2)}.modal-content{background:var(--paper);background-image:var(--tex-paper);background-size:var(--tex-paper-size);border:3px solid var(--leather);border-radius:18px;color:var(--ink)}.modal-header,.modal-footer{border-color:var(--paper-line)}.dropdown-menu,.cowdi-dropdown-menu{background:var(--paper-2);border:1.5px solid var(--paper-line)!important;box-shadow:var(--shadow-lift)!important}.cowdi-dropdown-menu .dropdown-item{color:var(--ink);font-family:var(--font-hand)}.cowdi-dropdown-menu .dropdown-item:hover,.cowdi-dropdown-menu .dropdown-item.active{background:var(--leaf-pale);color:var(--leaf-dark)}.cowdi-dropdown-menu .dropdown-divider{border-color:var(--paper-line)}.nav-tabs{border-bottom-color:var(--paper-line)}.nav-tabs .nav-link{color:var(--ink-soft);font-family:var(--font-hand);border-radius:10px 10px 0 0}.nav-tabs .nav-link.active{background:var(--paper-2);border-color:var(--paper-line) var(--paper-line) var(--paper-2);color:var(--blue-dark)}.nav-pills .nav-link{color:var(--ink-soft)}.nav-pills .nav-link.active{background:var(--leaf)}.spinner-border.text-cowdi-primary{color:var(--leaf)!important}.cowdi-chat-btn{background:radial-gradient(circle at 30% 30%,var(--leaf),var(--leaf-dark));box-shadow:0 0 0 3px #fff,0 6px 14px #0000004d}.cowdi-chat-bubble{background:#fff7c2;border-left:none;border:1px solid #e6d78f;color:#5a4a1a;font-family:var(--font-hand);font-size:1.05rem;transform:rotate(-1deg)}.toast-container-fixed .toast,.toast-container-fixed .alert{font-family:var(--font-hand)}.book-mobile-top,.book-bottom-nav{display:none}@media (max-width: 991.98px){html,body{overflow-x:hidden}body{background-attachment:scroll}body:before{display:none}.book-shell{padding:0;min-height:100vh}.book{border-radius:0;padding:0 6px;box-shadow:none;background:var(--tex-leather);flex-direction:column;max-width:none}.book-corner,.book-rings,.book-ribbons,.book-side{display:none}.book-page{border-radius:0;margin:0;padding:70px 14px calc(96px + env(safe-area-inset-bottom,0px));min-height:100vh;box-shadow:none}.book-page:before,.book-page:after,.book-page-curl{display:none}.book-page-top{display:none}.book-mobile-top{position:fixed;top:0;left:0;right:0;z-index:1040;display:flex;align-items:center;gap:6px;padding:8px 10px;background:linear-gradient(180deg,var(--sky-top),var(--sky-bottom));border-bottom:3px solid var(--leather);box-shadow:0 4px 12px #0003;color:var(--ink)}.book-mobile-brand{display:flex;align-items:center;gap:6px;text-decoration:none;color:var(--ink);font-family:var(--font-hand);font-size:1.15rem;line-height:1;margin-right:auto;white-space:nowrap}.book-mobile-brand img{width:30px;height:30px;object-fit:contain}.book-mobile-stats{display:flex;align-items:center;gap:5px;flex-wrap:nowrap;min-width:0}.book-mobile-stats .book-pill{font-size:.92rem;padding:3px 9px 3px 7px;box-shadow:0 2px 0 var(--paper-line)}.book-mobile-stats .book-pill .book-bar{width:44px;height:8px}.book-mobile-stats .book-pill img.book-pill-pet{width:22px;height:22px}@media (max-width: 420px){.book-mobile-brand span{display:none}.book-mobile-stats .book-pill .book-bar{width:32px}}.book-mobile-stats .book-sound{background:#fff;border:2px solid var(--paper-line);border-radius:50%;width:30px;height:30px;padding:0;line-height:1;color:var(--ink);display:flex;align-items:center;justify-content:center}.book-mobile-stats .book-sound .ic{vertical-align:0}.book-mobile-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 0 0 1px var(--paper-line)}.book-bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:1040;display:flex;justify-content:space-around;align-items:flex-end;gap:4px;padding:8px 6px calc(8px + env(safe-area-inset-bottom,0px));background:radial-gradient(ellipse at 15% 100%,var(--grass-light) 0 25%,transparent 26%),radial-gradient(ellipse at 70% 100%,var(--grass-light) 0 30%,transparent 31%),linear-gradient(180deg,var(--grass) 0%,var(--grass-dark) 100%);border-top:3px solid var(--grass-light);box-shadow:0 -4px 14px #0003}.book-bottom-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px 5px;border-radius:16px;background:#fff;color:var(--ink-soft);border:2px solid rgba(255,255,255,.6);text-decoration:none;font-family:var(--font-hand);font-size:.8rem;line-height:1;min-height:54px;cursor:pointer;transition:transform .15s,background .15s;-webkit-tap-highlight-color:transparent;box-shadow:0 3px #0000002e}.book-bottom-tab.active,.book-bottom-tab.open{background:var(--yellow);color:#5a4a1a;transform:translateY(-4px);box-shadow:0 6px #0000002e}.book-bottom-tab-icon{font-size:1.5rem;line-height:1;display:flex;align-items:center;justify-content:center;height:30px}.book-bottom-tab-icon img{width:26px;height:26px;object-fit:contain}.book-bottom-tab-icon .rounded-circle{width:26px;height:26px}.bottom-popup-menu{background:var(--paper);background-image:var(--tex-paper);background-size:var(--tex-paper-size);border:2px solid var(--paper-line);border-radius:16px;box-shadow:0 -10px 28px #00000040;bottom:calc(100% + 6px)}.bottom-popup-item{background:#fff;color:var(--ink);font-family:var(--font-hand);font-weight:400;border:2px solid var(--paper-line);border-radius:12px}.bottom-popup-item.active{background:var(--leaf);border-color:var(--leaf-dark);color:#fff}.bottom-popup-item:not(.active):hover{background:var(--leaf-pale);color:var(--leaf-dark)}.cowdi-chat-btn{bottom:6.5rem!important}.cowdi-chat-bubble{bottom:10rem!important}}@media (min-width: 992px) and (max-width: 1199.98px){.book-side{width:236px}.book-page{padding:18px 24px 36px}}.lesson-steps{background:#ffffffeb;border:2px solid var(--paper-line);border-radius:var(--radius-card);box-shadow:0 3px 0 var(--paper-line);padding:12px 14px}.lesson-steps-bar{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;font-family:var(--font-hand);color:var(--ink-soft);margin-bottom:10px}.lesson-steps-bar .book-bar{height:12px}.lesson-steps-bar .book-bar>i{background:linear-gradient(90deg,var(--leaf),var(--blue))}.lesson-steps-list{list-style:none;margin:0;padding:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin;position:relative}.lesson-step-item{flex:1 0 auto;min-width:84px}.lesson-step{width:100%;display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;padding:4px 2px;color:var(--ink-soft);font-family:var(--font-hand);font-size:.9rem;line-height:1.05;cursor:pointer;position:relative}.lesson-step-item+.lesson-step-item .lesson-step:before{content:"";position:absolute;top:24px;right:50%;width:100%;height:4px;background:var(--paper-line);z-index:0}.lesson-step-item+.lesson-step-item .lesson-step.done:before,.lesson-step-item+.lesson-step-item .lesson-step.current:before{background:var(--leaf)}.lesson-step-dot{width:46px;height:46px;border-radius:50%;background:#fff;border:3px solid var(--paper-line);display:flex;align-items:center;justify-content:center;box-shadow:0 3px 0 var(--paper-line);position:relative;z-index:1;transition:transform .15s}.lesson-step.done .lesson-step-dot{background:var(--leaf-pale);border-color:var(--leaf);box-shadow:0 3px 0 var(--leaf-dark)}.lesson-step.current .lesson-step-dot{background:var(--yellow);border-color:var(--orange);box-shadow:0 3px 0 var(--orange-dark),0 0 0 5px #f6d36559;transform:scale(1.1)}.lesson-step.current{color:var(--ink)}.lesson-step.locked{cursor:not-allowed;opacity:.55}.lesson-step.locked .lesson-step-dot{background:#eef2f6}.lesson-step:not(.locked):hover .lesson-step-dot{transform:translateY(-2px) scale(1.05)}.lesson-step-label{white-space:nowrap}.lesson-step-footer{position:sticky;bottom:12px;margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fffffff5;border:2px solid var(--paper-line);border-radius:var(--radius-card);box-shadow:0 3px 0 var(--paper-line),0 10px 24px #283c5a2e;padding:10px 16px;z-index:6}.lesson-step-footer-txt{display:flex;flex-direction:column;line-height:1.1;font-family:var(--font-hand)}.lesson-step-footer-txt b{font-weight:400;font-size:1.2rem}@media (max-width: 991.98px){.lesson-step-footer{position:fixed;left:10px;right:10px;bottom:calc(92px + env(safe-area-inset-bottom,0px));margin-top:0;padding:8px 12px}.lesson-step-footer-txt{display:none}.lesson-step-footer .btn{width:100%;justify-content:center}.lesson-step-footer+*,.lesson-steps{scroll-margin-top:70px}.book-page:has(.lesson-step-footer){padding-bottom:calc(180px + env(safe-area-inset-bottom,0px))}body:has(.lesson-step-footer) .cowdi-chat-btn{bottom:10.5rem!important}}@media (max-width: 575.98px){.lesson-step-item{min-width:70px}.lesson-step-label{font-size:.8rem}.lesson-step-dot{width:40px;height:40px}.lesson-step-item+.lesson-step-item .lesson-step:before{top:21px}}.journal-header{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:18px;align-items:center;margin-bottom:18px}.journal-title{font-family:var(--font-hand);font-size:2.9rem;line-height:1;color:var(--ink);margin:0 0 4px;display:flex;align-items:center;gap:10px}.journal-title:before{content:"";width:30px;height:30px;flex-shrink:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23F6D365' stroke='%233A3040' stroke-width='2.2' stroke-linejoin='round' d='M16 3l3.9 8 8.6 1.2-6.3 6.1 1.6 8.7L16 22.8 8.2 27l1.6-8.7L3.5 12.2l8.6-1.2z'/%3E%3C/svg%3E") center/contain no-repeat}.journal-sub{font-family:var(--font-hand);font-size:1.15rem;color:var(--ink-soft);margin:0 0 12px}.journal-banner{border-radius:12px;overflow:hidden;border:2px solid #fff;box-shadow:0 6px 14px #281a0e38;transform:rotate(.6deg);aspect-ratio:16 / 7;background:var(--sky)}.journal-banner svg{display:block;width:100%;height:100%}.journal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.journal-grid>.span-2{grid-column:span 2}.journal-grid>.span-3{grid-column:1 / -1}.journal-overview{display:grid;grid-template-columns:1.1fr 1fr;gap:12px}.journal-kv{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start}.journal-kv>.book-slip:first-child{grid-column:1 / -1}.journal-kv small{font-size:.78rem;color:var(--ink-muted)}.journal-stars{color:var(--orange);font-size:1.1rem;letter-spacing:-1px}.journal-stars .dim{color:#d8e2ec}.journal-level-title{font-family:var(--font-hand);font-size:1.1rem;line-height:1.1}.journal-cal{font-size:.78rem}.journal-cal-head{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-hand);font-size:1rem;margin-bottom:4px}.journal-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.journal-cal-grid .dow{color:var(--ink-muted);font-size:.68rem;font-weight:700}.journal-cal-grid .day{height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:.74rem;color:var(--ink-soft)}.journal-cal-grid .day.on{background:var(--leaf-light);color:var(--leaf-dark);font-weight:800}.journal-cal-grid .day.today{box-shadow:0 0 0 2px var(--leaf)}.journal-cal-grid .day.on.today{background:var(--leaf);color:#fff}.journal-task{display:grid;grid-template-columns:30px 1fr auto;gap:8px 10px;align-items:center;padding:8px 0;border-bottom:1.5px dashed var(--paper-line)}.journal-task:last-child{border-bottom:none}.journal-task-ico{display:flex;align-items:center;justify-content:center;font-size:1.3rem}.journal-task-name{font-family:var(--font-hand);font-size:1.05rem;line-height:1.1}.journal-task-num{font-family:var(--font-hand);font-size:.95rem;color:var(--ink-muted)}.journal-task .book-bar{grid-column:2 / -1;margin-top:-2px}.journal-task.done .journal-task-name{text-decoration:line-through;color:var(--ink-muted)}.journal-pet{background:#fff;border:1px solid var(--paper-line);padding:10px 10px 8px;box-shadow:0 6px 14px #283c5a2e;transform:rotate(-1.2deg);text-decoration:none;color:var(--ink);display:block}.journal-pet-frame{aspect-ratio:4 / 3;border-radius:6px;background:radial-gradient(ellipse at 50% 100%,rgba(125,190,75,.45),transparent 60%),linear-gradient(180deg,var(--sky-top) 0%,var(--sky-bottom) 60%,var(--grass-light) 100%);display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.journal-pet-frame img{width:62%;max-height:92%;object-fit:contain;filter:drop-shadow(0 6px 6px rgba(0,0,0,.25));animation:bookFloat 4s ease-in-out infinite}.journal-pet-cap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0 8px;font-family:var(--font-hand);margin-top:8px;font-size:1.05rem}.journal-pet-cap small{font-size:.85rem;color:var(--ink-muted)}.journal-needs{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;margin-top:10px}.journal-need{font-size:.7rem;color:var(--ink-soft);display:flex;flex-direction:column;gap:3px}.journal-need>span{display:flex;justify-content:space-between;white-space:nowrap}.journal-need .book-bar{height:6px}.journal-skills{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.journal-skill{text-align:center;background:var(--paper-3);border:1px solid var(--paper-line);border-radius:10px;padding:8px 4px 6px}.journal-skill-ico{display:flex;justify-content:center;line-height:1}.journal-skill-name{font-family:var(--font-hand);font-size:.95rem;margin-top:2px}.journal-skill-val{font-size:.78rem;color:var(--ink-muted)}.journal-skill .book-bar{height:5px;margin-top:4px}.journal-unit-now{display:flex;gap:12px;align-items:center;color:var(--ink);background:#fff;border:2px solid var(--unit-color, var(--leaf));border-radius:14px;padding:10px 12px;box-shadow:0 3px 0 var(--unit-color, var(--leaf))}.journal-unit-now-ico{width:54px;height:54px;border-radius:50%;flex-shrink:0;background:var(--unit-color, var(--leaf));color:#fff;font-size:1.7rem;display:flex;align-items:center;justify-content:center;box-shadow:0 4px color-mix(in srgb,var(--unit-color, var(--leaf)) 65%,#000)}.journal-trail{display:flex;flex-direction:column;gap:4px}.journal-unit{display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center;padding:5px 0;position:relative;text-decoration:none;color:var(--ink)}.journal-unit:before{content:"";position:absolute;left:14px;top:-6px;bottom:-6px;border-left:2px dashed var(--paper-line);z-index:0}.journal-unit:first-child:before{top:50%}.journal-unit:last-child:before{bottom:50%}.journal-unit-dot{width:30px;height:30px;border-radius:50%;background:var(--paper-2);border:2px solid var(--unit-color, var(--leaf));display:flex;align-items:center;justify-content:center;font-size:.95rem;position:relative;z-index:1}.journal-unit.done .journal-unit-dot{background:var(--unit-color, var(--leaf))}.journal-unit-name{font-family:var(--font-hand);font-size:1rem;line-height:1.05}.journal-unit-name small{display:block;font-family:var(--font);font-size:.72rem;color:var(--ink-muted)}.journal-unit-num{font-family:var(--font-hand);font-size:.9rem;color:var(--ink-muted)}.journal-pets{display:grid;grid-template-columns:repeat(8,1fr);gap:10px 6px}.journal-pet-av{text-align:center;text-decoration:none;color:var(--ink-soft)}.journal-pet-av-ring{width:56px;height:56px;margin:0 auto;border-radius:50%;background:var(--paper-3);border:2px solid var(--paper-line);display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:1.4rem}.journal-pet-av-ring img{width:82%;height:82%;object-fit:contain}.journal-pet-av.active .journal-pet-av-ring{border-color:var(--leaf);box-shadow:0 0 0 2px var(--leaf-light)}.journal-pet-av.locked .journal-pet-av-ring{opacity:.5;filter:grayscale(1);border-style:dashed}.journal-pet-av span{display:block;font-family:var(--font-hand);font-size:.85rem;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.journal-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.journal-note{background:#fff7c2;color:#5a4a1a;padding:12px 14px;border-radius:3px;box-shadow:0 5px 10px #281a0e2e;font-family:var(--font-hand);font-size:1rem;line-height:1.3;position:relative;text-decoration:none;display:block}.journal-note.mint{background:#e6f2d8;color:#3b5227}.journal-note.rose{background:#f8e3d6;color:#5c3a25}.journal-note:nth-child(1){transform:rotate(-.8deg)}.journal-note:nth-child(2){transform:rotate(.6deg)}.journal-note:nth-child(3){transform:rotate(-.4deg)}.journal-note b{display:block;font-size:1.15rem;margin-bottom:2px}.journal-note ul{margin:0;padding-left:1.1em}.journal-note .n-ico{position:absolute;right:10px;bottom:8px;display:flex;opacity:.9}.journal-actions{display:flex;gap:8px;flex-wrap:wrap}@media (max-width: 1199.98px){.journal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-grid>.span-2{grid-column:span 2}.journal-pets{grid-template-columns:repeat(4,1fr)}.journal-pet-card{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:0 16px;align-items:center}.journal-pet-card .book-card-head{grid-column:1 / -1}.journal-pet-card .journal-needs{margin-top:0}}@media (max-width: 991.98px){.journal-header{grid-template-columns:1fr;gap:12px}.journal-title{font-size:2.3rem}.journal-banner{aspect-ratio:16 / 6;transform:none}}@media (max-width: 575.98px){.journal-grid{grid-template-columns:1fr;gap:12px}.journal-grid>.span-2{grid-column:auto}.journal-pet-card{grid-column:auto;display:block}.journal-pet-card .journal-needs{margin-top:10px}.journal-notes,.journal-overview,.journal-kv{grid-template-columns:1fr}.journal-title{font-size:2rem}}.path-page{max-width:760px;margin:0 auto;position:relative}.path-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.path-head-main h2{font-size:2rem}.path-picker{display:flex;align-items:center;gap:8px;font-family:var(--font-hand);color:var(--ink-soft);white-space:nowrap}.path-picker .form-select{min-width:200px;font-family:var(--font-hand)}.path-progress{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;margin-bottom:14px;font-family:var(--font-hand);color:var(--ink-soft)}.path-progress .book-bar{height:12px}.path-exam-note{display:flex;align-items:center;gap:12px;background:#fff;border:2px solid var(--u, var(--paper-line));border-radius:14px;padding:10px 14px;margin-bottom:14px;box-shadow:0 3px 0 var(--u, var(--paper-line))}.path-exam-ico{font-size:2rem}.path-trail{position:relative;padding-bottom:80px}.path-unit{margin-bottom:10px}.path-unit-head{display:flex;align-items:center;gap:12px;background:var(--u, var(--leaf));color:#fff;border-radius:16px;padding:10px 16px;margin:8px 0 60px;box-shadow:0 4px color-mix(in srgb,var(--u, var(--leaf)) 65%,#000),0 6px 14px #283c5a26;position:relative;z-index:1}.path-unit.locked .path-unit-head{background:#b9c4d0;box-shadow:0 4px #8f9cab}.path-unit-ico{width:44px;height:44px;border-radius:50%;background:#ffffffd9;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.path-unit-lock{margin-left:auto;display:flex}.path-unit-txt{display:flex;flex-direction:column;line-height:1.15;min-width:0}.path-unit-txt small{font-size:.75rem;opacity:.85;letter-spacing:.06em;text-transform:uppercase}.path-unit-txt b{font-family:var(--font-hand);font-size:1.35rem;font-weight:400}.path-unit-txt span{font-size:.8rem;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.path-nodes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:38px}.path-step{position:relative;transform:translate(calc(var(--x, 0px) * var(--wig, 1)));width:96px;display:flex;flex-direction:column;align-items:center}.path-step:after{content:"";position:absolute;top:78px;left:50%;width:0;height:38px;border-left:4px dotted var(--paper-line);transform:translate(-50%);z-index:0}.path-step:last-child:after{display:none}.path-node{position:relative;display:flex;flex-direction:column;align-items:center;background:none;border:none;padding:0;text-decoration:none;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent}.path-node-btn{width:78px;height:78px;border-radius:50%;background:var(--u, var(--leaf));box-shadow:0 8px color-mix(in srgb,var(--u, var(--leaf)) 62%,#000),0 10px 16px #283c5a2e;display:flex;align-items:center;justify-content:center;color:#fff;font-size:2rem;line-height:1;transition:transform .12s,box-shadow .12s;position:relative;z-index:1}.path-node-btn>span{display:flex;align-items:center;justify-content:center;transform:translateY(-2px)}.path-node-emoji{font-size:2rem;line-height:1}.path-node .ic{filter:drop-shadow(0 2px 0 rgba(0,0,0,.15))}.path-node.done .ic-star path{fill:#fff}.path-node.done .ic-star circle{display:none}.path-node.done .path-node-btn{font-size:2.6rem;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.15);background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.35),transparent 60%),var(--u, var(--leaf))}.path-node.done .path-node-btn:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border-radius:50%;border:3px solid rgba(255,255,255,.75)}.path-node.locked .path-node-btn{background:#d6dee6;box-shadow:0 8px #a9b5c2,0 10px 16px #283c5a1a;color:#8a99aa;font-size:1.6rem}.path-node.checkpoint .path-node-btn{width:92px;height:92px;border-radius:28px;background:linear-gradient(180deg,#FFE28A,var(--orange));box-shadow:0 8px 0 var(--orange-dark),0 10px 16px #283c5a2e;font-size:2.4rem}.path-node.checkpoint.locked .path-node-btn{background:#d6dee6;box-shadow:0 8px #a9b5c2;filter:grayscale(1);opacity:.9}.path-node.checkpoint.done .path-node-btn{font-size:2.6rem}.path-node.checkpoint.done .path-node-btn:before{border-radius:22px}.path-node:not(.locked):hover .path-node-btn{transform:translateY(2px);box-shadow:0 6px color-mix(in srgb,var(--u, var(--leaf)) 62%,#000),0 8px 14px #283c5a2e}.path-node:not(.locked):active .path-node-btn{transform:translateY(6px);box-shadow:0 2px color-mix(in srgb,var(--u, var(--leaf)) 62%,#000)}.path-node.current .path-node-btn:after{content:"";position:absolute;top:-9px;right:-9px;bottom:-9px;left:-9px;border-radius:inherit;border:4px solid color-mix(in srgb,var(--u, var(--leaf)) 55%,#fff);animation:pathPulse 1.6s ease-out infinite}@keyframes pathPulse{0%{transform:scale(.92);opacity:1}to{transform:scale(1.22);opacity:0}}.path-node-tip{position:absolute;top:-44px;left:50%;transform:translate(-50%);background:#fff;color:var(--u, var(--leaf));font-family:var(--font-hand);font-size:1rem;letter-spacing:.08em;padding:5px 12px;border-radius:10px;border:2px solid var(--u, var(--leaf));white-space:nowrap;animation:pathBob 1.2s ease-in-out infinite;z-index:2}.path-node-tip:after{content:"";position:absolute;left:50%;bottom:-9px;width:12px;height:12px;background:#fff;border-right:2px solid var(--u, var(--leaf));border-bottom:2px solid var(--u, var(--leaf));transform:translate(-50%) rotate(45deg)}@keyframes pathBob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-5px)}}.path-node-label{margin-top:14px;font-family:var(--font-hand);font-size:1rem;line-height:1.1;text-align:center;color:var(--ink-soft);width:150px;max-height:2.4em;overflow:hidden;display:flex;flex-direction:column;align-items:center;background:#ffffffd9;border-radius:8px;padding:2px 8px}.path-node-label small{font-size:.75rem;color:var(--ink-muted);font-family:var(--font)}.path-node.locked .path-node-label{color:var(--ink-muted)}.path-node.current .path-node-label{color:var(--ink);font-size:1.1rem}.path-mascot{position:absolute;top:-10px;width:96px;height:96px;object-fit:contain;filter:drop-shadow(0 6px 6px rgba(0,0,0,.2));animation:bookFloat 3s ease-in-out infinite;pointer-events:none;z-index:2}.path-mascot.left{right:calc(100% + 26px)}.path-mascot.right{left:calc(100% + 26px);transform:scaleX(-1)}.path-finish{text-align:center;margin-top:24px}.path-finish-ico{width:84px;height:84px;margin:0 auto 8px;border-radius:50%;background:#e3edf5;display:flex;align-items:center;justify-content:center;font-size:2.4rem;box-shadow:0 6px #c3d1df}.path-finish.done .path-finish-ico{background:linear-gradient(135deg,#FFE28A,var(--orange));box-shadow:0 6px 0 var(--orange-dark)}.path-fab{position:sticky;bottom:14px;display:flex;justify-content:center;z-index:6;pointer-events:none}.path-fab .btn{pointer-events:auto;box-shadow:0 4px #0000002e,0 10px 20px #283c5a40}@media (max-width: 575.98px){.path-nodes{--wig: .6}.path-mascot{width:72px;height:72px}.path-mascot.left{right:calc(100% + 8px)}.path-mascot.right{left:calc(100% + 8px)}.path-fab{bottom:calc(96px + env(safe-area-inset-bottom,0px))}}.dex-page{position:relative}.dex-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}.dex-title{display:flex;align-items:center;gap:12px}.dex-title h2{font-size:2rem}.dex-lens{width:52px;height:52px;border-radius:50%;flex-shrink:0;background:#fff;border:3px solid var(--red);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 0 var(--red-dark),0 6px 12px #283c5a40}.dex-counter{min-width:190px;text-align:right}.dex-counter-num{font-family:var(--font-hand);font-size:2rem;line-height:1;color:var(--red)}.dex-counter-num span{font-size:1.1rem;color:var(--ink-muted)}.dex-counter .book-bar{height:8px;margin:4px 0 2px}.dex-counter .book-bar>i{background:linear-gradient(90deg,var(--red),var(--orange))}.dex-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.dex-chip{display:inline-flex;align-items:center;gap:4px;border:2px solid var(--paper-line);background:#fff;color:var(--ink-soft);border-radius:999px;padding:4px 12px;font-family:var(--font-hand);font-size:.95rem;line-height:1.1;cursor:pointer;box-shadow:0 2px 0 var(--paper-line);transition:transform .1s}.dex-chip:hover{transform:translateY(-1px);border-color:var(--c, var(--blue))}.dex-chip.on{background:var(--c, var(--blue));border-color:var(--c, var(--blue));color:#fff;box-shadow:0 2px #0003}.dex-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.dex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:12px}.dex-card{position:relative;display:flex;flex-direction:column;align-items:center;padding:10px 8px;background:#fff;border:2px solid var(--paper-line);border-radius:16px;box-shadow:0 3px 0 var(--paper-line);cursor:pointer;text-align:center;color:var(--ink);transition:transform .12s,box-shadow .12s,border-color .12s}.dex-card:hover{transform:translateY(-3px);border-color:var(--c, var(--blue));box-shadow:0 6px 0 var(--paper-line),0 10px 18px #283c5a1f}.dex-card.selected{border-color:var(--c, var(--blue));box-shadow:0 3px 0 var(--c, var(--blue)),0 0 0 3px color-mix(in srgb,var(--c, var(--blue)) 25%,transparent)}.dex-card.owned{background:linear-gradient(180deg,var(--cbg, #fff) 0 40%,#fff 100%)}.dex-card.unknown{background:#f5f8fb}.dex-no{position:absolute;top:6px;left:10px;font-family:var(--font-hand);font-size:.85rem;color:var(--ink-muted)}.dex-flag{position:absolute;top:4px;right:8px;font-size:.85rem;font-family:var(--font-hand);border-radius:999px;padding:1px 7px}.dex-flag.new{background:var(--leaf);color:#fff;font-size:.7rem;letter-spacing:.05em}.dex-flag.soon{background:var(--orange);color:#fff;font-size:.7rem;letter-spacing:.05em}.dex-art{width:84px;height:84px;margin:12px 0 6px;border-radius:50%;background:radial-gradient(circle at 50% 40%,#fff,var(--cbg, #EEF6FC));border:3px solid var(--cbg, var(--paper-line));display:flex;align-items:center;justify-content:center;overflow:hidden}.dex-card.unknown .dex-art{background:#e6edf3;border-color:#d3dde6}.dex-art-img{width:78%;height:78%;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(0,0,0,.15))}.dex-emoji{font-size:2.2rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.silhouette{filter:brightness(0) opacity(.35)!important}.dex-emoji.silhouette{filter:grayscale(1) brightness(.2) opacity(.35)!important}.dex-name{font-family:var(--font-hand);font-size:1.1rem;line-height:1.05}.dex-type{font-size:.72rem;color:var(--c, var(--ink-muted));margin-top:2px;display:inline-flex;align-items:center;gap:3px}.dex-flag{display:inline-flex;align-items:center}.dex-stars{display:inline-flex;gap:1px}.dex-stat-name,.dex-badge{display:inline-flex;align-items:center;gap:4px}.dex-card.unknown .dex-name,.dex-card.unknown .dex-type{color:var(--ink-muted)}.dex-detail-wrap{display:contents}.dex-detail{position:sticky;top:14px;background:linear-gradient(180deg,#F26B6B,var(--red) 40%,var(--red-dark));border-radius:22px;padding:14px;box-shadow:0 8px #9c2f2f,0 16px 30px #283c5a4d;color:var(--ink);display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 40px);overflow-y:auto;scrollbar-width:thin}.dex-detail-empty{align-items:stretch}.dex-close{position:absolute;top:8px;right:10px;width:30px;height:30px;border-radius:50%;background:#ffffffe6;border:none;color:var(--red-dark);font-weight:700;cursor:pointer;z-index:2}.dex-screen{background:#2e3a48;border-radius:14px;padding:10px;box-shadow:inset 0 0 0 3px #1e2733}.dex-screen-top{display:flex;align-items:center;gap:6px;margin-bottom:8px}.dex-led{width:10px;height:10px;border-radius:50%;background:var(--blue);box-shadow:0 0 6px var(--blue)}.dex-led.r{background:var(--red);box-shadow:0 0 6px var(--red)}.dex-led.y{background:var(--yellow);box-shadow:0 0 6px var(--yellow)}.dex-screen-no{margin-left:auto;font-family:var(--font-hand);color:#b9c7d6;font-size:.9rem}.dex-screen-view{position:relative;aspect-ratio:4 / 3;border-radius:10px;background:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 2px,transparent 2px 4px),radial-gradient(ellipse at 50% 100%,var(--cbg, #DDF1C8) 0 30%,transparent 70%),linear-gradient(180deg,#cfebff,#eaf6ff);display:flex;align-items:center;justify-content:center;overflow:hidden}.dex-screen-img{width:60%;height:80%;object-fit:contain;filter:drop-shadow(0 6px 8px rgba(0,0,0,.25));animation:bookFloat 4s ease-in-out infinite}.dex-screen-img.dex-emoji{font-size:4rem}.dex-screen-lock{position:absolute;right:10px;bottom:8px;font-size:1.6rem}.dex-screen-bottom{margin-top:8px;display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-family:var(--font-hand);color:#fff}.dex-screen-bottom b{font-size:1.35rem;font-weight:400}.dex-screen-bottom span{font-size:.9rem;color:#b9c7d6}.dex-badges{display:flex;gap:6px;flex-wrap:wrap}.dex-badge{font-family:var(--font-hand);font-size:.9rem;padding:3px 10px;border-radius:999px;background:#fff;color:var(--ink)}.dex-badge.power{background:#fff;color:var(--orange-dark)}.dex-desc{margin:0;background:#ffffffeb;border-radius:12px;padding:8px 10px;font-size:.85rem;color:var(--ink-soft)}.dex-section{background:#ffffffeb;border-radius:12px;padding:8px 10px 10px}.dex-section-title{font-family:var(--font-hand);font-size:1rem;color:var(--ink);border-bottom:2px dashed var(--paper-line);margin-bottom:6px;padding-bottom:2px}.dex-stats{display:flex;flex-direction:column;gap:5px}.dex-stat{display:grid;grid-template-columns:72px 1fr 24px;align-items:center;gap:8px;font-size:.8rem}.dex-stat .book-bar{height:8px}.dex-stat-val{text-align:right;font-family:var(--font-hand)}.dex-skills{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.dex-skill{display:flex;flex-direction:column;align-items:center;background:var(--paper-3);border-radius:10px;padding:6px 2px;border-bottom:3px solid var(--c, var(--paper-line))}.dex-skill b{font-family:var(--font-hand);font-weight:400;font-size:1rem;color:var(--c, var(--ink))}.dex-skill small{font-size:.65rem;color:var(--ink-muted)}.dex-evo{display:flex;align-items:center;justify-content:space-between;gap:2px}.dex-evo-step{display:flex;align-items:center;gap:2px;flex-direction:row}.dex-evo-step>small{display:none}.dex-evo-arrow{color:var(--ink-muted);font-size:1.2rem;line-height:1}.dex-evo-ring{width:44px;height:44px;border-radius:50%;background:var(--paper-3);border:2px dashed var(--paper-line);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.dex-evo-step.reached .dex-evo-ring{border-style:solid;border-color:var(--leaf);background:var(--leaf-pale)}.dex-evo-step.now .dex-evo-ring{box-shadow:0 0 0 3px color-mix(in srgb,var(--leaf) 35%,transparent)}.dex-evo-img{width:80%;height:80%;object-fit:contain}.dex-evo-img.dex-emoji{font-size:1.2rem}.dex-action{margin-top:auto}.dex-active-note{text-align:center;background:var(--yellow);color:#5a4a1a;border-radius:12px;padding:8px;font-family:var(--font-hand)}.dex-cond{background:#ffffffeb;border-radius:10px;padding:6px 10px;font-size:.82rem;margin-bottom:6px;color:var(--ink-soft)}@media (max-width: 991.98px){.dex-layout{grid-template-columns:1fr}.dex-detail-wrap{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#1e28378c;z-index:1060;display:flex;align-items:flex-end;justify-content:center;padding:0}.dex-detail{position:relative;top:auto;width:100%;max-width:560px;max-height:88vh;border-radius:22px 22px 0 0;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));animation:dexUp .25s ease-out}@keyframes dexUp{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}}@media (max-width: 575.98px){.dex-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}.dex-art{width:68px;height:68px}.dex-counter{min-width:0}}
