@import "https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css";
:root,[data-theme=cute]{--bg-color:#fff8f0;--text-main:#332b26;--text-muted:#857468;--border-color:#f7dfce;--white:#fff;--primary:#f97316;--primary-hover:#ea580c;--cal-bg:#fff;--radius:12px}[data-theme=simple]{--bg-color:#f5f5f5;--text-main:#111;--text-muted:#666;--border-color:#ddd;--white:#fff;--primary:#3b82f6;--primary-hover:#2563eb;--cal-bg:#fff;--radius:4px}[data-theme=dark]{--bg-color:#121212;--text-main:#e0e0e0;--text-muted:#999;--border-color:#333;--white:#1e1e1e;--primary:#bb86fc;--primary-hover:#9965f4;--cal-bg:#1e1e1e;--radius:8px}[data-theme=nature]{--bg-color:#f0f7f4;--text-main:#2b4535;--text-muted:#5e7a68;--border-color:#cce0d6;--white:#fff;--primary:#10b981;--primary-hover:#059669;--cal-bg:#fff;--radius:16px}[data-theme=arch]{--bg-color:#e5e5e5;--text-main:#000;--text-muted:#555;--border-color:#aaa;--white:#f5f5f5;--primary:#000;--primary-hover:#333;--cal-bg:#eee;--radius:0px}*{box-sizing:border-box;margin:0;padding:0;font-family:Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Roboto,sans-serif}body{background-color:var(--bg-color);color:var(--text-main);font-family:Pretendard,sans-serif;transition:background-color .3s,color .3s}a{color:inherit;text-decoration:none}button,input,select{font-family:inherit}button{cursor:pointer;transition:all .2s}.app-layout{height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--white);border-right:1px solid var(--border-color);z-index:100;flex-direction:column;flex-shrink:0;width:280px;min-width:280px;padding:1.5rem;transition:all .3s;display:flex;overflow:visible auto}.main-content{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.top-bar{border-bottom:1px solid var(--border-color);background:var(--white);justify-content:space-between;align-items:center;height:60px;padding:0 2rem;display:flex}.scroll-area{flex:1;padding:2rem;overflow-y:auto}.btn{border-radius:var(--radius);border:none;padding:.6rem 1rem;font-size:.9rem;font-weight:600}.btn-primary{background:var(--primary);color:#fff;border:none}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px)}.btn-outline{border:1px solid var(--border-color);color:var(--text-main);background:0 0}.btn-outline:hover{background:var(--bg-color)}.btn-sleek{background:var(--white);border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;border-radius:20px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s;box-shadow:0 1px 2px #0000000d}.btn-sleek:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-1px);box-shadow:0 4px 12px #0000000d}.tab-group{border-bottom:1px solid var(--border-color);width:100%;margin-bottom:1.5rem;display:flex}.tab-btn{cursor:pointer;color:var(--text-muted);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;padding:12px 15px;font-size:.85rem;font-weight:600;transition:all .2s}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-btn:hover:not(.active){color:var(--text-main)}.form-grid{grid-template-columns:80px 1fr;align-items:center;gap:1rem;margin-bottom:1rem;display:grid}.form-label{color:var(--text-muted);justify-content:flex-end;align-items:center;gap:6px;font-size:.8rem;font-weight:600;display:flex}.form-input{border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-color);width:100%;padding:.6rem;font-size:.85rem}.form-input:focus{border-color:var(--primary);background:var(--white);outline:none}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--white);border-radius:var(--radius);width:100%;max-width:500px;max-height:90vh;padding:2rem;overflow-y:auto;box-shadow:0 10px 25px #0000001a}.card{background:var(--white);border:1px solid var(--border-color);border-radius:var(--radius);padding:1.5rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.flex{display:flex}.gap-2{gap:.5rem}.gap-4{gap:1rem}.items-center{align-items:center}.space-between{justify-content:space-between}.cal-block{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;text-align:left;border-radius:4px;width:100%;margin-bottom:2px;padding:3px 6px;font-size:.75rem;font-weight:500;overflow:hidden}.cat-공부{color:#854d0e;background:#fef08a}.cat-모임{color:#1e40af;background:#bfdbfe}.cat-약속{color:#6b21a8;background:#e9d5ff}.cat-할일{color:#991b1b;background:#fecaca}.cat-기타{color:#374151;background:#e5e7eb}.cal-block.is-friend{opacity:.65;background-image:repeating-linear-gradient(45deg,#0000,#0000 4px,#0000000f 4px 8px);border:1px dashed #aaa}.chat-bubble{background:var(--white);border:1px solid var(--border-color);z-index:50;border-radius:12px;max-width:100%;margin-bottom:10px;padding:15px;font-size:.85rem;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;box-shadow:0 8px 24px #00000014}.chat-bubble.expanded{box-shadow:0 12px 32px #0000001f;max-height:400px!important}.chat-bubble::-webkit-scrollbar{width:4px}.chat-bubble::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}.chat-bubble:after{content:"";border-style:solid;border-width:10px 10px 0;border-color:var(--white) transparent transparent transparent;position:absolute;bottom:-10px;left:20px}.chat-bubble:before{content:"";border-style:solid;border-width:11px 11px 0;border-color:var(--border-color) transparent transparent transparent;position:absolute;bottom:-12px;left:19px}[data-tooltip]{cursor:pointer;position:relative}[data-tooltip]:before{content:attr(data-tooltip);color:#fff;white-space:pre-wrap;word-break:keep-all;opacity:0;visibility:hidden;pointer-events:none;z-index:9999;text-align:center;background:#332b26f2;border-radius:8px;width:max-content;max-width:300px;padding:8px 12px;font-size:.75rem;line-height:1.4;transition:all .2s cubic-bezier(.175,.885,.32,1.275);position:absolute;bottom:120%;left:50%;transform:translate(-50%)scale(.8);box-shadow:0 4px 16px #0003}[data-tooltip]:hover:before{opacity:1;visibility:visible;transform:translate(-50%)scale(1)}.gyul-avatar-container{justify-content:center;align-items:center;width:100%;padding:5px;display:flex;overflow:visible!important}.gyul-avatar-image{object-fit:contain;max-width:none!important}.achievement-badge{cursor:help;transition:transform .2s}.achievement-badge:hover{transform:scale(1.1)}.progress-bar{background:var(--bg-color);border-radius:4px;height:8px;overflow:hidden}.progress-fill{background:var(--primary);height:100%;transition:width .5s}.review-card{background:var(--bg-color);border-radius:var(--radius);text-align:center;border:1px solid var(--border-color);padding:1rem}.review-value{color:var(--primary);font-size:1.5rem;font-weight:800}.text-center{text-align:center}.mt-2{margin-top:.5rem}.mb-2{margin-bottom:.5rem}.mobile-bottom-nav,.mobile-sidebar-toggle,.mobile-sidebar-overlay{display:none}@media (max-width:768px){.hide-mobile-text{display:none}.app-layout{flex-direction:column;height:100vh;position:relative;overflow-y:auto}.sidebar{z-index:2000;border-right:1px solid var(--border-color);width:85%;max-width:320px;height:100vh;animation:.3s slideInLeft;display:none;position:fixed;top:0;left:0;transform:translate(0);box-shadow:4px 0 25px #00000026}.sidebar.mobile-open{display:flex}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}.mobile-sidebar-overlay{z-index:1999;background:#0006;animation:.2s fadeIn;display:block;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.main-content{height:auto;min-height:calc(100vh - 60px);padding-bottom:65px;overflow:visible}.top-bar{z-index:100;gap:8px;height:50px;padding:0 12px;position:sticky;top:0}.top-bar img{height:30px!important}.top-bar .btn-sleek{padding:4px 10px;font-size:.7rem}.scroll-area{flex:1;padding:12px}.mobile-sidebar-toggle{cursor:pointer;color:var(--text-main);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px;font-size:1.3rem;transition:all .2s;display:flex}.mobile-sidebar-toggle:active{background:var(--bg-color)}.cal-day{min-height:55px!important;padding:4px!important}.cal-block{border-radius:3px;padding:1px 3px;font-size:.55rem}.dashboard-container{flex-direction:column}.main-calendar-area{min-height:400px;height:auto!important;padding:8px!important}.task-side-panel{border-top:1px solid var(--border-color);border-left:none!important;width:100%!important;height:auto!important;position:relative!important}.form-grid{grid-template-columns:1fr;gap:.3rem}.form-label{justify-content:flex-start;font-size:.75rem}.form-input{padding:.5rem;font-size:.85rem}.tab-group{-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-bottom:1rem;overflow-x:auto}.tab-group::-webkit-scrollbar{display:none}.tab-btn{min-width:fit-content;padding:10px 12px;font-size:.8rem}.modal-content{border-radius:16px;max-height:85vh;margin:10px;padding:1.2rem}.card{border-radius:10px;padding:1rem}.btn{padding:.5rem .8rem;font-size:.82rem}[data-tooltip]:before{display:none}.mobile-bottom-nav{background:var(--white);border-top:1px solid var(--border-color);z-index:1000;justify-content:space-around;align-items:center;height:60px;padding:0 10px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0000000d}.mobile-bottom-nav button,.mobile-bottom-nav a{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:center;gap:2px;min-width:56px;padding:6px 12px;font-size:.6rem;font-weight:600;text-decoration:none;transition:color .2s;display:flex}.mobile-bottom-nav .active{color:var(--primary);background:var(--bg-color)}.mypage-grid-profile,.mypage-grid-achievements,.mypage-grid-friends,.mypage-timetable-grid{grid-template-columns:1fr!important;gap:1rem!important}.login-layout{flex-direction:column!important}.login-left{padding:30px 20px 10px!important}.login-left img:first-child{width:180px!important;height:180px!important}.login-right{padding:20px!important}}@media (max-width:480px){h2{font-size:1.2rem}.btn{padding:.45rem .7rem;font-size:.78rem}.cal-day{min-height:48px!important;padding:2px!important}.cal-block{padding:1px 2px;font-size:.5rem}.scroll-area{padding:8px}.top-bar{height:46px;padding:0 8px}}@media (max-height:500px) and (max-width:900px){.mobile-bottom-nav{height:48px}.mobile-bottom-nav button,.mobile-bottom-nav a{padding:4px 8px;font-size:.55rem}}
