@font-face{font-display:swap;font-family:PretendardVariable;font-style:normal;font-weight:100 900;src:url(/static/media/PretendardVariable.c89dc775feed56569658.ttf) format("truetype")}:root{--font-family-primary:"PretendardVariable",-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--font-family-code:"PretendardVariable",source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace;--text-color:#222;--panel-background:#f9f9f9;--border-color:#eee;--button-primary-bg:#22c55e;--button-secondary-bg:#e0e0e0;--button-secondary-text:#333;--header-bg:#f8f9fa;--today-highlight-bg:#87cefa4d;--event-block-bg:#e0e0e0;--memo-bubble-current-user-bg:#dcf8c6;--memo-bubble-other-user-bg:#f0f0f0;--button-warning-bg:#fbbf24;--button-warning-text:#fff;--button-danger-bg:#ef4444;--button-danger-text:#fff;--hover-bg-color:#f3f4f6}[data-theme=dark]{--background-color:#1a1a1a;--text-color:#e0e0e0;--panel-background:#2c2c2c;--border-color:#444;--button-primary-bg:#22a55e;--button-primary-text:#fff;--button-secondary-bg:#4a4a4a;--button-secondary-text:#e0e0e0;--header-bg:#252525;--today-highlight-bg:#64a0c866;--event-block-bg:#3a3a3a;--memo-bubble-current-user-bg:#075e54;--memo-bubble-other-user-bg:#303030;--button-warning-bg:#f59e0b;--button-warning-text:#fff;--button-danger-bg:#dc2626;--button-danger-text:#fff;--hover-bg-color:#374151;--input-bg:#374151}#root,body,html{-webkit-touch-callout:none;background-color:#fff;background-color:var(--background-color);color:#222;color:var(--text-color);height:100vh;min-width:0;overflow:hidden;overscroll-behavior:none;-webkit-overscroll-behavior:none;overscroll-behavior-x:none;-webkit-overscroll-behavior-x:none;overscroll-behavior-y:none;-webkit-overscroll-behavior-y:none;position:fixed;touch-action:none;transition:background-color .3s,color .3s;width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:PretendardVariable,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family-primary)}body,code{font-weight:400}code{font-family:PretendardVariable,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;font-family:var(--font-family-code)}*,.btn,.form-control,.modal-content,a,body,button,code,div,h1,h2,h3,h4,h5,h6,html,input,label,p,pre,select,span,td,textarea,th{font-family:PretendardVariable!important;font-weight:400!important}::-webkit-scrollbar{background:#0000!important;width:0!important}html{scrollbar-width:none!important}#root,body,html{margin:0!important;padding:0!important;width:100%!important}#root,.custom-calendar-wrapper,body,html{height:100vh!important;max-height:100vh!important;overflow:hidden!important}*{-ms-overflow-style:none!important;scrollbar-width:none!important}::-webkit-scrollbar{display:none!important}.memo-scroll-container{overscroll-behavior:auto!important;-webkit-overscroll-behavior:auto!important;overscroll-behavior-y:auto!important;-webkit-overscroll-behavior-y:auto!important;scrollbar-color:#0000004d #0000!important;scrollbar-width:thin!important;touch-action:pan-y!important}.memo-scroll-container::-webkit-scrollbar{display:block!important;height:8px!important;width:8px!important}.memo-scroll-container::-webkit-scrollbar-track{background:#0000!important;border-radius:4px!important}.memo-scroll-container::-webkit-scrollbar-thumb{background:#0000004d!important;border:none!important;border-radius:4px!important}.memo-scroll-container::-webkit-scrollbar-thumb:hover{background:#00000080!important}:root[data-theme=dark] .memo-scroll-container{scrollbar-color:#ffffff4d #0000!important}:root[data-theme=dark] .memo-scroll-container::-webkit-scrollbar-thumb{background:#ffffff4d!important}:root[data-theme=dark] .memo-scroll-container::-webkit-scrollbar-thumb:hover{background:#ffffff80!important}.calendar-grid-container{-ms-overflow-style:none!important;scrollbar-width:none!important}.calendar-grid-container::-webkit-scrollbar{display:none!important}:root{--background-color:#fff;--background-color-other-month:#fff;--hover-bg-color:#0000000a;--text-color:#1c1c1e;--text-color-secondary:#8e8e93;--contrast-dark-text:#000;--contrast-light-text:#fff;--border-color:#f2f2f7;--panel-background:#fff;--panel-shadow:-2px 0 20px #0000000f;--header-bg:#fffffff2;--button-primary-bg:#007aff;--button-primary-text:#fff;--button-secondary-bg:#f2f2f7;--button-secondary-text:#3c3c43;--today-highlight-bg:#1a73e8;--sunday-color:#ff3b30;--saturday-color:#007aff;--holiday-color:#ff3b30;--input-bg:#fff;--appbar-logo-color:#22c55e;--appbar-profile-bg:#f2f2f7;--appbar-profile-text:var(--appbar-logo-color);--appbar-profile-border:var(--background-color);--modal-overlay-bg:#0000004d;--profile-bg:#fff;--profile-border:#e9ecef;--profile-icon-color:#495057;--profile-shadow:0 1px 3px #0000001a}:root[data-theme=dark]{--background-color:#1c1c1e;--background-color-other-month:#1c1c1e;--hover-bg-color:#ffffff0f;--text-color:#f2f2f7;--text-color-secondary:#8e8e93;--border-color:#38383a;--panel-background:#2c2c2e;--panel-shadow:-2px 0 20px #00000080;--header-bg:#1c1c1ef2!important;--button-primary-bg:#0a84ff;--button-primary-text:var(--contrast-light-text);--button-secondary-bg:#2c2c2e;--button-secondary-text:#f2f2f7;--today-highlight-bg:#8ab4f8;--sunday-color:#ff453a;--saturday-color:#64d2ff;--holiday-color:#ff453a;--input-bg:#2c2c2e;--appbar-profile-bg:#2c2c2e;--appbar-profile-text:var(--appbar-logo-color);--appbar-profile-border:var(--background-color);--modal-overlay-bg:#000000b3;--profile-bg:#2d2d2d;--profile-border:#404040;--profile-icon-color:#fff;--profile-shadow:0 1px 3px #0000004d}*{box-sizing:border-box}*,body,html{touch-action:manipulation}body,html{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}#root,body,html{-webkit-overflow-scrolling:touch;width:100vw}#root,.custom-calendar-wrapper,body,html{margin:0;max-width:100vw;min-height:100vh;overflow-x:hidden;padding:0;position:relative}.custom-calendar-wrapper{background:#fff;background:var(--background-color);box-sizing:border-box;display:flex;flex-direction:row;font-family:PretendardVariable,sans-serif;font-family:var(--font-family-primary,"PretendardVariable",sans-serif);height:100vh;overflow-y:auto;width:100%}.custom-calendar-wrapper.auto-height{height:auto;min-height:100vh;width:100%}.calendar-content-area{-webkit-overflow-scrolling:touch;box-sizing:border-box!important;display:flex;flex-direction:column;flex-grow:1;height:100vh;max-width:100vw;overflow-x:hidden!important;touch-action:manipulation;transition:margin-right .15s cubic-bezier(.4,0,.2,1);width:100%}.custom-calendar-wrapper.auto-height .calendar-content-area{height:auto;min-height:100vh;width:100%}.calendar-content-area[style*="margin-right: 400px"],.calendar-content-area[style*=margin-right][style*=px]:not([style*="margin-right: 0px"]){max-width:calc(100vw - 400px)!important;width:calc(100vw - 400px)!important}.calendar-appbar{flex-shrink:0}.calendar-appbar.calendar-appbar-flex{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#fffffff2;background:var(--header-bg);border-bottom:.5px solid #f2f2f7;border-bottom:.5px solid var(--border-color);box-shadow:none;display:flex;height:64px;left:0;margin:0;margin-bottom:0!important;overflow:visible;padding:0;padding-bottom:0!important;top:0;z-index:2000}.appbar-inner{box-sizing:border-box;justify-content:space-between;max-width:100%;min-width:100%;width:100%}.appbar-inner,.appbar-left-flex{align-items:center;display:flex;height:64px}.appbar-left-flex{gap:18px;margin-left:0}.appbar-logo{color:#22c55e;color:var(--appbar-logo-color);font-size:26px;font-weight:800;letter-spacing:1px}.appbar-month{color:#1c1c1e;color:var(--text-color);font-size:22px!important;font-weight:600!important;letter-spacing:-.3px;margin-left:5px;margin-right:10px}.calendar-grid-outer{-ms-overflow-style:none;display:flex;flex:1 1;flex-direction:column;max-width:100%;min-height:0;overflow-y:auto;scrollbar-width:none;width:100%}.calendar-grid-outer::-webkit-scrollbar{display:none}.calendar-grid{display:flex;flex-direction:column;height:100%;min-height:0}.calendar-header-white{background:#fffffff2!important;background:var(--header-bg)!important}.calendar-row{display:flex;flex:1 1;max-width:100%;min-height:0;width:100%}.calendar-row.auto-height{flex:1 1 auto;height:auto;min-height:80px}.calendar-row.calendar-header{background:#fffffff2;background:var(--header-bg);border-bottom:.5px solid #f2f2f7;border-bottom:.5px solid var(--border-color);border-left:none;border-top:none!important;box-shadow:none!important;flex:none;height:32px;margin-top:0!important;margin:0;max-height:32px;min-height:32px;overflow:hidden;padding-top:0!important;padding:0;position:-webkit-sticky;position:sticky;z-index:1001}.calendar-row:not(.calendar-header){flex:1 1;min-height:0}.calendar-cell.header{align-items:center!important;border-bottom:.5px solid #f2f2f7;border-bottom:.5px solid var(--border-color);border-right:none;color:#8e8e93;color:var(--text-color-secondary);font-size:13px;font-weight:500;justify-content:center!important;letter-spacing:.3px;min-height:32px;padding:0 6px;text-align:center}.calendar-cell.header,[data-theme=dark] .calendar-cell.header{background:#0000!important}.calendar-cell{align-items:flex-start;background:#fff;background:var(--background-color);border:.5px solid #f2f2f7!important;border:.5px solid var(--border-color)!important;box-sizing:border-box;display:flex;flex:1 1;flex-direction:column;font-size:1.1rem;max-width:14.28571%;min-height:0;min-width:0;padding:10px 8px 4px}.calendar-cell.auto-height{height:auto;min-height:auto}.calendar-cell:hover{background:#0000000a;background:var(--hover-bg-color)}.calendar-cell.other{background:#fff!important;background:var(--background-color)!important;color:#8e8e93;color:var(--text-color-secondary)}.calendar-cell.other .cell-date{opacity:.35}.calendar-cell.other .lunar-date{opacity:.25}.calendar-cell.other .event-block{opacity:.5}.cell-date{font-weight:600;margin-bottom:4px}.cell-date>span:first-child{align-items:center;display:inline-flex;justify-content:center;line-height:1}.cell-date>span:first-child[style*=background]{align-items:center!important;border-radius:50%!important;display:inline-flex!important;font-size:14px!important;font-weight:600!important;height:26px!important;justify-content:center!important;padding:0!important;width:26px!important}.cell-events{display:flex;flex:1 1;flex-direction:column;overflow:hidden;width:100%}.calendar-cell.auto-height .cell-events{flex:none;height:auto;overflow:visible}.event-block{align-items:center;background:#3b82f6;border:none;border-radius:4px;box-shadow:0 .5px 1px #0000000f;box-sizing:border-box!important;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:12px;font-size:var(--event-font-size-desktop,12px);font-weight:600!important;height:16px!important;height:var(--event-height-desktop,16px)!important;margin-bottom:2px;margin:1px 0!important;max-width:100%;min-height:14px!important;min-height:var(--event-min-height-desktop,14px)!important;padding:0 6px;padding-bottom:0!important;padding-top:0!important;word-break:break-all}.event-block:hover{box-shadow:0 1px 3px #0000001f;filter:brightness(1.08)}.side-panel{-webkit-overflow-scrolling:touch;background:#fff;background:var(--panel-background);border-left:1px solid #f2f2f7;border-left:1px solid var(--border-color);box-shadow:-2px 0 20px #0000000f;box-shadow:var(--panel-shadow);display:flex;flex-direction:column;flex-shrink:0;gap:16px;height:100vh;padding:24px;touch-action:manipulation;transform:translateZ(0);transition:transform .15s cubic-bezier(.4,0,.2,1);will-change:transform;z-index:1000}.add-btn{background:#22c55e;border:none;border-radius:50%;font-size:16px;height:22px;line-height:22px;padding:0;position:absolute;right:4px;top:4px;width:22px}.add-btn,.del-btn{color:#fff;cursor:pointer}.del-btn{background:#ef4444;border:none;border-radius:3px;font-size:11px;margin-left:6px;padding:1px 4px}.appbar-center{align-items:center;display:flex;gap:8px}.appbar-btn{background:#f2f2f7;background:var(--button-secondary-bg);border:none;border-radius:6px;color:#3c3c43;color:var(--button-secondary-text);cursor:pointer;font-size:16px;font-weight:600;margin:0 2px;padding:7px 16px;transition:background .15s}.appbar-btn.active,.appbar-btn:hover{background:#0000000a;background:var(--hover-bg-color);color:#1c1c1e;color:var(--text-color)}.appbar-right{align-items:center;display:flex;flex:none;gap:8px;height:64px;margin-right:4px;max-width:none;min-width:0;padding-right:0}.appbar-search{background:none;font-size:20px;padding:7px 10px}.appbar-profile-wrap{margin-left:4px;position:relative}.appbar-profile{align-items:center;background:#f2f2f7;background:var(--appbar-profile-bg);border:2px solid #fff;border:2px solid var(--appbar-profile-border);border-radius:50%;box-shadow:0 1px 4px #e5e7eb88;cursor:pointer;display:flex;font-size:20px;font-weight:700;height:38px;justify-content:center;transition:background .15s;width:38px}.appbar-profile,.appbar-profile:hover{color:#22c55e;color:var(--appbar-profile-text)}.appbar-profile:hover{background:#0000000a;background:var(--hover-bg-color)}.profile-menu{background:#fff;background:var(--panel-background);border:1px solid #f2f2f7;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 16px #e5e7eb55;display:flex;flex-direction:column;min-width:120px;padding:8px 0;position:absolute;right:0;top:46px;z-index:3000}.profile-menu button{background:none;border:none;color:#1c1c1e;color:var(--text-color);cursor:pointer;font-size:15px;padding:10px 18px;text-align:left;transition:background .15s}.profile-menu button:hover{background:#0000000a;background:var(--hover-bg-color)}@media (max-width:900px){.custom-calendar-wrapper{height:100vh;min-height:100vh}.calendar-cell{font-size:.95rem;padding:6px 2px 2px}}.calendar-cell.auto-height .event-block{height:16px!important;height:var(--event-height-desktop,16px)!important;margin:1px 0!important;min-height:14px!important;min-height:var(--event-min-height-desktop,14px)!important}@media (max-width:600px),(max-width:768px) and (hover:none) and (pointer:coarse){html{-webkit-text-size-adjust:100%!important;-ms-text-size-adjust:100%!important;font-size:16px!important;height:100%!important;overflow:hidden!important;overscroll-behavior:none!important;-webkit-overscroll-behavior:none!important;overscroll-behavior-x:none!important;-webkit-overscroll-behavior-x:none!important;overscroll-behavior-y:none!important;-webkit-overscroll-behavior-y:none!important}html.has-expanded-cell{height:auto!important;max-height:none!important;min-height:100%!important;overflow:visible!important;overflow-y:auto!important}body{height:100vh!important;margin:0!important;max-height:100vh!important;max-width:100vw!important;overscroll-behavior:none!important;-webkit-overscroll-behavior:none!important;overscroll-behavior-x:none!important;-webkit-overscroll-behavior-x:none!important;overscroll-behavior-y:none!important;-webkit-overscroll-behavior-y:none!important;padding:0 0 env(safe-area-inset-bottom)!important;-webkit-user-select:none!important;user-select:none!important;width:100vw!important}body,body.has-expanded-cell{-webkit-overflow-scrolling:touch!important;overflow-x:hidden!important;overflow-y:auto!important;position:relative!important}body.has-expanded-cell{height:auto!important;max-height:none!important;min-height:auto!important;padding-bottom:calc(env(safe-area-inset-bottom) + 80px)!important}.custom-calendar-wrapper{-webkit-touch-callout:none;height:calc(100vh - env(safe-area-inset-bottom));margin:0!important;max-height:calc(100vh - env(safe-area-inset-bottom));max-width:100vw!important;min-height:calc(100vh - env(safe-area-inset-bottom));overflow-x:hidden!important;overflow-y:hidden!important;overscroll-behavior:none!important;-webkit-overscroll-behavior:none!important;overscroll-behavior-x:none!important;-webkit-overscroll-behavior-x:none!important;overscroll-behavior-y:none!important;-webkit-overscroll-behavior-y:none!important;padding:0!important;position:relative;touch-action:pan-y;-webkit-user-select:none;user-select:none;width:100vw!important}body.has-six-weeks .custom-calendar-wrapper{height:auto!important;max-height:none!important;min-height:calc(100vh + 40px - env(safe-area-inset-bottom))!important}body.has-expanded-cell.has-six-weeks .custom-calendar-wrapper,body.has-six-weeks .custom-calendar-wrapper.auto-height{min-height:calc(100vh + 115px - env(safe-area-inset-bottom))!important;overflow-y:auto!important}.calendar-content-area{height:100vh!important;margin-bottom:0!important;margin-left:0!important;margin-top:0!important;max-height:100vh!important;max-width:100vw!important;overflow-y:hidden!important;overscroll-behavior:none!important;-webkit-overscroll-behavior:none!important;overscroll-behavior-x:none!important;-webkit-overscroll-behavior-x:none!important;overscroll-behavior-y:none!important;-webkit-overscroll-behavior-y:none!important;width:100vw!important}.calendar-content-area,.calendar-row{box-sizing:border-box!important;overflow-x:hidden!important;padding:0!important}.calendar-row{margin:0!important;min-width:0!important;width:100%!important}.calendar-cell{flex:1 1!important;font-size:.75rem;min-width:0!important;padding:1px!important}.calendar-cell.auto-height{border-width:0 0 1px 1px!important;box-sizing:border-box!important;min-height:100px!important;padding-bottom:10px!important;position:relative!important}.custom-calendar-wrapper.auto-height:not(.has-six-weeks) .calendar-row:last-child .calendar-cell,body.has-expanded-cell:not(.has-six-weeks) .calendar-row:last-child .calendar-cell{padding-bottom:calc(10px + env(safe-area-inset-bottom))!important}body.has-six-weeks .calendar-row:last-child .calendar-cell{padding-bottom:calc(40px + env(safe-area-inset-bottom))!important}body.has-expanded-cell.has-six-weeks .calendar-row:last-child .calendar-cell,body.has-six-weeks .custom-calendar-wrapper.auto-height .calendar-row:last-child .calendar-cell{padding-bottom:calc(85px + env(safe-area-inset-bottom))!important}.calendar-cell.auto-height{height:auto!important;min-height:auto!important}.calendar-cell.header{align-items:center!important;border-width:0 0 1px 1px!important;box-sizing:border-box!important;flex:1 1!important;justify-content:center!important;min-width:0!important;padding:4px 0!important}.event-block{font-size:10px!important;font-size:var(--event-font-size-mobile,10px)!important;font-weight:600!important;height:16px;height:var(--event-height-mobile,16px);line-height:14px;line-height:var(--event-min-height-mobile,14px);margin:1px 0!important;min-height:14px;min-height:var(--event-min-height-mobile,14px);padding:0 3px}.event-block:last-of-type{margin-bottom:0!important}.calendar-cell.auto-height .event-block{height:16px!important;height:var(--event-height-mobile,16px)!important;margin:1.5px 0!important;min-height:14px!important;min-height:var(--event-min-height-mobile,14px)!important}body.has-expanded-cell .custom-calendar-wrapper{transform:none!important}body.has-expanded-cell .calendar-content-area,body.has-expanded-cell .custom-calendar-wrapper{height:auto!important;max-height:none!important;min-height:auto!important;overflow-x:hidden!important;overflow-y:auto!important}body.has-expanded-cell .calendar-grid-outer{min-height:auto!important}body.has-expanded-cell .calendar-grid,body.has-expanded-cell .calendar-grid-outer{height:auto!important;overflow-y:auto!important;position:relative!important;top:0!important}body.has-expanded-cell .calendar-appbar.calendar-appbar-flex{background:#fffffff2!important;background:var(--header-bg)!important;border-bottom:.5px solid #f2f2f7!important;border-bottom:.5px solid var(--border-color)!important;flex-shrink:0!important;height:64px!important;position:-webkit-sticky!important;position:sticky!important;top:0!important;z-index:1000!important}body.has-expanded-cell .calendar-content-area,body.has-expanded-cell .custom-calendar-wrapper{position:relative!important;top:0!important}.appbar-inner{gap:2px!important;padding:0 12px!important}.appbar-left-flex{gap:4px;height:64px;margin-left:-8px}.appbar-profile{background:#22c55e;background:var(--appbar-logo-color);border:1px solid #22c55e;border:1px solid var(--appbar-logo-color);color:#fff;color:var(--contrast-light-text,#fff);font-size:16px;height:22px;width:22px}.profile-menu button{font-size:11px;padding:6px 8px}.calendar-appbar.calendar-appbar-flex{flex-shrink:0;height:64px}.appbar-inner,.appbar-left-flex{height:64px}.calendar-row.calendar-header{border-left:none!important;border-radius:0!important;box-sizing:border-box!important;display:block!important;flex-shrink:0;font-size:12px;height:32px!important;left:0!important;margin:0 0 -1px!important;max-height:32px!important;max-width:100%!important;min-height:32px!important;opacity:1!important;overflow:hidden!important;padding:0!important;position:relative!important;right:0!important;top:0;transform:translateX(1px)!important;visibility:visible!important;width:100%!important}.appbar-logo{font-size:16px}.appbar-month{font-size:12px;margin-left:2px;margin-right:2px}.appbar-btn{border-radius:3px;font-size:12px;min-height:24px;min-width:28px;padding:2px 6px}.calendar-grid-outer{display:flex;flex:1 1;flex-direction:column;height:100vh;min-height:0;overflow:hidden}.custom-calendar-wrapper.auto-height .calendar-grid-outer{height:auto!important;max-height:calc(100vh - 96px);overflow-y:auto!important}.calendar-grid{display:flex;flex:1 1;flex-direction:column;height:100%;min-height:0}.custom-calendar-wrapper.auto-height .calendar-grid{height:auto!important;overflow-y:visible!important}.appbar-profile-wrap{margin-left:4px}.calendar-grid .calendar-row:first-child{margin-top:8px}.appbar-right{align-items:center;display:flex;gap:2px;height:64px;margin-right:-4px}.calendar-event{font-size:10px!important;height:18px!important;line-height:16px!important;margin:1px 0!important;min-height:16px!important;padding:1px 4px!important}.appbar-search{height:36px!important;margin-right:4px!important;width:36px!important}.appbar-profile{font-size:12px!important;height:28px!important;width:28px!important}.calendar-header .calendar-cell{align-items:center!important;border:none!important;border-bottom:.5px solid #f2f2f7!important;border-bottom:.5px solid var(--border-color)!important;border-radius:0!important;box-sizing:border-box!important;color:#8e8e93!important;color:var(--text-color-secondary)!important;display:flex!important;font-size:12px!important;font-weight:500!important;height:32px!important;justify-content:center!important;line-height:16px!important;margin:0!important;max-height:32px!important;min-height:32px!important;opacity:1!important;padding:8px 0!important;position:absolute!important;text-align:center!important;visibility:visible!important}.calendar-header .calendar-cell:first-child{left:0;width:14.28571%}.calendar-header .calendar-cell:nth-child(2){left:14.28571%;width:14.28571%}.calendar-header .calendar-cell:nth-child(3){left:28.57143%;width:14.28571%}.calendar-header .calendar-cell:nth-child(4){left:42.85714%;width:14.28571%}.calendar-header .calendar-cell:nth-child(5){left:57.14286%;width:14.28571%}.calendar-header .calendar-cell:nth-child(6){left:71.42857%;width:14.28571%}.calendar-header .calendar-cell:nth-child(7){left:85.71429%;width:14.28571%}.calendar-header .calendar-cell:not(:nth-child(7)):after{background-color:#f2f2f7;background-color:var(--border-color);bottom:4px;content:"";opacity:.5;position:absolute;right:0;top:4px;width:.5px}.calendar-header .calendar-cell:last-child{border-radius:0!important;border-right:none!important;margin:0!important;padding:8px 0!important}.calendar-row:not(.calendar-header) .calendar-cell:not(:nth-child(7n)):after{background-color:#f2f2f7;background-color:var(--border-color);bottom:8px;content:"";opacity:.6;position:absolute;right:0;top:8px;width:.5px}.calendar-row:not(.calendar-header):first-of-type .calendar-cell{border-top:.5px solid #f2f2f7!important;border-top:.5px solid var(--border-color)!important}.panel-overlay{padding:0!important}.panel-content{height:100vh!important;max-width:none!important;overflow-y:auto!important;width:100%!important}.panel-content,.side-panel-register{border-radius:0!important;padding:0!important}.side-panel-register{border:none!important}.side-panel-register>div:not(.mobile-header){padding-left:20px!important;padding-right:20px!important}.search-overlay{padding:0!important}.search-content{border-radius:0!important;height:100%!important;padding:60px 20px 20px!important}.collapse-cell-btn{align-items:center;background:#fff;background:var(--background-color);border:1px solid #f2f2f7;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;display:flex;height:20px;justify-content:center;line-height:1;margin:6px auto 2px;padding:0;width:40px}.collapse-cell-btn:hover{background-color:#0000000a;background-color:var(--hover-bg-color)}.collapse-cell-btn svg{color:#8e8e93;color:var(--text-color-secondary)}.side-panel-detail{border-left:none!important;border-radius:0!important;border-top:none!important;bottom:auto!important;box-shadow:0 -4px 24px #00000026!important;font-weight:700!important;height:100dvh!important;left:0!important;max-height:100dvh!important;overflow-y:auto!important;position:fixed!important;right:0!important;top:0!important;width:100%!important;z-index:3500!important}}@media (min-width:601px),(min-width:769px) and (hover:hover) and (pointer:fine){.appbar-inner{height:64px;padding:0 48px}.appbar-profile-wrap{margin-left:4px}.calendar-appbar.calendar-appbar-flex{height:64px}.calendar-row.calendar-header{border-radius:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:row!important;height:32px;left:0!important;margin:0!important;max-width:100%!important;opacity:1!important;padding:0!important;right:0!important;top:0;visibility:visible!important;width:100%!important}}.custom-calendar-wrapper.auto-height,.custom-calendar-wrapper.auto-height .calendar-content-area,.custom-calendar-wrapper.auto-height .calendar-grid,.custom-calendar-wrapper.auto-height .calendar-grid-outer{height:auto!important;max-height:none!important;min-height:100vh!important;overflow-y:visible!important}@media (max-width:600px),(max-width:768px) and (hover:none) and (pointer:coarse){.custom-calendar-wrapper.auto-height{min-height:calc(100vh - 60px - env(safe-area-inset-bottom))!important}.custom-calendar-wrapper.auto-height,.custom-calendar-wrapper.auto-height .calendar-content-area{height:calc(100vh - 60px - env(safe-area-inset-bottom))!important;max-height:calc(100vh - 60px - env(safe-area-inset-bottom))!important;overflow-y:hidden!important}.custom-calendar-wrapper.auto-height .calendar-content-area{min-height:0!important}.custom-calendar-wrapper.auto-height .calendar-grid-outer{-webkit-overflow-scrolling:touch!important;flex:1 1!important;height:0!important;max-height:none!important;min-height:0!important;overflow-y:auto!important}.custom-calendar-wrapper.auto-height .calendar-grid{height:auto!important;min-height:0!important;overflow-y:visible!important}}@media (min-width:769px) and (hover:hover) and (pointer:fine){.custom-calendar-wrapper.auto-height,.custom-calendar-wrapper.auto-height .calendar-content-area{height:100vh!important;max-height:100vh!important;overflow-y:hidden!important}.custom-calendar-wrapper.auto-height .calendar-grid-outer{height:calc(100vh - 96px)!important;max-height:calc(100vh - 96px)!important;overflow-y:auto!important}}@media (min-width:1900px) and (min-height:1060px){.calendar-row:not(.calendar-header){min-height:120px}}@media (min-width:1800px) and (max-width:1999px) and (min-height:1000px) and (max-height:1199px){.calendar-row:not(.calendar-header){min-height:0}.calendar-cell{padding:8px 6px 2px}}@media (max-height:667px) and (max-width:375px),(max-width:375px) and (hover:none) and (pointer:coarse){.custom-calendar-wrapper{max-width:100vw!important;overflow-x:hidden!important;overflow-y:hidden!important;overscroll-behavior:none!important;-webkit-overscroll-behavior:none!important;touch-action:pan-y!important}body.has-expanded-cell.has-six-weeks .custom-calendar-wrapper,body.has-six-weeks .custom-calendar-wrapper.auto-height{height:auto!important;max-height:none!important;min-height:calc(100vh + 135px)!important;overflow-y:auto!important}body.has-expanded-cell.has-six-weeks .calendar-row:last-child .calendar-cell,body.has-six-weeks .custom-calendar-wrapper.auto-height .calendar-row:last-child .calendar-cell{overscroll-behavior-x:none!important;-webkit-overscroll-behavior-x:none!important;padding-bottom:calc(95px + env(safe-area-inset-bottom))!important}.calendar-row{min-width:0!important;overflow-x:hidden!important;width:100%!important}.calendar-cell{border-width:.25px!important;font-size:.7rem!important;min-height:50px!important;padding:.5px!important}.calendar-cell,.calendar-cell.header{box-sizing:border-box!important;flex:1 1!important;min-width:0!important}.calendar-cell.header{align-items:center!important;border:none!important;border-radius:0!important;border-right:1px solid #f2f2f7!important;border-right:1px solid var(--border-color)!important;display:flex!important;font-size:12px!important;font-weight:600!important;height:28px!important;justify-content:center!important;line-height:16px!important;margin:0!important;max-height:28px!important;min-height:28px!important;opacity:1!important;padding:8px 0!important;text-align:center!important;visibility:visible!important}.calendar-header .calendar-cell:last-child{border-right:none!important}.event-block{font-size:7px!important;font-size:var(--event-font-size-mobile-small,7px)!important;font-weight:600!important;height:16px!important;line-height:14px!important;margin:1px 0!important;min-height:14px!important;padding:0 2px!important}.event-block:last-of-type{margin-bottom:0!important}.calendar-cell.auto-height .event-block{height:16px!important;margin:1px 0!important;min-height:14px!important}.appbar-inner{gap:2px!important;padding:0 12px!important}.appbar-month{font-size:14px!important;padding:4px 8px!important}.appbar-search{height:36px!important;margin-right:8px!important;width:36px!important}.appbar-profile{font-size:10px!important;height:24px!important;width:24px!important}}@keyframes slideInFromRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.lunar-date{color:#8e8e93;color:var(--text-color-secondary,#8e8e93);font-size:6pt;font-weight:400;opacity:.6}@media (min-width:769px){.lunar-date{font-size:8pt}}@media (max-width:768px){.cell-date{align-items:flex-start!important;flex-direction:column!important;height:32px!important;justify-content:flex-start!important;min-height:32px}.cell-date>span:first-child[style*=background]{font-size:12px!important;height:22px!important;width:22px!important}.lunar-date{font-size:6pt;line-height:1;margin-left:0!important;margin-top:1px}body.has-expanded-cell:not(.has-six-weeks) .custom-calendar-wrapper,body:not(.has-six-weeks) .custom-calendar-wrapper.auto-height{height:auto!important;max-height:none!important;min-height:calc(100vh + 120px)!important}body.has-expanded-cell:not(.has-six-weeks) .calendar-row:last-child,body:not(.has-six-weeks) .custom-calendar-wrapper.auto-height .calendar-row:last-child{border-bottom:none!important}body.has-expanded-cell:not(.has-six-weeks) .calendar-row:last-child .calendar-cell,body:not(.has-six-weeks) .custom-calendar-wrapper.auto-height .calendar-row:last-child .calendar-cell{margin-bottom:10px!important;padding-bottom:calc(50px + env(safe-area-inset-bottom))!important}body.has-expanded-cell.has-six-weeks .custom-calendar-wrapper,body.has-six-weeks .custom-calendar-wrapper.auto-height{height:auto!important;max-height:none!important;min-height:calc(100vh + 180px)!important}body.has-expanded-cell.has-six-weeks .calendar-row:last-child,body.has-six-weeks .custom-calendar-wrapper.auto-height .calendar-row:last-child{border-bottom:none!important}body.has-expanded-cell.has-six-weeks .calendar-row:last-child .calendar-cell,body.has-six-weeks .custom-calendar-wrapper.auto-height .calendar-row:last-child .calendar-cell{margin-bottom:10px!important;padding-bottom:calc(60px + env(safe-area-inset-bottom))!important}}.admin-layout{background-color:#fff;display:flex;height:100vh;height:100dvh;overflow:hidden}.admin-mobile-header{display:none}.admin-sidebar{background-color:#fff;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;height:100vh;min-width:240px;overflow:hidden;width:240px}.admin-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;flex-shrink:0;justify-content:space-between;padding:20px 16px}.admin-header h2{color:#1a1a1a;font-size:17px;font-weight:700;letter-spacing:-.3px;margin:0}.admin-header-actions{align-items:center;display:flex;gap:8px}.back-link-btn{align-items:center;background:none;border:none;color:#2563eb;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:4px;padding:4px 0;transition:color .2s ease;white-space:nowrap}.back-link-btn:hover{color:#1d4ed8}.sidebar-close-btn{display:none}.admin-nav{flex:1 1;overflow-y:auto;padding:12px 0}.sidebar-overlay{display:none}.menu-section{margin-bottom:2px}.section-header{align-items:center;cursor:pointer;display:flex;padding:10px 16px;transition:background-color .15s ease;-webkit-user-select:none;user-select:none}.section-header:hover{background-color:#f9fafb}.section-label{color:#6b7280;flex:1 1;font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.toggle-arrow{align-items:center;color:#9ca3af;display:flex;transition:transform .2s ease}.toggle-arrow.expanded{transform:rotate(90deg)}.section-items{list-style:none;margin:0 0 8px;padding:0}.section-items li{margin:0}.section-items a{align-items:center;border-left:3px solid #0000;color:#4b5563;display:flex;font-size:14px;padding:9px 16px 9px 28px;text-decoration:none;transition:all .15s ease}.section-items a:hover{background-color:#f0f5ff;border-left-color:#dbeafe;color:#2563eb}.section-items a.active{background-color:#eff6ff;border-left-color:#2563eb;color:#2563eb;font-weight:600}.menu-label{font-size:14px;font-weight:500;line-height:1.4}.admin-content{background-color:#fff;flex:1 1;min-width:0;overflow-x:hidden;overflow-y:auto;padding:24px 32px}@media (max-width:768px){.admin-layout{flex-direction:column;height:100vh;height:100dvh;overflow:hidden}.admin-mobile-header{background-color:#fff;border-bottom:1px solid #e5e7eb;gap:12px;justify-content:space-between;padding:12px 16px;z-index:100}.admin-mobile-header,.hamburger-btn{align-items:center;display:flex;flex-shrink:0}.hamburger-btn{background:none;border:none;border-radius:6px;color:#374151;cursor:pointer;justify-content:center;padding:6px}.hamburger-btn:active{background-color:#f3f4f6}.mobile-header-title{color:#1a1a1a;flex:1 1;font-size:16px;font-weight:600;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.mobile-back-btn{align-items:center;background:none;border:none;border-radius:6px;color:#2563eb;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:6px}.mobile-back-btn:active{background-color:#eff6ff}.admin-sidebar{box-shadow:none;height:100vh;left:0;min-width:280px;position:fixed;top:0;transform:translateX(-100%);transition:transform .25s ease;width:280px;z-index:1000}.admin-sidebar.open{box-shadow:4px 0 24px #0000001f;transform:translateX(0)}.sidebar-close-btn{align-items:center;background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:6px}.sidebar-close-btn:active{background-color:#f3f4f6}.sidebar-overlay{background-color:#0000004d;bottom:0;display:block;left:0;position:fixed;right:0;top:0;z-index:999}.back-link-btn{display:none}.admin-content{-webkit-overflow-scrolling:touch;flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:16px 16px 60px}.admin-sidebar{height:100dvh}}@media (min-width:769px) and (max-width:1024px){.admin-sidebar{min-width:200px;width:200px}.admin-content{padding:20px 24px}.section-items a{font-size:13px;padding:8px 12px 8px 24px}.menu-label{font-size:13px}}.dashboard{margin:0 auto;max-width:1200px}.dashboard-header{margin-bottom:36px;text-align:left}.dashboard-header h1{color:#1a1a1a;font-size:32px;font-weight:700;letter-spacing:-.5px;margin:0 0 8px}.dashboard-header p{color:#6b7280;font-size:15px;line-height:1.6;margin:0}.stats-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-bottom:36px}.stat-card{background:#fff;border:1px solid #f0f0f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;padding:28px;transition:all .2s ease}.stat-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.stat-card h3{color:#9ca3af;font-size:13px;letter-spacing:.8px;text-transform:uppercase}.stat-card h3,.stat-value{font-weight:700;margin:0 0 12px}.stat-value{color:#1a1a1a;font-size:36px;letter-spacing:-1px;line-height:1}.stat-detail{color:#6b7280;font-size:13px;line-height:1.6}.features-section{margin-bottom:36px}.features-section h2{color:#1a1a1a;font-size:20px;font-weight:700;letter-spacing:-.3px;margin:0 0 24px;text-align:left}.features-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.feature-card{background:#fff;border:1px solid #f0f0f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;padding:24px;transition:all .2s ease}.feature-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.feature-info{align-items:center;display:flex;justify-content:space-between;width:100%}.feature-name{color:#1a1a1a;font-size:16px;font-weight:600;text-align:left}.feature-status{align-items:center;display:flex;gap:10px}.status-indicator{background-color:#10b981;border-radius:50%;height:10px;width:10px}.status-indicator.active{background-color:#10b981;box-shadow:0 0 0 3px #10b98126}.usage-count{color:#10b981;font-size:15px;font-weight:700}.recent-activity{background:#fff;border:1px solid #f0f0f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;margin-top:24px;padding:28px}.recent-activity h2{color:#1a1a1a;font-size:20px;font-weight:700;letter-spacing:-.3px;margin:0 0 24px}.activity-list{display:flex;flex-direction:column;gap:12px}.activity-item{align-items:flex-start;background:#fff;border-left:3px solid #e5e7eb;border-radius:10px;display:flex;gap:14px;padding:16px;transition:all .2s ease}.error-item{background:#fef2f2;border-left-color:#ef4444}.activity-item:hover{background:#fff;box-shadow:0 4px 12px #0000000f;transform:translateY(-1px)}.error-item:hover{background:#fee2e2}.activity-icon{font-size:1.2rem;margin-top:2px;min-width:20px;text-align:center}.activity-content{flex:1 1;min-width:0}.error-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:6px}.error-type{font-size:1.1rem}.calendar-code{background:#dbeafe;color:#1e40af}.calendar-code,.user-name{border-radius:6px;font-size:12px;font-weight:600;padding:4px 10px}.user-name{background:#e9d5ff;color:#7e22ce}.error-content{color:#dc2626;font-weight:600}.activity-description,.error-content{margin-bottom:6px;text-align:left;word-break:break-word}.activity-description{color:#374151;font-weight:400}.activity-time{color:#9ca3af;font-size:13px;font-weight:500}.no-activity{padding:60px 20px}.loading,.no-activity{color:#6b7280;font-size:15px;text-align:center}.loading{padding:60px}.error{background-color:#fef2f2;border:1px solid #fecaca;border-radius:12px;color:#b91c1c;margin:24px 0;padding:24px;text-align:center}@media (max-width:768px){.dashboard{padding-bottom:60px}.stats-grid{gap:16px}.features-grid,.stats-grid{grid-template-columns:1fr}.feature-info{align-items:flex-start;flex-direction:column;gap:8px}.feature-status{align-self:flex-end}.activity-item{flex-direction:column;gap:4px}.activity-time{min-width:auto}}.page-container{padding:0}.page-header{margin-bottom:36px}.page-header h1{color:#1a1a1a;font-size:32px;font-weight:700;letter-spacing:-.5px;margin:0 0 8px}.page-header p{color:#6b7280;font-size:15px;line-height:1.6;margin:0}.coming-soon{align-items:center;background-color:#fff;border:2px dashed #dee2e6;border-radius:12px;display:flex;flex-direction:column;height:300px;justify-content:center;text-align:center}.coming-soon-icon{font-size:48px;margin-bottom:16px}.coming-soon h3{color:#333;font-size:20px;font-weight:500;margin:0 0 8px}.coming-soon p{color:#666;font-size:14px;margin:0}.loading-container{align-items:center;color:#666;display:flex;font-size:16px;height:200px;justify-content:center}.error-container{background-color:#ffebee;border:1px solid #ffcdd2;border-radius:8px;color:#c62828;margin-bottom:24px;padding:16px}.error-container .error-title{font-weight:500;margin-bottom:8px}.error-container .error-message{font-size:14px;margin-bottom:12px}.error-container .retry-btn{background-color:#4285f4;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.error-container .retry-btn:hover{background-color:#3367d6}.data-table{background-color:#fff;border:1px solid #f0f0f0;border-collapse:initial;border-radius:12px;border-spacing:0;box-shadow:0 1px 3px #0000000a;margin-bottom:24px;overflow:hidden;width:100%}.data-table td,.data-table th{border-bottom:1px solid #f5f5f5;padding:16px 20px;text-align:left;vertical-align:middle}.data-table th{background-color:#fff;color:#1a1a1a;font-size:13px;font-weight:600;letter-spacing:.3px;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0;z-index:10}.data-table td{color:#333;font-size:14px;line-height:1.5}.data-table tbody tr{transition:all .2s ease}.data-table tbody tr:hover{background-color:#fff;box-shadow:0 2px 8px #00000008;transform:translateY(-1px)}.data-table tr:last-child td{border-bottom:none}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;outline:none;padding:9px 18px;text-decoration:none;transition:all .2s ease}.btn-primary:hover{background-color:#1d4ed8;box-shadow:0 2px 4px #2563eb33;transform:translateY(-1px)}.btn-small{border-radius:6px;font-size:13px;padding:7px 12px}.form-group{margin-bottom:18px}.form-label{color:#1a1a1a;display:block;font-size:14px;font-weight:600;letter-spacing:.2px;margin-bottom:6px}.form-input{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;padding:10px 14px;transition:all .2s ease;width:100%}.form-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.form-select{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:14px;padding:10px 14px;transition:all .2s ease;width:100%}.form-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.modal-overlay{animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#0006}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:slideUp .3s ease;box-shadow:0 20px 60px #00000026;overflow-y:auto;padding:0;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{background-color:#fff;border-radius:16px 16px 0 0;padding:24px 28px}.modal-body{padding:28px}.modal-footer{background-color:#fff;border-radius:0 0 16px 16px;padding:20px 28px}.badge{border-radius:16px;letter-spacing:.3px;padding:4px 10px;transition:all .2s ease}.badge-success{background-color:#dcfce7;color:#15803d}@media (max-width:768px){.page-header{margin-bottom:16px}.page-header h1{font-size:22px}.page-header p{font-size:13px}.page-container{padding-bottom:60px}.data-table{border-radius:8px;font-size:12px}.data-table td,.data-table th{font-size:12px;padding:8px 10px;white-space:nowrap}.data-table th{font-size:11px}.modal-content{margin:8px;max-height:85vh;width:calc(100% - 16px)}.modal-body,.modal-header{padding:14px 16px}.modal-footer{flex-direction:row;padding:12px 16px}.badge{font-size:10px;padding:2px 6px}.btn-small{font-size:11px;padding:5px 8px}.permission-badges{gap:4px;max-width:150px;min-height:24px}.management-actions{gap:4px}.user-stats{flex-wrap:wrap;font-size:12px;gap:12px}.desktop-only{display:none!important}.mobile-only{display:flex!important}.mobile-user-cards{padding-bottom:60px}.user-stats-bar{margin-bottom:12px;padding:10px 12px}.user-stats-left{gap:8px}.user-count-total{font-size:14px}.user-count-item{font-size:12px}}.desktop-only{display:table}.mobile-only{display:none}.user-stats{align-items:center;color:#6b7280;display:flex;font-size:13px;font-weight:500;gap:24px}.user-stats span{padding:4px 0}.user-stats-bar{align-items:center;background:#fff;border:1px solid #f0f0f0;border-radius:10px;box-shadow:0 1px 3px #0000000a;display:flex;justify-content:space-between;margin-bottom:16px;padding:12px 16px}.user-stats-left{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.user-count-total{color:#1a1a1a;font-size:15px;font-weight:700}.user-count-item{color:#6b7280;font-size:13px;font-weight:500}.user-info-cell{display:flex;flex-direction:column;gap:6px}.permission-badges,.user-badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.permission-badges{align-items:center;max-width:220px;min-height:40px}.management-actions{align-items:center;display:flex;gap:8px;justify-content:center}.mobile-user-cards{display:flex;flex-direction:column;gap:10px}.mobile-user-card{background:#fff;border:1px solid #f0f0f0;border-radius:10px;box-shadow:0 1px 3px #0000000a;overflow:hidden}.mobile-user-card-header{align-items:center;background-color:#f9fafb;border-bottom:1px solid #f0f0f0;display:flex;gap:8px;justify-content:space-between;padding:12px 14px}.mobile-user-name-row{align-items:center;display:flex;gap:8px;min-width:0}.mobile-user-name{color:#1a1a1a;font-size:14px;font-weight:700;white-space:nowrap}.mobile-user-realname{color:#6b7280;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-user-badges{display:flex;flex-shrink:0;gap:4px}.mobile-user-card-body{padding:10px 14px}.mobile-user-info-row{align-items:center;border-bottom:1px solid #f9fafb;display:flex;padding:5px 0}.mobile-user-info-row:last-child{border-bottom:none}.mobile-info-label{color:#9ca3af;flex-shrink:0;font-size:12px;font-weight:600;width:56px}.mobile-info-value{color:#374151;flex:1 1;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-user-card-actions{background-color:#fafafa;border-top:1px solid #f0f0f0;display:flex;gap:6px;padding:10px 14px}.monthly-stats-container{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0;max-width:none;padding:24px}.stats-header{align-items:center;border-bottom:1px solid #e5e5e5;display:flex;justify-content:space-between;margin-bottom:32px;padding-bottom:16px}.stats-header h2{color:#191f28;font-size:24px;font-weight:600;margin:0}.monthly-summary{margin-bottom:32px}.monthly-summary h3{color:#191f28;font-size:18px;font-weight:600;margin:0 0 16px}.summary-cards{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:16px}.summary-card{border:1px solid #e5e5e5;border-top:4px solid;box-shadow:0 1px 3px #0000001a}.summary-card:hover{box-shadow:0 4px 12px #00000026}.total-card{background:#fff;border-top-color:#191f28!important}.card-title{color:#6b7280;font-size:14px;font-weight:500;margin-bottom:8px}.card-count{color:#191f28;font-size:24px;font-weight:700}.legend{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;margin-bottom:24px}.legend-item{align-items:center;color:#191f28;display:flex;font-size:14px;gap:8px}.legend-color{border-radius:4px;box-shadow:0 1px 3px #0000001a;height:16px;width:16px}.main-content{align-items:stretch;display:flex;gap:32px}.calendar-section{flex:0 0 600px;min-width:600px}.chart-section{flex:1 1;min-width:500px}@media (min-width:2100px){.monthly-stats-container{display:flex;flex-direction:column;height:100vh;padding:16px}.stats-summary-bar{flex-shrink:0;margin-bottom:8px;padding:6px 12px}.stats-summary-title{font-size:14px}.stats-summary-item{font-size:11px}.main-content{flex:1 1;gap:16px;min-height:0}.calendar-section{flex:0 0 620px;min-width:620px}.chart-section{flex:1 1;min-width:400px}.calendar-day{min-height:70px;padding:5px}.day-number{font-size:13px}.day-total-badge{font-size:10px}.day-install,.day-recovery{font-size:9px}.yearly-trend-chart h4{font-size:12px;margin-bottom:4px}.trend-cell-bar-wrap{height:40px}}@media (max-width:1720px){.monthly-stats-container{box-sizing:border-box;display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:6px}.stats-summary-bar{flex-shrink:0;gap:6px;margin-bottom:4px;padding:4px 8px}.stats-summary-title{font-size:11px}.stats-summary-item{font-size:9px}.stats-summary-divider{font-size:10px}.main-content{display:flex;flex:1 1;gap:8px;min-height:0}.calendar-section{flex:0 0 480px;min-width:480px}.chart-section{flex:1 1;min-width:280px}.calendar-container{display:flex;flex-direction:column;height:100%;padding:8px}.calendar-nav{gap:8px;margin-bottom:4px;padding:4px 0}.cal-nav-btn{height:26px;width:26px}.cal-nav-dot,.cal-nav-select,.cal-nav-title{font-size:13px}.calendar-weekdays{margin-bottom:3px}.weekday-header{font-size:11px;padding:4px}.calendar-grid{flex:1 1;gap:1px}.calendar-day{min-height:32px;padding:2px}.day-number{font-size:10px}.day-total-badge{font-size:8px}.day-install,.day-recovery{font-size:7px}.chart-container{display:flex;flex-direction:column;height:100%;padding:4px}.chart-container h3{font-size:10px;margin:0 0 2px}.section-title{font-size:10px;margin-bottom:4px!important}.stats-card-grid{gap:4px;grid-template-columns:repeat(3,1fr)}.stats-card{border-top-width:2px;gap:1px;padding:6px 4px}.stats-card-label{font-size:9px}.stats-card-value{font-size:14px}.stats-card-change{font-size:7px;padding:1px 3px}.stats-card-prev{font-size:7px}.stats-cards-section{margin-bottom:4px}.trend-charts-container{grid-gap:4px;border-top:1px solid #e5e5e5;display:grid;gap:4px;grid-template-columns:1fr 1px 1fr;padding-top:4px}.yearly-trend-chart{margin-bottom:0}.yearly-trend-chart h4{font-size:9px;margin-bottom:2px}.trend-cell-bar-wrap{height:28px}.trend-cell-month,.trend-cell-value{font-size:8px}.trend-grid{gap:1px}}@media (min-width:1721px){.monthly-stats-container{display:flex;flex-direction:column;height:100vh;padding:16px}.stats-summary-bar{flex-shrink:0;margin-bottom:8px;padding:6px 12px}.stats-summary-title{font-size:14px}.stats-summary-item{font-size:11px}.main-content{flex:1 1;gap:16px;min-height:0}.calendar-section{flex:0 0 620px;min-width:620px}.chart-section{flex:1 1;min-width:400px}.calendar-day{min-height:70px;padding:5px}.day-number{font-size:13px}.day-total-badge{font-size:10px}.day-install,.day-recovery{font-size:9px}.yearly-trend-chart h4{font-size:12px;margin-bottom:4px}.trend-cell-bar-wrap{height:40px}}.calendar-section{display:flex}.calendar-container{background:#fff;border:1px solid #e5e5e5;border-radius:12px;box-shadow:0 1px 3px #0000001a;display:flex;flex:1 1;flex-direction:column;padding:24px}.calendar-weekdays{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(7,1fr);margin-bottom:8px}.weekday-header{background:#fff;border-radius:6px;color:#6b7280;font-size:14px;font-weight:600;padding:12px;text-align:center}.calendar-grid{grid-gap:2px;display:grid;flex:1 1;gap:2px;grid-template-columns:repeat(7,1fr)}.calendar-day{background:#fff;border:1px solid #f0f0f0;border-radius:6px;min-height:80px;padding:6px 5px;position:relative;transition:background-color .15s,box-shadow .15s}.calendar-day.has-data:hover{background:#f0f7ff;box-shadow:0 1px 4px #00000014}.calendar-day.selected{background:#ebf5ff;border-color:#3182f6}.calendar-day.empty{background:#0000;border:none}.day-number{color:#191f28;font-size:14px;font-weight:600;margin-bottom:4px}.day-number.sunday{color:#ef4444}.day-number.saturday{color:#2563eb}.day-summary{display:flex;flex-direction:column;gap:2px}.day-total-badge{color:#3182f6;font-size:11px;font-weight:700}.day-install{color:#16a34a}.day-install,.day-recovery{font-size:10px;font-weight:500}.day-recovery{color:#ef4444}.calendar-nav{gap:12px;margin-bottom:14px;padding:8px 0}.cal-nav-btn,.calendar-nav{align-items:center;display:flex;justify-content:center}.cal-nav-btn{background:#f2f4f6;border:none;border-radius:8px;color:#4e5968;cursor:pointer;height:32px;transition:background .15s;width:32px}.cal-nav-btn:hover{background:#e5e8eb}.cal-nav-btn:disabled{cursor:not-allowed;opacity:.4}.cal-nav-title{align-items:center;display:flex;gap:2px}.cal-nav-dot,.cal-nav-select,.cal-nav-title{color:#191f28;font-size:17px;font-weight:700}.cal-nav-select{appearance:none;-webkit-appearance:none;background:#0000;border:none;cursor:pointer;padding:2px 4px;text-align:center}.cal-nav-select:focus{outline:none}.cal-nav-select:disabled{cursor:not-allowed;opacity:.5}.stats-summary-bar{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;gap:10px;margin-bottom:12px;padding:10px 16px}.stats-summary-title{color:#191f28;font-size:16px;font-weight:700}.stats-summary-divider{color:#d1d5db;font-size:14px}.stats-summary-item{color:#6b7280;font-size:13px}.stats-cards-section{margin-bottom:20px}.section-title{color:#191f28;font-size:15px;font-weight:700;margin:0 0 10px}.stats-card-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.stats-card{align-items:center;background:#fff;border:1px solid #f0f0f0;border-radius:8px;border-top:3px solid #ccc;display:flex;flex-direction:column;gap:2px;justify-content:center;padding:12px 6px;text-align:center}.stats-card-total{background:#f8f9fa;border-top-color:#191f28!important}.stats-card-label{font-size:12px;font-weight:600}.stats-card-value{color:#191f28;font-size:22px;font-weight:700;line-height:1.2}.stats-card-change{border-radius:4px;font-size:11px;font-weight:600;padding:1px 6px}.stats-card-change.up{background:#22c55e14;color:#16a34a}.stats-card-change.down{background:#ef444414;color:#dc2626}.stats-card-prev{color:#9ca3af;font-size:10px}.stats-info{display:none}.loading-spinner{align-items:center;color:#6b7280;display:flex;font-size:16px;height:200px;justify-content:center}.content-container{position:relative;transition:opacity .3s ease}.content-container.loading-overlay{opacity:.7;pointer-events:none}.inline-loading{background:#ffffffe6;border:1px solid #e5e5e5;border-radius:8px;box-shadow:0 2px 8px #00000026;padding:12px 16px;position:absolute;right:20px;top:20px;z-index:10}.loading-dot-animation{align-items:center;display:flex;gap:4px}.loading-dot-animation span{animation:loading-bounce 1.4s ease-in-out infinite both;background:#4285f4;border-radius:50%;height:6px;width:6px}.loading-dot-animation span:first-child{animation-delay:-.32s}.loading-dot-animation span:nth-child(2){animation-delay:-.16s}@keyframes loading-bounce{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}.error-message{background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;margin-bottom:16px;padding:16px;text-align:center}.retry-button{background:#4285f4;border:none;border-radius:8px;color:#fff;cursor:pointer;display:block;font-size:14px;font-weight:500;margin:0 auto;padding:12px 24px;transition:background-color .2s ease,transform .2s ease}.retry-button:hover{background:#3367d6;transform:translateY(-1px)}.retry-button:active{transform:translateY(0)}.chart-section{display:flex}.chart-container{background:#fff;border:1px solid #e5e5e5;border-radius:12px;box-shadow:0 1px 3px #0000001a;display:flex;flex:1 1;flex-direction:column;padding:24px}.chart-container h3{color:#191f28;font-size:18px;font-weight:600;margin:0 0 20px}.chart-container h4{color:#191f28;font-size:16px;font-weight:600;margin:24px 0 16px}.trend-chart{margin-bottom:24px}.trend-item{margin-bottom:16px}.trend-label{color:#191f28;font-size:16px;font-weight:600;margin-bottom:8px}.trend-type-label{font-size:14px;font-weight:600;margin-bottom:4px}.trend-value{color:#191f28;font-size:20px;font-weight:700;margin-bottom:8px}.trend-bar{background:#f0f0f0;border-radius:4px;height:8px;overflow:hidden;width:100%}.trend-bar-fill{border-radius:4px;height:100%;transition:width .3s ease}.daily-chart{border-top:1px solid #e5e5e5;padding-top:20px}.daily-chart-grid{align-items:flex-end;display:flex;gap:2px;height:100px;justify-content:space-between;padding:10px 0}.daily-chart-item{align-items:center;display:flex;flex:1 1;flex-direction:column}.daily-chart-bar-container{align-items:flex-end;display:flex;height:60px;justify-content:center;width:100%}.daily-chart-bar{border-radius:2px;min-height:2px;transition:all .2s ease;width:8px}.daily-chart-bar:hover{box-shadow:0 2px 4px #0003;transform:scaleY(1.1)}.daily-chart-label{color:#6b7280;font-size:10px;margin-top:4px;text-align:center}.comparison-section{margin-bottom:32px}.comparison-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.comparison-card{background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:16px;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.comparison-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.comparison-card.total-card{background:#fff;border:2px solid #191f28}.comparison-header{margin-bottom:8px}.comparison-type{font-size:14px;font-weight:600}.comparison-values{margin-bottom:8px}.current-value{color:#191f28;font-size:20px;font-weight:700;margin-bottom:4px}.change-indicator{border-radius:12px;display:inline-block;font-size:14px;font-weight:600;padding:2px 8px}.change-indicator.increase{background:#22c55e1a;color:#16a34a}.change-indicator.decrease{background:#ef44441a;color:#dc2626}.previous-value{color:#6b7280;font-size:12px}.trend-charts-container{grid-gap:16px;border-top:1px solid #e5e5e5;display:grid;flex:1 1;gap:16px;grid-template-columns:1fr 1px 1fr;padding-top:16px}.trend-charts-container:before{background:#e5e5e5;content:"";grid-column:2;grid-row:1}.yearly-trend-chart{display:flex;flex-direction:column;margin-bottom:0}.yearly-trend-chart h4{color:#191f28;font-size:13px;font-weight:700;margin:0 0 8px}.trend-grid{grid-gap:4px;align-items:end;display:grid;flex:1 1;gap:4px;grid-template-columns:repeat(12,1fr)}.trend-cell{align-items:center;display:flex;flex-direction:column;gap:4px;height:100%}.trend-cell-month{color:#9ca3af;font-size:11px;font-weight:500}.trend-cell.current .trend-cell-month{color:#191f28;font-weight:700}.trend-cell-bar-wrap{align-items:flex-end;display:flex;flex:1 1;justify-content:center;min-height:40px;width:100%}.trend-cell-bar{border-radius:3px 3px 0 0;min-height:2px;transition:height .3s ease;width:70%}.trend-cell-value{color:#6b7280;font-size:12px;font-weight:600}.trend-cell-value.current{color:#191f28;font-weight:700}@media (max-width:768px){.monthly-stats-container{display:block!important;height:auto!important;overflow:visible!important;padding:0}.main-content{display:flex;flex-direction:column;gap:16px}.calendar-section,.chart-section{flex:none;min-width:0!important;width:100%}.stats-header{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:16px;padding-bottom:12px}.stats-header h2{font-size:20px}.stats-summary-bar{flex-wrap:wrap;gap:6px;margin-bottom:8px;padding:8px 12px}.stats-summary-title{font-size:14px}.stats-summary-item{font-size:12px}.summary-cards{gap:8px;grid-template-columns:repeat(2,1fr);margin-bottom:16px}.summary-card{padding:12px}.card-title{font-size:12px}.card-count{font-size:20px}.legend{gap:12px;margin-bottom:16px}.legend-item{font-size:12px}.legend-color{height:12px;width:12px}.calendar-container{border-radius:8px;padding:10px}.calendar-nav{gap:8px;margin-bottom:8px;padding:4px 0}.cal-nav-btn{height:28px;width:28px}.cal-nav-dot,.cal-nav-select,.cal-nav-title{font-size:14px}.weekday-header{font-size:11px;padding:6px 2px}.calendar-day{min-height:40px;padding:3px}.day-number{font-size:11px}.day-total-badge{font-size:9px}.day-install,.day-recovery{font-size:8px}.chart-container{display:block!important;height:auto!important;padding:12px}.chart-container h3{font-size:15px;margin:0 0 12px}.stats-cards-section{margin-bottom:12px}.section-title{font-size:14px;margin-bottom:8px!important}.stats-card-grid{gap:6px;grid-template-columns:repeat(3,1fr)}.stats-card{padding:8px 4px}.stats-card-value{font-size:16px}.stats-card-change{font-size:10px}.stats-card-prev{font-size:9px}.trend-charts-container{display:flex;flex-direction:column;gap:12px;padding-top:12px}.trend-charts-container:before{display:none}.yearly-trend-chart{border-bottom:1px solid #f0f0f0;margin-bottom:0;padding-bottom:12px}.yearly-trend-chart:last-child{border-bottom:none;padding-bottom:0}.yearly-trend-chart h4{font-size:12px}.trend-grid{gap:2px}.trend-cell-bar-wrap{height:36px}.trend-cell-month{font-size:9px}.trend-cell-value{font-size:10px}}@media (max-width:480px){.summary-cards{gap:6px;grid-template-columns:repeat(2,1fr)}.calendar-day{min-height:34px;padding:2px}.day-number{font-size:10px}.day-total-badge{font-size:8px}.day-install,.day-recovery{font-size:7px}.comparison-grid{gap:6px;grid-template-columns:repeat(2,1fr)}.trend-cell-bar-wrap{height:28px}.trend-cell-month{font-size:8px}.trend-cell-value{font-size:9px}}.toast{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;bottom:80px;box-shadow:0 8px 32px #00000026;left:50%;max-width:480px;min-width:320px;opacity:0;position:fixed;transform:translateX(-50%) translateY(100%);transition:all .4s cubic-bezier(.4,0,.2,1);z-index:9999}.toast.toast-show{opacity:.95;transform:translateX(-50%) translateY(0)}.toast-content{align-items:center;background:#fffffffa;border:2px solid #3b82f6;border-radius:12px;display:flex;gap:12px;padding:16px 20px}.toast-icon{color:#3b82f6;flex-shrink:0;font-size:18px;font-weight:700}.toast-message{color:#1f2937;flex:1 1;font-size:14px;font-weight:500;line-height:1.5}.toast-close{align-items:center;background:none;border:none;border-radius:50%;color:#6b7280;cursor:pointer;display:flex;flex-shrink:0;font-size:16px;height:24px;justify-content:center;padding:4px;transition:all .2s ease;width:24px}.toast-close:hover{background-color:#3b82f61a;color:#3b82f6}.toast-error .toast-content,.toast-info .toast-content,.toast-success .toast-content,.toast-warning .toast-content{background:#fffffffa;border:2px solid #3b82f6}.toast-error .toast-message,.toast-info .toast-message,.toast-success .toast-message,.toast-warning .toast-message{color:#1f2937}.toast-error .toast-icon,.toast-info .toast-icon,.toast-success .toast-icon,.toast-warning .toast-icon{color:#3b82f6}.toast-error .toast-close,.toast-info .toast-close,.toast-success .toast-close,.toast-warning .toast-close{color:#6b7280}.toast-error .toast-close:hover,.toast-info .toast-close:hover,.toast-success .toast-close:hover,.toast-warning .toast-close:hover{background-color:#3b82f61a;color:#3b82f6}@media (max-width:768px){.toast{bottom:60px;left:20px;max-width:none;min-width:auto;right:20px;transform:translateY(100%)}.toast.toast-show{transform:translateY(0)}.toast-content{padding:14px 16px}.toast-message{font-size:13px}}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes slideOutRight{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}.redis-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.redis-header h3{color:#1a1a1a;font-size:20px;font-weight:700;margin:0}.redis-header-controls{align-items:center;display:flex;gap:10px}.redis-auto-refresh-label{align-items:center;color:#6b7280;cursor:pointer;display:flex;font-size:13px;gap:6px;-webkit-user-select:none;user-select:none}.redis-section{background:#fff;border:1px solid #f0f0f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;margin-bottom:16px;padding:20px}.redis-section-title{border-bottom:1px solid #f0f0f0;color:#1a1a1a;font-size:15px;font-weight:700;margin:0 0 14px;padding-bottom:10px}.redis-section-desc{color:#6b7280;font-size:13px;line-height:1.5;margin:-6px 0 14px}.redis-info-list{display:flex;flex-direction:column;gap:8px}.redis-info-item{align-items:center;background:#f9fafb;border-radius:8px;display:flex;justify-content:space-between;padding:10px 14px}.redis-info-label{color:#6b7280;font-size:13px;font-weight:500}.redis-info-value{color:#1a1a1a;font-size:14px;font-weight:600}.redis-info-value.connected{color:#10b981}.redis-info-value.disconnected{color:#ef4444}.redis-queue-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.redis-queue-item{align-items:center;background:#f9fafb;border-radius:10px;display:flex;flex-direction:column;padding:16px 10px;text-align:center}.redis-queue-count{color:#2563eb;font-size:26px;font-weight:700;line-height:1;margin-bottom:6px}.redis-queue-count.has-items{color:#f59e0b}.redis-queue-label{color:#6b7280;font-size:12px;font-weight:500}.redis-worker-grid{display:flex;flex-direction:column;gap:10px}.redis-worker-card{align-items:center;background:#f9fafb;border-left:3px solid #6b7280;border-radius:10px;display:flex;justify-content:space-between;padding:14px 16px}.redis-worker-card.running{border-left-color:#10b981}.redis-worker-card.stopped{border-left-color:#ef4444}.redis-worker-card.warning{border-left-color:#fbbf24}.redis-worker-left{align-items:center;display:flex;gap:10px;min-width:0}.redis-worker-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.redis-worker-dot.running{background-color:#10b981}.redis-worker-dot.stopped{background-color:#ef4444}.redis-worker-dot.warning{background-color:#fbbf24}.redis-worker-dot.unknown{background-color:#6b7280}.redis-worker-info{display:flex;flex-direction:column;gap:2px;min-width:0}.redis-worker-name{color:#1a1a1a;font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.redis-worker-detail{color:#9ca3af;font-size:11px}.redis-worker-count{color:#2563eb;flex-shrink:0;font-size:18px;font-weight:700;min-width:40px;text-align:right}.redis-failed-grid{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.redis-failed-card{background:#f9fafb;border:1px solid #f0f0f0;border-radius:10px;padding:14px 16px}.redis-failed-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.redis-failed-title{color:#1a1a1a;font-size:13px;font-weight:600;margin:0}.redis-failed-count{border-radius:10px;font-size:12px;font-weight:700;padding:2px 8px}.redis-failed-count.zero{background:#ecfdf5;color:#10b981}.redis-failed-count.has-items{background:#fef2f2;color:#ef4444}.redis-failed-actions{display:flex;gap:8px}.redis-btn{border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;padding:7px 14px;transition:all .2s ease;white-space:nowrap}.redis-btn:disabled{cursor:not-allowed;opacity:.4}.redis-btn-refresh{background:#2563eb;color:#fff}.redis-btn-refresh:hover:not(:disabled){background:#1d4ed8}.redis-btn-retry{background:#10b981;color:#fff}.redis-btn-retry:hover:not(:disabled){background:#059669}.redis-btn-delete{background:#ef4444;color:#fff}.redis-btn-delete:hover:not(:disabled){background:#dc2626}.redis-btn-secondary{background:#6b7280;color:#fff}.redis-btn-secondary:hover:not(:disabled){background:#4b5563}.redis-btn-info{background:#0ea5e9;color:#fff}.redis-btn-info:hover:not(:disabled){background:#0284c7}.redis-btn-clear-all{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;cursor:pointer;font-size:13px;font-weight:600;padding:10px;transition:all .2s ease;width:100%}.redis-btn-clear-all:hover{background:#f3f4f6;border-color:#d1d5db;color:#4b5563}.redis-error-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.redis-error-header-info h4{color:#1a1a1a;font-size:15px;font-weight:700;margin:0 0 4px}.redis-error-header-info p{color:#6b7280;font-size:12px;line-height:1.4;margin:0}.redis-error-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.redis-error-select-all{align-items:center;color:#6b7280;cursor:pointer;display:flex;font-size:13px;gap:6px;margin-bottom:10px}.redis-error-empty{color:#6b7280;font-size:14px;font-style:italic;padding:20px 0;text-align:center}.redis-error-cards{display:none;flex-direction:column;gap:10px}.redis-error-card{background:#f9fafb;border:1px solid #f0f0f0;border-left:3px solid #ef4444;border-radius:10px;padding:14px}.redis-error-card.resolved{background:#f0fdf4;border-left-color:#10b981}.redis-error-card-header{align-items:flex-start;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.redis-error-card-type{background:#f3f4f6;border-radius:4px;color:#6b7280;font-size:12px;font-weight:600;padding:2px 8px}.redis-error-card-status{border-radius:10px;font-size:12px;font-weight:600;padding:2px 8px}.redis-error-card-status.resolved{background:#ecfdf5;color:#10b981}.redis-error-card-status.unresolved{background:#fef2f2;color:#ef4444}.redis-error-card-message{color:#1a1a1a;font-size:13px;line-height:1.5;margin-bottom:8px;word-break:break-word}.redis-error-card-time{color:#9ca3af;font-size:11px;margin-bottom:10px}.redis-error-card-footer{align-items:center;display:flex;justify-content:space-between}.redis-error-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.redis-error-table{border-collapse:collapse;font-size:12px;width:100%}.redis-error-table th{background:#f9fafb;font-weight:600;text-align:left;white-space:nowrap}.redis-error-table td,.redis-error-table th{border:1px solid #e5e7eb;color:#374151;padding:10px}.redis-error-table td{vertical-align:top}.redis-error-table .error-message-cell{color:#1a1a1a;max-width:300px;word-break:break-word}.redis-error-table .error-details-summary{color:#6b7280;cursor:pointer;font-size:11px;font-weight:500}.redis-error-table .error-details-content{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;font-size:11px;margin-top:6px;padding:8px;word-break:break-word}.redis-confirm-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#0006;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.redis-confirm-modal{background-color:#fff;border-radius:16px;box-shadow:0 10px 40px #0000001f;max-width:400px;padding:28px;width:90%}.redis-confirm-icon{font-size:40px;margin-bottom:12px;text-align:center}.redis-confirm-title{color:#1a1a1a;font-size:17px;font-weight:700;margin:0 0 10px;text-align:center}.redis-confirm-message{color:#6b7280;font-size:14px;line-height:1.5;margin:0 0 24px;text-align:center;white-space:pre-line}.redis-confirm-actions{display:flex;gap:10px;justify-content:center}.redis-confirm-actions .redis-btn{border-radius:8px;font-size:14px;padding:10px 22px}@media (max-width:768px){.redis-header{align-items:stretch;flex-direction:column;gap:10px}.redis-header-controls{justify-content:space-between}.redis-section{border-radius:10px;margin-bottom:12px;padding:14px}.redis-section-title{font-size:14px;margin-bottom:12px;padding-bottom:8px}.redis-info-item{padding:8px 12px}.redis-info-label{font-size:12px}.redis-info-value{font-size:13px}.redis-queue-item{padding:12px 8px}.redis-queue-count{font-size:22px}.redis-failed-card,.redis-worker-card{padding:12px 14px}.redis-error-cards{display:flex}.redis-error-table-wrap{display:none}.redis-error-header{flex-direction:column}.redis-error-actions{justify-content:flex-start}}.role-management-container{background-color:#fff;margin:0 auto;max-width:95%;min-height:100vh;padding:16px}.header-section{margin-bottom:20px;text-align:left}.header-section h1{color:#1a1a1a;font-size:32px;font-weight:700;letter-spacing:-.5px;margin:0 0 8px}.header-section p{color:#6b7280;font-size:15px;line-height:1.6;margin:0}.controls-section{margin-bottom:24px}.filter-group{display:flex;gap:16px;margin:0;max-width:100%}.search-input,.select-input{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;padding:10px 14px;transition:all .2s ease}.select-input{min-width:180px}.search-input{flex:1 1}.search-input:focus,.select-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.summary-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:20px;max-width:100%}.summary-card{background:#fff;border:1px solid #f0f0f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;padding:20px;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.summary-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.summary-card.danger{background:#fff;border-color:#fecaca;border-left:4px solid #ef4444}.summary-card.warning{background:#fff;border-color:#fde68a;border-left:4px solid #f59e0b}.summary-card.secondary{background:#fff;border-color:#e5e7eb;border-left:4px solid #6b7280}.summary-value{color:#1a1a1a;font-size:24px;font-weight:700;margin-bottom:4px}.summary-label{color:#6b7280;font-size:13px;font-weight:500}.content-section{background-color:#fff;border-radius:12px;min-height:400px;padding:24px}.empty-state{padding:60px 20px;text-align:center}.empty-icon{font-size:48px;margin-bottom:16px}.empty-state h3{color:#1a1a1a;font-size:20px;font-weight:500;margin:0 0 8px}.empty-state p{color:#6b7280;font-size:14px;margin:0}.loading-state{align-items:center;color:#6b7280;display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #fff;border-radius:50%;border-top-color:#2563eb;height:32px;margin-bottom:16px;width:32px}.error-state{padding:60px 20px;text-align:center}.error-icon{font-size:48px;margin-bottom:16px}.error-state h3{color:#ef4444;font-size:20px;font-weight:500;margin:0 0 8px}.error-state p{color:#6b7280;font-size:14px;margin:0 0 20px}.issues-list{grid-gap:16px;display:grid;gap:16px}.issue-card{background:#fff;border:1px solid #f0f0f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;padding:20px;transition:all .2s ease}.issue-card:hover{border-color:#2563eb;box-shadow:0 4px 12px #2563eb1a;transform:translateY(-2px)}.issue-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px}.issue-title{color:#1a1a1a;flex:1 1;font-size:16px;font-weight:600;line-height:1.4;margin:0}.issue-details{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:16px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-label{color:#6b7280;font-size:12px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.detail-value{color:#1a1a1a;font-size:14px;font-weight:400}.issue-actions{display:flex;justify-content:flex-end}.badge{border-radius:20px;display:inline-block;font-size:12px;font-weight:600;letter-spacing:.5px;padding:6px 12px;text-transform:uppercase;white-space:nowrap}.badge-danger{background-color:#fee2e2;border:1px solid #fecaca;color:#b91c1c}.badge-warning{background-color:#fef3c7;border:1px solid #fde68a;color:#b45309}.badge-secondary{background-color:#fff;border:1px solid #e5e7eb;color:#6b7280}.badge-primary{background-color:#dbeafe;border:1px solid #bfdbfe;color:#1e40af}.btn-danger,.btn-outline,.btn-primary,.btn-secondary{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;justify-content:center;padding:10px 20px;text-decoration:none;transition:all .2s ease;white-space:nowrap}.btn-primary{background-color:#2563eb;box-shadow:0 1px 2px #2563eb1a;color:#fff}.btn-primary:hover:not(:disabled){background-color:#1d4ed8;box-shadow:0 2px 4px #2563eb33;transform:translateY(-1px)}.btn-primary:disabled{background-color:#d1d5db;cursor:not-allowed}.btn-secondary{background-color:#fff;border:1px solid #e5e7eb;box-shadow:0 1px 2px #0000000a;color:#4b5563}.btn-secondary:hover{background-color:#fff;border-color:#d1d5db;box-shadow:0 2px 4px #0000000f}.btn-danger{background-color:#ef4444;box-shadow:0 1px 2px #ef44441a;color:#fff}.btn-danger:hover{background-color:#dc2626;box-shadow:0 2px 4px #ef444433;transform:translateY(-1px)}.btn-outline{background-color:initial;border:1.5px solid #2563eb;color:#2563eb}.btn-outline:hover:not(:disabled){background-color:#2563eb;color:#fff;transform:translateY(-1px)}.btn-outline:disabled{border-color:#d1d5db;color:#d1d5db;cursor:not-allowed}.modal-overlay{align-items:center;background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:16px;box-shadow:0 25px 50px #00000040;display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow:hidden;width:100%}.modal-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:24px;padding:24px 24px 16px}.modal-header h2{color:#1a1a1a;font-size:20px;font-weight:600;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.modal-close:hover{background-color:#fff;color:#1a1a1a}.modal-body{flex:1 1;overflow-y:auto;padding:0 24px}.modal-footer{border-top:1px solid #f0f0f0;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding:20px 24px}.event-info{border-bottom:1px solid #f0f0f0;margin-bottom:32px;padding-bottom:24px}.event-info h3{color:#1a1a1a;font-size:18px;font-weight:600;line-height:1.4;margin:0 0 12px}.event-meta{align-items:center;color:#6b7280;display:flex;flex-wrap:wrap;font-size:14px;gap:8px}.roles-section{margin-bottom:32px}.roles-section h4{color:#1a1a1a;font-size:16px;font-weight:600;margin:0 0 16px}.roles-grid{grid-gap:12px;background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;display:grid;gap:12px;max-height:200px;overflow-y:auto;padding:16px}.no-roles{color:#6b7280;font-style:italic;padding:20px;text-align:center}.role-checkbox{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:12px;padding:8px;transition:background-color .2s ease}.role-checkbox:hover{background-color:#fff}.role-checkbox input[type=checkbox]{display:none}.checkmark{border:2px solid #d1d5db;border-radius:4px;height:18px;position:relative;transition:all .2s ease;width:18px}.role-checkbox input[type=checkbox]:checked+.checkmark{background-color:#2563eb;border-color:#2563eb}.role-checkbox input[type=checkbox]:checked+.checkmark:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:8px;left:5px;position:absolute;top:2px;transform:rotate(45deg);width:4px}.role-name{color:#1a1a1a;font-size:14px;font-weight:400}.author-roles-section{margin-bottom:32px}.author-roles-section h4{color:#1a1a1a;font-size:16px;font-weight:600;margin:0 0 12px}.roles-tags{display:flex;flex-wrap:wrap;gap:8px}.role-tag{background-color:#dbeafe;border:1px solid #bfdbfe;border-radius:16px;color:#1e40af;font-size:12px;font-weight:500;padding:6px 12px}.memos-section{margin-bottom:32px}.memos-section h4{color:#1a1a1a;font-size:16px;font-weight:600;margin:0 0 16px}.memos-list{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;max-height:300px;overflow-y:auto}.memo-item{background-color:#fff;border-bottom:1px solid #f0f0f0;margin-bottom:1px;padding:16px}.memo-item:last-child{border-bottom:none;margin-bottom:0}.memo-header{align-items:center;color:#6b7280;display:flex;font-size:12px;gap:12px;margin-bottom:8px}.memo-author{color:#1a1a1a;font-weight:500}.memo-date{color:#6b7280}.memo-reads{background-color:#dbeafe;border-radius:12px;color:#2563eb;font-size:11px;padding:2px 6px}.memo-content{color:#1a1a1a;font-size:14px;line-height:1.4;margin-bottom:8px;word-break:break-word}.memo-file{background-color:#eff6ff;border-radius:4px;color:#2563eb;display:inline-block;font-size:12px;padding:4px 8px}.foreign-key-info{margin-bottom:24px}.foreign-key-info h4{color:#1a1a1a;font-size:16px;font-weight:600;margin:0 0 12px}.data-stats{align-items:center;color:#6b7280;display:flex;font-size:14px;gap:8px;margin-bottom:12px}.warning-message{background-color:#fef3c7;border:1px solid #fbbf24;border-radius:6px;color:#d97706;font-size:13px;line-height:1.4;padding:12px}.issue-checkbox{align-items:center;display:flex;margin-right:12px}.issue-checkbox input[type=checkbox]{display:none}.issue-checkbox .checkmark{border:2px solid #d1d5db;border-radius:4px;cursor:pointer;height:18px;position:relative;transition:all .2s ease;width:18px}.issue-checkbox input[type=checkbox]:checked+.checkmark{background-color:#2563eb;border-color:#2563eb}.issue-checkbox input[type=checkbox]:checked+.checkmark:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:8px;left:5px;position:absolute;top:2px;transform:rotate(45deg);width:4px}.batch-actions{background-color:#dbeafe;border:1px solid #bfdbfe;border-radius:8px;display:flex;gap:12px;margin-bottom:20px;padding:16px}.bulk-selector{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:16px;padding:12px 16px}.checkbox-container{align-items:center;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px}.checkbox-container input[type=checkbox]{display:none}.checkmark-bulk{border:2px solid #d1d5db;border-radius:4px;height:18px;position:relative;transition:all .2s ease;width:18px}.checkbox-container input[type=checkbox]:checked+.checkmark-bulk{background-color:#2563eb;border-color:#2563eb}.checkbox-container input[type=checkbox]:checked+.checkmark-bulk:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:8px;left:5px;position:absolute;top:2px;transform:rotate(45deg);width:4px}@media (max-width:768px){.role-management-container{padding:12px 12px 60px}.header-section{margin-bottom:14px}.header-section h1{font-size:22px}.header-section p{font-size:13px}.controls-section{margin-bottom:14px}.filter-group{flex-direction:column;gap:8px}.search-input,.select-input{font-size:13px;padding:8px 12px}.select-input{min-width:0;min-width:auto}.summary-cards{gap:8px;grid-template-columns:1fr 1fr;margin-bottom:14px}.summary-card{border-radius:10px;padding:12px 8px}.summary-value{font-size:20px}.summary-label{font-size:11px}.content-section{border-radius:10px;min-height:200px;padding:14px}.empty-state{padding:40px 16px}.empty-icon{font-size:40px;margin-bottom:12px}.empty-state h3{font-size:16px}.empty-state p{font-size:13px}.issue-card{border-radius:10px;padding:14px}.issue-header{align-items:flex-start;flex-direction:column;gap:8px;margin-bottom:12px}.issue-title{font-size:14px}.issue-details{gap:6px;grid-template-columns:1fr;margin-bottom:12px}.detail-label{font-size:11px}.detail-value{font-size:13px}.badge{font-size:11px;padding:4px 8px}.issues-list{gap:10px}.batch-actions{flex-wrap:wrap;gap:8px;padding:12px}.bulk-selector{margin-bottom:10px;padding:10px 12px}.modal-content{margin:8px;max-height:95vh}.modal-header{margin-bottom:16px;padding:16px 16px 12px}.modal-header h2{font-size:17px}.modal-body{padding:0 16px}.modal-footer{flex-direction:row;margin-top:16px;padding:14px 16px}.event-meta{align-items:flex-start;flex-direction:column;gap:6px}.btn-danger,.btn-outline,.btn-primary,.btn-secondary{font-size:13px;padding:8px 14px}}.activity-layout{grid-gap:24px;align-items:start;display:grid;gap:24px;grid-template-columns:400px 1fr}.activity-layout.no-selection{grid-template-columns:1fr}.activity-user-panel{background:#fff;border:1px solid #f0f0f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;overflow:hidden}.activity-user-panel-header{background:#fff;border-bottom:1px solid #f0f0f0;padding:20px 24px}.activity-user-panel-header h2{color:#1a1a1a;font-size:18px;font-weight:700;margin:0}.activity-user-table-wrap{-webkit-overflow-scrolling:touch;max-height:700px;overflow-y:auto}.activity-user-table{border-collapse:collapse;margin-bottom:0;width:100%}.activity-user-table th{background:#f9fafb;border-bottom:1px solid #f0f0f0;color:#6b7280;font-size:13px;font-weight:600;padding:14px 16px;position:-webkit-sticky;position:sticky;text-align:center;top:0;z-index:1}.activity-user-table th:first-child{text-align:left}.activity-user-table td{border-bottom:1px solid #f5f5f5;padding:14px 16px;text-align:center}.activity-user-table td:first-child{text-align:left}.activity-user-table tbody tr{background:#fff;border-left:3px solid #0000;cursor:pointer;transition:all .2s ease}.activity-user-table tbody tr:hover{background:#f5f5f5}.activity-user-table tbody tr.selected{background:#eff6ff;border-left-color:#2563eb}.activity-user-table tbody tr.selected:hover{background:#dbeafe}.activity-user-name{color:#1a1a1a;font-size:14px;font-weight:700;margin-bottom:4px}.activity-user-last-date{color:#9ca3af;font-size:11px}.activity-badge{border-radius:12px;display:inline-block;font-size:13px;font-weight:600;padding:4px 10px}.activity-badge.event{background:#dbeafe;color:#1e40af}.activity-badge.memo{background:#fff7ed;color:#c2410c}.activity-badge.total{background:#dcfce7;color:#15803d;font-weight:700}.activity-log-panel{background:#fff;border:1px solid #f0f0f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;overflow:hidden}.activity-log-header{align-items:center;background:#fff;border-bottom:1px solid #f0f0f0;display:flex;gap:12px;justify-content:space-between;padding:20px 24px}.activity-log-header h2{color:#1a1a1a;font-size:18px;font-weight:700;margin:0}.activity-log-filters{display:flex;flex-shrink:0;gap:8px}.activity-log-filter{background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:14px;outline:none;padding:8px 14px;transition:border-color .2s ease}.activity-log-filter:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.activity-log-empty{color:#9ca3af;font-size:14px;padding:60px 20px;text-align:center}.activity-log-list{-webkit-overflow-scrolling:touch;max-height:700px;overflow-y:auto}.activity-log-item{border-bottom:1px solid #f0f0f0;padding:20px 24px;transition:background .2s ease}.activity-log-item:last-child{border-bottom:none}.activity-log-item:hover{background:#f9fafb}.activity-log-item-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.activity-log-action-badge{border-radius:6px;font-size:12px;font-weight:700;padding:5px 10px;text-transform:uppercase}.activity-log-type-badge{border-radius:6px;font-size:12px;font-weight:600;padding:5px 10px}.activity-log-type-badge.event{background:#dbeafe;color:#1e40af}.activity-log-type-badge.memo{background:#fff7ed;color:#c2410c}.activity-log-time{color:#9ca3af;font-family:monospace;font-size:13px;margin-left:auto}.activity-log-content-box{background:#fff;border-left:3px solid #2563eb;border-radius:6px;margin-bottom:8px;padding:12px}.activity-log-content-box.memo{background:#fffbf5;border-left-color:#f59e0b}.activity-log-content-label{color:#9ca3af;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.activity-log-content-text{color:#1a1a1a;font-size:14px;font-weight:500}.activity-log-memo-text{color:#374151;font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.activity-changes-title{color:#6b7280;font-size:12px;font-weight:700;margin-top:8px}.activity-changes-list{list-style:none;margin:4px 0;padding-left:20px}.activity-changes-list li{margin-bottom:8px}.activity-changes-list code{background:#f3f4f6;border-radius:3px;font-family:monospace;font-size:12px;padding:1px 5px}.activity-diff-box{border-radius:4px;margin-top:4px;padding:8px}.activity-diff-box.old{background:#fef2f2;border-left:3px solid #ef4444}.activity-diff-box.new{background:#f0fdf4;border-left:3px solid #10b981;margin-top:8px}.activity-diff-label{color:#9ca3af;font-size:11px;font-weight:600;margin-bottom:4px}.activity-diff-value{font-family:monospace;font-size:12px;line-height:1.6;margin:0;white-space:pre-wrap;word-break:break-word}.activity-diff-value.old{color:#ef4444}.activity-diff-value.new{color:#10b981}.activity-color-row{align-items:center;display:flex;gap:10px;margin-bottom:4px}.activity-color-swatch{border:1px solid #e5e7eb;border-radius:4px;box-shadow:0 1px 3px #0000001a;display:inline-block;height:20px;width:20px}.activity-color-name{background:#fff;border-radius:4px;color:#374151;display:inline-block;font-size:11px;font-weight:600;padding:2px 8px}.activity-color-hex{color:#9ca3af;font-family:monospace;font-size:10px}.activity-color-empty{color:#9ca3af;font-size:12px}.activity-role-badge{background:#dbeafe;border-radius:6px;color:#1e40af;display:inline-block;font-size:12px;font-weight:600;padding:4px 10px}.activity-role-id{color:#9ca3af;font-family:monospace;font-size:10px}.activity-sync-badge{align-items:center;border-radius:6px;display:inline-flex;font-size:12px;gap:6px;margin-top:8px;padding:8px 12px}.activity-sync-badge.synced{background:#dcfce7}.activity-sync-badge.not-synced{background:#fff7ed}.activity-sync-label{color:#6b7280;font-weight:600}.activity-sync-value.synced{color:#15803d;font-weight:700}.activity-sync-value.not-synced{color:#c2410c;font-weight:700}.activity-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;font-size:14px;margin-bottom:24px;padding:16px 20px}.activity-mobile-cards{display:none;flex-direction:column;gap:8px}.activity-mobile-card{align-items:center;background:#fff;border:1px solid #f0f0f0;border-left:3px solid #0000;border-radius:10px;cursor:pointer;display:flex;justify-content:space-between;padding:12px 14px;transition:all .2s ease}.activity-mobile-card:active{background:#f5f5f5}.activity-mobile-card.selected{background:#eff6ff;border-color:#bfdbfe}.activity-mobile-card-left{display:flex;flex-direction:column;gap:2px;min-width:0}.activity-mobile-card-name{color:#1a1a1a;font-size:14px;font-weight:700}.activity-mobile-card-date{color:#9ca3af;font-size:11px}.activity-mobile-card-right{display:flex;flex-shrink:0;gap:6px}.activity-mobile-card-right .activity-badge{border-radius:10px;font-size:11px;padding:3px 8px}@media (max-width:768px){.activity-layout,.activity-layout.no-selection{align-items:stretch;display:flex;flex-direction:column;gap:12px}.activity-user-panel-header{padding:14px 16px}.activity-user-panel-header h2{font-size:15px}.activity-user-table-wrap{display:none}.activity-mobile-cards{-webkit-overflow-scrolling:touch;display:flex;max-height:300px;overflow-y:auto;padding:8px}.activity-log-panel{border-radius:10px}.activity-log-header{flex-wrap:wrap;padding:14px 16px}.activity-log-header h2{flex:1 1;font-size:15px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-log-filters{gap:6px;width:100%}.activity-log-filter{flex:1 1;font-size:13px;min-width:0;padding:6px 10px}.activity-log-list{max-height:none}.activity-log-item{padding:14px 16px}.activity-log-item-header{gap:6px;margin-bottom:10px}.activity-log-action-badge,.activity-log-type-badge{font-size:11px;padding:4px 8px}.activity-log-time{font-size:11px;margin-left:0;margin-top:4px;width:100%}.activity-log-content-box{padding:10px}.activity-log-content-text{font-size:13px}.activity-log-empty{padding:40px 16px}.activity-changes-list{padding-left:14px}.activity-diff-box{padding:6px}.activity-diff-value{font-size:11px}.activity-color-swatch{height:16px;width:16px}.activity-color-name{font-size:10px}.activity-color-hex{font-size:9px}}.evlog-search-panel{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #0000000a;margin-bottom:24px;padding:24px}.evlog-search-bar{align-items:center;display:flex;gap:12px}.evlog-search-bar.has-results{margin-bottom:20px}.evlog-search-input{border:2px solid #e5e7eb;border-radius:10px;flex:1 1;font-size:15px;min-width:0;outline:none;padding:14px 18px;transition:border-color .2s}.evlog-search-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.evlog-btn-search{background-color:initial;border:2px solid #4ade80;border-radius:10px;color:#16a34a;cursor:pointer;flex-shrink:0;font-size:15px;font-weight:700;padding:12px 32px;transition:all .2s ease;white-space:nowrap}.evlog-btn-search:hover{background-color:#f0fdf4;border-color:#16a34a;box-shadow:0 2px 6px #4ade804d;color:#15803d;transform:translateY(-1px)}.evlog-btn-search:active{box-shadow:none;transform:translateY(0)}.evlog-btn-search:disabled{background-color:initial;border-color:#e5e7eb;box-shadow:none;color:#ccc;cursor:not-allowed;transform:none}.evlog-btn-deleted{background-color:initial;border:2px solid #f87171;border-radius:10px;color:#dc2626;cursor:pointer;flex-shrink:0;font-size:14px;font-weight:700;padding:12px 24px;transition:all .2s ease;white-space:nowrap}.evlog-btn-deleted:hover{background-color:#fef2f2;border-color:#dc2626;box-shadow:0 2px 6px #f871714d;color:#b91c1c;transform:translateY(-1px)}.evlog-btn-deleted:active{box-shadow:none;transform:translateY(0)}.evlog-btn-deleted:disabled{background-color:initial;border-color:#e5e7eb;box-shadow:none;color:#ccc;cursor:not-allowed;transform:none}.evlog-results-panel{background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 3px #0000000a;overflow:hidden}.evlog-results-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;font-size:14px;font-weight:700;justify-content:space-between;padding:14px 18px}.evlog-results-header.normal{background:#f9fafb;color:#6b7280}.evlog-results-header.deleted{background:#fef2f2;color:#dc2626}.evlog-btn-close{background:none;border:1px solid #e5e7eb;border-radius:6px;color:#9ca3af;cursor:pointer;font-size:13px;padding:4px 10px;transition:all .2s ease}.evlog-btn-close:hover{background:#f3f4f6;border-color:#d1d5db;color:#374151}.evlog-results-list{-webkit-overflow-scrolling:touch;max-height:350px;overflow-y:auto}.evlog-result-item{background:#fff;border-bottom:1px solid #f5f5f5;border-left:4px solid #0000;cursor:pointer;padding:16px 18px;transition:all .2s ease}.evlog-result-item:last-child{border-bottom:none}.evlog-result-item:hover{background:#f9fafb}.evlog-result-item.selected{background:#eff6ff;border-left-color:#2563eb}.evlog-result-item.selected:hover{background:#dbeafe}.evlog-result-title{align-items:center;color:#1a1a1a;display:flex;flex-wrap:wrap;font-size:15px;font-weight:700;gap:10px;margin-bottom:6px}.evlog-deleted-badge{background:#fef2f2;border-radius:4px;color:#dc2626;font-size:12px;font-weight:500;padding:2px 8px}.evlog-result-meta{align-items:center;color:#9ca3af;display:flex;flex-wrap:wrap;font-size:13px;gap:12px}.evlog-result-meta .separator{color:#e5e7eb}.evlog-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b}.evlog-error,.evlog-success{font-size:14px;margin-bottom:24px;padding:16px 20px}.evlog-success{align-items:center;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;color:#166534;display:flex;gap:12px;justify-content:space-between}.evlog-success-close{background:none;border:1px solid #86efac;border-radius:4px;color:#166534;cursor:pointer;flex-shrink:0;font-size:14px;padding:2px 8px;transition:all .2s ease}.evlog-success-close:hover{background:#dcfce7;border-color:#4ade80}.evlog-info-panel{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #0000000a;margin-bottom:24px;padding:24px}.evlog-info-header{align-items:center;border-bottom:2px solid #f0f0f0;color:#1a1a1a;display:flex;flex-wrap:wrap;font-size:18px;font-weight:700;gap:12px;margin-bottom:24px;padding-bottom:12px}.evlog-info-header.deleted{color:#dc2626}.evlog-deleted-label{background:#fef2f2;border-radius:6px;color:#dc2626;font-size:14px;font-weight:500;padding:4px 12px}.evlog-btn-restore{background-color:initial;border:1.5px solid #93c5fd;border-radius:6px;color:#2563eb;cursor:pointer;flex-shrink:0;font-size:12px;font-weight:600;margin-left:auto;padding:4px 12px;transition:all .2s ease;white-space:nowrap}.evlog-btn-restore:hover{background-color:#eff6ff;border-color:#2563eb;color:#1d4ed8}.evlog-btn-restore:disabled{background-color:initial;border-color:#e5e7eb;color:#ccc;cursor:not-allowed}.evlog-info-grid{grid-gap:16px;display:grid;font-size:14px;gap:16px;grid-template-columns:130px 1fr}.evlog-info-label{color:#6b7280;font-weight:600}.evlog-info-label.deleted{color:#dc2626}.evlog-info-value{color:#1a1a1a}.evlog-info-value.deleted{color:#dc2626;font-weight:500}.evlog-color-dot{border:2px solid #f0f0f0;border-radius:6px;box-shadow:0 1px 3px #0000001a;display:inline-block;height:24px;width:24px}.evlog-color-row{align-items:center;display:flex;gap:10px}.evlog-memo-id-badge{background:#dbeafe;border-radius:4px;color:#1e40af;font-family:monospace;font-size:12px;font-weight:500;padding:4px 8px}.evlog-no-memo{color:#9ca3af;font-size:13px}.evlog-log-panel{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #0000000a;overflow:hidden}.evlog-log-header{background:#fff;border-bottom:1px solid #f0f0f0;padding:20px 24px}.evlog-log-header h2{color:#1a1a1a;font-size:18px;font-weight:700;margin:0}.evlog-log-list{-webkit-overflow-scrolling:touch;max-height:700px;overflow-y:auto}.evlog-log-item{border-bottom:1px solid #f0f0f0;padding:20px 24px;transition:background .2s ease}.evlog-log-item:last-child{border-bottom:none}.evlog-log-item:hover{background:#f9fafb}.evlog-log-item-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.evlog-action-badge{border-radius:6px;font-size:12px;font-weight:700;padding:5px 12px;text-transform:uppercase}.evlog-action-badge.created{background:#dcfce7;color:#166534}.evlog-action-badge.updated{background:#fef9c3;color:#854d0e}.evlog-action-badge.deleted{background:#fef2f2;color:#991b1b}.evlog-action-badge.restored{background:#dbeafe;color:#1e40af}.evlog-action-badge.ready{background:#f3e8ff;color:#6b21a8}.evlog-type-badge{border-radius:6px;font-size:12px;font-weight:600;padding:4px 10px}.evlog-type-badge.event{background:#dbeafe;color:#1e40af}.evlog-type-badge.memo{background:#fff7ed;color:#c2410c}.evlog-user-name{color:#1a1a1a;font-size:14px;font-weight:700}.evlog-device-badge{border-radius:6px;font-size:11px;font-weight:600;padding:4px 10px}.evlog-device-badge.mobile{background:#fff7ed;color:#9a3412}.evlog-device-badge.desktop{background:#dbeafe;color:#1e40af}.evlog-log-time{color:#9ca3af;font-family:monospace;font-size:13px;margin-left:auto}.evlog-memo-box{background:#fffbf5;border-left:3px solid #f59e0b;border-radius:6px;margin-bottom:8px;padding:12px}.evlog-content-label{color:#9ca3af;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.evlog-memo-text{color:#374151;font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.evlog-file-link{color:#2563eb;display:inline-block;font-size:12px;margin-top:8px}.evlog-file-link:hover{text-decoration:underline}.evlog-ip-badge{background:#f9fafb;border-radius:4px;color:#9ca3af;display:inline-block;font-family:monospace;font-size:12px;margin-bottom:8px;padding:6px 10px}.evlog-changes-title{color:#6b7280;font-size:12px;font-weight:700;margin-top:8px}.evlog-changes-list{list-style:none;margin:4px 0;padding-left:20px}.evlog-changes-list li{margin-bottom:8px}.evlog-changes-list code{background:#f3f4f6;border-radius:3px;font-family:monospace;font-size:12px;padding:1px 5px}.evlog-diff-box{border-radius:4px;margin-top:4px;padding:8px}.evlog-diff-box.old{background:#fef2f2;border-left:3px solid #ef4444}.evlog-diff-box.new{background:#f0fdf4;border-left:3px solid #10b981;margin-top:8px}.evlog-diff-label{color:#9ca3af;font-size:11px;font-weight:600;margin-bottom:4px}.evlog-diff-value{font-family:monospace;font-size:12px;line-height:1.6;margin:0;white-space:pre-wrap;word-break:break-word}.evlog-diff-value.old{color:#ef4444}.evlog-diff-value.new{color:#10b981}.evlog-color-swatch{border:1px solid #e5e7eb;box-shadow:0 1px 3px #0000001a;height:20px;width:20px}.evlog-color-name,.evlog-color-swatch{border-radius:4px;display:inline-block}.evlog-color-name{background:#fff;color:#374151;font-size:11px;font-weight:600;padding:2px 8px}.evlog-color-hex{color:#9ca3af;font-family:monospace;font-size:10px}.evlog-color-empty{color:#9ca3af;font-size:12px}.evlog-role-badge{background:#dbeafe;border-radius:6px;color:#1e40af;display:inline-block;font-size:12px;font-weight:600;padding:4px 10px}.evlog-role-id{color:#9ca3af;font-family:monospace;font-size:10px}.evlog-role-personal{color:#9ca3af;font-size:12px}.evlog-snapshot-title{color:#6b7280;font-size:12px;font-weight:700;margin-top:8px}.evlog-snapshot-list{list-style:none;margin:4px 0;padding-left:20px}.evlog-snapshot-list li{margin-bottom:4px}.evlog-snapshot-list code{background:#f3f4f6;border-radius:3px;font-family:monospace;font-size:12px;padding:1px 5px}.evlog-snapshot-value{color:#10b981}.evlog-snapshot-color{border:1px solid #e5e7eb;border-radius:3px;display:inline-block;height:12px;margin-left:4px;width:12px}.evlog-empty{background:#fff;border:1px solid #f0f0f0;border-radius:12px;padding:60px 20px}.evlog-empty,.evlog-loading{color:#9ca3af;font-size:14px;text-align:center}.evlog-loading{padding:40px 20px}@media (max-width:768px){.evlog-search-panel{border-radius:10px;margin-bottom:12px;padding:14px}.evlog-search-bar{flex-wrap:wrap}.evlog-search-input{border-radius:8px;flex:1 1 100%;font-size:14px;padding:12px 14px;width:100%}.evlog-btn-search{font-size:14px}.evlog-btn-deleted,.evlog-btn-search{border-radius:8px;flex:1 1;justify-content:center;padding:12px 16px}.evlog-btn-deleted{font-size:13px}.evlog-results-header{font-size:13px;padding:12px 14px}.evlog-results-list{max-height:300px}.evlog-result-item{padding:12px 14px}.evlog-result-title{font-size:14px;gap:6px}.evlog-result-meta{font-size:12px;gap:8px}.evlog-info-panel{border-radius:10px;margin-bottom:12px;padding:16px}.evlog-info-header{font-size:15px;gap:8px;margin-bottom:16px;padding-bottom:10px}.evlog-deleted-label{font-size:12px;padding:3px 8px}.evlog-btn-restore{font-size:11px;margin-left:auto;padding:4px 10px}.evlog-info-grid{gap:4px;grid-template-columns:1fr}.evlog-info-label{font-size:12px;margin-top:12px}.evlog-info-label:first-child{margin-top:0}.evlog-info-value{font-size:14px}.evlog-color-dot{height:20px;width:20px}.evlog-memo-id-badge{font-size:11px;padding:3px 6px}.evlog-log-panel{border-radius:10px}.evlog-log-header{padding:14px 16px}.evlog-log-header h2{font-size:15px}.evlog-log-list{max-height:none}.evlog-log-item{padding:14px 16px}.evlog-log-item-header{gap:6px;margin-bottom:10px}.evlog-action-badge{font-size:11px;padding:4px 8px}.evlog-type-badge{font-size:11px;padding:3px 8px}.evlog-user-name{font-size:13px}.evlog-device-badge{font-size:10px;padding:3px 8px}.evlog-log-time{font-size:11px;margin-left:0;margin-top:4px;width:100%}.evlog-memo-box{padding:10px}.evlog-memo-text{font-size:12px}.evlog-changes-list{padding-left:14px}.evlog-diff-box{padding:6px}.evlog-diff-value{font-size:11px}.evlog-color-swatch{height:16px;width:16px}.evlog-color-name{font-size:10px}.evlog-color-hex{font-size:9px}.evlog-empty{border-radius:10px;padding:40px 16px}.evlog-error,.evlog-success{font-size:13px;margin-bottom:12px;padding:12px 14px}}.alimtalk-logs-container{margin:0 auto;max-width:1400px;padding:20px}.alimtalk-logs-container .page-header{margin-bottom:24px}.alimtalk-logs-container .page-header h2{color:#1a1a1a;font-size:24px;font-weight:700;margin:0}.alimtalk-stats{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(3,1fr);margin-bottom:20px}.alimtalk-stat-card{background:#fff;border:1px solid #f0f0f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;padding:18px 20px}.alimtalk-stat-label{color:#9ca3af;font-size:12px;font-weight:600;letter-spacing:.3px;margin-bottom:8px;text-transform:uppercase}.alimtalk-stat-value{color:#1a1a1a;font-size:28px;font-weight:800;line-height:1.1;margin-bottom:10px}.alimtalk-stat-detail{display:flex;font-size:13px;font-weight:600;gap:12px}.alimtalk-stat-detail .success{color:#10b981}.alimtalk-stat-detail .fail{color:#ef4444}.alimtalk-stat-card.rate{border-left:3px solid #2563eb}.alimtalk-stat-card.rate .alimtalk-stat-value{color:#2563eb}.alimtalk-filters{align-items:center;display:flex;gap:10px;margin-bottom:16px}.alimtalk-filter-select{background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:14px;outline:none;padding:8px 14px;transition:border-color .2s ease}.alimtalk-filter-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.alimtalk-btn-refresh{background-color:initial;border:1.5px solid #93c5fd;border-radius:8px;color:#2563eb;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.alimtalk-btn-refresh:hover{background-color:#eff6ff;border-color:#2563eb;color:#1d4ed8}.alimtalk-table-wrap{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #f0f0f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;overflow-x:auto}.alimtalk-table{border-collapse:collapse;min-width:800px;width:100%}.alimtalk-table thead{background:#f9fafb;border-bottom:1px solid #e5e7eb}.alimtalk-table th{background:#f9fafb;color:#6b7280;font-size:12px;font-weight:700;letter-spacing:.5px;padding:14px 16px;position:-webkit-sticky;position:sticky;text-align:left;text-transform:uppercase;top:0;white-space:nowrap;z-index:1}.alimtalk-table td{border-bottom:1px solid #f5f5f5;color:#1f2937;font-size:14px;padding:14px 16px;vertical-align:middle}.alimtalk-table tbody tr{transition:background .15s ease}.alimtalk-table tbody tr:hover{background:#f9fafb}.alimtalk-table tbody tr:last-child td{border-bottom:none}.alimtalk-table .col-time{min-width:140px;white-space:nowrap}.alimtalk-table .col-event{max-width:220px;min-width:150px}.alimtalk-table .col-user{min-width:60px;white-space:nowrap}.alimtalk-table .col-phone{font-family:monospace;font-size:13px;min-width:110px;white-space:nowrap}.alimtalk-table .col-status,.alimtalk-table .col-type{min-width:50px;white-space:nowrap}.alimtalk-table .col-code{font-family:monospace;font-size:13px;min-width:60px;white-space:nowrap}.alimtalk-table .col-detail{min-width:70px;white-space:nowrap}.alimtalk-event-sub{color:#9ca3af;font-size:12px;margin-top:2px}.alimtalk-type-badge{border-radius:6px;display:inline-block;font-size:12px;font-weight:600;padding:3px 8px}.alimtalk-type-badge.create{background:#dbeafe;color:#1e40af}.alimtalk-type-badge.update{background:#fef3c7;color:#92400e}.alimtalk-type-badge.delete{background:#fee2e2;color:#991b1b}.alimtalk-status-badge{border-radius:6px;display:inline-block;font-size:12px;font-weight:600;padding:3px 8px}.alimtalk-status-badge.success{background:#dcfce7;color:#166534}.alimtalk-status-badge.fail{background:#fee2e2;color:#991b1b}.alimtalk-alt-code{color:#9ca3af;font-size:12px}.alimtalk-btn-detail{background:#0000;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;cursor:pointer;font-size:12px;font-weight:600;padding:5px 10px;transition:all .2s ease}.alimtalk-btn-detail:hover{background:#eff6ff;border-color:#2563eb;color:#2563eb}.alimtalk-loading{padding:60px}.alimtalk-empty,.alimtalk-loading{color:#9ca3af;font-size:14px;text-align:center}.alimtalk-empty{padding:40px}.alimtalk-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.alimtalk-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000026;display:flex;flex-direction:column;max-height:90vh;max-width:900px;width:100%}.alimtalk-modal-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:20px 24px}.alimtalk-modal-header h3{color:#1a1a1a;font-size:18px;font-weight:700;margin:0}.alimtalk-modal-close{background:none;border:none;border-radius:6px;color:#9ca3af;cursor:pointer;font-size:24px;line-height:1;padding:4px;transition:all .2s ease}.alimtalk-modal-close:hover{background:#f3f4f6;color:#374151}.alimtalk-modal-body{flex:1 1;overflow-y:auto;padding:24px}.alimtalk-detail-section{margin-bottom:24px}.alimtalk-detail-section:last-child{margin-bottom:0}.alimtalk-detail-section h4{color:#6b7280;font-size:13px;font-weight:700;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.alimtalk-detail-row{display:flex;font-size:14px;margin-bottom:8px}.alimtalk-detail-label{color:#6b7280;flex-shrink:0;font-weight:600;min-width:110px}.alimtalk-detail-value{color:#1f2937;word-break:break-word}.alimtalk-detail-value.success-text{color:#059669;font-weight:700}.alimtalk-detail-value.fail-text{color:#dc2626;font-weight:700}.alimtalk-detail-value.error-text{color:#dc2626}.alimtalk-json-content,.alimtalk-message-content{word-wrap:break-word;background:#f9fafb;border:1px solid #f0f0f0;border-radius:8px;color:#374151;font-family:monospace;font-size:13px;line-height:1.6;margin:0;overflow-x:auto;padding:14px;white-space:pre-wrap}.alimtalk-modal-footer{border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end;padding:16px 24px}.alimtalk-btn-close-modal{background:#0000;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;cursor:pointer;font-size:14px;font-weight:600;padding:8px 20px;transition:all .2s ease}.alimtalk-btn-close-modal:hover{background:#f3f4f6;border-color:#d1d5db}@media (max-width:768px){.alimtalk-logs-container{padding:12px 12px 60px}.alimtalk-logs-container .page-header{margin-bottom:14px}.alimtalk-logs-container .page-header h2{font-size:20px}.alimtalk-stats{gap:8px;margin-bottom:14px}.alimtalk-stat-card{border-radius:10px;padding:12px 10px}.alimtalk-stat-label{font-size:10px;margin-bottom:4px}.alimtalk-stat-value{font-size:20px;margin-bottom:6px}.alimtalk-stat-detail{flex-direction:column;font-size:11px;gap:6px}.alimtalk-stat-card.rate .alimtalk-stat-detail{display:none}.alimtalk-filters{gap:6px;margin-bottom:12px}.alimtalk-filter-select{flex:1 1;font-size:13px;min-width:0;padding:6px 10px}.alimtalk-btn-refresh{flex-shrink:0;font-size:13px;padding:6px 12px}.alimtalk-table-wrap{border-radius:10px}.alimtalk-table th{font-size:11px;padding:10px 12px}.alimtalk-table td{font-size:13px;padding:10px 12px}.alimtalk-modal-overlay{padding:8px}.alimtalk-modal{border-radius:12px;max-height:90vh}.alimtalk-modal-header{padding:14px 16px}.alimtalk-modal-header h3{font-size:16px}.alimtalk-modal-body{padding:14px 16px}.alimtalk-detail-section h4{font-size:12px}.alimtalk-detail-row{font-size:13px}.alimtalk-detail-label{font-size:12px;min-width:90px}.alimtalk-json-content,.alimtalk-message-content{font-size:12px;padding:10px}.alimtalk-modal-footer{padding:12px 16px}}.LoginPage_container__Cfl-W{background:var(--panel-background);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 2px 16px #00000014;margin:60px auto;max-width:400px;padding:32px 24px;text-align:center}.LoginPage_header__bJ851{margin-bottom:32px;position:relative}.LoginPage_title__gHnSn{color:var(--text-color);font-size:2rem;font-weight:700;margin-bottom:0;text-align:center}.LoginPage_themeToggleBtn__aTTRS{align-items:center;background:none;border:1px solid var(--border-color);border-radius:50%;cursor:pointer;display:flex;font-size:1.2rem;height:36px;justify-content:center;position:absolute;right:0;top:50%;transform:translateY(-50%);width:36px}.LoginPage_input__D-sed{background-color:var(--input-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);display:block;font-size:1rem;margin-bottom:16px;margin-left:auto;margin-right:auto;max-width:360px;padding:12px;width:100%}.LoginPage_input__D-sed::placeholder{color:var(--text-color-secondary);font-size:.85rem}.LoginPage_emailContainer__RtPny{align-items:center;display:flex;gap:8px;justify-content:center;margin-bottom:16px;margin-left:auto;margin-right:auto;max-width:360px}.LoginPage_emailLocal__ccHlO{flex:1 1;margin-bottom:0;min-width:0}.LoginPage_emailDomain__hfirz{flex:1 1;margin-bottom:0;min-width:130px}.LoginPage_customDomainContainer__0rR8v{align-items:center;display:flex;flex:1 1;gap:4px}.LoginPage_atSymbol__E7u8q{color:var(--text-color);flex-shrink:0;font-size:1rem;font-weight:700;padding:0 4px}.LoginPage_customDomainInput__W8jd0{flex:1 1;margin-bottom:0;min-width:110px}.LoginPage_resetBtn__9D2-K{align-items:center;background:var(--button-secondary-bg);border:1px solid var(--border-color);border-radius:50%;color:var(--button-secondary-text);cursor:pointer;display:flex;flex-shrink:0;font-size:16px;font-weight:700;height:32px;justify-content:center;transition:all .2s ease;width:32px}.LoginPage_resetBtn__9D2-K:hover{background:var(--hover-bg-color);border-color:var(--button-primary-bg);color:var(--button-primary-bg)}.LoginPage_domainResetBtn__13PA0{background:var(--button-secondary-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--button-secondary-text);cursor:pointer;font-size:.9rem;margin-bottom:16px;padding:8px 16px;transition:all .2s ease}.LoginPage_domainResetBtn__13PA0:hover{background:var(--hover-bg-color);border-color:var(--button-primary-bg)}.LoginPage_keepLogin__Dewgs{align-items:center;color:var(--text-color);display:flex;font-size:.95rem;gap:8px;margin-bottom:16px}.LoginPage_loginBtn__HrpXb{background:var(--button-primary-bg);border:none;border-radius:6px;color:var(--button-primary-text);cursor:pointer;font-size:1.1rem;font-weight:700;margin-bottom:16px;padding:14px;width:100%}.LoginPage_links__GdQq7{color:var(--text-color);font-size:.95rem;margin-bottom:24px}.LoginPage_links__GdQq7 span{cursor:pointer;margin:0 4px}.LoginPage_separator__dLMyR{color:var(--text-color-secondary);cursor:default!important;margin:0 8px}.LoginPage_contactBox__Cr7PV{background:var(--background-color-other-month);border-radius:8px;color:var(--text-color);font-size:1rem;margin-top:16px;padding:16px}.LoginPage_error__U\+uSr{color:var(--sunday-color);font-size:.95rem;margin-bottom:12px}@media (max-width:600px){.LoginPage_container__Cfl-W{margin:20px;max-width:none}.LoginPage_emailContainer__RtPny{flex-direction:column;gap:12px}.LoginPage_customDomainInput__W8jd0,.LoginPage_emailDomain__hfirz,.LoginPage_emailLocal__ccHlO{max-width:none;width:100%}.LoginPage_customDomainContainer__0rR8v{width:100%}}.SignupPage_container__6pgiP{background:var(--panel-background);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 2px 16px #00000014;margin:60px auto;max-width:480px;padding:32px 0;text-align:center}.SignupPage_header__YEihm{margin-bottom:24px;padding:0 24px;position:relative}.SignupPage_title__zeLQw{color:var(--text-color);font-size:2rem;font-weight:700;margin:0;text-align:center}.SignupPage_themeToggleBtn__\+PA0p{align-items:center;background:none;border:1px solid var(--border-color);border-radius:50%;cursor:pointer;display:flex;font-size:1.2rem;height:36px;justify-content:center;position:absolute;right:24px;top:50%;transform:translateY(-50%);width:36px}.SignupPage_card__38HbU{color:var(--text-color);padding:0 24px 32px}.SignupPage_stepper__b92U\+{display:flex;gap:32px;justify-content:center;margin-bottom:32px}.SignupPage_activeStep__xW-J0,.SignupPage_step__nYFmz{align-items:center;color:var(--text-color-secondary);display:flex;flex-direction:column;font-size:.95rem}.SignupPage_activeStep__xW-J0{color:var(--button-primary-bg);font-weight:700}.SignupPage_circle__wEMBX{align-items:center;background:var(--button-secondary-bg);border-radius:50%;color:var(--text-color);display:flex;font-size:1.1rem;font-weight:700;height:32px;justify-content:center;margin-bottom:6px;width:32px}.SignupPage_activeStep__xW-J0 .SignupPage_circle__wEMBX{background:var(--button-primary-bg);color:var(--button-primary-text)}.SignupPage_section__szZZN{margin-bottom:16px}.SignupPage_row__oj68u{align-items:center;display:flex;margin-bottom:16px;margin-left:auto;margin-right:auto;max-width:360px}.SignupPage_row__oj68u label{color:var(--text-color);flex-shrink:0;font-size:.95rem;font-weight:500;text-align:left;width:100px}.SignupPage_row__oj68u input{background-color:var(--input-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);flex:1 1;font-size:1rem;padding:12px}.SignupPage_row__oj68u input::placeholder{color:var(--text-color-secondary);font-size:.85rem}.SignupPage_input__6Ar\+S{background-color:var(--input-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);display:block;font-size:1rem;margin-bottom:16px;margin-left:auto;margin-right:auto;max-width:360px;padding:12px;width:100%}.SignupPage_input__6Ar\+S::placeholder{color:var(--text-color-secondary);font-size:.85rem}.SignupPage_emailContainer__Mzq\+Q{align-items:center;display:flex;gap:8px;justify-content:center;margin-bottom:16px;margin-left:auto;margin-right:auto;max-width:360px}.SignupPage_emailLocal__NOmeJ{flex:1 1;margin-bottom:0;min-width:0}.SignupPage_emailDomain__zZkuu{flex:1 1;margin-bottom:0;min-width:140px}.SignupPage_customDomainContainer__YvpEt{align-items:center;display:flex;flex:1 1;gap:4px}.SignupPage_atSymbol__5dpgY{color:var(--text-color);flex-shrink:0;font-size:1rem;font-weight:700;padding:0 4px}.SignupPage_customDomainInput__DHTXP{flex:1 1;margin-bottom:0;min-width:120px}.SignupPage_resetBtn__fOgYX{align-items:center;background:var(--button-secondary-bg);border:1px solid var(--border-color);border-radius:50%;color:var(--button-secondary-text);cursor:pointer;display:flex;flex-shrink:0;font-size:16px;font-weight:700;height:32px;justify-content:center;transition:all .2s ease;width:32px}.SignupPage_resetBtn__fOgYX:hover{background:var(--hover-bg-color);border-color:var(--button-primary-bg);color:var(--button-primary-bg)}.SignupPage_domainResetBtn__Y4koA{background:var(--button-secondary-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--button-secondary-text);cursor:pointer;font-size:.9rem;margin-bottom:16px;padding:8px 16px;transition:all .2s ease}.SignupPage_domainResetBtn__Y4koA:hover{background:var(--hover-bg-color);border-color:var(--button-primary-bg)}.SignupPage_emailPreview__cwttB{background:var(--background-color-other-month);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);font-size:.95rem;margin-bottom:16px;margin-left:auto;margin-right:auto;max-width:360px;padding:12px;text-align:center}.SignupPage_emailPreview__cwttB strong{color:var(--button-primary-bg)}.SignupPage_btnRow__KkCWV{display:flex;gap:12px;justify-content:space-between}.SignupPage_nextBtn__kuaS0,.SignupPage_prevBtn__kLuZY{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:1rem;font-weight:700;padding:12px}.SignupPage_nextBtn__kuaS0{background:var(--button-primary-bg);color:var(--button-primary-text)}.SignupPage_prevBtn__kLuZY{background:var(--button-secondary-bg);color:var(--button-secondary-text)}.SignupPage_error__MDiIY{color:var(--sunday-color);font-size:.95rem;margin-bottom:12px}.SignupPage_agreementBox__8IQ-K{background:var(--background-color-other-month);border-radius:8px;color:var(--text-color);margin-bottom:16px;padding:16px;text-align:left}.SignupPage_agreementTitle__l7-GA{font-weight:700;margin-bottom:8px}.SignupPage_agreementContent__Wd0TU{font-size:.98rem}.SignupPage_checkRow__crumJ{align-items:center;color:var(--text-color);display:flex;gap:8px;justify-content:center;margin-bottom:16px}.SignupPage_successIcon__KqEzT{color:var(--text-color);font-size:2.5rem;margin:24px 0}@media (max-width:600px){.SignupPage_container__6pgiP{border-radius:8px;margin:10px;max-width:none;padding:16px 0}.SignupPage_header__YEihm{margin-bottom:20px;padding:0 16px}.SignupPage_title__zeLQw{font-size:1.5rem}.SignupPage_card__38HbU{padding:0 16px 24px}.SignupPage_row__oj68u{align-items:stretch;flex-direction:column;gap:8px;margin-left:16px;margin-right:16px;max-width:none}.SignupPage_row__oj68u label{font-size:.9rem;margin-bottom:4px;text-align:left;width:100%}.SignupPage_row__oj68u input{box-sizing:border-box;font-size:16px;width:100%}.SignupPage_input__6Ar\+S{box-sizing:border-box;font-size:16px;margin-left:16px;margin-right:16px;max-width:none}.SignupPage_emailContainer__Mzq\+Q{flex-direction:column;gap:12px;margin-left:16px;margin-right:16px;max-width:none}.SignupPage_customDomainInput__DHTXP,.SignupPage_emailDomain__zZkuu,.SignupPage_emailLocal__NOmeJ{box-sizing:border-box;font-size:16px;max-width:none;width:100%}.SignupPage_customDomainContainer__YvpEt{width:100%}.SignupPage_stepper__b92U\+{gap:16px;margin-bottom:24px}.SignupPage_activeStep__xW-J0,.SignupPage_step__nYFmz{font-size:.85rem}.SignupPage_circle__wEMBX{font-size:.95rem;height:28px;width:28px}.SignupPage_agreementBox__8IQ-K{padding:12px}.SignupPage_agreementBox__8IQ-K,.SignupPage_btnRow__KkCWV,.SignupPage_checkRow__crumJ,.SignupPage_emailPreview__cwttB{margin-left:16px;margin-right:16px}.SignupPage_emailPreview__cwttB{max-width:none}}.ChangePasswordPage_container__mKq8q{background:var(--panel-background);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 2px 16px #00000014;margin:60px auto;max-width:480px;padding:32px 0;text-align:center}.ChangePasswordPage_card__2WZTx{color:var(--text-color);padding:0 24px 32px}.ChangePasswordPage_stepper__OnSqT{display:flex;gap:32px;justify-content:center;margin-bottom:32px}.ChangePasswordPage_activeStep__bHvdH,.ChangePasswordPage_step__4KcNJ{align-items:center;color:var(--text-color-secondary);display:flex;flex-direction:column;font-size:.95rem}.ChangePasswordPage_activeStep__bHvdH{color:var(--button-primary-bg);font-weight:700}.ChangePasswordPage_circle__a9zdb{align-items:center;background:var(--button-secondary-bg);border-radius:50%;color:var(--text-color);display:flex;font-size:1.1rem;font-weight:700;height:32px;justify-content:center;margin-bottom:6px;width:32px}.ChangePasswordPage_activeStep__bHvdH .ChangePasswordPage_circle__a9zdb{background:var(--button-primary-bg);color:var(--button-primary-text)}.ChangePasswordPage_formTitle__3Ay99{color:var(--text-color);font-size:1.1rem;font-weight:600;margin-bottom:24px}.ChangePasswordPage_row__3hUHe{align-items:center;display:flex;margin-bottom:16px;margin-left:auto;margin-right:auto;max-width:360px}.ChangePasswordPage_row__3hUHe label{color:var(--text-color);display:block;flex-shrink:0;font-size:.95rem;font-weight:500;margin-bottom:8px;text-align:left;width:100px}.ChangePasswordPage_row__3hUHe input{background-color:var(--input-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);flex:1 1;font-size:1rem;padding:12px 44px 12px 12px}.ChangePasswordPage_row__3hUHe input::placeholder{color:var(--text-color-secondary);font-size:.85rem}.ChangePasswordPage_passwordContainer__0FLyw{flex:1 1;position:relative}.ChangePasswordPage_eyeButton__39mO8{align-items:center;background:none;border:none;color:#666;cursor:pointer;display:flex;height:24px;justify-content:center;padding:0;position:absolute;right:30px;top:50%;transform:translateY(-50%);width:24px;z-index:1}.ChangePasswordPage_hint__5v2dm{color:var(--text-color-secondary);font-size:.8rem;margin:4px auto 16px;max-width:360px;text-align:center}.ChangePasswordPage_btnRow__gy2\+y{display:flex;gap:12px;justify-content:space-between;margin-left:auto;margin-right:auto;max-width:360px}.ChangePasswordPage_nextBtn__qTMyf,.ChangePasswordPage_prevBtn__Phijh{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:1rem;font-weight:700;padding:12px}.ChangePasswordPage_nextBtn__qTMyf{background:var(--button-primary-bg);color:var(--button-primary-text)}.ChangePasswordPage_prevBtn__Phijh{background:var(--button-secondary-bg);color:var(--button-secondary-text)}.ChangePasswordPage_error__belYU{color:var(--sunday-color);font-size:.95rem;margin-bottom:12px;text-align:center}.ChangePasswordPage_successContent__kczcE{padding:20px 0;text-align:center}.ChangePasswordPage_checkIcon__sl9wg{font-size:3rem;margin-bottom:16px}.ChangePasswordPage_successTitle__-QqWR{color:var(--text-color);font-size:1.3rem;font-weight:700;margin-bottom:12px}.ChangePasswordPage_successMessage__XS5Qi{color:var(--text-color-secondary);font-size:1rem;line-height:1.5;margin-bottom:24px}.App{text-align:left}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}