.avatar{border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;-webkit-user-select:none;user-select:none}.avatar-sm{width:32px;height:32px;font-size:.75rem}.avatar-md{width:42px;height:42px;font-size:.95rem}.avatar-lg{width:72px;height:72px;font-size:1.6rem}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-clickable{cursor:pointer;transition:opacity .2s}.avatar-clickable:hover{opacity:.85}.notif-wrap{position:relative}.notif-badge{position:absolute;top:-4px;right:-6px;background:#e0644a;color:#fff;border-radius:100px;font-size:.6rem;padding:1px 4px;font-weight:700;line-height:1.2;min-width:14px;text-align:center;border:1.5px solid #2c1f12}.notif-panel{position:absolute;top:calc(100% + 10px);right:0;width:320px;max-height:420px;overflow-y:auto;background:var(--bg-card, #211a15);border:1px solid var(--border, rgba(255, 255, 255, .1));border-radius:12px;box-shadow:0 16px 40px #00000073;z-index:300}.notif-panel-header{padding:.75rem 1rem .5rem;font-size:.8rem;font-weight:700;color:var(--text-muted, #8a7a64);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border, rgba(255, 255, 255, .08))}.notif-empty{padding:1.25rem 1rem;font-size:.85rem;color:var(--text-muted, #8a7a64);text-align:center;margin:0}.notif-list{display:flex;flex-direction:column;padding:.35rem}.notif-item{display:flex;align-items:flex-start;gap:.6rem;width:100%;padding:.55rem .65rem;background:none;border:none;border-radius:8px;cursor:pointer;text-align:left}.notif-item:hover{background:#ffffff0d}.notif-item.unread{background:#e8a33d14}.notif-item.unread:hover{background:#e8a33d24}.notif-item-body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.notif-item-text{font-size:.83rem;color:var(--text-primary, #efe8da);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notif-item-time{font-size:.7rem;color:var(--text-muted, #8a7a64)}@media (max-width: 640px){.notif-panel{position:fixed;top:60px;left:.75rem;right:.75rem;width:auto}}.nav-icon--badge{position:relative;display:inline-flex}.nav-badge{position:absolute;top:-4px;right:-6px;background:#e0644a;color:#fff;border-radius:100px;font-size:.6rem;padding:1px 4px;font-weight:700;line-height:1.2;min-width:14px;text-align:center;border:1.5px solid #2c1f12}.header{background-color:#2c1f12;background-image:var(--grain),var(--wood-streaks),var(--wood-dark);border-bottom:1px solid rgba(0,0,0,.55);box-shadow:inset 0 1px #ffdca014,0 3px 14px #00000059;color:#f3ece1;padding:0;position:sticky;top:0;z-index:200}.header-container{max-width:1440px;margin:0 auto;padding:0 1.25rem;height:60px;display:flex;justify-content:space-between;align-items:center;gap:1.5rem}.logo{font-family:var(--font-display);font-size:1.45rem;font-weight:700;cursor:pointer;transition:opacity .18s;margin:0;letter-spacing:-.01em;display:flex;align-items:center;gap:.5rem;-webkit-user-select:none;user-select:none;color:#f8f1e4}.logo:hover{opacity:.85}.logo-mark{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--gradient-primary);color:#fdeccb;box-shadow:0 2px 8px #8a541059;flex-shrink:0}.logo-mark svg{width:22px;height:22px}.header-nav{flex-grow:1;display:flex;align-items:center;gap:.25rem}.nav-link{display:flex;align-items:center;gap:.4rem;color:#f3ece19e;text-decoration:none;font-weight:500;font-size:.9rem;padding:.45rem .75rem;border-radius:var(--radius-md);transition:color .18s,background .18s}.nav-link:hover{color:#f8f1e4;background:#ffdca014;text-decoration:none}.nav-link.active{color:#f6c77e;background:#e8a33d24;font-weight:600}.nav-icon{display:flex;align-items:center;width:18px;height:18px;flex-shrink:0}.nav-icon svg{width:100%;height:100%}.header-right{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.btn-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid rgba(243,236,225,.22);border-radius:50%;color:#f3ece1b3;cursor:pointer;transition:background .18s,color .18s,transform .18s;flex-shrink:0;padding:0}.btn-icon svg{width:17px;height:17px}.btn-icon:hover{background:#ffdca01a;color:#f6c77e;box-shadow:none;transform:none}.header-avatar-btn{padding:0!important;overflow:hidden;border-color:transparent}.btn-logout{background:transparent;border:1px solid rgba(243,236,225,.22);color:#f3ece19e;padding:.4rem .85rem;font-size:.83rem;font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:background .18s,color .18s,border-color .18s}.btn-logout:hover{background:#e0644a29;border-color:#ef836899;color:#ef8368;box-shadow:none;transform:none}.bottom-nav{display:none}@media (max-width: 768px){.header-nav{display:none}.header-container{height:52px;padding:0 1rem;gap:.5rem}.logo-text{display:inline}.btn-logout{display:none}.btn-icon{width:40px;height:40px}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:200;background-color:#2c1f12;background-image:var(--grain),var(--wood-streaks),var(--wood-dark);border-top:1px solid rgba(0,0,0,.55);box-shadow:inset 0 1px #ffdca014,0 -4px 24px #00000059;padding-bottom:env(safe-area-inset-bottom,0)}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:.55rem .25rem .5rem;color:#f3ece18c;text-decoration:none;transition:color .15s;min-width:0}.bottom-nav-item:active{transform:scale(.92)}.bottom-nav-item.active{color:#f6c77e}.bottom-nav-icon{display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0}.bottom-nav-icon svg{width:100%;height:100%;transition:stroke-width .15s}.bottom-nav-item.active .bottom-nav-icon svg{stroke-width:2.5}.bottom-nav-icon :global(.avatar){width:24px!important;height:24px!important}.bottom-nav-label{font-size:.6rem;font-weight:500;letter-spacing:.01em;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.bottom-nav-item.active .bottom-nav-label{font-weight:700}}[data-theme=dark] .bottom-nav{box-shadow:0 -4px 28px #00000080}@media (min-width: 769px) and (max-width: 1024px){.header-container{gap:1rem}.nav-link{padding:.45rem .55rem;font-size:.85rem}.header-username{max-width:80px}}.layout{display:flex;flex-direction:column;min-height:100vh}.layout-main{flex:1;padding:1.5rem 1rem;background-color:var(--layout-bg, #f6f1e7);transition:background-color .2s;min-width:0;overflow-x:hidden}.layout-container{max-width:1440px;margin:0 auto;width:100%}.layout-footer{background:transparent;color:var(--color-text-muted);font-size:.85rem;text-align:center;padding:2rem;margin-top:4rem;border-top:1px solid var(--color-divider)}@media (max-width: 768px){.layout-footer{display:none}.layout-main{padding:1rem .75rem;padding-bottom:calc(72px + env(safe-area-inset-bottom,0))}}.layout-footer p{margin:0}.auth-form{width:100%;max-width:360px}.auth-form h2{font-family:var(--font-display);font-size:1.9rem;font-weight:600;letter-spacing:-.02em;color:var(--color-text);margin-bottom:.4rem;text-align:left}.auth-form-subtitle{font-size:.9rem;color:var(--color-text-muted);margin-bottom:2.25rem;font-weight:400}.form-group{margin-bottom:1.1rem}.form-group label{display:block;margin-bottom:.45rem;font-weight:600;font-size:.82rem;color:var(--color-text);letter-spacing:.01em;text-transform:uppercase}.form-group input{width:100%;padding:.72rem .9rem;background:var(--color-surface-alt);border:1.5px solid transparent;border-radius:var(--radius-md);font-size:.95rem;color:var(--color-text);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;font-family:inherit}.form-group input::placeholder{color:var(--color-text-muted)}.form-group input:focus{outline:none;border-color:var(--brand);background:var(--color-surface);box-shadow:0 0 0 3.5px var(--brand-soft)}.form-group input:disabled{opacity:.5;cursor:not-allowed}.error-message{background:color-mix(in srgb,var(--color-danger-500) 10%,transparent);color:var(--color-danger-500);padding:.75rem 1rem;border-radius:var(--radius-md);margin-bottom:1.25rem;border:1px solid color-mix(in srgb,var(--color-danger-500) 30%,transparent);font-size:.875rem;font-weight:500}.btn-submit{width:100%;padding:.82rem 1.5rem;background:var(--gradient-primary);color:#fdf6e8;border:none;border-radius:var(--radius-md);font-size:.92rem;font-weight:700;letter-spacing:.01em;cursor:pointer;transition:filter .15s ease,transform .12s ease,box-shadow .15s ease;margin-top:.5rem;font-family:inherit;justify-content:center}.btn-submit:hover:not(:disabled){background:var(--gradient-primary);filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 6px 20px #8a541059}.btn-submit:active:not(:disabled){transform:translateY(0)}.btn-submit:disabled{opacity:.45;cursor:not-allowed}.form-link{text-align:center;margin-top:1.5rem;font-size:.875rem;color:var(--color-text-muted)}.form-link a{color:var(--brand);font-weight:700;text-decoration:underline;text-underline-offset:2px;text-decoration-color:color-mix(in srgb,var(--brand) 35%,transparent);transition:text-decoration-color .15s}.form-link a:hover{text-decoration-color:var(--brand)}.google-signin-container{margin:1.5rem 0 .5rem}.google-signin-divider{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.google-signin-divider:before,.google-signin-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.google-signin-divider span{font-size:.78rem;color:var(--color-text-muted);font-weight:500;letter-spacing:.04em;white-space:nowrap}.divider-text{display:none}.btn-google-signin{width:100%;padding:.72rem 1rem;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:.9rem;font-weight:600;color:var(--color-text);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.6rem;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;font-family:inherit}.btn-google-signin:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-gray-400);box-shadow:var(--shadow-sm);transform:none}.btn-google-signin:disabled{opacity:.5;cursor:not-allowed}.google-icon{width:18px;height:18px;flex-shrink:0}.auth-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-brand{background-color:#161210;background-image:radial-gradient(circle,rgba(243,236,225,.05) 1px,transparent 1px);background-size:26px 26px;display:flex;flex-direction:column;justify-content:space-between;padding:2.75rem 3.5rem;position:relative;overflow:hidden}.auth-brand:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 15%,rgba(232,163,61,.16) 0%,transparent 50%),radial-gradient(ellipse at 85% 80%,rgba(46,110,78,.12) 0%,transparent 55%);pointer-events:none}.auth-brand-top,.auth-brand-bottom{position:relative;z-index:1}.auth-logo{display:flex;align-items:center;gap:.65rem;margin-bottom:4.5rem}.auth-logo-icon{flex-shrink:0;display:block;height:36px;width:auto;border-radius:9px}.auth-logo-name{font-size:.9rem;font-weight:700;color:#f8f1e4e6;letter-spacing:.01em}.auth-brand-headline{font-family:var(--font-display);font-size:clamp(2.5rem,4vw,3.75rem);font-weight:600;line-height:1.08;letter-spacing:-.02em;color:#f8f1e4;margin:0 0 1.5rem}.auth-brand-headline .muted{color:#e8a33d}.auth-brand-sub{font-size:.95rem;color:#f3ece180;line-height:1.65;max-width:320px;font-weight:400;margin:0}.auth-features{border-top:1px solid rgba(243,236,225,.08);padding-top:2rem;display:flex;flex-direction:column;gap:.85rem}.auth-feature{display:flex;align-items:flex-start;gap:.75rem}.auth-feature-dot{width:5px;height:5px;border-radius:50%;background:#e8a33d;flex-shrink:0;margin-top:.55rem}.auth-feature-text{font-size:.875rem;color:#f3ece180;line-height:1.5;font-weight:400}.auth-form-panel{background:var(--color-surface);display:flex;align-items:center;justify-content:center;padding:3rem 4rem;overflow-y:auto}@media (max-width: 768px){.auth-page{grid-template-columns:1fr}.auth-brand{padding:2rem 1.75rem;min-height:auto;justify-content:flex-start;gap:2rem}.auth-logo{margin-bottom:2rem}.auth-brand-headline{font-size:2.25rem}.auth-features{display:none}.auth-form-panel{padding:2.5rem 1.5rem}}.file-upload-container{max-width:560px;margin:0 auto;padding:0 0 2rem}.upload-card{background:var(--color-surface, #fff);border-radius:16px;padding:2rem;width:100%;box-shadow:var(--shadow-lg, 0 10px 15px rgba(0, 0, 0, .1));text-align:center;border:1px solid var(--color-border, #e6dccb)}.upload-icon{font-size:3rem;margin-bottom:.75rem}.upload-card h2{color:var(--color-text, #33291f);margin-bottom:.5rem;font-size:1.5rem}.upload-subtitle{color:var(--color-text-muted, #7f8c8d);margin-bottom:1.5rem;line-height:1.6;font-size:.95rem}.upload-form{margin-bottom:1.5rem}.file-input-wrapper{position:relative;margin-bottom:1.25rem}.file-input{display:none}.file-input-label{display:block;padding:1.5rem 1rem;border:2px dashed var(--color-info-500, #b3671b);border-radius:12px;background:#3498db0a;cursor:pointer;transition:all .2s ease;font-weight:500;color:var(--color-text, #33291f);word-break:break-all}.file-input-label:hover{border-color:var(--color-info-700, #8a5410);background:#3498db14}.file-size{display:block;font-size:.82rem;color:var(--color-text-muted, #7f8c8d);margin-top:.4rem;font-weight:400}.progress-bar{width:100%;height:8px;background:var(--color-gray-200, #ecf0f1);border-radius:10px;overflow:hidden;margin-bottom:1rem}.progress-fill{height:100%;background:linear-gradient(90deg,#b3671b,#8a5410);transition:width .3s ease;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.7rem;font-weight:700}.btn-upload{width:100%;padding:.9rem 1rem;background:linear-gradient(135deg,#c9821f,#8a5410);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-bottom:.75rem}.btn-upload:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px #c9821f4d}.btn-upload:disabled{opacity:.5;cursor:not-allowed;transform:none}.error-message{background-color:#fdf1ec;color:#a03d2d;padding:.85rem 1rem;border-radius:8px;margin-bottom:1rem;font-weight:500;border-left:4px solid #a03d2d;text-align:left;font-size:.9rem}.instructions{text-align:left;padding:1.25rem;background:var(--color-gray-50, #f8f9fa);border-radius:12px;margin-top:1.5rem;border:1px solid var(--color-border, #e6dccb)}.instructions h3{color:var(--color-text, #33291f);margin-bottom:.75rem;font-size:.95rem}.instructions ol{list-style:decimal;padding-left:1.25rem;color:var(--color-text-muted, #555);line-height:1.8;margin:0}.instructions li{margin-bottom:.35rem;font-size:.9rem}.instructions a{color:var(--color-info-500, #b3671b);text-decoration:none;font-weight:600}.instructions a:hover{text-decoration:underline}.processing-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;gap:.85rem}.processing-overlay h3{color:var(--color-text, #33291f);font-size:1.2rem;margin:0}.processing-overlay p{color:var(--color-text-muted, #7f8c8d);line-height:1.6;margin:0;font-size:.9rem}.processing-spinner{width:52px;height:52px;border:4px solid var(--color-gray-200, #ded3c0);border-top-color:#c9821f;border-radius:50%;animation:fu-spin .9s linear infinite}@keyframes fu-spin{to{transform:rotate(360deg)}}.processing-dots{display:flex;gap:8px;margin-top:.25rem}.processing-dots span{width:9px;height:9px;background:#c9821f;border-radius:50%;animation:fu-bounce 1.2s ease-in-out infinite}.processing-dots span:nth-child(2){animation-delay:.2s}.processing-dots span:nth-child(3){animation-delay:.4s}@keyframes fu-bounce{0%,80%,to{transform:scale(.7);opacity:.5}40%{transform:scale(1);opacity:1}}@media (max-width: 600px){.upload-card{padding:1.5rem 1rem;border-radius:12px}.upload-card h2{font-size:1.25rem}.upload-subtitle{font-size:.875rem;margin-bottom:1.25rem}.file-input-label{padding:1.25rem .75rem;font-size:.9rem}.instructions{padding:1rem}.instructions li{font-size:.85rem}}.msw-container{max-width:620px;margin:0 auto;padding:0 1rem 3rem}.msw-progress{display:flex;justify-content:center;align-items:flex-start;gap:0;margin-bottom:2rem;position:relative}.msw-progress-line{position:absolute;top:20px;left:50%;transform:translate(-50%);width:60%;height:3px;background:#e6dccb;border-radius:99px;z-index:0}.msw-progress-fill{height:100%;background:linear-gradient(90deg,#a3610e,#b3671b);border-radius:99px;transition:width .5s ease}.msw-step-dot{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;z-index:1}.msw-dot-circle{width:42px;height:42px;border-radius:50%;background:#e6dccb;display:flex;align-items:center;justify-content:center;font-size:1.2rem;border:3px solid #e6dccb;transition:all .3s;color:#84715a;font-weight:700}.msw-step-dot.active .msw-dot-circle{background:#a3610e;border-color:#a3610e;color:#fff;box-shadow:0 0 0 4px #a3610e33}.msw-step-dot.done .msw-dot-circle{background:#4fa87a;border-color:#4fa87a;color:#fff;font-size:1rem}.msw-dot-label{font-size:.75rem;color:#9c8b74;font-weight:500;text-align:center}.msw-step-dot.active .msw-dot-label,.msw-step-dot.done .msw-dot-label{color:#5f4f3d;font-weight:600}.msw-card{background:var(--color-surface, #fff);border-radius:20px;padding:2rem;box-shadow:0 4px 30px #00000014;border:1px solid rgba(0,0,0,.05);display:flex;flex-direction:column;gap:1.25rem}.msw-card-center{align-items:center;text-align:center;padding:3rem 2rem;min-height:320px;justify-content:center}.msw-card-header{text-align:center}.msw-card-icon{display:block;margin:0 auto .5rem;width:40px;height:40px}.msw-card-header h2{margin:0 0 .5rem;font-size:1.5rem;color:var(--color-dark, #241d17);display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap}.msw-card-header p{color:var(--color-gray, #84715a);line-height:1.6;margin:0;font-size:.95rem}.msw-optional-badge{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:#f0e9db;color:#84715a;padding:2px 8px;border-radius:99px;vertical-align:middle}.msw-search-wrap{position:relative}.msw-search-box{display:flex;align-items:center;border:2px solid #e6dccb;border-radius:12px;padding:0 1rem;gap:.6rem;background:var(--color-surface, #fff);transition:border-color .2s}.msw-search-box:focus-within{border-color:#a3610e;box-shadow:0 0 0 3px #a3610e1f}.msw-search-icon{width:20px;height:20px;flex-shrink:0;color:var(--color-text-muted, #9c8b74)}.msw-search-input{flex:1;border:none;outline:none;padding:.75rem 0;font-size:1rem;background:transparent;color:var(--color-dark, #241d17)}.msw-search-input::placeholder{color:#9c8b74}.msw-search-spinner{width:18px;height:18px;border:2.5px solid #e6dccb;border-top-color:#a3610e;border-radius:50%;animation:msw-spin .8s linear infinite;flex-shrink:0}.msw-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--color-surface, #fff);border:1.5px solid #e6dccb;border-radius:12px;box-shadow:0 8px 24px #0000001f;z-index:50;overflow:hidden}.msw-result-row{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;border:none;background:transparent;cursor:pointer;text-align:left;transition:background .15s;font-size:.95rem;color:var(--color-dark, #241d17)}.msw-result-row:hover:not(:disabled){background:#f8faff}.msw-result-row.added{opacity:.5;cursor:not-allowed}.msw-result-name{flex:1;font-weight:500}.msw-result-year{color:#9c8b74;font-size:.85rem}.msw-result-action{font-size:.8rem;font-weight:600;color:#a3610e}.msw-result-row.added .msw-result-action{color:#4fa87a}.msw-no-results{padding:1rem;color:#9c8b74;font-size:.9rem;text-align:center;margin:0}.msw-selected-section{display:flex;flex-direction:column;gap:.5rem}.msw-selected-label{margin:0;font-size:.85rem;font-weight:600;color:#5f4f3d}.msw-chips{display:flex;flex-wrap:wrap;gap:.5rem}.msw-chip{display:inline-flex;align-items:center;gap:.35rem;background:#eef2ff;color:#3730a3;border-radius:99px;padding:4px 10px 4px 12px;font-size:.85rem;font-weight:500;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msw-chip-person{background:#edf7f0;color:#24573e}.msw-chip-year{font-weight:400;opacity:.7}.msw-chip-avatar{width:20px;height:20px;border-radius:50%;background:#4fa87a;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0}.msw-chip-remove{background:none;border:none;cursor:pointer;font-size:1rem;line-height:1;color:inherit;opacity:.5;padding:0 2px;flex-shrink:0;display:flex;align-items:center}.msw-chip-remove:hover{opacity:1}.msw-hint{display:flex;align-items:flex-start;gap:.6rem;background:#f8faff;border:1px solid #e0e7ff;border-radius:10px;padding:.75rem 1rem;font-size:.875rem;color:#5f4f3d;line-height:1.5}.msw-member-row{display:flex;gap:.5rem}.msw-member-input{flex:1;border:2px solid #e6dccb;border-radius:10px;padding:.7rem 1rem;font-size:.95rem;color:var(--color-dark, #241d17);background:var(--color-surface, #fff);outline:none;transition:border-color .2s}.msw-member-input:focus{border-color:#a3610e;box-shadow:0 0 0 3px #a3610e1f}.msw-btn-add{padding:.7rem 1.25rem;border-radius:10px;border:none;background:#a3610e;color:#fff;font-weight:600;font-size:.9rem;cursor:pointer;transition:background .2s,transform .1s;flex-shrink:0}.msw-btn-add:hover:not(:disabled){background:#4338ca}.msw-btn-add:disabled{opacity:.4;cursor:not-allowed}.msw-actions{display:flex;flex-direction:column;gap:.6rem;margin-top:.25rem}.msw-btn-primary{width:100%;padding:.9rem 1.5rem;border:none;border-radius:12px;background:linear-gradient(135deg,#a3610e,#b3671b);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s,box-shadow .2s}.msw-btn-primary:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 8px 20px #a3610e4d}.msw-btn-primary:disabled{opacity:.4;cursor:not-allowed}.msw-btn-back{background:none;border:none;color:#84715a;cursor:pointer;font-size:.9rem;padding:.4rem;text-align:center;transition:color .15s}.msw-btn-back:hover{color:#241d17}.msw-action-hint{margin:0;text-align:center;font-size:.82rem;color:#9c8b74}.msw-spinner{width:60px;height:60px;border:5px solid #e6dccb;border-top-color:#a3610e;border-radius:50%;animation:msw-spin .9s linear infinite;margin-bottom:1.25rem}.msw-card-center h2{margin:0 0 .5rem;font-size:1.5rem;color:var(--color-dark, #241d17)}.msw-process-sub{color:#84715a;line-height:1.6;max-width:400px;margin:0;font-size:.95rem}.msw-dots{display:flex;gap:8px;margin-top:1rem}.msw-dots span{width:10px;height:10px;background:#a3610e;border-radius:50%;animation:msw-bounce 1.2s ease-in-out infinite}.msw-dots span:nth-child(2){animation-delay:.2s}.msw-dots span:nth-child(3){animation-delay:.4s}.msw-success-icon{display:block;margin:0 auto .75rem;animation:msw-pop .4s ease}.msw-error-icon{display:block;margin:0 auto .75rem}.msw-error-text{color:#c04b32}@keyframes msw-spin{to{transform:rotate(360deg)}}@keyframes msw-bounce{0%,80%,to{transform:scale(.7);opacity:.5}40%{transform:scale(1);opacity:1}}@keyframes msw-pop{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@media (max-width: 480px){.msw-container{padding:0 0 3rem}.msw-card{padding:1.25rem 1rem;border-radius:16px}.msw-card-center{padding:2rem 1rem;min-height:260px}.msw-card-header h2{font-size:1.2rem}.msw-card-header p{font-size:.875rem}.msw-dot-label{display:none}.msw-member-row{flex-direction:column}.msw-btn-add{width:100%}.msw-chip{max-width:100%}.msw-btn-primary{font-size:.95rem;padding:.8rem 1rem}}.up-welcome{text-align:center;margin-bottom:2rem}.up-welcome-title{font-size:1.8rem;font-weight:700;color:var(--color-dark, #241d17);margin:0 0 .5rem}.up-welcome-sub{color:var(--color-gray, #84715a);font-size:1rem;line-height:1.6;max-width:500px;margin:0 auto}.up-tracks{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;max-width:820px;margin:0 auto 1.5rem}.up-track-card{background:var(--color-surface, #fff);border:2px solid transparent;border-radius:20px;padding:2rem 1.75rem;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:.75rem;transition:all .2s;position:relative;box-shadow:0 2px 12px #00000012}.up-track-card:hover{transform:translateY(-3px);box-shadow:0 8px 30px #0000001f}.up-track-primary{border-color:#a3610e;background:linear-gradient(160deg,#eef2ff,#fff 60%)}.up-track-primary:hover{border-color:#3730a3;box-shadow:0 8px 30px #a3610e33}.up-track-secondary{border-color:#e6dccb}.up-track-secondary:hover{border-color:#9c8b74}.up-track-badge{position:absolute;top:-12px;left:1.75rem;background:linear-gradient(135deg,#a3610e,#b3671b);color:#fff;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:3px 12px;border-radius:99px}.up-track-icon{display:flex;margin-bottom:.25rem}.up-track-icon svg{width:40px;height:40px}.up-track-card h3{margin:0;font-size:1.2rem;font-weight:700;color:var(--color-dark, #241d17)}.up-track-card p{margin:0;font-size:.9rem;color:var(--color-gray, #84715a);line-height:1.5}.up-track-bullets{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.3rem}.up-track-bullets li{font-size:.85rem;color:#5f4f3d}.up-track-primary .up-track-bullets li{color:#3730a3}.up-track-howto{font-size:.8rem;color:#84715a;background:#f8f4ea;border-radius:8px;padding:.5rem .75rem;margin-top:.25rem;line-height:1.4}.up-track-cta{display:block;text-align:right;font-size:.9rem;font-weight:700;color:#a3610e;margin-top:auto}.up-track-cta-secondary{color:#84715a}.up-skip-row{text-align:center}.up-btn-skip{background:none;border:none;color:var(--color-gray, #9c8b74);cursor:pointer;font-size:.88rem;padding:.5rem;text-decoration:underline;text-underline-offset:2px;transition:color .15s}.up-btn-skip:hover{color:#5f4f3d}.up-back-row{margin-bottom:1.25rem}.up-btn-back{background:none;border:none;color:var(--color-gray, #84715a);cursor:pointer;font-size:.9rem;padding:.4rem 0;font-weight:500;transition:color .15s}.up-btn-back:hover{color:var(--color-dark, #241d17)}.up-locked-card{max-width:480px;margin:4rem auto;background:var(--color-surface, #fff);border-radius:16px;padding:2.5rem;text-align:center;box-shadow:0 4px 24px #00000014;display:flex;flex-direction:column;gap:1rem;align-items:center}.up-locked-icon{display:flex;justify-content:center}.up-locked-icon svg{width:52px;height:52px}.up-locked-card h2{margin:0;color:var(--color-dark, #241d17);font-size:1.3rem}.up-locked-card p{color:var(--color-gray, #84715a);line-height:1.6;margin:0}.up-btn-outline{padding:.65rem 1.5rem;border-radius:10px;border:1.5px solid #e6dccb;background:#fff;cursor:pointer;font-weight:600;font-size:.9rem;color:var(--color-dark, #241d17);transition:border-color .15s,box-shadow .15s}.up-btn-outline:hover{border-color:#9c8b74;box-shadow:0 2px 8px #00000014}.up-pro-banner{background:linear-gradient(135deg,#b3671b,#a3610e);color:#fff;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;text-align:center}.up-pro-banner h2{margin:0 0 .5rem;font-size:1.2rem}.up-pro-banner p{margin:0;opacity:.9;font-size:.95rem}@media (max-width: 640px){.up-tracks{grid-template-columns:1fr}.up-welcome-title{font-size:1.3rem}.up-welcome-sub{font-size:.9rem}.up-track-card{padding:1.5rem 1.25rem;border-radius:16px}.up-track-card h3{font-size:1.05rem}.up-track-card p{font-size:.85rem}.up-locked-card{margin:1.5rem auto;padding:1.75rem 1.25rem}}.dashboard{margin:-2rem -1rem;padding:2rem 1.5rem 4rem;min-height:calc(100vh - 64px);background:var(--layout-bg);color:var(--color-text)}.dashboard-hero{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem;margin-bottom:2rem;padding:2rem 2.5rem;background:var(--gradient-table);border-radius:var(--radius-2xl);border:1px solid rgba(232,163,61,.18);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.dashboard-hero:before{content:"🎲";position:absolute;right:2rem;top:50%;transform:translateY(-50%) rotate(-15deg);font-size:7rem;opacity:.06;pointer-events:none}.dashboard-hero-text h1{font-family:var(--font-display);font-size:2rem;font-weight:600;margin:0 0 .2rem;color:#f8f1e4;letter-spacing:-.01em}.dashboard-hero-text p{font-size:.92rem;color:#f3ece199;margin:0}.dashboard-summary{display:flex;align-items:center;gap:1rem;flex-shrink:0}.summary-stat{width:84px;height:84px;border-radius:50%;background:var(--grain),radial-gradient(circle at 34% 28%,#f8eed6,#ecd9b0 62%,#dcc493);box-shadow:inset 0 0 0 3px #f7ecd4e6,inset 0 0 0 4.5px #5a3e1e59,inset 0 -3px 6px #5a3e1e2e,0 5px 12px #00000073;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05rem;transform:rotate(-2deg)}.summary-stat:nth-child(odd){transform:rotate(1.5deg)}.summary-stat-value{font-family:var(--font-display);font-size:1.35rem;font-weight:600;color:#3b2a16;line-height:1}.summary-stat-label{font-size:.5rem;font-weight:700;color:#7a5c33;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.summary-stat-div{display:none}.section-title{font-size:.85rem;font-weight:700;color:var(--color-text-muted);margin:0 0 1rem;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:.4rem}.players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.1rem}.player-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:1.25rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s;position:relative}.player-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--brand) 50%,var(--color-border))}.player-card.selected{border-color:var(--brand);background:var(--color-surface);box-shadow:0 0 0 2px var(--brand-soft),var(--shadow-md)}.player-card.grupo-card{border-style:dashed;background:var(--color-surface-alt);opacity:.9}.favorite-badge{display:inline-flex;align-items:center;gap:.25rem;background:var(--gold-soft);border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);border-radius:20px;padding:.15rem .55rem;font-size:.68rem;color:var(--gold);font-weight:700;letter-spacing:.03em;margin-bottom:.65rem}.player-card-header{display:flex;align-items:center;gap:.85rem;margin-bottom:1rem}.player-avatar{width:46px;height:46px;border-radius:50%;background:var(--grain),radial-gradient(circle at 34% 28%,#f8eed6,#e8d4aa);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.95rem;font-weight:700;color:#6b4c2a;flex-shrink:0;box-shadow:inset 0 0 0 2.5px #5a3e1e47,0 2px 6px #00000059;letter-spacing:-.5px}.grupo-card .player-avatar{background:var(--grain),radial-gradient(circle at 34% 28%,#3f8e63,#2a5c41);color:#eaf5ee;font-size:1.3rem}.player-name{font-size:1rem;font-weight:700;color:var(--color-text);margin:0}.player-subtitle{font-size:.75rem;color:var(--color-text-muted);margin:.1rem 0 0}.player-stats-row{display:flex;gap:.5rem;margin-bottom:.9rem}.mini-stat{flex:1;background:var(--color-surface-alt);border-radius:var(--radius-md);padding:.45rem .5rem;text-align:center;border:1px solid var(--color-divider)}.mini-stat-value{font-size:1.1rem;font-weight:700;color:var(--color-text);line-height:1}.mini-stat-label{font-size:.63rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;margin-top:.15rem}.win-rate-bar{margin-bottom:.9rem}.win-rate-label{display:flex;justify-content:space-between;font-size:.72rem;color:var(--color-text-muted);margin-bottom:.3rem}.win-rate-track{height:5px;background:var(--color-divider);border-radius:4px;overflow:hidden}.win-rate-fill{height:100%;background:var(--gradient-success);border-radius:4px;transition:width .5s ease}.player-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.65rem}.tag{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:12px;padding:.18rem .55rem;font-size:.68rem;color:var(--color-text-muted);white-space:nowrap}.tag.mechanic{background:var(--color-surface-alt);border-color:var(--color-border);color:var(--color-text-muted)}.tag.category{background:var(--felt-soft);border-color:color-mix(in srgb,var(--felt) 30%,transparent);color:var(--felt)}.co-players{font-size:.75rem;color:var(--color-text-muted);margin-top:.2rem}.co-players strong{color:var(--color-text)}.player-detail-panel{background:var(--color-surface);border:1px solid var(--brand);border-radius:var(--radius-xl);padding:1.75rem;margin-top:1.5rem;box-shadow:var(--shadow-lg);animation:slideDown .18s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.detail-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--color-divider)}.detail-avatar{width:60px;height:60px;border-radius:50%;background:var(--grain),radial-gradient(circle at 34% 28%,#f8eed6,#e8d4aa);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.35rem;font-weight:700;color:#6b4c2a;flex-shrink:0;box-shadow:inset 0 0 0 3px #5a3e1e47,0 3px 10px #00000059;letter-spacing:-.5px}.detail-title{font-family:var(--font-display);font-size:1.35rem;font-weight:600;color:var(--color-text);margin:0 0 .2rem}.detail-subtitle{font-size:.82rem;color:var(--color-text-muted);margin:0}.detail-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.75rem;margin-bottom:1.5rem}.detail-stat{background:var(--color-surface-alt);border:1px solid var(--color-divider);border-radius:var(--radius-md);padding:.75rem 1rem;text-align:center}.detail-stat-value{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--brand);line-height:1}.detail-stat-label{font-size:.67rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:.25rem}.detail-section{margin-bottom:1.1rem}.detail-section-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:.5rem}.dashboard-empty{text-align:center;padding:5rem 2rem;color:var(--color-text-muted);display:flex;flex-direction:column;align-items:center}.dashboard-empty-icon{margin-bottom:1rem;animation:float 3s ease-in-out infinite}.dashboard-empty h2{font-family:var(--font-display);font-size:1.35rem;font-weight:600;color:var(--color-text);margin:0 0 .5rem}.dashboard-empty p{font-size:.9rem;margin:0 0 1.5rem;max-width:320px}.upload-link-btn{display:inline-block;background:var(--gradient-primary);color:#fdf6e8;border:none;border-radius:var(--radius-md);padding:.7rem 1.5rem;font-size:.9rem;font-weight:700;cursor:pointer;text-decoration:none;transition:filter .15s;box-shadow:0 4px 16px #8a541059}.upload-link-btn:hover{filter:brightness(1.1);color:#fdf6e8;text-decoration:none}.dashboard-loading{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.1rem}.sk-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.sk{border-radius:8px;background:linear-gradient(90deg,var(--color-gray-100) 25%,var(--color-gray-200) 50%,var(--color-gray-100) 75%);background-size:600px 100%;animation:shimmer 1.4s ease-in-out infinite}.sk-avatar{width:46px;height:46px;border-radius:12px;flex-shrink:0}.sk-name{height:1rem;width:55%}.sk-sub{height:.75rem;width:40%}.sk-bar{height:.75rem;border-radius:4px}.sk-tag{height:1.4rem;width:70px;border-radius:12px}.player-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0b0899;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:400;animation:fadeIn .18s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.player-modal{position:fixed;z-index:410;top:50%;left:50%;transform:translate(-50%,-50%);width:min(680px,calc(100vw - 2rem));max-height:calc(100vh - 4rem);overflow-y:auto;border-radius:var(--radius-2xl);animation:popIn .22s cubic-bezier(.34,1.56,.64,1)}@keyframes popIn{0%{opacity:0;transform:translate(-50%,-48%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.player-modal-close{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border-radius:50%;background:var(--color-surface-alt);border:1px solid var(--color-border);color:var(--color-text-muted);font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;z-index:1;padding:0}.player-modal-close:hover{background:color-mix(in srgb,var(--color-danger-500) 18%,transparent);color:var(--color-danger-500);box-shadow:none;transform:none}.player-modal .player-detail-panel{margin-top:0;border-radius:var(--radius-2xl)}@media (max-width: 768px){.dashboard{margin:-1rem -.75rem;padding:1.5rem 1rem 3rem}.dashboard-hero{flex-direction:column;padding:1.5rem}.dashboard-hero:before{display:none}.dashboard-summary{width:100%;justify-content:space-around;padding:.75rem 1rem;gap:.75rem;overflow:hidden}.summary-stat--extra,.summary-stat-div--extra{display:none}.summary-stat-value{font-size:1.4rem}.players-grid{grid-template-columns:1fr}.player-modal{top:auto;bottom:0;left:0;right:0;transform:none;width:100%;max-height:88vh;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;padding-bottom:env(safe-area-inset-bottom,0);animation:slideUp .28s cubic-bezier(.32,.72,0,1)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.player-modal .player-detail-panel{border-radius:var(--radius-2xl) var(--radius-2xl) 0 0}}.pl-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0b0899;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.pl-modal{background:var(--color-surface);border:1px solid color-mix(in srgb,var(--gold) 35%,var(--color-border));border-radius:var(--radius-xl);width:100%;max-width:580px;max-height:88vh;overflow-y:auto;box-shadow:var(--shadow-2xl),0 0 60px #e5c06b14;display:flex;flex-direction:column;position:relative}.pl-modal:before{content:"";position:sticky;top:0;display:block;height:3px;flex-shrink:0;background:var(--gradient-gold);z-index:2}.pl-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.25rem 1rem;border-bottom:1px solid var(--color-divider);gap:1rem;background:linear-gradient(to bottom,var(--gold-soft),transparent)}.pl-header-left{display:flex;align-items:center;gap:.85rem}.pl-game-thumb{width:52px;height:52px;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0;box-shadow:var(--shadow-sm)}.pl-label{display:flex;align-items:center;gap:.4rem;font-size:.72rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:.15rem}.pl-pro-chip{display:inline-block;font-size:.6rem;font-weight:800;letter-spacing:.08em;padding:.14rem .45rem;border-radius:6px;background:var(--gradient-gold);color:#2c1f08}.pl-game-name{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--color-text);margin:0}.pl-close{background:none;border:none;font-size:1rem;color:var(--color-text-muted);cursor:pointer;padding:.3rem;border-radius:50%;transition:background .15s;flex-shrink:0}.pl-close:hover{background:var(--color-surface-hover);box-shadow:none;transform:none}.pl-loading{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 1.5rem;text-align:center}.pl-progress-wrap{width:100%;max-width:320px;height:6px;background:var(--color-divider);border-radius:99px;overflow:hidden}.pl-progress-bar{height:100%;background:var(--gradient-gold);border-radius:99px;transition:width .4s ease}.pl-loading p{font-size:1rem;font-weight:500;color:var(--color-text);margin:0}.pl-loading-sub{font-size:.85rem!important;color:var(--color-text-muted)!important}.pl-error{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 1.5rem;text-align:center}.pl-error-icon{font-size:2rem}.pl-error p{font-size:.9rem;color:var(--color-text);max-width:340px;margin:0}.pl-retry-btn{background:var(--btn-bg);color:var(--btn-fg);border:none;border-radius:var(--radius-md);padding:.5rem 1.25rem;font-size:.9rem;font-weight:600;cursor:pointer;margin-top:.25rem}.pl-retry-btn:hover{opacity:.9;background:var(--btn-bg)}.pl-stats{display:flex;align-items:center;gap:1rem;padding:.85rem 1.25rem;background:var(--color-surface-alt);border-bottom:1px solid var(--color-divider)}.pl-stat{display:flex;flex-direction:column;align-items:center;min-width:60px}.pl-stat strong{font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--color-text)}.pl-stat span{font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.pl-stat-div{width:1px;height:28px;background:var(--color-border)}.pl-theme{padding:.9rem 1.25rem .75rem;border-bottom:1px solid var(--color-divider)}.pl-theme-text{font-size:.88rem;color:var(--color-text);margin:0 0 .5rem;font-style:italic}.pl-vibes{display:flex;flex-wrap:wrap;gap:.35rem}.pl-vibe-chip{background:var(--gold-soft);color:var(--gold);border:1px solid color-mix(in srgb,var(--gold) 35%,transparent);border-radius:20px;padding:.2rem .65rem;font-size:.75rem;font-weight:600;text-transform:capitalize}.pl-songs{padding:.5rem 0}.pl-songs-header{display:grid;grid-template-columns:32px 1fr auto;gap:.5rem;align-items:center;padding:.35rem 1.25rem;font-size:.7rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--color-divider)}.pl-song{display:grid;grid-template-columns:32px 1fr auto;gap:.5rem;align-items:center;padding:.65rem 1.25rem;cursor:pointer;transition:background .12s;border-bottom:1px solid var(--color-divider);flex-wrap:wrap}.pl-song:hover{background:var(--color-surface-hover)}.pl-song.expanded{background:var(--color-surface-alt)}.pl-song-track{font-size:.75rem;color:var(--color-text-muted);font-weight:600;text-align:center}.pl-song-info{display:flex;flex-direction:column;min-width:0}.pl-song-title{font-size:.88rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pl-song-artist{font-size:.78rem;color:var(--color-text-muted)}.pl-song-right{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}.pl-song-genre{font-size:.7rem;color:var(--brand);background:var(--brand-soft);border-radius:10px;padding:.15rem .5rem;white-space:nowrap;font-weight:600}.energy-bar{display:flex;gap:3px;align-items:center}.energy-dot{width:7px;height:7px;border-radius:50%;display:inline-block;transition:background .15s}.pl-song-why{grid-column:1 / -1;font-size:.8rem;color:var(--color-text-muted);font-style:italic;padding:.4rem 0 .15rem 32px;display:flex;gap:.4rem;align-items:flex-start}.pl-why-icon{flex-shrink:0}.pl-tip{text-align:center;font-size:.75rem;color:var(--color-text-muted);padding:.75rem 1.25rem 1rem;margin:0}.pl-spotify-loading{display:flex;flex-direction:column;gap:.5rem;padding:.85rem 1.25rem;border-top:1px solid var(--color-divider)}.pl-spotify-loading-label{font-size:.8rem;color:var(--color-text-muted);margin:0}.pl-spotify-bar{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:.85rem 1.25rem;border-top:1px solid var(--color-divider)}.btn-create-spotify{display:flex;align-items:center;gap:.5rem;background:#1db954;color:#fff;border:none;border-radius:var(--radius-md);padding:.55rem 1.15rem;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-create-spotify:hover:not(:disabled){background:#17a349}.btn-create-spotify:disabled{opacity:.65;cursor:not-allowed}.pl-spotify-error{font-size:.78rem;color:var(--color-danger-500);margin:0}.pl-spotify-result{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;border-top:1px solid var(--color-divider);background:var(--felt-soft);flex-wrap:wrap}.pl-spotify-result-check{font-size:1.1rem;color:#1db954;flex-shrink:0}.pl-spotify-result-name{font-size:.85rem;font-weight:600;color:var(--color-text);margin:0 0 .1rem}.pl-spotify-result-meta{font-size:.75rem;color:var(--color-text-muted);margin:0}.pl-spotify-result-hint{font-size:.75rem;color:var(--color-text-muted);margin:.2rem 0 0}.btn-open-spotify{display:flex;align-items:center;gap:.4rem;background:#1db954;color:#fff;border-radius:var(--radius-md);padding:.4rem .9rem;font-size:.82rem;font-weight:600;text-decoration:none;margin-left:auto;white-space:nowrap;transition:background .15s}.btn-open-spotify:hover{background:#17a349;color:#fff;text-decoration:none}.gd-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:900;animation:gd-fade-in .2s ease}@keyframes gd-fade-in{0%{opacity:0}to{opacity:1}}.gd-drawer{position:fixed;top:0;right:0;width:380px;max-width:100vw;height:100vh;background:var(--color-surface);box-shadow:-8px 0 32px #0003;z-index:901;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;animation:gd-slide-in .25s ease}@keyframes gd-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.gd-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.1rem;color:var(--color-gray);cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius-sm)}.gd-close:hover{background:#f0e9db}.gd-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 0;color:var(--color-gray)}.gd-spinner{width:32px;height:32px;border:3px solid #e8dfcf;border-top-color:var(--color-primary-500);border-radius:50%;animation:gd-spin .7s linear infinite}@keyframes gd-spin{to{transform:rotate(360deg)}}.gd-header{display:flex;gap:1rem;align-items:flex-start;padding-top:1.5rem}.gd-image{width:90px;height:90px;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0;box-shadow:var(--shadow-md)}.gd-image-placeholder{width:90px;height:90px;border-radius:var(--radius-md);background:linear-gradient(135deg,#c9821f,#8a5410);display:flex;align-items:center;justify-content:center;font-size:2rem;flex-shrink:0}.gd-header-info{flex:1;min-width:0}.gd-title{font-size:1.1rem;font-weight:700;color:var(--color-text);margin:0 0 .25rem;line-height:1.3}.gd-year{font-size:.8rem;color:var(--color-gray);margin:0 0 .2rem}.gd-designers{font-size:.78rem;color:var(--color-gray);margin:0}.gd-stats{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem;background:#f8f4ea;border-radius:var(--radius-md)}.gd-stat{display:flex;flex-direction:column;align-items:center;flex:1;min-width:70px;gap:.1rem}.gd-stat-val{font-size:.95rem;font-weight:700;color:var(--color-text)}.gd-stat-key{font-size:.65rem;color:var(--color-gray);text-transform:uppercase;letter-spacing:.04em}.gd-stat-sub{font-size:.6rem;color:var(--color-gray)}.gd-stat-personal .gd-stat-val{color:#c9821f}.gd-section{display:flex;flex-direction:column;gap:.4rem}.gd-section-label{font-size:.7rem;font-weight:700;color:var(--color-gray);text-transform:uppercase;letter-spacing:.06em;margin:0}.gd-weight{display:flex;align-items:center;gap:.75rem}.gd-weight-bar{display:flex;gap:3px}.gd-weight-seg{width:28px;height:6px;border-radius:3px;background:#e2d8c5}.gd-weight-seg.filled{background:#c9821f}.gd-weight-label{font-size:.78rem;color:var(--color-gray)}.gd-chips{display:flex;flex-wrap:wrap;gap:.3rem}.gd-chip{background:#c9821f18;color:#c9821f;border:1px solid #c9821f33;border-radius:20px;padding:.15rem .6rem;font-size:.73rem;font-weight:500}.gd-chip-cat{background:#c9821f18;color:#d97706;border-color:#c9821f33}.gd-description{font-size:.82rem;color:var(--color-text);line-height:1.6;margin:0}[data-theme=dark] .gd-drawer{background:#1a1410}[data-theme=dark] .gd-stats{background:#251e18}[data-theme=dark] .gd-close:hover{background:#332a21}[data-theme=dark] .gd-weight-seg{background:#3a2f25}@media (max-width: 480px){.gd-drawer{width:100vw}}.session-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem}.session-panel{background:var(--bg-card, #211a15);border:1px solid var(--border, rgba(255,255,255,.08));border-radius:1rem;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px #00000080}.session-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem 0;flex-shrink:0}.session-game-banner{display:flex;align-items:center;gap:.75rem;min-width:0}.session-game-thumb{width:48px;height:48px;border-radius:8px;object-fit:cover;flex-shrink:0}.session-game-initials{width:48px;height:48px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;color:#fff;letter-spacing:.5px}.session-game-info{min-width:0}.session-game-name{font-size:1rem;font-weight:700;color:var(--text-primary, #efe8da);margin:0 0 .25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.session-type-badge{display:inline-block;font-size:.7rem;background:#ffffff12;border-radius:20px;padding:2px 8px;color:var(--text-muted, #8a7a64)}.session-close{background:none;border:none;cursor:pointer;color:var(--text-muted, #8a7a64);padding:.25rem;border-radius:6px;transition:color .15s,background .15s;flex-shrink:0}.session-close:hover{color:var(--text-primary, #efe8da);background:#ffffff0f}.session-tabs{display:flex;border-bottom:1px solid var(--border, rgba(255,255,255,.08));padding:0 1rem;margin-top:.75rem;flex-shrink:0}.session-tab{background:none;border:none;cursor:pointer;padding:.6rem 1rem;font-size:.85rem;font-weight:500;color:var(--text-muted, #8a7a64);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;display:flex;align-items:center;gap:.4rem}.session-tab.active{color:var(--accent, #e8a33d);border-bottom-color:var(--accent, #e8a33d)}.session-tab-count{background:var(--accent, #e8a33d);color:#fff;border-radius:10px;font-size:.7rem;padding:1px 6px;font-weight:700}.session-body{overflow-y:auto;padding:1rem 1rem 0;display:flex;flex-direction:column;gap:.85rem;flex:1;min-height:0}.session-footer{padding:.75rem 1rem;border-top:1px solid var(--border, rgba(255,255,255,.08));flex-shrink:0;display:flex;flex-direction:column;gap:.5rem}.session-hint{display:flex;align-items:flex-start;gap:.6rem;background:#7c6ff714;border:1px solid rgba(124,111,247,.18);border-radius:8px;padding:.6rem .85rem}.session-hint-icon{font-size:1.1rem;flex-shrink:0;margin-top:1px}.session-hint p{margin:0;font-size:.8rem;color:var(--text-muted, #a99a85);line-height:1.4}.session-row-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.session-field{display:flex;flex-direction:column;gap:.3rem}.session-label{font-size:.78rem;font-weight:500;color:var(--text-muted, #8a7a64);display:flex;align-items:center;gap:.3rem}.session-section-title{font-size:.85rem;font-weight:600;color:var(--text-primary, #efe8da);display:flex;align-items:center;gap:.4rem}.session-input{background:var(--bg-input, rgba(255,255,255,.05));border:1px solid var(--border, rgba(255,255,255,.1));border-radius:6px;padding:.5rem .65rem;font-size:.85rem;color:var(--text-primary, #efe8da);width:100%;box-sizing:border-box;transition:border-color .15s}.session-input:focus{outline:none;border-color:var(--accent, #e8a33d)}.session-input option{background:#211a15}.session-textarea{background:var(--bg-input, rgba(255,255,255,.05));border:1px solid var(--border, rgba(255,255,255,.1));border-radius:6px;padding:.5rem .65rem;font-size:.85rem;color:var(--text-primary, #efe8da);width:100%;box-sizing:border-box;resize:vertical;font-family:inherit;transition:border-color .15s}.session-textarea:focus{outline:none;border-color:var(--accent, #e8a33d)}.session-coop-block{background:#ffffff08;border-radius:8px;padding:.75rem;display:flex;flex-direction:column;gap:.65rem}.session-coop-won{display:flex;align-items:center;justify-content:space-between}.session-coop-label{font-size:.85rem;font-weight:600;color:var(--text-primary, #efe8da)}.session-coop-toggle{border:none;border-radius:20px;padding:.4rem 1rem;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s}.session-coop-toggle.won{background:#43e97b26;color:#4fa87a;border:1px solid rgba(67,233,123,.3)}.session-coop-toggle.lost{background:#f5576c1a;color:#c65340;border:1px solid rgba(245,87,108,.25)}.session-players-header{display:flex;align-items:center;justify-content:space-between}.session-add-player{background:none;border:1px solid var(--border, rgba(255,255,255,.12));border-radius:6px;padding:.3rem .7rem;font-size:.75rem;color:var(--text-muted, #8a7a64);cursor:pointer;display:flex;align-items:center;gap:.25rem;transition:color .15s,border-color .15s}.session-add-player:hover{color:var(--accent, #e8a33d);border-color:var(--accent, #e8a33d)}.session-profile-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.6rem}.session-profile-chips-label{font-size:.72rem;color:var(--text-muted, #8a7a64);margin-right:.15rem}.session-profile-chip{display:flex;align-items:center;gap:.35rem;background:#ffffff0a;border:1px solid var(--border, rgba(255,255,255,.12));border-radius:20px;padding:.2rem .65rem .2rem .25rem;font-size:.78rem;color:var(--text-primary, #efe8da);cursor:pointer;transition:border-color .15s,background .15s}.session-profile-chip:hover{border-color:var(--accent, #e8a33d);background:#e8a33d14}.session-profile-chip-avatar{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:700;color:#fff}.session-players-list{display:flex;flex-direction:column;gap:.5rem}.session-player-form{background:#ffffff08;border-radius:8px;padding:.6rem;display:flex;flex-direction:column;gap:.5rem}.session-player-main{display:flex;gap:.5rem;align-items:center}.session-player-name-input{flex:2;min-width:0}.session-player-score-input{flex:1;min-width:60px}.session-winner-btn{background:none;border:1px solid var(--border, rgba(255,255,255,.1));border-radius:6px;padding:.4rem;cursor:pointer;color:var(--text-muted, #6b5c49);transition:all .15s;flex-shrink:0;display:flex;align-items:center}.session-winner-btn:hover{color:#f5c518;border-color:#f5c518}.session-winner-btn.active{color:#f5c518;border-color:#f5c518;background:#f5c5181a}.session-remove-player{background:none;border:none;cursor:pointer;color:var(--text-muted, #6b5c49);padding:.4rem;border-radius:6px;transition:color .15s;flex-shrink:0;display:flex;align-items:center}.session-remove-player:hover{color:#c65340}.session-player-extras{display:flex;gap:.5rem;flex-wrap:wrap}.session-extra-field{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:100px}.session-extra-label{font-size:.7rem;color:var(--text-muted, #7d6d58);font-weight:500}.session-extra-input{font-size:.8rem}.session-actions{display:flex;gap:.75rem;justify-content:flex-end;flex-shrink:0;margin-top:.25rem}.session-btn-cancel{background:none;border:1px solid var(--border, rgba(255,255,255,.12));border-radius:8px;padding:.55rem 1.2rem;font-size:.85rem;color:var(--text-muted, #8a7a64);cursor:pointer;transition:all .15s}.session-btn-cancel:hover{color:var(--text-primary, #efe8da);border-color:#ffffff40}.session-btn-submit{background:var(--accent, #e8a33d);border:none;border-radius:8px;padding:.55rem 1.4rem;font-size:.85rem;font-weight:600;color:#fff;cursor:pointer;transition:opacity .15s,transform .1s}.session-btn-submit:hover{opacity:.9}.session-btn-submit:active{transform:scale(.98)}.session-btn-submit:disabled{opacity:.5;cursor:not-allowed}.session-error{font-size:.8rem;color:#c65340;margin:0;text-align:center}.session-success{font-size:.85rem;color:#4fa87a;margin:0;text-align:center;font-weight:600}.session-history-list{display:flex;flex-direction:column;gap:.65rem}.session-loading,.session-empty{text-align:center;color:var(--text-muted, #8a7a64);font-size:.85rem;padding:2rem 1rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.session-item{background:#ffffff08;border:1px solid var(--border, rgba(255,255,255,.07));border-radius:8px;padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.session-item-header{display:flex;justify-content:space-between;align-items:center}.session-item-date{font-size:.78rem;color:var(--text-muted, #8a7a64);font-weight:500}.session-item-meta{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-muted, #7d6d58)}.session-item-dur,.session-item-players{display:flex;align-items:center;gap:.2rem}.session-item-del{background:none;border:none;cursor:pointer;color:var(--text-muted, #6b5c49);padding:.2rem;border-radius:4px;transition:color .15s;display:flex;align-items:center}.session-item-del:hover{color:#c65340}.session-item-players-list{display:flex;flex-direction:column;gap:.3rem}.session-player-row{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--text-secondary, #b8ab94)}.session-player-row.winner{color:var(--text-primary, #efe8da);font-weight:600}.session-trophy{color:#f5c518;flex-shrink:0}.session-player-name{flex:1;min-width:0}.session-player-score{font-size:.78rem;font-weight:600;color:var(--accent, #e8a33d);background:#7c6ff71a;border-radius:4px;padding:1px 6px}.session-item-notes{font-size:.75rem;color:var(--text-muted, #7d6d58);font-style:italic;margin:0;padding-top:.25rem;border-top:1px solid var(--border, rgba(255,255,255,.06))}.score-sheet-wrapper{border:1px solid var(--border, rgba(255,255,255,.1));border-radius:8px;overflow:hidden}.score-sheet-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.score-sheet-table{width:100%;border-collapse:collapse;font-size:.82rem;min-width:280px}.score-sheet-table th,.score-sheet-table td{padding:.5rem .6rem;border-bottom:1px solid var(--border, rgba(255,255,255,.07));vertical-align:middle}.score-sheet-table thead th{background:#ffffff0a;font-weight:600}.sheet-cat-col{text-align:left;min-width:140px;color:var(--text-muted, #a99a85);font-weight:500!important}.sheet-player-col{min-width:90px;text-align:center}.sheet-add-col{width:40px;text-align:center}.sheet-player-header{display:flex;align-items:center;gap:.25rem;justify-content:center}.sheet-player-name{background:none;border:none;border-bottom:1px solid var(--border, rgba(255,255,255,.15));color:var(--text-primary, #efe8da);font-size:.82rem;font-weight:600;text-align:center;width:70px;padding:.15rem .25rem;outline:none}.sheet-player-name:focus{border-bottom-color:var(--accent, #e8a33d)}.sheet-remove-player{background:none;border:none;cursor:pointer;color:var(--text-muted, #6b5c49);padding:1px;display:flex;align-items:center;transition:color .15s}.sheet-remove-player:hover{color:#c65340}.sheet-add-player{background:none;border:1px dashed var(--border, rgba(255,255,255,.2));border-radius:6px;cursor:pointer;color:var(--text-muted, #7d6d58);padding:.3rem;display:flex;align-items:center;justify-content:center;transition:color .15s,border-color .15s}.sheet-add-player:hover{color:var(--accent, #e8a33d);border-color:var(--accent, #e8a33d)}.sheet-cat-label{color:var(--text-secondary, #cfc3ae);font-size:.8rem}.sheet-cat-hint{font-size:.68rem;color:var(--text-muted, #7d6d58)}.sheet-neg-badge{font-size:.7rem;color:#c65340;font-weight:700;margin-left:3px}.row-negative .sheet-cat-label{color:#c6534099}.sheet-value-cell{text-align:center}.sheet-value-input{width:70px;background:var(--bg-input, rgba(255,255,255,.05));border:1px solid var(--border, rgba(255,255,255,.1));border-radius:5px;padding:.3rem .4rem;font-size:.82rem;color:var(--text-primary, #efe8da);text-align:center;outline:none;transition:border-color .15s}.sheet-value-input:focus{border-color:var(--accent, #e8a33d)}.sheet-total-row td{background:#7c6ff714;border-top:2px solid rgba(124,111,247,.2);border-bottom:none}.sheet-total-label{font-weight:700;font-size:.78rem;color:var(--text-muted, #a99a85);letter-spacing:.05em}.sheet-total-value{text-align:center;font-weight:700;font-size:.88rem;color:var(--text-primary, #efe8da)}.sheet-total-value.sheet-winner{color:#f5c518;display:flex;align-items:center;justify-content:center;gap:.25rem}.sheet-winner-icon{color:#f5c518}@media (max-width: 480px){.session-row-2{grid-template-columns:1fr}.session-game-name{max-width:180px}.session-panel{border-radius:.75rem}}.lib-page{max-width:1400px;margin:0 auto;padding:2rem 1.5rem 4rem;min-height:100vh}.lib-hero{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem;margin-bottom:2.25rem;padding:2rem 2.5rem;background-color:#2c1f12;background-image:radial-gradient(60rem 18rem at 22% -30%,rgba(255,214,140,.16),transparent 60%),var(--grain),var(--wood-streaks),var(--wood-dark);border:1px solid rgba(0,0,0,.55);border-radius:var(--radius-xl);color:#f3ece1;box-shadow:inset 0 1px #ffdca01a,0 14px 30px -12px #00000080;position:relative;overflow:hidden}.lib-hero-text{display:flex;flex-direction:column;gap:.25rem}.lib-title{font-family:var(--font-display);font-size:2.3rem;font-weight:600;font-style:italic;margin:0;letter-spacing:-.01em;color:#f8f1e4;text-shadow:0 2px 10px rgba(0,0,0,.45)}.lib-subtitle{font-size:.95rem;color:#f3ece194;margin:0}.lib-tokens{display:flex;align-items:center;gap:1.1rem}.lib-token{width:82px;height:82px;border-radius:50%;background:var(--grain),radial-gradient(circle at 34% 28%,#f8eed6,#ecd9b0 62%,#dcc493);box-shadow:inset 0 0 0 3px #f7ecd4e6,inset 0 0 0 4.5px #5a3e1e59,inset 0 -3px 6px #5a3e1e2e,0 5px 12px #00000073;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05rem;transform:rotate(-2deg)}.lib-token:nth-child(2){transform:rotate(1.5deg)}.lib-token:nth-child(3){transform:rotate(-1deg)}.lib-token-number{font-family:var(--font-display);font-size:1.45rem;font-weight:600;color:#3b2a16;line-height:1}.lib-token-label{font-size:.5rem;font-weight:700;color:#7a5c33;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.lib-hero-actions{display:flex;gap:.6rem;margin-top:.85rem;flex-wrap:wrap}.lib-btn-add{background:var(--gradient-primary);color:#fdf6e8;border:none;border-radius:var(--radius-md);padding:.5rem 1.1rem;font-size:.88rem;font-weight:700;cursor:pointer;box-shadow:0 3px 12px #0006;transition:filter .15s,transform .15s}.lib-btn-add:hover{filter:brightness(1.1);background:var(--gradient-primary);transform:translateY(-1px)}.lib-btn-upload{background:transparent;color:#f3ece1b3;border:1px solid rgba(243,236,225,.25);border-radius:var(--radius-md);padding:.5rem 1.1rem;font-size:.88rem;font-weight:500;cursor:pointer;transition:color .15s,border-color .15s}.lib-btn-upload:hover{color:#f8f1e4;border-color:#f3ece18c;background:transparent;box-shadow:none;transform:none}.lib-controls{display:flex;align-items:center;gap:1rem;margin-bottom:1.75rem;flex-wrap:wrap}.lib-search-wrap{flex:1;min-width:240px;position:relative;display:flex;align-items:center}.lib-search-icon{position:absolute;left:.85rem;color:var(--color-text-muted);pointer-events:none}.lib-search{width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.65rem 2.5rem;font-size:.95rem;color:var(--color-text);transition:border-color .2s,box-shadow .2s}.lib-search:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.lib-search-clear{position:absolute;right:.75rem;background:none;border:none;color:var(--color-text-muted);font-size:.8rem;cursor:pointer;padding:.2rem .3rem}.lib-search-clear:hover{color:var(--color-text);background:none;box-shadow:none;transform:none}.lib-controls-right{display:flex;align-items:center;gap:.75rem}.lib-sort{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.6rem .85rem;font-size:.88rem;color:var(--color-text-muted);cursor:pointer}.lib-sort:focus{outline:none;border-color:var(--brand)}.lib-view-toggle{display:flex;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.view-btn{background:none;border:none;padding:.55rem .8rem;cursor:pointer;font-size:1rem;color:var(--color-text-muted);transition:background .15s,color .15s;border-radius:0}.view-btn:hover{background:var(--color-surface-hover);color:var(--color-text);box-shadow:none;transform:none}.view-btn.active{background:var(--color-surface-hover);color:var(--brand)}.lib-results-info{font-size:.85rem;color:var(--color-text-muted);margin-bottom:1rem}.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));column-gap:1.4rem;row-gap:3rem;padding-top:.5rem}.lib-box{cursor:pointer;min-width:0}.lib-box-art{position:relative;aspect-ratio:1 / 1;z-index:0}.lib-box-art:after{content:"";position:absolute;left:-.75rem;right:-.75rem;bottom:-12px;height:12px;z-index:-1;background-image:var(--grain),var(--plank);border-radius:1px;box-shadow:0 9px 14px -4px #0000008c}.lib-box-lid{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:5px;overflow:hidden;background:var(--color-surface-alt);box-shadow:0 14px 20px -10px #000000a6,0 4px 8px -2px #00000073;transition:transform .25s var(--easing-ease-out),box-shadow .25s var(--easing-ease-out)}.lib-box:hover .lib-box-lid,.lib-box:focus-within .lib-box-lid{transform:translateY(-7px);box-shadow:0 26px 32px -14px #000000b3,0 8px 14px -4px #00000080}[data-theme=light] .lib-box-lid{box-shadow:0 12px 18px -10px #3c2a1466,0 3px 6px -2px #3c2a1447}[data-theme=light] .lib-box:hover .lib-box-lid,[data-theme=light] .lib-box:focus-within .lib-box-lid{box-shadow:0 24px 30px -14px #3c2a1473,0 8px 12px -4px #3c2a144d}.lib-cover-img{width:100%;height:100%;object-fit:cover;display:block}.lib-box-sheen{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 1px #fff6e138,inset 1px 0 #fff6e112,inset -1px 0 #0000002e,inset 0 -3px 7px #0000004d;border-radius:5px}.lib-cover-fallback{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:1.1rem;background-image:var(--grain),var(--kraft);text-align:center}.lib-cover-fallback:before{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border:1.5px solid rgba(59,42,22,.5);border-radius:2px;pointer-events:none}.lib-cover-fallback:after{content:"";position:absolute;bottom:16px;left:50%;transform:translate(-50%);width:15px;height:15px;opacity:.55;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='%233b2a16'><circle cx='32' cy='16' r='9.5'/><rect x='7.5' y='24.5' width='49' height='12.5' rx='6.25'/><ellipse cx='32' cy='31' rx='11' ry='10'/><path d='M32 34 C24 38 18.5 47 16.5 54 c-0.9 3 1.4 5.5 4.4 5.5 h6.8 l4.3-8.2 4.3 8.2 h6.8 c3 0 5.3-2.5 4.4-5.5 C45.5 47 40 38 32 34 Z'/></svg>") center / contain no-repeat}.lib-fallback-name{font-family:var(--font-display);font-size:1rem;font-weight:600;line-height:1.3;color:var(--kraft-ink);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.lib-fallback-initials{display:none;font-family:var(--font-display);font-weight:600;color:var(--kraft-ink)}.lib-cover-tag{position:absolute;top:.5rem;left:.5rem;font-size:.62rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#fdeccb;background:#140e09cc;border:1px solid rgba(232,163,61,.45);border-radius:999px;padding:.16rem .5rem}.lib-box-actions{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:.4rem;padding:2.2rem .5rem .55rem;background:linear-gradient(to top,rgba(14,9,5,.88) 20%,rgba(14,9,5,.4) 65%,transparent);opacity:0;transition:opacity .18s ease}.lib-box:hover .lib-box-actions,.lib-box:focus-within .lib-box-actions{opacity:1}@media (hover: none){.lib-box-actions{opacity:1;padding-top:1.6rem}}.lib-act{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:#f3ece129;color:#f3ece1;cursor:pointer;position:relative;transition:background .15s,color .15s,transform .15s;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.lib-act:hover{background:#e8a33de6;color:#26190b;transform:translateY(-2px);box-shadow:none}.lib-act-cancel{background:#e0644ad9;color:#fff;font-size:.8rem}.lib-act-danger:hover{background:#e0644ae6;color:#fff}.lib-act-gold{background:var(--gradient-gold);color:#2c1f08;box-shadow:0 2px 8px #00000059}.lib-act-gold:hover{background:var(--gradient-gold);filter:brightness(1.12);color:#2c1f08}.lib-act-pro{position:absolute;top:-7px;right:-9px;font-size:.48rem;font-weight:800;letter-spacing:.06em;line-height:1;padding:2px 4px;border-radius:5px;background:#14100a;color:#e5c06b;border:1px solid rgba(229,192,107,.5)}.lib-box-label{padding:1.4rem .15rem 0}.lib-box-title{font-size:.9rem;font-weight:600;color:var(--color-text);margin:0 0 .2rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lib-box-expands{font-size:.74rem;color:var(--color-text-muted);font-style:italic;margin:0 0 .2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-box-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:.6rem;font-size:.76rem;margin:0;color:var(--color-text-muted)}.meta-bgg{color:#b99a5f;font-weight:600;letter-spacing:.01em}[data-theme=light] .meta-bgg{color:#8a6b34}.meta-mine{color:var(--felt);font-weight:600}.meta-plays{background:none;border:none;padding:0;font-size:.76rem;font-weight:500;color:var(--color-text-muted);cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}.meta-plays:hover{color:var(--color-text);background:none;box-shadow:none;transform:none}.lib-rating-row{padding-top:.35rem}.star-rater{display:flex;gap:1px}.star-btn{background:none;border:none;color:var(--color-gray-300);font-size:1.1rem;cursor:pointer;padding:0;line-height:1;transition:color .1s,transform .1s}.star-btn.filled{color:var(--brand)}.star-btn:hover{transform:scale(1.2);background:none;box-shadow:none}.lib-list{display:flex;flex-direction:column;gap:.6rem}.lib-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;align-items:center;gap:1rem;padding:.6rem 1rem .6rem .6rem;transition:box-shadow .18s,transform .18s,border-color .18s;position:relative;overflow:hidden;cursor:pointer}.lib-row:hover{box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--brand) 40%,var(--color-border));transform:translate(3px)}.lib-row-cover{width:52px;height:52px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;background:var(--color-surface-alt);box-shadow:0 2px 6px #0000004d}.lib-row-cover .lib-cover-img{width:100%;height:100%;object-fit:cover}.lib-row-cover .lib-cover-fallback{padding:.2rem}.lib-row-cover .lib-cover-fallback:before{top:4px;right:4px;bottom:4px;left:4px;border-width:1px}.lib-row-cover .lib-cover-fallback:after{display:none}.lib-row-cover .lib-fallback-name{display:none}.lib-row-cover .lib-fallback-initials{display:block;font-size:.9rem}.lib-row-info{flex:1;display:flex;flex-direction:column;gap:.3rem;min-width:0}.lib-row-name{font-size:.95rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-row-pills,.lib-row-actions{display:flex;gap:.4rem;flex-shrink:0}.pill{font-size:.73rem;font-weight:600;border-radius:20px;padding:.2rem .55rem;white-space:nowrap;display:inline-flex;align-items:center;gap:.25rem}.pill-bgg{background:transparent;color:#b99a5f;border:1px solid color-mix(in srgb,#b99a5f 35%,transparent)}[data-theme=light] .pill-bgg{color:#8a6b34;border-color:color-mix(in srgb,#8a6b34 40%,transparent)}.pill-personal{background:transparent;color:var(--felt);border:1px solid color-mix(in srgb,var(--felt) 35%,transparent)}.pill-sessions{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border);font-size:.7rem;font-weight:600;border-radius:20px;padding:.2rem .55rem;white-space:nowrap;cursor:pointer;transition:color .15s}.pill-sessions:hover{color:var(--color-text);background:transparent;box-shadow:none;transform:none}.lib-row-sessions{font-size:.72rem;color:var(--color-text-muted);font-weight:500;margin-left:.25rem}.lib-btn{border:none;border-radius:var(--radius-sm);font-size:.78rem;font-weight:600;padding:.35rem .6rem;cursor:pointer;background:transparent;color:var(--color-text-muted);transition:background .15s,color .15s}.lib-btn:hover{transform:none;box-shadow:none;background:var(--color-surface-hover);color:var(--color-text)}.lib-btn-cancel{color:var(--color-danger-500)}.lib-btn-remove:hover{background:color-mix(in srgb,var(--color-danger-500) 14%,transparent);color:var(--color-danger-500)}.lib-btn-playlist{color:var(--gold);position:relative}.lib-btn-playlist:hover{background:var(--gold-soft);color:var(--gold)}.lib-btn-locked:after{content:"PRO";position:absolute;top:-6px;right:-6px;font-size:.48rem;font-weight:800;letter-spacing:.06em;line-height:1;padding:2px 4px;border-radius:5px;background:var(--gradient-gold);color:#2c1f08}.lib-btn-session:hover{background:var(--felt-soft);color:var(--felt)}.lib-empty{text-align:center;padding:5rem 2rem;color:var(--color-text-muted);display:flex;flex-direction:column;align-items:center;gap:.5rem}.lib-empty-icon{margin-bottom:.5rem;animation:float 3s ease-in-out infinite}.lib-empty h3{font-family:var(--font-display);font-size:1.3rem;color:var(--color-text);margin:0}.lib-empty p{font-size:.9rem;margin:0;max-width:340px}.nov-locked .lib-btn-add{margin-top:.75rem}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.lib-error{text-align:center;padding:4rem;font-size:1.1rem;color:var(--color-danger-500)}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.sk{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-gray-100) 25%,var(--color-gray-200) 50%,var(--color-gray-100) 75%);background-size:600px 100%;animation:shimmer 1.4s ease-in-out infinite}.sk-title{height:2rem;width:200px;margin-bottom:.5rem}.sk-subtitle{height:1rem;width:280px}.sk-stat{height:3.5rem;width:100px;border-radius:var(--radius-md)}.sk-search{height:2.75rem;flex:1;border-radius:var(--radius-lg)}.sk-lid{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:5px}.sk-card{height:220px;border-radius:var(--radius-lg)}.sk-line{height:.85rem;width:90%;border-radius:4px}.sk-line.short{width:55%;margin-top:.4rem}.lib-empty-actions{display:flex;gap:.75rem;margin-top:1rem;flex-wrap:wrap;justify-content:center}.lib-btn-add-lg{background:var(--btn-bg);color:var(--btn-fg);border:none;border-radius:var(--radius-lg);padding:.7rem 1.5rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .15s}.lib-btn-add-lg:hover{opacity:.9;background:var(--btn-bg)}.lib-btn-upload-lg{background:var(--color-surface);color:var(--color-text);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);padding:.7rem 1.5rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:border-color .15s}.lib-btn-upload-lg:hover{border-color:var(--brand);background:var(--color-surface)}.add-game-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0b088c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.add-game-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:520px;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-2xl);overflow:hidden}.add-game-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid var(--color-divider)}.add-game-header h3{margin:0;font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--color-text)}.add-game-close{background:none;border:none;font-size:1rem;color:var(--color-text-muted);cursor:pointer;padding:.25rem .4rem;border-radius:var(--radius-sm);transition:background .15s,color .15s}.add-game-close:hover{background:var(--color-surface-hover);color:var(--color-text);box-shadow:none;transform:none}.add-game-search-wrap{position:relative;display:flex;align-items:center;padding:.75rem 1.5rem;border-bottom:1px solid var(--color-divider)}.add-game-search-icon{position:absolute;left:2.3rem;color:var(--color-text-muted);pointer-events:none}.add-game-search{width:100%;border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:.6rem 2.2rem .6rem 2.4rem;font-size:.95rem;color:var(--color-text);background:var(--color-surface-alt);transition:border-color .2s,box-shadow .2s,background .2s}.add-game-search:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);background:var(--color-surface)}.add-game-spinner{position:absolute;right:2.3rem;font-size:1rem;color:var(--color-text-muted);animation:spin .8s linear infinite}.add-game-results{overflow-y:auto;flex:1;padding:.5rem 0}.add-game-hint{text-align:center;color:var(--color-text-muted);font-size:.88rem;padding:2rem 1.5rem;margin:0}.add-game-row{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.5rem;gap:1rem;transition:background .12s}.add-game-row:hover{background:var(--color-surface-hover)}.add-game-info{display:flex;align-items:baseline;gap:.5rem;min-width:0;flex:1}.add-game-name{font-size:.9rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.add-game-year{font-size:.78rem;color:var(--color-text-muted);flex-shrink:0}.add-game-btn{background:var(--btn-bg);color:var(--btn-fg);border:none;border-radius:var(--radius-sm);padding:.4rem .85rem;font-size:.82rem;font-weight:600;cursor:pointer;flex-shrink:0;transition:opacity .15s,background .15s}.add-game-btn:hover:not(:disabled){opacity:.9;background:var(--btn-bg)}.add-game-btn:disabled{cursor:default}.add-game-btn.added{background:var(--felt-soft);color:var(--felt)}.lib-tabs{display:flex;gap:.5rem;margin:0 0 1.5rem;border-bottom:1px solid var(--color-border)}.lib-tab{display:flex;align-items:center;gap:.45rem;padding:.7rem 1.1rem;background:none;border:none;border-bottom:2px solid transparent;border-radius:0;margin-bottom:-1px;color:var(--color-text-muted);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:color .15s,border-color .15s}.lib-tab:hover{color:var(--color-text);background:none;box-shadow:none;transform:none}.lib-tab.active{color:var(--color-text);border-bottom-color:var(--brand)}.lib-tab-count{font-size:.72rem;font-weight:600;padding:.1rem .45rem;border-radius:999px;background:var(--color-surface-alt);color:var(--color-text-muted)}.lib-tab-badge{font-size:.68rem;font-weight:700;padding:.12rem .45rem;border-radius:999px;background:var(--color-danger-500);color:#fff}.exp-summary{margin:0 0 1.25rem;font-size:.95rem;color:var(--color-text-muted)}.exp-summary strong{color:var(--brand)}.exp-group{margin-bottom:2rem}.exp-group-head{display:flex;align-items:center;gap:.8rem;margin-bottom:.85rem;cursor:pointer}.exp-base-thumb{width:52px;height:52px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.95rem;box-shadow:0 2px 6px #0000004d}.exp-base-name{margin:0;font-family:var(--font-display);font-size:1.1rem;font-weight:600}.exp-base-meta{margin:.1rem 0 0;font-size:.82rem;color:var(--color-text-muted)}.exp-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem}.exp-card{display:flex;align-items:center;gap:.7rem;padding:.65rem .75rem;text-align:left;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;transition:border-color .15s,transform .1s,box-shadow .15s}.exp-card:hover{border-color:var(--brand);transform:translateY(-1px);background:var(--color-surface);box-shadow:var(--shadow-sm)}.exp-card.owned{opacity:.6}.exp-thumb{width:44px;height:44px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.8rem}.exp-body{display:flex;flex-direction:column;min-width:0;flex:1}.exp-name{font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.exp-meta{font-size:.76rem;color:var(--color-text-muted)}.exp-badge{flex-shrink:0;font-size:.7rem;font-weight:700;padding:.2rem .5rem;border-radius:999px;background:var(--felt-soft);color:var(--felt);border:1px solid color-mix(in srgb,var(--felt) 30%,transparent)}.exp-badge.owned{background:var(--color-surface-alt);color:var(--color-text-muted);border-color:transparent}@media (max-width: 768px){.lib-page{padding:1rem .75rem 4rem}.lib-hero{flex-direction:column;align-items:stretch;padding:1.25rem;gap:1rem}.lib-title{font-size:1.7rem}.lib-tokens{justify-content:center;gap:.9rem}.lib-token{width:72px;height:72px}.lib-token-number{font-size:1.25rem}.lib-hero-actions{gap:.5rem}.lib-btn-add,.lib-btn-upload{font-size:.82rem;padding:.45rem .85rem}.lib-controls{flex-direction:column;align-items:stretch;flex-wrap:nowrap}.lib-controls-right{justify-content:space-between;min-width:0}.lib-sort{flex:1 1 auto;min-width:0}.lib-view-toggle{flex:0 0 auto}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));column-gap:1rem;row-gap:2.5rem}.lib-box-art:after{left:-.55rem;right:-.55rem;bottom:-10px;height:10px}.lib-tabs{gap:.1rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.lib-tabs::-webkit-scrollbar{display:none}.lib-tab{flex:0 0 auto;padding:.7rem .4rem;font-size:.72rem;letter-spacing:0}.lib-search-wrap{min-width:0;width:100%}.lib-search{min-width:0}.lib-btn-add,.lib-btn-upload{min-height:44px}.lib-act{width:40px;height:40px}}@media (max-width: 480px){.lib-grid{grid-template-columns:1fr 1fr}.lib-token{width:64px;height:64px}}.layout:has(.rec-layout) .layout-main{padding:0}.layout:has(.rec-layout) .layout-footer{display:none}.rec-layout{display:flex;height:calc(100vh - 60px);overflow:hidden}.rec-history{width:210px;min-width:180px;background:var(--color-surface);border-right:1px solid var(--color-border);padding:.85rem .65rem;display:flex;flex-direction:column;gap:.6rem;overflow-y:auto;flex-shrink:0}.new-chat-btn{display:flex;align-items:center;gap:.4rem;background:var(--gradient-primary);border:none;border-radius:var(--radius-md);color:#fdf6e8;font-size:.82rem;font-weight:600;padding:.55rem .75rem;cursor:pointer;transition:filter .15s;width:100%}.new-chat-btn:hover{filter:brightness(1.1);background:var(--gradient-primary);box-shadow:none;transform:none}.new-chat-plus{font-size:1rem;line-height:1}.history-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin:.25rem 0 .1rem .1rem}.history-empty{font-size:.78rem;color:var(--color-text-muted);font-style:italic;text-align:center;margin-top:.5rem}.history-list{display:flex;flex-direction:column;gap:.15rem}.history-item{display:flex;align-items:flex-start;gap:.5rem;padding:.55rem .5rem;border-radius:var(--radius-md);cursor:pointer;transition:background .12s;border-left:2px solid transparent}.history-item:hover{background:var(--color-surface-hover)}.history-item.active{background:var(--brand-soft);border-left-color:var(--brand)}.history-item-icon{font-size:.95rem;line-height:1;flex-shrink:0;margin-top:.1rem;color:var(--color-text-muted)}.history-item-body{flex:1;min-width:0}.history-item-title{font-size:.78rem;font-weight:600;color:var(--color-text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}.history-item-meta{font-size:.65rem;color:var(--color-text-muted);margin:.12rem 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-item-delete{display:none;background:none;border:none;color:var(--color-text-muted);font-size:.68rem;cursor:pointer;padding:.15rem .3rem;border-radius:4px;flex-shrink:0;line-height:1;transition:color .12s,background .12s}.history-item:hover .history-item-delete{display:block}.history-item-delete:hover{color:var(--color-danger-500);background:color-mix(in srgb,var(--color-danger-500) 12%,transparent);box-shadow:none;transform:none}.rec-sidebar{width:280px;min-width:240px;background:var(--color-surface);border-right:1px solid var(--color-border);padding:1.5rem 1rem;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto}.sidebar-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600;margin:0;color:var(--color-text);display:flex;align-items:center;gap:.4rem}.sidebar-section{display:flex;flex-direction:column;gap:.5rem}.sidebar-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.sidebar-select{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);padding:.5rem .75rem;font-size:.9rem;cursor:pointer;width:100%}.sidebar-select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.sidebar-loading,.sidebar-empty{font-size:.85rem;color:var(--color-text-muted);font-style:italic}.player-stats-card{display:flex;gap:.75rem;background:var(--color-surface-alt);border:1px solid var(--color-divider);border-radius:var(--radius-md);padding:.75rem 1rem}.stat{display:flex;flex-direction:column;align-items:center;flex:1}.stat-value{font-family:var(--font-display);font-size:1.4rem;font-weight:600;color:var(--brand)}.stat-label{font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.mode-buttons{display:flex;flex-direction:column;gap:.4rem}.mode-btn{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);padding:.45rem .75rem;font-size:.85rem;cursor:pointer;text-align:left;transition:background .15s,border-color .15s}.mode-btn:hover{background:var(--color-surface-hover);box-shadow:none;transform:none}.mode-btn.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand);font-weight:600}.clear-btn{margin-top:auto;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);padding:.5rem;font-size:.85rem;cursor:pointer;transition:border-color .15s,color .15s;justify-content:center}.clear-btn:hover{border-color:var(--color-danger-500);color:var(--color-danger-500);background:transparent;box-shadow:none;transform:none}.rec-chat{flex:1;display:flex;flex-direction:column;overflow:hidden;background-color:#1c3727;background-image:var(--grain),var(--felt-table)}.chat-messages{flex:1;overflow-y:auto;padding:1.5rem 1.5rem .5rem;display:flex;flex-direction:column;gap:1rem}.chat-empty{margin:auto;text-align:center;max-width:min(480px,100%);padding:2rem 1rem}.chat-empty-icon{margin-bottom:.5rem;color:#f8f1e4bf}.chat-empty h3{font-family:var(--font-display);font-size:1.6rem;font-weight:600;font-style:italic;color:#f8f1e4;margin:0 0 .5rem;text-shadow:0 2px 8px rgba(0,0,0,.35)}.chat-empty p{color:#f3ece1a6;margin:0 0 1.25rem}.suggestion-chips{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.suggestion-chip{background:linear-gradient(175deg,#fdf8ec,#f3e9d2);border:none;border-radius:8px;color:#3b2c18;padding:.5rem .9rem;font-size:.82rem;font-weight:600;max-width:100%;white-space:normal;cursor:pointer;box-shadow:0 3px 8px #00000059,inset 0 0 0 1px #3b2a161f;transition:transform .15s,box-shadow .15s}.suggestion-chip:nth-child(odd){transform:rotate(-.6deg)}.suggestion-chip:nth-child(2n){transform:rotate(.5deg)}.suggestion-chip:hover{border-color:transparent;color:#3b2c18;background:linear-gradient(175deg,#fffdf5,#f8f0dc);transform:translateY(-3px) rotate(0);box-shadow:0 8px 16px #0006,inset 0 0 0 1px #3b2a161f}.daily-card{display:flex;gap:.9rem;align-items:stretch;text-align:left;width:min(460px,100%);margin:0 auto 1.5rem;padding:.85rem;background:linear-gradient(175deg,#fdf8ec,#f3e9d2);border-radius:12px;box-shadow:0 6px 18px #0006,inset 0 0 0 1px #3b2a161f}.daily-cover{flex:0 0 88px;width:88px;height:88px;border-radius:8px;overflow:hidden;background:#e5d8ba;box-shadow:inset 0 0 0 1px #3b2a1626}.daily-cover-img{width:100%;height:100%;object-fit:cover;display:block}.daily-cover-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:1.5rem;color:#7a5a1e}.daily-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.daily-eyebrow{display:inline-flex;align-items:center;gap:.3rem;margin:0 0 .15rem;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#a06d18}.daily-game-name{margin:0 0 .25rem;font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:#2f2110;line-height:1.15}.daily-year{font-weight:500;color:#6b5836}.daily-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;margin-bottom:.35rem}.daily-rating{display:inline-flex;align-items:center;gap:.2rem;font-size:.82rem;font-weight:700;color:#8a5410}.daily-mech{font-size:.72rem;font-weight:600;color:#3b2c18;background:#3b2a161a;padding:.12rem .5rem;border-radius:999px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-reason{margin:0 0 .6rem;font-size:.82rem;line-height:1.35;color:#4a3925}.daily-ask{align-self:flex-start;margin-top:auto;background:var(--gradient-primary);color:#fff;border:none;border-radius:8px;padding:.4rem .8rem;font-size:.8rem;font-weight:600;cursor:pointer;white-space:normal;transition:transform .15s,box-shadow .15s}.daily-ask:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000004d}.daily-locked{flex-direction:column;align-items:center;text-align:center;gap:.5rem;padding:1.4rem 1.2rem}.daily-locked-icon{color:#a06d18;margin-bottom:.1rem}.daily-locked-body{width:100%}.daily-locked-title{margin:.1rem 0 .35rem;font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:#2f2110}.daily-locked-text{margin:0 0 .9rem;font-size:.85rem;line-height:1.4;color:#4a3925}.daily-cta{background:var(--gradient-primary);color:#fff;border:none;border-radius:8px;padding:.5rem 1.1rem;font-size:.85rem;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s}.daily-cta:hover{transform:translateY(-1px);box-shadow:0 5px 14px #00000059}.daily-skeleton{align-items:center}.daily-skeleton .daily-cover,.daily-skeleton .sk,.daily-lines .sk-line{background:linear-gradient(90deg,#e9dcc0 25%,#f3e9d2,#e9dcc0 75%);background-size:200% 100%;animation:daily-shimmer 1.3s ease-in-out infinite}.daily-lines{flex:1 1 auto;display:flex;flex-direction:column;gap:.5rem}.daily-lines .sk-line{height:.9rem;border-radius:5px}.daily-lines .sk-line.short{width:55%}@keyframes daily-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.message{display:flex;gap:.75rem;max-width:780px;width:100%}.user-message{align-self:flex-end;flex-direction:row-reverse}.assistant-message{align-self:flex-start}.message-avatar{width:36px;height:36px;border-radius:50%;background:radial-gradient(circle at 34% 28%,#f8eed6,#e6d2a8);border:none;box-shadow:0 2px 6px #00000059,inset 0 0 0 2px #5a3e1e40;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;color:#6b4c2a}.message-avatar .icon-secondary,.message-avatar .icon-primary{color:#6b4c2a}.message-body{background:linear-gradient(175deg,#fdf8ec,#f4ead4);border:none;border-radius:10px;padding:.8rem 1.05rem;max-width:680px;box-shadow:0 4px 10px #00000059,inset 0 0 0 1px #3b2a161a}.user-message .message-body{background:var(--gradient-primary);border:none;border-bottom-right-radius:4px;box-shadow:0 4px 10px #00000059}.assistant-message .message-body{border-bottom-left-radius:4px;transform:rotate(-.25deg)}.message-text{margin:0;line-height:1.6;color:#2f2416;white-space:pre-wrap;font-size:.92rem}.user-message .message-text{color:#fdf6e8}.message-player-badge{display:inline-flex;align-items:center;gap:.25rem;margin-top:.4rem;font-size:.72rem;color:#fdf6e8d9;background:#1c151040;border-radius:10px;padding:.1rem .5rem}.message-mode-badge{display:inline-block;margin-top:.5rem;font-size:.72rem;font-weight:700;color:#8a5410;background:#a3610e1a;border:1px solid rgba(163,97,14,.3);border-radius:10px;padding:.1rem .5rem}.games-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.7rem}.game-chip{display:inline-flex;align-items:center;gap:.35rem;background:#fffdf5;border:none;border-radius:6px;padding:.32rem .65rem;font-size:.8rem;font-weight:600;color:#2f2416;white-space:nowrap;box-shadow:0 2px 5px #3b2a1640,inset 0 0 0 1px #3b2a1624;transition:transform .15s,box-shadow .15s}.game-chip:nth-child(odd){transform:rotate(-.7deg)}.game-chip:nth-child(2n){transform:rotate(.6deg)}.game-chip:hover{border-color:transparent;transform:translateY(-2px) rotate(0);box-shadow:0 5px 10px #3b2a164d,inset 0 0 0 1px #3b2a1624}.game-chip .icon{color:#8a5410}.game-chip-rating{display:inline-flex;align-items:center;gap:.15rem;font-size:.72rem;color:#8a6b34;font-weight:700}.game-chip-save{background:none;border:none;padding:.1rem;margin-left:.1rem;cursor:pointer;display:inline-flex;align-items:center;border-radius:4px}.game-chip-save .icon{color:#b3671b}.game-chip-save:hover:not(:disabled){background:#b3671b1f}.game-chip-save:disabled{cursor:default;opacity:.75}.game-chip-save.saved .icon{color:#c9821f}.typing-indicator{display:flex;align-items:center;gap:5px;padding:.75rem 1rem;min-width:56px}.typing-indicator span{width:8px;height:8px;border-radius:2px;background:#cdb389;animation:bounce 1.2s infinite ease-in-out}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:translateY(0);opacity:.5}40%{transform:translateY(-6px);opacity:1}}.chat-input-bar{display:flex;align-items:flex-end;gap:.75rem;padding:1rem 1.5rem;background-color:#2c1f12;background-image:var(--grain),var(--wood-streaks),var(--wood-dark);border-top:1px solid rgba(0,0,0,.5);box-shadow:inset 0 1px #ffdca014}.chat-input{flex:1;background:#fdf8ec;border:1px solid rgba(59,42,22,.25);border-radius:var(--radius-md);color:#2f2416;padding:.6rem .9rem;font-size:.92rem;resize:none;line-height:1.5;font-family:inherit;transition:border-color .15s,box-shadow .15s;box-shadow:inset 0 1px 3px #3b2a161f}.chat-input::placeholder{color:#8a7458}.chat-input:focus{outline:none;border-color:#c9821f;box-shadow:0 0 0 3px #e8a33d40}.chat-input:disabled{opacity:.5}.send-btn{background:var(--gradient-primary);border:none;border-radius:var(--radius-md);color:#fdf6e8;width:44px;height:44px;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:filter .15s;padding:0}.send-btn:disabled{opacity:.4;cursor:not-allowed}.send-btn:not(:disabled):hover{filter:brightness(1.1);background:var(--gradient-primary);box-shadow:none;transform:none}@media (max-width: 640px){.rec-sidebar{display:none}}@media (max-width: 900px){.rec-history{display:none}}.rec-fab,.rec-panel-overlay,.rec-float-panel{display:none}@media (max-width: 768px){.rec-layout{height:calc(100vh - 114px - env(safe-area-inset-bottom,0))}.chat-messages{scrollbar-width:none;-ms-overflow-style:none}.chat-messages::-webkit-scrollbar{display:none}.rec-fab{display:flex;align-items:center;justify-content:center;position:fixed;top:62px;left:12px;width:42px;height:42px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);cursor:pointer;z-index:150;transition:background .15s,transform .15s;padding:0}.rec-fab:active{transform:scale(.92)}.rec-fab-icon{width:20px;height:20px;color:var(--color-text-muted);flex-shrink:0}.rec-fab-badge{position:absolute;top:-5px;right:-5px;width:17px;height:17px;border-radius:50%;background:var(--brand);color:var(--btn-fg);font-size:.6rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--color-surface)}.rec-panel-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0b0880;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:300;opacity:0;pointer-events:none;transition:opacity .25s}.rec-panel-overlay.open{opacity:1;pointer-events:all}.rec-float-panel{display:flex;flex-direction:column;gap:0;position:fixed;bottom:0;left:0;right:0;max-height:82vh;background:var(--color-surface);border-radius:20px 20px 0 0;border-top:1px solid var(--color-border);box-shadow:0 -8px 40px #00000059;z-index:310;overflow-y:auto;padding:0 1rem calc(env(safe-area-inset-bottom,0) + 1rem);transform:translateY(100%);transition:transform .3s cubic-bezier(.32,.72,0,1)}.rec-float-panel.open{transform:translateY(0)}.rec-panel-handle{width:36px;height:4px;background:var(--color-border);border-radius:2px;margin:10px auto 14px;flex-shrink:0}.rec-panel-new{margin-bottom:.25rem}.rec-panel-section{padding:.85rem 0;border-top:1px solid var(--color-divider)}.rec-panel-section .history-label{margin-bottom:.5rem}.rec-panel-history .history-list{max-height:240px;overflow-y:auto}.chat-empty{padding:1.5rem 1rem;width:100%}.chat-empty h3{font-size:1.45rem}.suggestion-chips{flex-direction:column;align-items:stretch}.suggestion-chip{text-align:left;padding:.75rem .95rem;font-size:.88rem;min-height:44px}.mode-btn,.new-chat-btn,.sidebar-select{min-height:44px}}.layout:has(.rules-layout) .layout-main{padding:0}.layout:has(.rules-layout) .layout-footer{display:none}.rules-layout{display:flex;justify-content:center;height:calc(100vh - 60px);overflow:hidden}.rules-picker{width:100%;max-width:640px;padding:2rem 1.25rem 3rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.25rem}.rules-picker-head{text-align:center}.rules-picker-icon{width:64px;height:64px;margin:0 auto .75rem;display:grid;place-items:center;border-radius:var(--radius-full);background:var(--brand-soft);color:var(--brand)}.rules-picker-head h1{font-size:1.5rem;margin:0 0 .35rem;color:var(--color-text)}.rules-picker-head p{color:var(--color-text-muted);margin:0;font-size:.95rem}.rules-search-box{position:relative;display:flex;align-items:center}.rules-search-icon{position:absolute;left:.85rem;color:var(--color-text-muted);pointer-events:none}.rules-search-input{width:100%;padding:.8rem 1rem .8rem 2.6rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);font-size:.95rem;outline:none;transition:border-color .15s,box-shadow .15s}.rules-search-input:focus{border-color:var(--brand);box-shadow:var(--shadow-focus)}.rules-results{display:flex;flex-direction:column;gap:.35rem}.rules-result{display:flex;align-items:center;gap:.75rem;padding:.5rem .65rem;border:1px solid transparent;border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;text-align:left;transition:background .12s,border-color .12s}.rules-result:hover{background:var(--color-surface-hover);border-color:var(--color-border)}.rules-result-cover{width:40px;height:40px;flex-shrink:0;border-radius:var(--radius-sm);overflow:hidden}.rules-result-name{font-size:.9rem;font-weight:600;color:var(--color-text)}.rules-result-year{color:var(--color-text-muted);font-weight:400}.rules-hint{color:var(--color-text-muted);font-size:.88rem;text-align:center;padding:.75rem;font-style:italic}.rules-quick{display:flex;flex-direction:column;gap:.5rem}.rules-quick-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin:0}.rules-chips{display:flex;flex-wrap:wrap;gap:.45rem}.rules-chip{padding:.45rem .8rem;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text);font-size:.85rem;cursor:pointer;transition:background .12s,border-color .12s}.rules-chip:hover{background:var(--brand-soft);border-color:var(--brand)}.rules-explain{width:100%;max-width:820px;display:flex;flex-direction:column;height:100%}.rules-header{padding:1rem 1.25rem .75rem;border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0}.rules-back{display:inline-flex;align-items:center;gap:.35rem;background:none;border:none;color:var(--color-text-muted);font-size:.82rem;cursor:pointer;padding:0 0 .6rem}.rules-back:hover{color:var(--brand)}.rules-header-main{display:flex;gap:1rem;align-items:flex-start}.rules-cover{width:84px;height:84px;flex-shrink:0;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.rules-cover-img{width:100%;height:100%;object-fit:cover;display:block}.rules-cover-fallback,.rules-result-cover .rules-cover-fallback{width:100%;height:100%;display:grid;place-items:center;background:var(--gradient-primary);color:#fdf6e8;font-weight:700;font-size:1.1rem}.rules-result-cover .rules-cover-fallback{font-size:.8rem}.rules-header-info{flex:1;min-width:0}.rules-game-name{font-size:1.2rem;margin:0 0 .4rem;color:var(--color-text)}.rules-year{color:var(--color-text-muted);font-weight:400;font-size:.95rem}.rules-badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.4rem}.rules-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.78rem;color:var(--color-text-muted);background:var(--color-surface-alt);border-radius:var(--radius-full);padding:.15rem .55rem}.rules-mechanics{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.4rem}.rules-mech-chip{font-size:.72rem;color:var(--brand-strong);background:var(--brand-soft);border-radius:var(--radius-sm);padding:.1rem .45rem}.rules-designers{font-size:.78rem;color:var(--color-text-muted);margin:0 0 .3rem}.rules-header-links{display:flex}.rules-bgg-link{display:inline-flex;align-items:center;gap:.3rem;font-size:.82rem;font-weight:600;color:var(--brand);text-decoration:none}.rules-bgg-link:hover{text-decoration:underline}.rules-disclaimer{display:flex;align-items:center;gap:.4rem;margin:.7rem 0 0;font-size:.74rem;color:var(--color-text-muted);font-style:italic}.rules-disclaimer .icon{flex-shrink:0}.rules-messages{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.rules-msg{display:flex;gap:.7rem}.rules-msg-user{flex-direction:row-reverse}.rules-msg-avatar{width:34px;height:34px;flex-shrink:0;border-radius:var(--radius-full);display:grid;place-items:center;background:var(--color-surface-alt)}.rules-msg-body{max-width:85%;padding:.6rem .9rem;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border)}.rules-msg-user .rules-msg-body{background:var(--brand-soft);border-color:transparent}.rules-p{margin:0 0 .55rem;color:var(--color-text);font-size:.92rem;line-height:1.6}.rules-p:last-child{margin-bottom:0}.rules-rich .rules-p strong{color:var(--brand-strong)}.rules-typing{display:flex;gap:.3rem;align-items:center}.rules-typing span{width:7px;height:7px;border-radius:50%;background:var(--color-text-muted);animation:rules-bounce 1.2s infinite ease-in-out}.rules-typing span:nth-child(2){animation-delay:.15s}.rules-typing span:nth-child(3){animation-delay:.3s}@keyframes rules-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.rules-input-bar{display:flex;gap:.6rem;padding:.85rem 1.25rem;border-top:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0}.rules-input{flex:1;resize:none;padding:.6rem .8rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt);color:var(--color-text);font-family:inherit;font-size:.9rem;outline:none}.rules-input:focus{border-color:var(--brand);box-shadow:var(--shadow-focus)}.rules-input:disabled{opacity:.6}.rules-send{align-self:flex-end;width:42px;height:42px;border:none;border-radius:var(--radius-md);background:var(--gradient-primary);color:#fdf6e8;display:grid;place-items:center;cursor:pointer;transition:filter .15s}.rules-send:hover:not(:disabled){filter:brightness(1.1)}.rules-send:disabled{opacity:.5;cursor:not-allowed}.rules-locked{width:100%;display:grid;place-items:center;padding:1.5rem}.rules-locked-card{max-width:420px;text-align:center;padding:2rem 1.75rem;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-md)}.rules-locked-icon{width:56px;height:56px;margin:0 auto 1rem;display:grid;place-items:center;border-radius:var(--radius-full);background:var(--brand-soft);color:var(--brand)}.rules-eyebrow{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--brand);margin:0 0 .5rem}.rules-locked-title{font-size:1.25rem;margin:0 0 .6rem;color:var(--color-text)}.rules-locked-text{color:var(--color-text-muted);font-size:.92rem;line-height:1.55;margin:0 0 1.25rem}.rules-cta{padding:.7rem 1.5rem;border:none;border-radius:var(--radius-md);background:var(--gradient-primary);color:#fdf6e8;font-weight:600;font-size:.92rem;cursor:pointer;transition:filter .15s}.rules-cta:hover{filter:brightness(1.1)}@media (max-width: 640px){.rules-header-main{gap:.75rem}.rules-cover{width:64px;height:64px}.rules-game-name{font-size:1.05rem}.rules-msg-body{max-width:92%}}.create-post{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1rem;margin-bottom:1.25rem}.create-post__top{display:flex;align-items:center;gap:.75rem}.create-post__trigger{flex:1;text-align:left;background:#f0e9db;border:none;border-radius:20px;padding:.6rem 1rem;color:var(--color-gray);font-size:.95rem;cursor:pointer;transition:background .2s}.create-post__trigger:hover{background:#e4e6ea}.create-post__types{display:flex;gap:.5rem;flex-wrap:wrap}.post-type-btn{padding:.35rem .75rem;border-radius:20px;border:1.5px solid #ded3c0;background:#fff;font-size:.82rem;cursor:pointer;transition:all .15s}.post-type-btn:hover{border-color:var(--color-primary-500);color:var(--color-primary-500)}.post-type-btn.active{background:var(--color-primary-500);border-color:var(--color-primary-500);color:#fff}.create-post__textarea{width:100%;margin-top:.75rem;border:1px solid #ded3c0;border-radius:var(--radius-md);padding:.75rem;font-size:.95rem;resize:none;line-height:1.5;transition:border-color .2s}.create-post__textarea:focus{border-color:var(--color-primary-500);outline:none;box-shadow:0 0 0 3px #2c3e5014}.create-post__footer{display:flex;align-items:center;justify-content:space-between;margin-top:.6rem}.create-post__hint{font-size:.78rem;color:var(--color-gray)}.create-post__actions{display:flex;gap:.5rem}.btn-cancel{padding:.4rem 1rem;border-radius:var(--radius-md);border:1px solid #ded3c0;background:#fff;color:var(--color-dark);font-size:.88rem}.btn-cancel:hover{background:#f0e9db}.btn-post{padding:.4rem 1.25rem;border-radius:var(--radius-md);border:none;background:var(--color-primary-500);color:#fff;font-size:.88rem;font-weight:600}.btn-post:hover:not(:disabled){opacity:.88}.btn-post:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .create-post{background:#211a15;box-shadow:0 2px 8px #00000059}[data-theme=dark] .create-post__trigger{background:#332a21;color:#a08c74}[data-theme=dark] .create-post__trigger:hover{background:#2a2a5a}[data-theme=dark] .post-type-btn{background:#211a15;border-color:#3a2f25;color:#8888b0}[data-theme=dark] .post-type-btn:hover{border-color:#c9821f;color:#f0b558}[data-theme=dark] .post-type-btn.active{background:#c9821f;border-color:#c9821f;color:#fff}[data-theme=dark] .create-post__textarea{background:#332a21;border-color:#3a2f25;color:#f3ece1}[data-theme=dark] .create-post__textarea:focus{border-color:#c9821f;box-shadow:0 0 0 3px #c9821f33}[data-theme=dark] .btn-cancel{background:#332a21;border-color:#3a2f25;color:#f3ece1}[data-theme=dark] .btn-cancel:hover{background:#2a2a5a}.create-post__image-preview{position:relative;margin-top:.75rem;border-radius:var(--radius-md);overflow:hidden;max-height:300px;background:#000}.create-post__image-preview img{width:100%;max-height:300px;object-fit:contain;display:block}.create-post__remove-image{position:absolute;top:.4rem;right:.4rem;background:#0009;color:#fff;border:none;border-radius:50%;width:26px;height:26px;font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s}.create-post__remove-image:hover{background:#c65340cc}.btn-attach{background:none;border:1.5px solid #ded3c0;border-radius:20px;padding:.3rem .85rem;font-size:.82rem;cursor:pointer;color:var(--color-gray);transition:all .15s;flex-shrink:0}.btn-attach:hover:not(:disabled){border-color:var(--color-primary-500);color:var(--color-primary-500)}.btn-attach:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .create-post__image-preview{background:#0a0a18}[data-theme=dark] .btn-attach{border-color:#3a2f25;color:#a08c74}[data-theme=dark] .btn-attach:hover:not(:disabled){border-color:#c9821f;color:#f0b558}.comment-section{padding:.75rem 1rem 1rem;border-top:1px solid #efe8da;background:#fafafa}.comment-loading{font-size:.85rem;color:var(--color-gray);margin:0 0 .5rem}.comment-list{display:flex;flex-direction:column;gap:.6rem;margin-bottom:.75rem}.comment-item{display:flex;align-items:flex-start;gap:.5rem}.comment-bubble{flex:1;background:#fff;border-radius:12px;padding:.4rem .7rem;box-shadow:0 1px 2px #00000012;display:flex;flex-direction:column;gap:.1rem}.comment-author{font-size:.8rem;font-weight:700;color:var(--color-primary-500);cursor:pointer}.comment-author:hover{text-decoration:underline}.comment-text{font-size:.88rem;color:var(--color-dark);line-height:1.4}.comment-delete{background:none;border:none;color:var(--color-gray);font-size:.75rem;cursor:pointer;padding:.2rem;opacity:.6;flex-shrink:0;align-self:center}.comment-delete:hover{opacity:1;color:var(--color-danger)}.comment-form{display:flex;gap:.4rem;align-items:center}.comment-input{flex:1;border-radius:20px;padding:.45rem .85rem;font-size:.88rem;border:1px solid #ded3c0;background:#fff}.comment-input:focus{border-color:var(--color-primary-500);outline:none;box-shadow:0 0 0 2px #2c3e5014}.comment-submit{background:var(--color-primary-500);color:#fff;border:none;border-radius:50%;width:34px;height:34px;font-size:.9rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0}.comment-submit:disabled{opacity:.45;cursor:not-allowed}.comment-submit:hover:not(:disabled){opacity:.85}[data-theme=dark] .comment-section{background:#1a1410;border-top-color:#3a2f25}[data-theme=dark] .comment-bubble{background:#211a15;box-shadow:0 1px 3px #0000004d}[data-theme=dark] .comment-text{color:#f3ece1}[data-theme=dark] .comment-input{background:#211a15;border-color:#3a2f25;color:#f3ece1}[data-theme=dark] .comment-input:focus{border-color:#c9821f;box-shadow:0 0 0 2px #c9821f33}.post-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:1rem;overflow:hidden}.post-header{display:flex;align-items:center;gap:.6rem;padding:.9rem 1rem .7rem}.post-meta{flex:1;display:flex;flex-direction:column;gap:.05rem}.post-username{font-weight:700;font-size:.95rem;color:var(--color-dark);cursor:pointer}.post-username:hover{color:var(--color-primary-500);text-decoration:underline}.post-time{font-size:.78rem;color:var(--color-gray)}.post-header-right{display:flex;align-items:center;gap:.5rem}.post-type-badge{font-size:.75rem;background:#f0e9db;border-radius:12px;padding:.2rem .6rem;color:var(--color-primary-500);font-weight:600;white-space:nowrap}.btn-delete{background:none;border:none;color:var(--color-gray);font-size:1rem;cursor:pointer;padding:.2rem .4rem;border-radius:var(--radius-sm);transition:all .15s}.btn-delete:hover{color:var(--color-danger);background:#ffeaea}.post-content{padding:0 1rem .75rem}.post-content p{margin:0;line-height:1.6;font-size:.95rem;white-space:pre-wrap;word-break:break-word}.post-game-tag{display:inline-block;margin-top:.5rem;background:#eef6ff;color:var(--color-info);font-size:.8rem;font-weight:600;padding:.25rem .6rem;border-radius:12px}.post-stats-bar{display:flex;align-items:center;gap:1rem;padding:.4rem 1rem;font-size:.85rem;color:var(--color-gray);border-top:1px solid #efe8da}.post-stats-comments{background:none;border:none;padding:0;font-size:.85rem;color:var(--color-gray);cursor:pointer;font-weight:500}.post-stats-comments:hover{color:var(--color-primary-500);text-decoration:underline}.post-actions{display:flex;border-top:1px solid #efe8da}.btn-action{flex:1;background:none;border:none;padding:.6rem;font-size:.88rem;font-weight:600;color:var(--color-gray);cursor:pointer;transition:background .15s,color .15s;border-radius:0}.btn-action:hover{background:#f6f1e7;color:var(--color-primary-500)}.btn-action.liked{color:var(--color-danger)}.btn-action.liked:hover{background:#fff0f0}[data-theme=dark] .post-card{background:#211a15;box-shadow:0 2px 8px #00000059}[data-theme=dark] .post-username{color:#f3ece1}[data-theme=dark] .post-type-badge{background:#332a21;color:#f0b558}[data-theme=dark] .post-stats-bar,[data-theme=dark] .post-actions{border-top-color:#3a2f25}[data-theme=dark] .btn-action:hover{background:#332a21;color:#f3ece1}[data-theme=dark] .btn-action.liked:hover{background:#c6534026}[data-theme=dark] .btn-delete:hover{background:#c653401f}[data-theme=dark] .post-game-tag{background:#3498db1f;color:#6fc296}.post-image{max-height:480px;overflow:hidden;background:#000}.post-image img{width:100%;max-height:480px;object-fit:contain;display:block}[data-theme=dark] .post-image{background:#0a0a18}.user-search-panel{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1rem}.panel-title{font-size:1rem;font-weight:700;margin-bottom:.75rem;color:var(--color-dark)}.search-input-wrap{position:relative;margin-bottom:.75rem}.search-icon{position:absolute;left:.65rem;top:50%;transform:translateY(-50%);font-size:.85rem;pointer-events:none}.search-input{width:100%;padding:.5rem .75rem .5rem 2rem;border-radius:20px;border:1.5px solid #ded3c0;font-size:.88rem;transition:border-color .2s}.search-input:focus{border-color:var(--color-primary-500);outline:none}.search-loading,.search-empty,.search-hint{font-size:.82rem;color:var(--color-gray);text-align:center;padding:.5rem 0;margin:0}.search-results{display:flex;flex-direction:column;gap:.25rem}.user-row{display:flex;align-items:center;gap:.6rem;padding:.5rem .4rem;border-radius:var(--radius-md);cursor:pointer;transition:background .15s}.user-row:hover{background:#f6f1e7}.user-row-info{flex:1;display:flex;flex-direction:column;min-width:0}.user-row-name{font-size:.88rem;font-weight:700;color:var(--color-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-row-handle{font-size:.78rem;color:var(--color-gray)}.follow-btn{padding:.28rem .75rem;border-radius:20px;border:1.5px solid var(--color-primary-500);background:var(--color-primary-500);color:#fff;font-size:.78rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s;flex-shrink:0}.friend-req-btn{padding:.28rem .55rem;border-radius:20px;border:1.5px solid var(--color-primary-500);background:transparent;font-size:.78rem;cursor:pointer;flex-shrink:0;transition:all .15s}.friend-req-btn:hover:not(:disabled){background:#0000000d}.friend-req-btn:disabled{cursor:default}.friend-req-btn.sent{border-color:#24573e;color:#24573e;opacity:.8}.follow-btn.following{background:#fff;color:var(--color-primary-500)}.follow-btn:hover:not(:disabled){opacity:.85}.follow-btn:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .user-search-panel{background:#211a15;box-shadow:0 2px 8px #00000059}[data-theme=dark] .panel-title{color:#f3ece1}[data-theme=dark] .search-input{background:#332a21;border-color:#3a2f25;color:#f3ece1}[data-theme=dark] .search-input:focus{border-color:#c9821f}[data-theme=dark] .user-row:hover{background:#332a21}[data-theme=dark] .user-row-name{color:#f3ece1}[data-theme=dark] .follow-btn.following{background:#332a21;color:#f0b558;border-color:#c9821f}.frp{display:flex;flex-direction:column;gap:0}.frp-loading{color:var(--color-text-muted);font-size:.875rem;padding:1rem 0;text-align:center}.frp-section{padding:.75rem 0;border-bottom:1px solid var(--color-border)}.frp-section:last-child{border-bottom:none}.frp-section-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:0 0 .6rem;display:flex;align-items:center;gap:.4rem}.frp-badge{background:var(--color-primary-500);color:#fff;border-radius:100px;font-size:.7rem;padding:1px 6px;font-weight:700}.frp-count{background:var(--color-bg);color:var(--color-text-muted);border-radius:100px;font-size:.7rem;padding:1px 6px;font-weight:600}.frp-empty{font-size:.82rem;color:var(--color-text-muted);margin:0;font-style:italic}.frp-row{display:flex;align-items:center;gap:.6rem;padding:.4rem 0}.frp-row__info{flex:1;min-width:0;cursor:pointer}.frp-row__info:hover .frp-row__name{color:var(--color-primary-500)}.frp-row__name{display:block;font-size:.875rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s}.frp-row__handle{display:block;font-size:.75rem;color:var(--color-text-muted)}.frp-row__actions{display:flex;gap:.4rem;flex-shrink:0}.frp-btn{border:none;border-radius:6px;padding:4px 10px;font-size:.78rem;font-weight:600;cursor:pointer;transition:opacity .15s;white-space:nowrap}.frp-btn:hover{opacity:.8}.frp-btn--accept{background:var(--color-primary-500);color:#fff}.frp-btn--decline{background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}.frp-btn--cancel{background:#fae0d6;color:#c04b32}.frp-btn--remove{background:none;color:var(--color-text-muted);font-size:.85rem}.frp-btn--remove:hover{color:#c04b32}.frp-btn--add{background:var(--color-primary-500);color:#fff}.frp-btn--follow{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.frp-error{font-size:.82rem;color:var(--color-danger, #c04b32);margin:0}.frp-retry{background:none;border:none;padding:0;font-size:.82rem;font-weight:600;color:var(--color-primary-500);text-decoration:underline;cursor:pointer}.social-tabs{display:flex;gap:.25rem;border-bottom:2px solid var(--color-border);margin-bottom:1rem}.social-tab{background:none;border:none;cursor:pointer;padding:.55rem 1rem;font-size:.9rem;font-weight:600;color:var(--color-text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;display:flex;align-items:center;gap:.35rem}.social-tab:hover:not(:disabled){background:none;box-shadow:none;transform:none;color:var(--color-text)}.social-tab.active{color:var(--color-primary-500);border-bottom-color:var(--color-primary-500)}.social-tab.active:hover:not(:disabled){color:var(--color-primary-500)}.social-tab-badge{background:var(--color-primary-500);color:#fff;border-radius:100px;font-size:.68rem;padding:1px 6px;font-weight:700}.social-friends-tab{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:1rem}.social-layout{display:grid;grid-template-columns:240px 1fr 280px;gap:1.25rem;align-items:start;max-width:1100px;margin:0 auto;padding:1.25rem 0}.social-sidebar-left{position:sticky;top:1.25rem;display:flex;flex-direction:column;gap:.75rem}.sidebar-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1rem;text-align:center}.sidebar-card__icon{font-size:2.5rem;margin-bottom:.4rem}.sidebar-card h3{font-size:.95rem;margin-bottom:.4rem}.sidebar-card p{font-size:.82rem;color:var(--color-gray);margin:0;line-height:1.4}.sidebar-profile-mini{text-align:left}.spm-info{display:flex;flex-direction:column;gap:.2rem}.spm-name{font-weight:700;font-size:.9rem}.spm-stats{font-size:.78rem;color:var(--color-gray)}.social-feed{min-width:0}.feed-skeleton{display:flex;flex-direction:column;gap:1rem}.skeleton-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);height:140px;animation:skeleton-pulse 1.4s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.feed-error{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:2rem;text-align:center}.feed-error p{color:var(--color-danger);margin-bottom:.75rem}.feed-error button{background:var(--color-primary-500);color:#fff;padding:.4rem 1rem;border:none;border-radius:var(--radius-md)}.feed-empty{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:3rem 2rem;text-align:center}.feed-empty__icon{font-size:3rem;display:block;margin-bottom:.75rem}.feed-empty h3{margin-bottom:.5rem}.feed-empty p{color:var(--color-gray);font-size:.9rem;margin:0}.social-sidebar-right{position:sticky;top:1.25rem}@media (max-width: 1024px){.social-layout{grid-template-columns:1fr 260px}.social-sidebar-left{display:none}}@media (max-width: 700px){.social-layout{grid-template-columns:1fr;padding:.75rem;gap:.75rem}.social-sidebar-right{position:static}.social-sidebar-left{display:none}}[data-theme=dark] .sidebar-card{background:#211a15;box-shadow:0 2px 8px #00000059}[data-theme=dark] .sidebar-card h3{color:#f3ece1}[data-theme=dark] .skeleton-card,[data-theme=dark] .feed-error,[data-theme=dark] .feed-empty{background:#211a15;box-shadow:none}[data-theme=dark] .feed-empty h3{color:#f3ece1}.event-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:1rem;transition:box-shadow .2s}.event-card:hover{box-shadow:0 4px 16px #00000014}.event-card--past{opacity:.65}.event-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.event-card__organizer{display:flex;align-items:center;gap:.5rem}.event-card__organizer-name{background:none;border:none;cursor:pointer;font-weight:600;font-size:.875rem;color:var(--color-text);padding:0}.event-card__organizer-name:hover{color:var(--color-primary-500)}.event-card__delete{background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:1rem;line-height:1;padding:4px 8px;border-radius:4px}.event-card__delete:hover{background:#fae0d6;color:#c04b32}.event-badge{font-size:.7rem;padding:2px 6px;border-radius:4px;font-weight:600}.event-badge--private{background:#faecc4;color:#8a5f0c}.event-card__body{display:flex;gap:1rem}.event-card__date-col{flex-shrink:0;width:48px;text-align:center;background:var(--color-primary-500);border-radius:8px;padding:6px 4px;color:#fff}.event-card__month{font-size:.6rem;font-weight:700;letter-spacing:.05em;opacity:.9}.event-card__day{font-size:1.5rem;font-weight:800;line-height:1}.event-card__info{flex:1;min-width:0}.event-card__title{font-size:1.05rem;font-weight:700;margin:0 0 .4rem;color:var(--color-text)}.event-card__meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.82rem;color:var(--color-text-muted);margin-bottom:.5rem}.event-card__desc{font-size:.875rem;color:var(--color-text-muted);margin:0 0 .6rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.event-card__footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.event-card__stats{display:flex;align-items:center;gap:.75rem;font-size:.82rem;color:var(--color-text-muted)}.event-countdown{background:#dbe7f0;color:#2f5069;padding:2px 8px;border-radius:100px;font-size:.75rem;font-weight:600}.event-card__rsvp-wrap{position:relative}.btn-rsvp{border:none;border-radius:8px;padding:6px 14px;font-size:.82rem;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-rsvp:hover{opacity:.85}.btn-rsvp--default{background:var(--color-primary-500);color:#fff}.btn-rsvp--going{background:#d8efdf;color:#24573e}.btn-rsvp--maybe{background:#faecc4;color:#8a5f0c}.btn-rsvp--not_going{background:#fae0d6;color:#9a3a26}.rsvp-dropdown{position:absolute;right:0;bottom:calc(100% + 4px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 8px 24px #0000001f;overflow:hidden;min-width:140px;z-index:50}.rsvp-dropdown button{display:block;width:100%;text-align:left;padding:8px 14px;background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--color-text);transition:background .15s}.rsvp-dropdown button:hover{background:var(--color-bg)}.rsvp-dropdown .rsvp-cancel{color:#c04b32;border-top:1px solid var(--color-border)}.cem-modal{background:var(--color-surface);border-radius:16px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0003;margin:auto}.cem-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border)}.cem-header h2{font-size:1.1rem;font-weight:700;margin:0}.cem-close{background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--color-text-muted);padding:4px 8px;border-radius:4px}.cem-close:hover{background:var(--color-bg)}.cem-form{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.cem-error{background:#fae0d6;color:#991b1b;border-radius:8px;padding:.6rem 1rem;font-size:.875rem}.cem-field{display:flex;flex-direction:column;gap:.35rem}.cem-field label{font-size:.82rem;font-weight:600;color:var(--color-text-muted)}.cem-field input,.cem-field textarea{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:.55rem .75rem;font-size:.9rem;color:var(--color-text);width:100%;box-sizing:border-box;font-family:inherit;resize:vertical;transition:border-color .15s}.cem-field input:focus,.cem-field textarea:focus{outline:none;border-color:var(--color-primary-500)}.cem-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.cem-toggle-label{display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:.9rem;font-weight:600;color:var(--color-text)}.cem-toggle-hint{font-weight:400;color:var(--color-text-muted);font-size:.82rem}.cem-toggle{width:44px;height:24px;background:var(--color-border);border-radius:100px;position:relative;transition:background .2s;flex-shrink:0}.cem-toggle.on{background:var(--color-primary-500)}.cem-toggle-thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 4px #0003}.cem-toggle.on .cem-toggle-thumb{transform:translate(20px)}.cem-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:.5rem;border-top:1px solid var(--color-border)}.cem-actions .btn-primary,.cem-actions .btn-secondary{padding:.55rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:opacity .15s}.cem-actions .btn-primary{background:var(--color-primary-500);color:#fff}.cem-actions .btn-primary:disabled{opacity:.6;cursor:not-allowed}.cem-actions .btn-secondary{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}@media (max-width: 540px){.cem-row{grid-template-columns:1fr}}.events-page{max-width:720px;margin:0 auto;padding:1.5rem 1rem 4rem}.events-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.events-title{font-size:1.5rem;font-weight:800;margin:0 0 .25rem;color:var(--color-text)}.events-subtitle{font-size:.875rem;color:var(--color-text-muted);margin:0}.btn-create-event{background:var(--color-primary-500);color:#fff;border:none;border-radius:10px;padding:.6rem 1.25rem;font-size:.9rem;font-weight:700;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:opacity .15s}.btn-create-event:hover{opacity:.85}.events-tabs{display:flex;gap:.25rem;border-bottom:2px solid var(--color-border);margin-bottom:1.25rem}.events-tab{background:none;border:none;cursor:pointer;padding:.6rem 1rem;font-size:.9rem;font-weight:600;color:var(--color-text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;display:flex;align-items:center;gap:.4rem}.events-tab.active{color:var(--color-primary-500);border-bottom-color:var(--color-primary-500)}.events-tab-count{background:var(--color-primary-500);color:#fff;border-radius:100px;font-size:.7rem;padding:1px 6px;font-weight:700}.events-skeleton{display:flex;flex-direction:column;gap:.75rem}.events-skeleton .skeleton-card{height:140px;border-radius:12px;background:linear-gradient(90deg,var(--color-border) 25%,var(--color-bg) 50%,var(--color-border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.events-empty{text-align:center;padding:3rem 1rem;color:var(--color-text-muted)}.events-empty__icon{display:flex;justify-content:center;margin-bottom:1rem}.events-empty__icon svg{width:48px;height:48px}.events-empty h3{font-size:1.1rem;font-weight:700;color:var(--color-text);margin:0 0 .5rem}.events-empty p{font-size:.875rem;margin:0 0 1.25rem}.events-list{display:flex;flex-direction:column;gap:.75rem}@media (max-width: 600px){.events-header{flex-direction:column;align-items:stretch}.btn-create-event{width:100%;text-align:center}}.profile-page{max-width:700px;margin:0 auto;padding-bottom:2rem}.profile-cover{position:relative;height:160px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow:visible;margin-bottom:52px}.profile-cover__bg{width:100%;height:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(135deg,var(--color-primary-500) 0%,#4a90d9 100%)}.profile-cover__avatar{position:absolute;bottom:-44px;left:1.5rem;border:4px solid white;border-radius:50%;box-shadow:var(--shadow-md)}.profile-info-bar{background:#fff;border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:var(--shadow-md);padding:.75rem 1.5rem 1.25rem;display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.profile-identity{display:flex;flex-direction:column;gap:.15rem}.profile-display-name{font-size:1.4rem;font-weight:800;margin:0}.profile-handle{font-size:.85rem;color:var(--color-gray)}.profile-bio{font-size:.88rem;color:var(--color-dark);margin:.3rem 0 0;max-width:360px}.profile-stats-follow{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.profile-counts{display:flex;gap:1rem}.count-btn{background:none;border:none;display:flex;flex-direction:column;align-items:center;cursor:pointer;padding:.2rem .4rem;border-radius:var(--radius-sm);transition:background .15s}.count-btn:hover:not(:disabled){background:#f0e9db;box-shadow:none;transform:none}.count-btn strong{font-size:1.1rem;font-weight:800}.count-btn span{font-size:.75rem;color:var(--color-gray)}.follow-action-btn{padding:.45rem 1.25rem;border-radius:20px;border:none;background:var(--color-primary-500);color:#fff;font-weight:700;font-size:.88rem;cursor:pointer;transition:opacity .15s}.follow-action-btn.following{background:#f0e9db;color:var(--color-dark)}.follow-action-btn:hover:not(:disabled){opacity:.85}.follow-action-btn:disabled{opacity:.5;cursor:not-allowed}.follows-you-badge{font-size:.75rem;background:#f0e9db;color:var(--color-gray);padding:.2rem .55rem;border-radius:12px;font-weight:600}.profile-actions-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.friend-action-btn{padding:.45rem 1.25rem;border-radius:20px;border:1.5px solid var(--color-primary-500);background:transparent;color:var(--color-primary-500);font-weight:700;font-size:.88rem;cursor:pointer;transition:opacity .15s}.friend-action-btn:hover:not(:disabled){opacity:.8}.friend-action-btn:disabled{opacity:.5;cursor:not-allowed}.friend-action-btn.secondary{border-color:var(--color-border);color:var(--color-text-muted)}.friend-status-badge{font-size:.8rem;background:#e3f2e8;color:#24573e;padding:.35rem .8rem;border-radius:16px;font-weight:700}.friend-status-badge.pending{background:#f5ecd9;color:#8a6b34}.profile-posts__title{font-size:1.1rem;margin-bottom:.75rem}.profile-loading{color:var(--color-gray);font-size:.9rem}.profile-no-posts{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:2.5rem;text-align:center;color:var(--color-gray)}.profile-no-posts span{font-size:2.5rem;display:block;margin-bottom:.5rem}.profile-no-posts p{margin:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-box{background:#fff;border-radius:var(--radius-lg);width:360px;max-height:70vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #eee}.modal-header h3{margin:0;font-size:1rem}.modal-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--color-gray);padding:.2rem .4rem;border-radius:var(--radius-sm)}.modal-close:hover{background:#f0e9db}.modal-list{overflow-y:auto;padding:.5rem 0}.modal-empty{text-align:center;color:var(--color-gray);padding:1.5rem;margin:0;font-size:.9rem}.modal-user-row{display:flex;align-items:center;gap:.65rem;padding:.6rem 1.25rem;transition:background .15s;cursor:pointer}.modal-user-row:hover{background:#f6f1e7}.modal-username{font-size:.88rem;font-weight:700}.modal-handle{font-size:.78rem;color:var(--color-gray)}[data-theme=dark] .profile-cover__avatar{border-color:#211a15}[data-theme=dark] .profile-info-bar{background:#211a15;box-shadow:0 2px 8px #00000059}[data-theme=dark] .profile-display-name{color:#f3ece1}[data-theme=dark] .profile-bio{color:#d9cbb8}[data-theme=dark] .count-btn:hover:not(:disabled){background:#332a21}[data-theme=dark] .count-btn strong{color:#f3ece1}[data-theme=dark] .follow-action-btn.following{background:#332a21;color:#f3ece1}[data-theme=dark] .follows-you-badge{background:#332a21;color:#8888b0}[data-theme=dark] .profile-no-posts{background:#211a15;box-shadow:none}[data-theme=dark] .modal-box{background:#211a15}[data-theme=dark] .modal-header{border-bottom-color:#3a2f25}[data-theme=dark] .modal-header h3{color:#f3ece1}[data-theme=dark] .modal-close:hover,[data-theme=dark] .modal-user-row:hover{background:#332a21}[data-theme=dark] .modal-username{color:#f3ece1}.profile-tabs{display:flex;gap:0;border-bottom:2px solid #e8dfcf;margin:1rem 0 0;padding:0 .5rem}.profile-tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:.6rem 1.2rem;font-size:.95rem;font-weight:500;color:var(--color-gray);cursor:pointer;transition:color .15s,border-color .15s}.profile-tab:hover:not(:disabled){background:none;box-shadow:none;transform:none;color:var(--color-primary-500)}.profile-tab.active{color:var(--color-primary-500);border-bottom-color:var(--color-primary-500);font-weight:600}.profile-library{padding:1rem 0}.profile-lib-search-wrap{position:relative;display:flex;align-items:center;margin-bottom:1rem}.profile-lib-search-wrap .lib-search-icon{position:absolute;left:.75rem;font-size:.9rem;pointer-events:none}.profile-lib-search-wrap .lib-search{width:100%;padding:.5rem 2.5rem;border:1px solid #e2d8c5;border-radius:var(--radius-md);font-size:.9rem;background:var(--color-surface);color:var(--color-text)}.profile-lib-search-wrap .lib-search-clear{position:absolute;right:.75rem;background:none;border:none;cursor:pointer;color:var(--color-gray);font-size:.85rem}.profile-lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.profile-lib-card{border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);border:1px solid #e8dfcf;display:flex;flex-direction:column}.profile-lib-card__img{width:100%;aspect-ratio:1;object-fit:cover}.profile-lib-card__placeholder{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;color:#fff}.profile-lib-card__body{padding:.5rem .6rem .6rem;display:flex;flex-direction:column;gap:.3rem}.profile-lib-card__name{font-size:.8rem;font-weight:600;line-height:1.3;color:var(--color-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.profile-lib-card__pills{display:flex;flex-wrap:wrap;gap:.25rem}[data-theme=dark] .profile-tabs{border-bottom-color:#3a2f25}[data-theme=dark] .profile-tab{color:#8a7a64}[data-theme=dark] .profile-lib-card{border-color:#3a2f25}[data-theme=dark] .profile-lib-search-wrap .lib-search{border-color:#3a2f25;background:#251e18}.settings-page{max-width:860px;margin:0 auto;padding:1.5rem 0 3rem}.settings-title{font-size:1.5rem;margin-bottom:1.5rem}.settings-layout{display:grid;grid-template-columns:1fr 320px;gap:1.5rem;align-items:start}.settings-form{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group label{font-size:.88rem;font-weight:700;color:var(--color-dark)}.form-group input,.form-group textarea{width:100%;padding:.6rem .85rem;border:1.5px solid #ded3c0;border-radius:var(--radius-md);font-size:.93rem;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-primary-500);outline:none;box-shadow:0 0 0 3px #2c3e5014}.form-group textarea{resize:vertical;min-height:80px}.form-hint{font-size:.78rem;color:var(--color-gray)}.settings-error{color:var(--color-danger);font-size:.88rem;margin:0}.settings-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem;margin-top:.25rem}.settings-saved{font-size:.88rem;color:var(--color-success);font-weight:600;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.btn-save{background:var(--color-primary-500);color:#fff;border:none;border-radius:var(--radius-md);padding:.55rem 1.5rem;font-weight:700;font-size:.9rem;cursor:pointer;transition:opacity .15s}.btn-save:hover:not(:disabled){opacity:.88}.btn-save:disabled{opacity:.5;cursor:not-allowed}.settings-preview{display:flex;flex-direction:column;gap:1rem}.preview-label{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-gray);margin:0}.preview-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.25rem;display:flex;gap:1rem;align-items:center}.preview-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.preview-name{font-size:1.05rem;font-weight:800;color:var(--color-dark)}.preview-handle{font-size:.82rem;color:var(--color-gray)}.preview-bio{font-size:.85rem;color:var(--color-dark);margin:.25rem 0 0;line-height:1.4;word-break:break-word}.settings-account-info{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1rem 1.25rem}.account-info-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-gray);margin:0 0 .75rem}.account-info-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;border-bottom:1px solid #efe8da;font-size:.85rem}.account-info-row:last-child{border-bottom:none}.account-info-row span:first-child{color:var(--color-gray)}.account-info-row span:last-child{font-weight:600;color:var(--color-dark)}.plan-badge{padding:.2rem .55rem;border-radius:12px;font-size:.78rem;font-weight:700}.plan-free{background:#f0e9db;color:var(--color-gray)}.plan-pro{background:linear-gradient(135deg,#c9821f,#d97706);color:#fff;display:inline-flex;align-items:center;gap:.3rem;box-shadow:0 2px 6px #d9770659}@media (max-width: 700px){.settings-layout{grid-template-columns:1fr}.btn-pick-avatar,.btn-save{min-height:44px}}[data-theme=dark] .settings-form{background:#211a15;box-shadow:0 2px 8px #00000059}[data-theme=dark] .settings-title,[data-theme=dark] .form-group label{color:#f3ece1}[data-theme=dark] .form-group input,[data-theme=dark] .form-group textarea{background:#332a21;border-color:#3a2f25;color:#f3ece1}[data-theme=dark] .form-group input:focus,[data-theme=dark] .form-group textarea:focus{border-color:#c9821f;box-shadow:0 0 0 3px #c9821f33}[data-theme=dark] .preview-card{background:#211a15;box-shadow:0 2px 8px #00000059}[data-theme=dark] .preview-name{color:#f3ece1}[data-theme=dark] .preview-bio{color:#d9cbb8}[data-theme=dark] .settings-account-info{background:#211a15;box-shadow:0 2px 8px #00000059}[data-theme=dark] .account-info-row{border-bottom-color:#3a2f25}[data-theme=dark] .account-info-row span:last-child{color:#f3ece1}[data-theme=dark] .plan-free{background:#3a2f25;color:#9898c0}[data-theme=dark] .plan-pro{box-shadow:0 2px 8px #f59e0b66}.avatar-picker{display:flex;align-items:center;gap:1rem}.avatar-picker-actions{display:flex;flex-direction:column;gap:.4rem}.btn-pick-avatar{background:var(--color-primary-500);color:#fff;border:none;border-radius:var(--radius-md);padding:.45rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .15s;width:fit-content}.btn-pick-avatar:hover:not(:disabled){opacity:.85}.btn-pick-avatar:disabled{opacity:.5;cursor:not-allowed}.avatar-picker-hint{font-size:.78rem;color:var(--color-success);font-weight:600}[data-theme=dark] .btn-pick-avatar{background:#c9821f}:root,[data-theme=light]{--layout-bg: #f6f1e7;--color-surface: #fffdf8;--color-surface-alt: #f3ecdd;--color-surface-hover: #f7f1e4;--color-text: #2c2115;--color-text-muted: #84715a;--color-border: #e6dccb;--color-divider: #f0e9db;--color-primary-50: #faf3e6;--color-primary-100: #f3e4c8;--color-primary-200: #e8cd9a;--color-primary-300: #dcb066;--color-primary-400: #cf9440;--color-primary-500: #a3610e;--color-primary-600: #8a5410;--color-primary-700: #714312;--color-primary-800: #573310;--color-primary-900: #3d240c;--color-secondary-50: #fdf1ec;--color-secondary-100: #fae0d6;--color-secondary-200: #f4c2ae;--color-secondary-500: #c65340;--color-secondary-700: #a03d2d;--color-secondary-900: #64251a;--color-success-50: #edf7f0;--color-success-100: #d8efdf;--color-success-200: #b2dfc2;--color-success-500: #2e6e4e;--color-success-700: #24573e;--color-success-900: #143223;--color-warning-50: #fdf6e3;--color-warning-100: #faecc4;--color-warning-200: #f4d98a;--color-warning-500: #b07c10;--color-warning-700: #8a5f0c;--color-warning-900: #533807;--color-danger-50: #fdf1ec;--color-danger-100: #fae0d6;--color-danger-200: #f4c2ae;--color-danger-500: #c04b32;--color-danger-700: #9a3a26;--color-danger-900: #5e2317;--color-info-50: #eef3f7;--color-info-100: #dbe7f0;--color-info-200: #b7cfe0;--color-info-500: #3d6a8a;--color-info-700: #2f5069;--color-info-900: #1c3242;--color-gray-50: #f8f4ea;--color-gray-100: #f0e9db;--color-gray-200: #e6dccb;--color-gray-300: #d4c6af;--color-gray-400: #ab9a80;--color-gray-500: #84715a;--color-gray-600: #6b5a45;--color-gray-700: #4f4131;--color-gray-800: #382d20;--color-gray-900: #2c2115;--brand: #a3610e;--brand-strong: #8a5410;--brand-soft: rgba(163, 97, 14, .1);--felt: #2e6e4e;--felt-soft: rgba(46, 110, 78, .1);--gold: #8f6a1e;--gold-soft: rgba(176, 124, 16, .12);--btn-bg: #a3610e;--btn-bg-hover: #8a5410;--btn-fg: #fffdf8;--color-primary: var(--color-primary-500);--color-secondary: var(--color-secondary-500);--color-danger: var(--color-danger-500);--color-dark: var(--color-text);--color-gray: var(--color-text-muted)}[data-theme=dark]{--layout-bg: #161210;--color-surface: #211a15;--color-surface-alt: #2a221b;--color-surface-hover: #332a21;--color-text: #f3ece1;--color-text-muted: #a8977f;--color-border: #3a2f25;--color-divider: #2c241d;--color-primary-50: #2a1f10;--color-primary-100: #3d2c13;--color-primary-200: #5c4118;--color-primary-300: #8a5e1d;--color-primary-400: #c9821f;--color-primary-500: #e8a33d;--color-primary-600: #f0b558;--color-primary-700: #f6c77e;--color-primary-800: #fada9f;--color-primary-900: #fdeccb;--color-secondary-500: #e07856;--color-secondary-700: #ef9678;--color-success-500: #4fa87a;--color-success-700: #6fc296;--color-warning-500: #e8a33d;--color-warning-700: #f0b558;--color-danger-500: #e0644a;--color-danger-700: #ef8368;--color-info-500: #6d9cbe;--color-info-700: #8fb6d2;--color-gray-50: #1c1712;--color-gray-100: #241d17;--color-gray-200: #2c241d;--color-gray-300: #3a2f25;--color-gray-400: #6b5c49;--color-gray-500: #a8977f;--color-gray-600: #c4b39a;--color-gray-700: #d9cbb8;--color-gray-800: #e8ddd0;--color-gray-900: #f3ece1;--brand: #e8a33d;--brand-strong: #f0b558;--brand-soft: rgba(232, 163, 61, .12);--felt: #4fa87a;--felt-soft: rgba(79, 168, 122, .12);--gold: #e5c06b;--gold-soft: rgba(229, 192, 107, .12);--btn-bg: #e8a33d;--btn-bg-hover: #f0b558;--btn-fg: #26190b}:root{--gradient-primary: linear-gradient(135deg, #8a5410 0%, #cf8a28 100%);--gradient-accent: linear-gradient(135deg, #24573e 0%, #3f8e63 100%);--gradient-success: linear-gradient(135deg, #2e6e4e 0%, #4fa87a 100%);--gradient-warm: linear-gradient(135deg, #c65340 0%, #e8a33d 100%);--gradient-gold: linear-gradient(135deg, #a97a20 0%, #e8c672 100%);--gradient-subtle: linear-gradient(to bottom, rgba(232, 163, 61, .06), transparent);--gradient-table: radial-gradient(1200px 400px at 85% -10%, rgba(232, 163, 61, .22), transparent 60%), linear-gradient(150deg, #241b13 0%, #1c1510 55%, #21180f 100%)}:root{--grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");--wood-dark: linear-gradient(180deg, #3b2a1a 0%, #2c1f12 45%, #241a0f 100%);--wood-streaks: repeating-linear-gradient( 92deg, rgba(0, 0, 0, 0) 0px, rgba(0, 0, 0, .1) 2px, rgba(0, 0, 0, 0) 5px, rgba(255, 220, 160, .03) 8px, rgba(0, 0, 0, 0) 13px );--plank: linear-gradient(180deg, #6b4c2a 0%, #503618 30%, #3a260f 78%, #2a1a09 100%);--felt-table: radial-gradient(120% 90% at 50% 0%, rgba(255, 236, 200, .07), transparent 55%), radial-gradient(140% 120% at 50% 110%, rgba(0, 0, 0, .4), transparent 60%), linear-gradient(180deg, #22412e 0%, #1c3727 55%, #16301f 100%);--kraft: linear-gradient(160deg, #a5825a 0%, #8f6f4a 55%, #7d5f3e 100%);--kraft-ink: #3b2a16}[data-theme=light]{--plank: linear-gradient(180deg, #c9a878 0%, #b08d5f 35%, #8f6f47 80%, #745737 100%)}:root{--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem}:root{--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Fira Code", "Courier New", monospace;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .05em;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.75}:root{--radius-none: 0;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-2xl: 24px;--radius-full: 9999px}:root{--shadow-xs: 0 1px 1px rgba(44, 33, 21, .05);--shadow-sm: 0 1px 2px rgba(44, 33, 21, .06);--shadow-md: 0 4px 10px rgba(44, 33, 21, .08);--shadow-lg: 0 10px 22px rgba(44, 33, 21, .12);--shadow-xl: 0 20px 32px rgba(44, 33, 21, .14);--shadow-2xl: 0 25px 50px rgba(44, 33, 21, .18);--shadow-focus: 0 0 0 3px rgba(232, 163, 61, .22), 0 0 0 1px rgba(201, 130, 31, .9)}[data-theme=dark]{--shadow-xs: 0 1px 1px rgba(0, 0, 0, .25);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 26px rgba(0, 0, 0, .45);--shadow-xl: 0 20px 36px rgba(0, 0, 0, .5);--shadow-2xl: 0 25px 56px rgba(0, 0, 0, .55)}:root{--duration-fast: .15s;--duration-base: .3s;--duration-slow: .5s;--easing-linear: linear;--easing-ease-in: cubic-bezier(.4, 0, 1, 1);--easing-ease-out: cubic-bezier(0, 0, .2, 1);--easing-ease-in-out: cubic-bezier(.4, 0, .2, 1);--easing-smooth: cubic-bezier(.34, 1.56, .64, 1);--transition-fast: var(--duration-fast) var(--easing-ease-in-out);--transition-base: var(--duration-base) var(--easing-ease-in-out);--transition-slow: var(--duration-slow) var(--easing-ease-in-out);--transition: all var(--transition-base)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--layout-bg);color:var(--color-text);line-height:var(--line-height-normal);transition:background-color var(--transition-base)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:radial-gradient(90rem 44rem at 50% -12rem,rgba(232,163,61,.09),transparent 60%),var(--grain)}[data-theme=light] body:before{background-image:radial-gradient(90rem 44rem at 50% -12rem,rgba(196,138,46,.1),transparent 60%),var(--grain)}#root{position:relative;z-index:1}code{font-family:var(--font-mono);background-color:var(--color-gray-100);padding:.2rem .4rem;border-radius:var(--radius-sm);font-size:.9em}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);margin-bottom:var(--space-4);color:var(--color-text)}h1,h2{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}h1{font-size:2.5rem;margin-bottom:var(--space-6)}h2{font-size:2rem;margin-bottom:var(--space-4)}h3{font-size:1.5rem;font-weight:var(--font-weight-semibold);margin-bottom:var(--space-3)}h4{font-size:1.25rem;font-weight:var(--font-weight-semibold);margin-bottom:var(--space-3)}h5{font-size:1.1rem;font-weight:var(--font-weight-semibold);margin-bottom:var(--space-2)}h6{font-size:1rem;font-weight:var(--font-weight-medium);margin-bottom:var(--space-2)}p{margin-bottom:var(--space-4);line-height:var(--line-height-relaxed)}.caption{font-size:.75rem;font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);color:var(--color-text-muted);text-transform:uppercase}.label{font-size:.875rem;font-weight:var(--font-weight-medium);color:var(--color-text)}.text-sm{font-size:.875rem;line-height:var(--line-height-normal)}.text-xs{font-size:.75rem;line-height:var(--line-height-tight)}.text-muted{color:var(--color-text-muted)}a{color:var(--brand);text-decoration:none;transition:color var(--transition-fast);font-weight:var(--font-weight-medium)}a:hover{color:var(--brand-strong);text-decoration:underline}a:focus{outline:2px solid var(--brand);outline-offset:2px}button{font-family:var(--font-sans);cursor:pointer;border:none;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);font-size:1rem;transition:all var(--transition-fast);display:inline-flex;align-items:center;gap:var(--space-2);white-space:nowrap;background-color:var(--btn-bg);color:var(--btn-fg);border:1px solid transparent}button:hover:not(:disabled){background-color:var(--btn-bg-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(1px)}button:focus{outline:none}button:focus-visible{box-shadow:var(--shadow-focus)}button:disabled{opacity:.6;cursor:not-allowed}input,textarea,select{font-family:var(--font-sans);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;transition:all var(--transition-fast);background-color:var(--color-surface);color:var(--color-text)}input:hover:not(:disabled),textarea:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--color-primary-400)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--brand);box-shadow:var(--shadow-focus)}input:disabled,textarea:disabled,select:disabled{background-color:var(--color-gray-100);opacity:.6;cursor:not-allowed}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-md);transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.spinner{animation:spin 1s linear infinite}.app-spinner{display:flex;align-items:center;justify-content:center;height:100vh}.fade-in{animation:fade-in var(--transition-base)}.slide-in-up{animation:slide-in-up var(--transition-base)}.pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.icon{width:24px;height:24px;flex-shrink:0;display:inline-block}.icon-sm{width:16px;height:16px}.icon-md{width:24px;height:24px}.icon-lg{width:32px;height:32px}.icon-xl{width:48px;height:48px}.icon-2xl{width:64px;height:64px}.icon-primary{color:var(--brand)}.icon-secondary{color:var(--color-secondary-500)}.icon-success{color:var(--color-success-500)}.icon-warning{color:var(--color-warning-500)}.icon-danger{color:var(--color-danger-500)}.icon-info{color:var(--color-info-500)}.icon-muted{color:var(--color-text-muted)}
