*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a1a;background:#f0f2f5;font-family:Apple SD Gothic Neo,Noto Sans KR,-apple-system,BlinkMacSystemFont,sans-serif}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input{font-family:inherit}.nav{z-index:100;background:#fff;border-bottom:1px solid #f3f4f6;justify-content:space-between;align-items:center;height:64px;padding:0 2rem;display:flex;position:sticky;top:0}.nav-logo{align-items:center;gap:.6rem;text-decoration:none;display:flex}.nav-logo__text{flex-direction:column;display:flex}.nav-logo__name{background:linear-gradient(90deg,#7c3aed,#2563eb,#059669);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.1rem;font-weight:800;line-height:1.2}.nav-logo__sub{color:#9ca3af;letter-spacing:.04em;font-size:.65rem}.nav-links{align-items:center;gap:1.75rem;display:flex}.nav-links a{color:#374151;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .15s}.nav-links a:hover{color:#7c3aed}.nav-links a.active{color:#2563eb;font-weight:800}.nav-actions{align-items:center;gap:.75rem;display:flex}.nav-btn-login{color:#374151;cursor:pointer;background:0 0;border:1.5px solid #e5e7eb;border-radius:8px;padding:.45rem 1rem;font-size:.875rem;font-weight:600;transition:border-color .15s,color .15s}.nav-btn-login:hover{color:#7c3aed;border-color:#7c3aed}.nav-btn-start{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c3aed,#2563eb);border:none;border-radius:8px;padding:.5rem 1.1rem;font-size:.875rem;font-weight:700;transition:opacity .15s,transform .1s}.nav-btn-start:hover{opacity:.9;transform:translateY(-1px)}.nav-user-name{color:#374151;font-size:.875rem;font-weight:600}.home{flex-direction:column;display:flex}.hero{background:linear-gradient(135deg,#faf8ff 0%,#eff6ff 50%,#ecfdf5 100%);justify-content:center;align-items:center;min-height:calc(100vh - 64px);padding:4rem 2rem;display:flex;position:relative;overflow:hidden}.hero__inner{z-index:1;text-align:center;max-width:640px;position:relative}.hero__badge{color:#6b7280;letter-spacing:.08em;background:#fff;border:1.5px solid #e5e7eb;border-radius:999px;margin-bottom:1.5rem;padding:.35rem 1rem;font-size:.82rem;font-weight:600;display:inline-block}.hero__title{color:#111827;margin:0 0 1.25rem;font-size:clamp(2rem,5vw,3.2rem);font-weight:800;line-height:1.25}.hero__title--grad{background:linear-gradient(90deg,#7c3aed,#2563eb,#059669);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero__desc{color:#4b5563;margin:0 0 2.25rem;font-size:1.1rem;line-height:1.7}.hero__cta{flex-wrap:wrap;justify-content:center;align-items:center;gap:.875rem;display:flex}.hero__welcome{color:#7c3aed;margin-right:.25rem;font-size:1rem;font-weight:600}.hero__visual{pointer-events:none;position:absolute;inset:0}.hero__orb{filter:blur(60px);opacity:.25;border-radius:50%;position:absolute}.hero__orb--1{background:#7c3aed;width:400px;height:400px;top:-10%;left:-8%}.hero__orb--2{background:#2563eb;width:350px;height:350px;bottom:-5%;right:5%}.hero__orb--3{background:#059669;width:250px;height:250px;top:30%;right:20%}.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c3aed,#2563eb);border:none;border-radius:12px;padding:.8rem 1.75rem;font-size:1rem;font-weight:700;transition:opacity .15s,transform .1s,box-shadow .15s;box-shadow:0 4px 14px #7c3aed4d}.btn-primary:hover{opacity:.92;transform:translateY(-2px);box-shadow:0 6px 20px #7c3aed66}.btn-secondary{color:#374151;cursor:pointer;background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;padding:.8rem 1.75rem;font-size:1rem;font-weight:700;transition:border-color .15s,transform .1s}.btn-secondary:hover{color:#7c3aed;border-color:#7c3aed;transform:translateY(-2px)}.features{text-align:center;background:#fff;padding:5rem 2rem}.features__title{color:#111827;margin:0 0 3rem;font-size:1.75rem;font-weight:800}.features__grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;max-width:900px;margin:0 auto;display:grid}.feature-card{text-align:left;background:#fafafa;border:1.5px solid #f3f4f6;border-radius:16px;padding:2rem 1.5rem;transition:transform .15s,box-shadow .15s}.feature-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000012}.feature-card__icon{border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:1rem;font-size:1.5rem;display:flex}.feature-card__badge{letter-spacing:.08em;text-transform:uppercase;margin-bottom:.4rem;font-size:.75rem;font-weight:700}.feature-card__title{color:#111827;margin:0 0 .6rem;font-size:1.05rem;font-weight:700}.feature-card__desc{color:#6b7280;margin:0;font-size:.88rem;line-height:1.6}.cta-banner{text-align:center;color:#fff;background:linear-gradient(135deg,#7c3aed,#2563eb);padding:5rem 2rem}.cta-banner__title{margin:0 0 .75rem;font-size:1.75rem;font-weight:800}.cta-banner__desc{opacity:.85;margin:0 0 2rem;font-size:1rem}.cta-banner .btn-primary{color:#7c3aed;background:#fff;box-shadow:0 4px 14px #00000026}.cta-banner .btn-primary:hover{box-shadow:0 6px 20px #0003}.planner-wizard{min-height:calc(100vh - 64px);margin-top:64px;padding:32px 0 56px}.wizard-inner{max-width:1100px;margin:0 auto;padding:0 40px}.step-indicator{background:#fff;border:1px solid #ebebeb;border-radius:16px;align-items:center;margin-bottom:28px;padding:20px 28px;display:flex;box-shadow:0 2px 12px #0000000f}.step-ind-item{flex-direction:column;flex:1;align-items:center;gap:6px;display:flex}.step-ind-circle{color:#aaa;background:#f4f4f4;border:2px solid #e0e0e0;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:700;transition:all .3s;display:flex}.step-ind-item.active .step-ind-circle{color:#fff;background:#3b82f6;border-color:#3b82f6;box-shadow:0 0 0 4px #bfdbfe}.step-ind-item.done .step-ind-circle{color:#fff;background:#10b981;border-color:#10b981}.step-ind-label{color:#aaa;white-space:nowrap;font-size:11px;font-weight:600}.step-ind-item.active .step-ind-label{color:#3b82f6}.step-ind-item.done .step-ind-label{color:#10b981}.step-ind-line{background:#e0e0e0;flex:1;min-width:16px;height:2px;margin:0 4px 20px;transition:background .3s}.step-ind-line.done{background:#10b981}.step-card{background:#fff;border:1px solid #ebebeb;border-radius:20px;margin-bottom:24px;padding:36px;box-shadow:0 4px 20px #0000000f}.step-title{margin-bottom:6px;font-size:21px;font-weight:900}.step-subtitle{color:#888;margin-bottom:28px;font-size:13px}.region-search-wrap{background:#f8f9fa;border:1.5px solid #e8e8e8;border-radius:12px;align-items:center;margin-bottom:22px;padding:0 14px;transition:border-color .2s;display:flex;position:relative}.region-search-wrap:focus-within{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #eff6ff}.region-search-icon{flex-shrink:0;margin-right:8px;font-size:15px}.region-search-input{color:#1a1a1a;background:0 0;border:none;outline:none;flex:1;padding:13px 0;font-size:14px}.region-search-input::placeholder{color:#bbb}.region-search-clear{color:#aaa;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:4px;font-size:13px}.region-search-clear:hover{color:#555;background:#f0f0f0}.region-empty{text-align:center;color:#666;padding:60px 0}.region-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.region-card{cursor:pointer;border:3px solid #0000;border-radius:18px;height:200px;transition:transform .25s,box-shadow .25s;position:relative;overflow:hidden;box-shadow:0 4px 16px #0000001a}.region-card:hover{transform:translateY(-5px);box-shadow:0 10px 32px #00000029}.region-card.selected{border-color:#3b82f6;box-shadow:0 0 0 4px #bfdbfe}.rg-bg{transition:transform .4s;position:absolute;inset:0}.region-card:hover .rg-bg{transform:scale(1.06)}.rg-overlay{background:linear-gradient(#0000001a 40%,#000000c7 100%);position:absolute;inset:0}.rg-emoji{opacity:.28;justify-content:center;align-items:center;font-size:56px;display:flex;position:absolute;inset:0}.rg-info{color:#fff;padding:18px;position:absolute;bottom:0;left:0;right:0}.rg-city{font-size:24px;font-weight:800}.rg-desc{color:#fffc;margin-top:3px;font-size:11px}.rg-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#1a1a1a;background:#ffffffeb;border-radius:20px;padding:4px 10px;font-size:10px;font-weight:700;position:absolute;top:14px;right:14px}.rg-badge-blue{color:#3b82f6!important;background:#eff6ff!important}.rg-badge-green{color:#10b981!important;background:#ecfdf5!important}.job-region-tag{color:#fff;background:linear-gradient(135deg,#1e3a5f,#2d5a8e);border-radius:6px;margin-right:4px;padding:2px 10px;font-size:18px;display:inline-block}.job-selected-count{color:#fff;background:linear-gradient(135deg,#1d4ed8,#1e3a5f);border-radius:20px;align-items:center;gap:6px;margin-bottom:14px;padding:7px 16px;font-size:12px;font-weight:700;display:inline-flex}.pkg-check-badge{z-index:3;color:#fff;background:#10b981;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:800;display:flex;position:absolute;top:10px;right:10px;box-shadow:0 2px 6px #0003}.job-filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:22px;display:flex}.jchip{cursor:pointer;border-radius:20px;padding:6px 14px;font-size:12px;font-weight:600}.jchip.active{color:#3b82f6;background:#eff6ff;border:1.5px solid #bfdbfe}.jchip.def{color:#666;background:#fff;border:1.5px solid #e0e0e0}.pkg-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.pkg-card{cursor:pointer;background:#fff;border:2px solid #ebebeb;border-radius:16px;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;overflow:hidden}.pkg-card:hover{transform:translateY(-4px);box-shadow:0 10px 32px #0000001a}.pkg-card.selected{border-color:#3b82f6;box-shadow:0 0 0 3px #bfdbfe}.pkg-best{z-index:2;color:#fff;background:#3b82f6;border-radius:5px;padding:3px 8px;font-size:10px;font-weight:700;position:absolute;top:10px;left:10px}.pkg-img{height:155px;position:relative;overflow:hidden}.pkg-img-overlay{background:linear-gradient(#0000,#00000080);padding:12px;position:absolute;bottom:0;left:0;right:0}.pkg-location{color:#fff;font-size:10px;font-weight:600}.pkg-img-label{opacity:.4;justify-content:center;align-items:center;font-size:48px;display:flex;position:absolute;inset:0}.pi1{background:linear-gradient(160deg,#1e3a5f,#2d5a8e)}.pi2{background:linear-gradient(160deg,#3b2800,#7c4d1a)}.pi3{background:linear-gradient(160deg,#1a3320,#2d6040)}.pkg-body{padding:16px}.pkg-type{color:#10b981;background:#ecfdf5;border-radius:4px;margin-bottom:7px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-block}.pkg-name{margin-bottom:5px;font-size:14px;font-weight:800;line-height:1.3}.pkg-desc{color:#666;margin-bottom:10px;font-size:12px;line-height:1.5}.pkg-tags{flex-wrap:wrap;gap:5px;margin-bottom:12px;display:flex}.ptag{color:#555;background:#f4f4f4;border-radius:4px;padding:3px 7px;font-size:10px;font-weight:600}.pkg-footer{border-top:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding-top:11px;display:flex}.pkg-price .amount{font-size:18px;font-weight:900}.pkg-price .unit{color:#888;font-size:11px}.pkg-price .sub{color:#aaa;margin-top:1px;font-size:10px;display:block}.pkg-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#3b82f6;border:none;border-radius:8px;padding:7px 13px;font-size:11px;font-weight:700}.pkg-btn.sel{background:#10b981}.job-slider-wrap{margin-bottom:18px}.job-slider-label{color:#888;margin-bottom:10px;font-size:12px;font-weight:600}.job-slider-carousel{align-items:center;gap:6px;display:flex}.slider-arrow{color:#555;cursor:pointer;background:#fff;border:1.5px solid #e0e0e0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;padding-bottom:1px;font-size:22px;line-height:1;transition:all .2s;display:flex;box-shadow:0 1px 4px #00000012}.slider-arrow:hover{color:#d97706;background:#fffbeb;border-color:#f59e0b;box-shadow:0 2px 8px #f59e0b33}.job-slider{scrollbar-width:none;flex:1;gap:10px;display:flex;overflow-x:auto}.job-slider::-webkit-scrollbar{display:none}.job-chip{cursor:pointer;background:#f8f9fa;border:1.5px solid #e0e0e0;border-radius:14px;flex-shrink:0;align-items:center;gap:10px;max-width:220px;padding:10px 16px;transition:all .2s;display:flex}.job-chip:hover{background:#fffbeb;border-color:#f59e0b}.job-chip.active{background:#fffbeb;border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b26}.job-chip-emoji{flex-shrink:0;font-size:22px}.job-chip-name{color:#1a1a1a;white-space:nowrap;text-overflow:ellipsis;max-width:130px;font-size:12px;font-weight:700;overflow:hidden}.job-chip-sub{color:#888;white-space:nowrap;margin-top:2px;font-size:10px}.job-chip-pin{flex-shrink:0;font-size:14px}.job-chip-empty{color:#999;background:#f8f9fa;border:1.5px dashed #e0e0e0;border-radius:10px;align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.job-active-banner{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;align-items:center;gap:8px;margin-top:10px;padding:9px 14px;font-size:12px;display:flex}.job-active-close{color:#aaa;cursor:pointer;background:0 0;border:none;border-radius:4px;margin-left:auto;padding:2px 6px;font-size:13px}.job-active-close:hover{color:#555;background:#f0f0f0}.route-info-bar{color:#0369a1;background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;flex-direction:column;gap:0;min-height:38px;margin-top:8px;padding:10px 16px;font-size:12px;display:flex}.route-loading{color:#64748b;align-items:center;gap:8px;display:flex}.route-spinner{border:2px solid #cbd5e1;border-top-color:#3b82f6;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.route-badge{border-radius:20px;padding:3px 9px;font-size:11px;font-weight:700}.route-badge.subway{color:#1d4ed8;background:#dbeafe}.route-badge.bus{color:#065f46;background:#d1fae5}.route-divider{background:#bae6fd;flex-shrink:0;width:1px;height:16px}.route-time{color:#0c4a6e;font-size:13px;font-weight:800}.route-fare{color:#475569;font-size:12px}.route-legend{color:#64748b;margin-left:auto;font-size:11px}.route-error{color:#dc2626;font-size:12px}.route-summary{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.route-steps{border-top:1px solid #e0f2fe;flex-direction:column;gap:2px;width:100%;margin-top:10px;padding-top:10px;display:flex}.route-step{color:#1e293b;align-items:flex-start;gap:8px;font-size:12px;display:flex;position:relative}.rs-icon{flex-shrink:0;margin-top:1px;font-size:14px}.rs-text{flex:1;line-height:1.5}.rs-text strong{font-weight:700}.rs-meta{color:#64748b;margin-left:6px;font-size:11px}.rs-arrow{color:#94a3b8;padding-left:22px;font-size:11px;line-height:1}.map-step-layout{border:1px solid #e0e0e0;border-radius:16px;height:560px;display:flex;overflow:hidden}.map-sidebar{background:#fff;border-right:1px solid #e8e8e8;flex-direction:column;width:330px;min-width:330px;display:flex;overflow-y:auto}.map-sidebar-header{border-bottom:1px solid #f0f0f0;padding:16px 18px}.map-sidebar-title{margin-bottom:10px;font-size:15px;font-weight:800}.map-filter-row{flex-wrap:wrap;gap:7px;display:flex}.mchip{cursor:pointer;border-radius:20px;align-items:center;gap:4px;padding:5px 10px;font-size:11px;font-weight:600;display:flex}.mchip.active{color:#3b82f6;background:#eff6ff;border:1.5px solid #bfdbfe}.mchip.green{color:#10b981;background:#ecfdf5;border:1.5px solid #a7f3d0}.map-result-info{color:#666;background:#fafafa;border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:8px 18px;font-size:11px;display:flex}.acc-list{flex:1;overflow-y:auto}.acc-empty-notice{color:#1e40af;background:#eff6ff;border:1px dashed #bfdbfe;border-radius:10px;margin:14px 18px;padding:14px;font-size:12px;font-weight:600;line-height:1.6}.acc-sec{color:#aaa;text-transform:uppercase;letter-spacing:.5px;padding:10px 18px 4px;font-size:10px;font-weight:700}.acc-card{cursor:pointer;border-bottom:1px solid #f7f7f7;gap:10px;padding:12px 18px;transition:background .15s;display:flex}.acc-card:hover{background:#f8faff}.acc-card.selected{background:#eff6ff}.acc-img-box{border-radius:9px;flex-shrink:0;width:68px;height:60px;overflow:hidden}.acc-info{flex:1;min-width:0}.acc-name{white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:13px;font-weight:700;overflow:hidden}.acc-location{color:#888;margin-bottom:4px;font-size:11px}.acc-tags{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.at{border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600}.at-blue{color:#3b82f6;background:#eff6ff}.at-green{color:#10b981;background:#ecfdf5}.at-gray{color:#666;background:#f4f4f4}.acc-price-row{justify-content:space-between;align-items:center;display:flex}.acc-price{font-size:12px;font-weight:800}.acc-pos{color:#10b981;font-size:10px;font-weight:700}.acc-neg{color:#f97316;font-size:10px;font-weight:700}.map-wrapper{flex:1;min-width:0;height:100%}.lf-popup .leaflet-popup-content-wrapper{border:1px solid #f0f0f0;border-radius:12px;padding:0;overflow:hidden;box-shadow:0 6px 24px #00000029}.lf-popup .leaflet-popup-content{margin:0}.lf-popup .leaflet-popup-tip-container{margin-top:-1px}.pop-inner{min-width:160px;padding:11px 13px}.pop-name{margin-bottom:2px;font-size:13px;font-weight:700}.pop-info{color:#888;font-size:11px}.pop-price{color:#3b82f6;margin-top:4px;font-size:12px;font-weight:800}.budget-top-info{border-bottom:1px solid #f0f0f0;margin-bottom:24px;padding-bottom:20px}.budget-top-label{color:#888;margin-bottom:10px;font-size:12px;font-weight:600}.hotel-chip{background:#f0fdf4;border:1.5px solid #86efac;border-radius:12px;align-items:center;gap:10px;margin-top:12px;padding:9px 16px;display:inline-flex}.hotel-chip-name{color:#166534;font-size:13px;font-weight:700}.hotel-chip-price{color:#16a34a;margin-top:1px;font-size:11px}.step-empty-state{text-align:center;color:#999;padding:52px 0 36px}.budget-layout{grid-template-columns:1fr 1fr;gap:28px;display:grid}.summary-box{background:#f8f9fa;border-radius:16px;padding:26px}.srow{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.srow:last-of-type{border-bottom:none}.slabel{color:#666;font-size:13px}.svalue{font-size:14px;font-weight:700}.sv-green{color:#059669}.sv-red{color:#ef4444}.sv-blue{color:#3b82f6}.stotal{background:linear-gradient(135deg,#1e3a5f,#1e1b4b);border-radius:14px;justify-content:space-between;align-items:center;margin-top:16px;padding:18px 22px;display:flex}.stotal .t-lbl{color:#ffffffbf;font-size:12px;font-weight:600}.stotal .t-amt{color:#fff;font-size:24px;font-weight:900}.budget-chart-title{margin-bottom:16px;font-size:15px;font-weight:800}.bar-chart{align-items:flex-end;gap:8px;height:140px;margin-bottom:8px;display:flex}.bar-group{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.bars{align-items:flex-end;gap:3px;display:flex}.bar{cursor:pointer;border-radius:4px 4px 0 0;width:16px;transition:opacity .2s}.bar:hover{opacity:.8}.bar.income{background:#3b82f6}.bar.expense{background:#fca5a5}.bar-month{color:#aaa;font-size:11px;font-weight:600}.chart-legend{gap:16px;margin-top:8px;margin-bottom:20px;display:flex}.cl-item{color:#888;align-items:center;gap:5px;font-size:11px;display:flex}.cl-dot{border-radius:2px;width:8px;height:8px}.analysis-list{flex-direction:column;gap:9px;display:flex}.ai-item{background:#fafafa;border:1px solid #f0f0f0;border-radius:10px;gap:10px;padding:11px;display:flex}.ai-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.ai-blue{background:#eff6ff}.ai-green{background:#ecfdf5}.ai-orange{background:#fff7ed}.ai-title{margin-bottom:2px;font-size:12px;font-weight:700}.ai-desc{color:#888;font-size:11px;line-height:1.5}.planner-summary-bar{background:#f0f9ff;border:1px solid #bae6fd;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:24px;padding:14px 20px;display:flex}.summary-icon{background:linear-gradient(135deg,#1e3a5f,#2d5a8e);border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex}.summary-job-name{font-size:15px;font-weight:800}.summary-meta{color:#666;flex-wrap:wrap;gap:7px;margin-top:3px;font-size:12px;display:flex}.meta-tag{background:#f4f4f4;border-radius:4px;padding:2px 8px;font-weight:600}.btn-change{color:#555;background:#fff;border:1.5px solid #ddd;border-radius:8px;padding:8px 16px;font-size:12px;font-weight:600}.btn-view{color:#fff;background:#3b82f6;border:none;border-radius:8px;padding:8px 16px;font-size:12px;font-weight:700}.planner-layout{grid-template-columns:1fr 300px;gap:22px;display:grid}.cal-panel{background:#fff;border:1px solid #ebebeb;border-radius:16px;overflow:hidden}.cal-panel-header{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:16px 22px;display:flex}.cal-month-title{font-size:17px;font-weight:800}.cal-nav-btn{cursor:pointer;color:#555;background:#fff;border:1px solid #e0e0e0;border-radius:7px;width:30px;height:30px;font-size:16px}.cal-legend{background:#fafafa;border-bottom:1px solid #f0f0f0;gap:12px;padding:9px 22px;display:flex}.leg-item{color:#555;align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}.leg-dot{border-radius:2px;flex-shrink:0;width:9px;height:9px}.ld-work{background:#1e3a5f}.ld-rest{background:#f59e0b}.ld-today{background:#3b82f6}.cal-body{padding:12px 16px 16px}.cal-weekdays{grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:5px;display:grid}.cal-wd{text-align:center;color:#aaa;padding:4px 0;font-size:11px;font-weight:700}.cal-wd.sun{color:#ef4444}.cal-wd.sat{color:#3b82f6}.cal-days{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.cal-day{cursor:pointer;border:1px solid #0000;border-radius:9px;flex-direction:column;gap:2px;min-height:66px;padding:6px;transition:all .15s;display:flex}.cal-day:hover{border-color:#e0e0e0}.cal-day.empty{cursor:default}.cal-day.work{background:#eff6ff;border-color:#bfdbfe}.cal-day.rest{background:#fffbeb;border-color:#fde68a}.cal-day.today{border-color:#3b82f6!important}.day-num{color:#333;font-size:11px;font-weight:700}.cal-day.work .day-num{color:#1e3a5f}.cal-day.rest .day-num{color:#d97706}.day-badge{border-radius:3px;padding:1px 4px;font-size:9px;font-weight:700}.b-work{color:#fff;background:#1e3a5f}.b-rest{color:#fff;background:#f59e0b}.b-today{color:#fff;background:#3b82f6}.day-evt{color:#666;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.planner-right{flex-direction:column;gap:16px;display:flex}.ps-card{background:#fff;border:1px solid #ebebeb;border-radius:16px;overflow:hidden}.ps-header{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:13px 18px;display:flex}.ps-title{font-size:14px;font-weight:800}.ps-badge{color:#059669;background:#ecfdf5;border-radius:5px;padding:3px 7px;font-size:10px;font-weight:700}.ps-body{padding:13px 18px}.ps-row{border-bottom:1px solid #f8f8f8;justify-content:space-between;padding:7px 0;display:flex}.ps-row:last-child{border-bottom:none}.ps-lbl{color:#666;font-size:12px}.ps-val{font-size:13px;font-weight:700}.ps-total{background:linear-gradient(135deg,#1e3a5f,#1e1b4b);border-radius:10px;justify-content:space-between;align-items:center;margin-top:10px;padding:13px;display:flex}.ps-total .pt-lbl{color:#ffffffbf;font-size:11px;font-weight:600}.ps-total .pt-amt{color:#fff;font-size:18px;font-weight:900}.planner-actions{background:#fff;border:1px solid #ebebeb;border-radius:16px;flex-direction:column;gap:9px;padding:16px;display:flex}.act-btn{cursor:pointer;text-align:center;border-radius:10px;width:100%;padding:11px;font-size:13px;font-weight:700}.act-primary{color:#fff;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none}.act-outline{color:#555;background:#fff;border:1.5px solid #ddd}.wizard-nav{justify-content:space-between;align-items:center;display:flex}.btn-prev{color:#555;cursor:pointer;background:#fff;border:1.5px solid #ddd;border-radius:10px;padding:12px 26px;font-size:14px;font-weight:600;transition:all .2s}.btn-prev:hover:not(:disabled){color:#3b82f6;border-color:#3b82f6}.btn-prev:disabled{opacity:.35;cursor:not-allowed}.btn-next{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none;border-radius:10px;padding:12px 30px;font-size:14px;font-weight:700;transition:all .2s;box-shadow:0 4px 12px #3b82f659}.btn-next:hover{transform:translateY(-1px);box-shadow:0 6px 18px #3b82f666}.step-counter{color:#aaa;font-size:13px;font-weight:600}.directory-page{background:#f8fafc;min-height:calc(100vh - 64px);padding:34px 32px 64px}.directory-shell{max-width:1120px;margin:0 auto}.directory-head{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px;display:flex}.directory-kicker{color:#2563eb;margin:0 0 8px;font-size:13px;font-weight:800}.directory-title{color:#111827;margin:0;font-size:30px;font-weight:900}.directory-desc{color:#64748b;margin:10px 0 0;font-size:14px;line-height:1.7}.directory-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.directory-btn{color:#334155;cursor:pointer;background:#fff;border:1px solid #dbe3ef;border-radius:8px;padding:10px 14px;font-weight:800}.directory-btn.primary{color:#fff;background:linear-gradient(135deg,#7c3aed,#2563eb);border:none}.directory-toolbar{grid-template-columns:1fr auto;gap:12px;margin-bottom:20px;display:grid}.directory-search,.directory-select{color:#111827;background:#fff;border:1px solid #dbe3ef;border-radius:10px;outline:none;padding:12px 14px;font-size:14px}.directory-search:focus,.directory-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #dbeafe}.directory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.directory-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:18px;box-shadow:0 8px 22px #0f172a0d}.directory-card-top{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.directory-card-title{color:#111827;margin:0;font-size:17px;font-weight:900;line-height:1.35}.directory-card-sub{color:#64748b;margin:6px 0 0;font-size:12px;line-height:1.5}.directory-badge{color:#2563eb;background:#eff6ff;border-radius:999px;flex-shrink:0;padding:5px 9px;font-size:11px;font-weight:800}.directory-badge.danger{color:#e11d48;background:#fff1f2}.directory-metrics{grid-template-columns:repeat(2,1fr);gap:8px;margin:16px 0;display:grid}.directory-metric{background:#f8fafc;border-radius:8px;padding:10px}.directory-metric span{color:#94a3b8;font-size:11px;font-weight:700;display:block}.directory-metric strong{color:#0f172a;margin-top:3px;font-size:14px;display:block}.directory-tags{flex-wrap:wrap;gap:6px;display:flex}.directory-tag{color:#475569;background:#f1f5f9;border-radius:6px;padding:4px 7px;font-size:11px;font-weight:700}.directory-empty{color:#64748b;text-align:center;background:#fff;border:1px dashed #cbd5e1;border-radius:10px;padding:44px}.planner-list{grid-template-columns:340px 1fr;gap:18px;display:grid}.planner-list-panel,.planner-detail-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:18px}.planner-item{text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;margin-bottom:10px;padding:14px}.planner-item.active{background:#eff6ff;border-color:#2563eb}.planner-form{gap:12px;display:grid}.planner-form label{color:#475569;gap:6px;font-size:12px;font-weight:800;display:grid}.planner-form input,.planner-form textarea{font:inherit;border:1px solid #dbe3ef;border-radius:8px;outline:none;padding:11px 12px}.planner-form textarea{resize:vertical;min-height:96px}.planner-shell-wide{max-width:1280px}.planner-workbench{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:18px;display:grid}.planner-panel-title{color:#0f172a;margin-bottom:12px;font-size:14px;font-weight:900}.timetable-panel{padding:0;overflow:hidden}.planner-topbar{border-bottom:1px solid #e5e7eb;grid-template-columns:1fr auto;gap:16px;padding:18px;display:grid}.planner-form.inline{grid-template-columns:minmax(180px,280px) minmax(220px,1fr);align-items:end}.planner-top-actions{align-items:end;gap:8px;display:flex}.planner-summary-strip{padding:0 18px}.planner-scheduler{border-top:1px solid #eef2f7;grid-template-columns:minmax(0,1fr) 280px;gap:18px;padding:18px;display:grid}.scheduler-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.scheduler-toolbar h2{color:#0f172a;margin:0;font-size:20px;font-weight:900}.scheduler-toolbar p{color:#64748b;margin:5px 0 0;font-size:12px}.scheduler-tabs,.day-picker{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;gap:6px;padding:4px;display:inline-flex}.scheduler-tabs button,.day-picker button{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 11px;font-weight:800}.scheduler-tabs button.active,.day-picker button.active{color:#2563eb;background:#fff;box-shadow:0 1px 4px #0f172a14}.day-picker button.sun{color:#e11d48}.day-picker button.sat{color:#2563eb}.week-head{border:1px solid #e5e7eb;border-bottom:none;border-radius:8px 8px 0 0;grid-template-columns:54px repeat(7,minmax(0,1fr));width:100%;display:grid;overflow:hidden}.week-head span,.week-head button{color:#475569;background:#f8fafc;border:none;border-right:1px solid #e5e7eb;min-height:38px;font-weight:900}.week-head button{cursor:pointer}.week-head button:last-child{border-right:none}.week-head button.sun{color:#e11d48;background:#fff1f2}.week-head button.sat{color:#2563eb;background:#eff6ff}.day-view{gap:12px;display:grid}.timetable{background:linear-gradient(#eef2f7 1px,#0000 1px) 0 0/100% 56px,#fff;border:1px solid #e5e7eb;border-radius:0 0 8px 8px;grid-template-columns:54px repeat(7,minmax(0,1fr));width:100%;height:1008px;display:grid;overflow:hidden}.timetable.day-only{border-radius:8px;grid-template-columns:54px minmax(0,1fr)}.time-rail{background:#f8fafc;border-right:1px solid #e5e7eb;grid-template-rows:repeat(18,56px);display:grid}.time-rail span{color:#94a3b8;text-align:center;padding-top:4px;font-size:11px;font-weight:800;display:block}.day-column{border-right:1px solid #eef2f7;min-width:0;position:relative}.day-column:last-child{border-right:none}.day-column.sun{background:#fff1f2b8}.day-column.sat{background:#eff6ffd6}.schedule-block{color:#fff;text-align:left;cursor:pointer;border:none;border-radius:6px;padding:8px;position:absolute;left:7px;right:7px;overflow:hidden;box-shadow:0 6px 14px #0f172a1f}.schedule-block strong,.schedule-block span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.schedule-block strong{font-size:12px;font-weight:900}.schedule-block span{opacity:.9;margin-top:3px;font-size:10px}.schedule-block.compact{padding:7px}.schedule-block.compact strong{font-size:11px}.schedule-editor{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;align-self:start;gap:10px;padding:14px;display:grid}.schedule-event-finder{background:#eff6ff;border:1px solid #dbeafe;border-radius:8px;gap:10px;padding:12px;display:grid}.schedule-event-finder strong{color:#0f172a;font-size:13px;font-weight:900;display:block}.schedule-event-finder p{color:#475569;margin:4px 0 0;font-size:12px;line-height:1.5}.schedule-event-finder .directory-btn{background:#fff;width:100%}.schedule-editor label{color:#475569;gap:6px;font-size:12px;font-weight:800;display:grid}.schedule-editor input,.schedule-editor select,.schedule-editor textarea{min-width:0;font:inherit;background:#fff;border:1px solid #dbe3ef;border-radius:8px;outline:none;padding:10px}.schedule-editor textarea{resize:vertical;min-height:78px}.editor-time-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.editor-actions{justify-content:flex-start}.directory-btn.danger{color:#e11d48;border-color:#fecdd3}.directory-btn.danger.solid{color:#fff;background:#e11d48;border-color:#e11d48}.directory-btn:disabled{cursor:not-allowed;opacity:.55}.editor-hint{color:#64748b;margin:0;font-size:12px;line-height:1.6}.month-title{color:#0f172a;margin-bottom:10px;font-size:17px;font-weight:900}.month-grid{background:#fff;border:1px solid #e5e7eb;border-radius:8px;grid-template-columns:repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.month-weekday{color:#475569;text-align:center;background:#f8fafc;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;padding:10px;font-size:12px;font-weight:900}.month-weekday.sun{color:#e11d48;background:#fff1f2}.month-weekday.sat{color:#2563eb;background:#eff6ff}.month-cell{text-align:left;background:#fff;border:1px solid #eef2f7;border-top:none;border-left:none;min-height:108px;padding:8px}.month-cell.active{background:#eff6ff}.month-cell.sun,.month-cell.holiday{background:#fff7f8}.month-cell.sat{background:#f8fbff}.month-cell.sun strong,.month-cell.holiday strong{color:#e11d48}.month-cell.sat strong{color:#2563eb}.month-cell:disabled{background:#f8fafc}.month-cell strong{color:#0f172a;margin-bottom:6px;font-size:12px;display:block}.month-cell small{color:#be123c;text-overflow:ellipsis;white-space:nowrap;background:#ffe4e6;border-radius:999px;max-width:100%;margin-bottom:4px;padding:2px 6px;font-size:10px;font-weight:900;display:inline-block;overflow:hidden}.month-cell span{color:#fff;text-overflow:ellipsis;white-space:nowrap;border-radius:5px;width:100%;margin-top:4px;padding:3px 5px;font-size:10px;font-weight:800;display:block;overflow:hidden}.month-cell em{color:#64748b;margin-top:4px;font-size:10px;font-style:normal;font-weight:900;display:block}.planner-modal-backdrop{z-index:80;background:#0f172a57;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.planner-day-modal{background:#fff;border-radius:10px;width:min(420px,100%);padding:18px;box-shadow:0 24px 60px #0f172a3d}.planner-confirm-modal{background:#fff;border-radius:10px;width:min(380px,100%);padding:22px;box-shadow:0 24px 60px #0f172a3d}.planner-confirm-modal h2{color:#0f172a;margin:0;font-size:20px;font-weight:900}.planner-confirm-modal p{color:#64748b;margin:10px 0 18px;font-size:14px;line-height:1.6}.confirm-actions{justify-content:flex-end;gap:8px;display:flex}.planner-day-modal-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.planner-day-modal-head p{color:#64748b;margin:0 0 4px;font-size:12px;font-weight:800}.planner-day-modal-head h2{color:#0f172a;margin:0;font-size:20px;font-weight:900}.planner-day-modal-head button{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;width:32px;height:32px;font-size:22px;line-height:1}.modal-holiday-label{color:#be123c;background:#ffe4e6;border-radius:999px;margin-bottom:12px;padding:5px 9px;font-size:12px;font-weight:900;display:inline-flex}.modal-event-list{gap:8px;max-height:360px;display:grid;overflow:auto}.modal-empty{color:#64748b;text-align:center;border:1px dashed #cbd5e1;border-radius:8px;padding:28px 12px;font-size:13px}.modal-event-item{text-align:left;cursor:pointer;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;grid-template-columns:10px 1fr auto;align-items:center;gap:10px;width:100%;padding:10px;display:grid}.modal-event-item span{border-radius:999px;width:10px;height:38px}.modal-event-item strong{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.modal-event-item em{color:#64748b;font-size:12px;font-style:normal;font-weight:800}.modal-create-btn{width:100%;margin-top:14px}.community-list{gap:12px;display:grid}.jobs-page{background:#f6f8fb}.jobs-head{align-items:center}.job-highlight-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.job-highlight{background:linear-gradient(135deg,#fff,#eff6ff);border:1px solid #dbeafe;border-radius:8px;padding:18px}.job-highlight.urgent{background:linear-gradient(135deg,#fff,#fff1f2);border-color:#ffe4e6}.job-highlight__label{color:#1d4ed8;background:#dbeafe;border-radius:999px;margin-bottom:10px;padding:5px 9px;font-size:11px;font-weight:900;display:inline-flex}.job-highlight.urgent .job-highlight__label{color:#e11d48;background:#ffe4e6}.job-highlight strong{color:#0f172a;font-size:18px;font-weight:900;display:block}.job-highlight p{color:#64748b;margin:7px 0 0;font-size:13px;line-height:1.6}.job-recommend-tabs{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.job-recommend-tabs button{color:#475569;cursor:pointer;background:#fff;border:1px solid #dbe3ef;border-radius:999px;padding:9px 14px;font-size:13px;font-weight:800}.job-recommend-tabs button.active{color:#1d4ed8;background:#eff6ff;border-color:#2563eb}.job-recommend-list{gap:12px;display:grid}.job-recommend-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;grid-template-columns:72px 1fr auto;align-items:center;gap:16px;padding:16px;display:grid;box-shadow:0 8px 22px #0f172a0d}.job-rank{color:#fff;background:#0f172a;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;width:58px;height:58px;display:flex}.job-rank span{font-size:18px;font-weight:900;line-height:1}.job-rank small{color:#cbd5e1;margin-top:4px;font-size:10px;font-weight:800}.job-recommend-main{min-width:0}.job-reason{color:#475569;margin:10px 0 0;font-size:13px;line-height:1.6}.directory-metrics.compact{grid-template-columns:repeat(4,minmax(0,1fr));margin:12px 0}.job-card-action{color:#fff;white-space:nowrap;cursor:pointer;background:linear-gradient(135deg,#2563eb,#4f46e5);border:none;border-radius:8px;padding:11px 14px;font-weight:900}.events-page .directory-shell{max-width:1180px}.event-hero-panel{background:linear-gradient(135deg,#fff,#eff6ff);border:1px solid #dbeafe;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin-bottom:14px;padding:20px;display:grid}.event-hero-main h2{color:#0f172a;margin:10px 0 6px;font-size:22px;font-weight:900}.event-hero-main p{color:#475569;margin:0;font-size:14px;line-height:1.65}.event-region-pill{color:#fff;background:#1d4ed8;border-radius:999px;align-items:center;padding:7px 11px;font-size:12px;font-weight:900;display:inline-flex}.event-hero-stats{grid-template-columns:repeat(2,100px);gap:10px;display:grid}.event-hero-stats div{background:#ffffffdb;border:1px solid #dbeafe;border-radius:8px;padding:12px}.event-hero-stats span{color:#64748b;font-size:11px;font-weight:800;display:block}.event-hero-stats strong{color:#0f172a;margin-top:5px;font-size:18px;font-weight:900;display:block}.event-controls{gap:10px;margin-bottom:14px;display:grid}.event-quick-filters{flex-wrap:wrap;gap:8px;display:flex}.event-quick-filters button{color:#475569;cursor:pointer;background:#fff;border:1px solid #dbe3ef;border-radius:999px;min-height:40px;padding:0 15px;font-weight:900}.event-quick-filters button.active{color:#1d4ed8;background:#eff6ff;border-color:#2563eb}.event-filter-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;display:grid}.event-filter-panel label{color:#475569;gap:6px;font-size:12px;font-weight:800;display:grid}.event-filter-panel select{color:#0f172a;min-width:0;font:inherit;background:#fff;border:1px solid #dbe3ef;border-radius:8px;outline:none;padding:10px}.event-category-tabs{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.event-category-tabs button,.event-mode-row button{color:#475569;cursor:pointer;background:#fff;border:1px solid #dbe3ef;border-radius:999px;padding:9px 14px;font-weight:900}.event-category-tabs button.active,.event-mode-row button.active{color:#1d4ed8;background:#eff6ff;border-color:#2563eb}.event-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.event-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;grid-template-columns:86px minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px;display:grid;box-shadow:0 8px 22px #0f172a0d}.event-date-card{color:#fff;text-align:center;background:#0f172a;border-radius:8px;place-items:center;min-height:82px;display:grid}.event-date-card span{font-size:13px;font-weight:800}.event-date-card strong{margin-top:4px;font-size:18px;font-weight:900}.event-card-body{min-width:0}.event-card h2{color:#0f172a;margin:8px 0 6px;font-size:17px;font-weight:900;line-height:1.35}.event-card p{color:#64748b;margin:0;font-size:13px}.event-meta{color:#475569;align-items:center;gap:8px;margin-top:10px;font-size:12px;font-weight:800;display:flex}.event-add-modal{background:#fff;border-radius:10px;gap:12px;width:min(460px,100%);padding:18px;display:grid;box-shadow:0 24px 60px #0f172a3d}.event-add-modal label{color:#475569;gap:6px;font-size:12px;font-weight:800;display:grid}.event-add-modal select,.event-add-modal input{font:inherit;background:#fff;border:1px solid #dbe3ef;border-radius:8px;outline:none;padding:10px}.event-mode-row{flex-wrap:wrap;gap:8px;display:flex}.event-notice{color:#047857;background:#ecfdf5;border-radius:8px;padding:10px;font-size:13px;font-weight:800}@media (width<=900px){.directory-head,.directory-toolbar{grid-template-columns:1fr;display:grid}.directory-grid,.event-grid,.event-filter-panel,.event-hero-panel,.planner-list,.planner-workbench,.planner-scheduler,.job-highlight-grid,.job-recommend-card,.planner-topbar,.planner-form.inline{grid-template-columns:1fr}.event-card{grid-template-columns:70px minmax(0,1fr)}.event-card .directory-btn{grid-column:1/-1;width:100%}.event-hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.planner-top-actions,.scheduler-toolbar{flex-direction:column;align-items:stretch}.week-view,.day-view{overflow-x:auto}.week-head,.timetable{min-width:760px}.timetable.day-only{min-width:360px}.month-grid{min-width:640px}.month-view{overflow-x:auto}.directory-metrics.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.job-card-action{width:100%}}.login-page{background:linear-gradient(135deg,#f5f3ff 0%,#eff6ff 50%,#ecfdf5 100%);justify-content:center;align-items:center;min-height:calc(100vh - 64px);padding:2rem;display:flex}.login-card{background:#fff;border-radius:20px;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:400px;padding:3rem 2.5rem;display:flex;box-shadow:0 4px 24px #00000014}.login-logo{align-items:center;gap:.75rem;margin-bottom:.25rem;display:flex}.login-logo__text{flex-direction:column;display:flex}.login-logo__name{background:linear-gradient(90deg,#7c3aed,#2563eb,#059669);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.4rem;font-weight:800;line-height:1.2}.login-logo__sub{color:#9ca3af;letter-spacing:.05em;font-size:.7rem}.login-title{color:#111827;margin:0;font-size:1.5rem;font-weight:700}.login-form{flex-direction:column;gap:.75rem;width:100%;display:flex}.login-input{box-sizing:border-box;border:1.5px solid #e5e7eb;border-radius:10px;outline:none;width:100%;padding:.75rem 1rem;font-size:.95rem;transition:border-color .15s}.login-input:focus{border-color:#7c3aed}.login-error{color:#ef4444;text-align:center;margin:0;font-size:.82rem}.login-btn-submit{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c3aed,#2563eb);border:none;border-radius:10px;width:100%;margin-top:.25rem;padding:.8rem;font-size:1rem;font-weight:700;transition:opacity .15s}.login-btn-submit:hover{opacity:.9}.login-btn-submit:disabled{opacity:.6;cursor:not-allowed}.login-divider{color:#d1d5db;align-items:center;gap:.75rem;width:100%;font-size:.85rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:#e5e7eb;flex:1;height:1px}.login-divider span{color:#9ca3af;white-space:nowrap}.kakao-btn{color:#3c1e1e;cursor:pointer;background:#fee500;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.6rem;width:100%;padding:.875rem 1.5rem;font-size:1rem;font-weight:700;transition:background .15s,transform .1s;display:flex}.kakao-btn:hover{background:#fdd800;transform:translateY(-1px)}.kakao-btn:active{transform:translateY(0)}.kakao-icon{flex-shrink:0}.login-register-link{color:#6b7280;margin:0;font-size:.87rem}.login-register-link a{color:#7c3aed;font-weight:600;text-decoration:none}.login-register-link a:hover{text-decoration:underline}.register-page{background:linear-gradient(135deg,#f5f3ff 0%,#eff6ff 50%,#ecfdf5 100%);justify-content:center;align-items:center;min-height:calc(100vh - 64px);padding:2rem;display:flex}.register-card{background:#fff;border-radius:20px;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:400px;padding:3rem 2.5rem;display:flex;box-shadow:0 4px 24px #00000014}.register-logo{align-items:center;gap:.75rem;margin-bottom:.25rem;display:flex}.register-logo__text{flex-direction:column;display:flex}.register-logo__name{background:linear-gradient(90deg,#7c3aed,#2563eb,#059669);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.4rem;font-weight:800;line-height:1.2}.register-logo__sub{color:#9ca3af;letter-spacing:.05em;font-size:.7rem}.register-title{color:#111827;margin:0;font-size:1.5rem;font-weight:700}.register-form{flex-direction:column;gap:.75rem;width:100%;display:flex}.register-input{box-sizing:border-box;border:1.5px solid #e5e7eb;border-radius:10px;outline:none;width:100%;padding:.75rem 1rem;font-size:.95rem;transition:border-color .15s}.register-input:focus{border-color:#7c3aed}.register-error{color:#ef4444;text-align:center;margin:0;font-size:.82rem}.register-btn-submit{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c3aed,#2563eb);border:none;border-radius:10px;width:100%;margin-top:.25rem;padding:.8rem;font-size:1rem;font-weight:700;transition:opacity .15s}.register-btn-submit:hover{opacity:.9}.register-btn-submit:disabled{opacity:.6;cursor:not-allowed}.register-login-link{color:#6b7280;margin:0;font-size:.87rem}.register-login-link a{color:#7c3aed;font-weight:600;text-decoration:none}.register-login-link a:hover{text-decoration:underline}
