.cal{display:grid;grid-template-columns:210px 1fr;height:100%;min-height:0;background:var(--bg)}.cal-side{background:var(--panel);border-right:1px solid var(--line);padding:12px;overflow-y:auto}.cal-side .new{width:100%;padding:9px;border:0;border-radius:8px;background:var(--teal);color:#fff;font-weight:700;margin-bottom:14px}.cal-side h4{margin:8px 0 6px;font-size:12px;color:var(--muted)}.cal-list label{display:flex;align-items:center;gap:7px;padding:5px 4px;border-radius:6px}.cal-list label:hover{background:var(--hover)}.cal-list .cdot{width:10px;height:10px;border-radius:3px;flex:none}.cal-list .def{color:var(--muted);font-size:11px;margin-left:auto}.cal-main{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--panel)}.cal-top{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line)}.cal-top .ttl{font-size:16px;font-weight:700;margin:0 10px}.cal-top .grow{flex:1}.month{flex:1;display:grid;grid-template-rows:26px repeat(6,1fr);min-height:0}.month .wk{display:grid;grid-template-columns:repeat(7,1fr);min-height:0}.month .dow{text-align:center;color:var(--muted);font-size:12px;line-height:26px;border-bottom:1px solid var(--line)}.month .cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:3px 4px;overflow:hidden;min-height:0;display:flex;flex-direction:column;gap:2px}.month .cell.other{background:color-mix(in srgb,var(--bg) 60%,var(--panel))}.month .cell.other .dn{color:var(--muted)}.month .dn{font-size:12px;padding:1px 4px;align-self:flex-start;border-radius:10px}.month .cell.today .dn{background:var(--navy);color:var(--panel);font-weight:700}.dow.sun,.dn.sun{color:var(--danger)}.dow.sat,.dn.sat{color:#2563eb}.ev{font-size:12px;border-radius:4px;padding:1px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default}.ev.allday{color:#fff}.ev.timed{display:flex;gap:4px;align-items:center}.ev.timed .b{width:7px;height:7px;border-radius:4px;flex:none}.ev:hover{filter:brightness(.95)}.ev.cancel{text-decoration:line-through;opacity:.6}.ev.tent{opacity:.75;font-style:italic}.more{font-size:11px;color:var(--muted);padding-left:4px}.tgrid{flex:1;display:flex;flex-direction:column;min-height:0}.tgrid .hdr,.tgrid .allrow{display:grid;border-bottom:1px solid var(--line)}.tgrid .hdr div{text-align:center;padding:5px 0;font-size:12px;color:var(--muted)}.tgrid .hdr div.today b{background:var(--navy);color:var(--panel);border-radius:10px;padding:0 6px}.tgrid .allrow>div{min-height:24px;padding:2px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.tgrid .allrow .lbl{font-size:11px;color:var(--muted);text-align:right;padding-right:6px;border-right:0}.tgrid .scroll{flex:1;overflow-y:auto;position:relative}.tgrid .body{display:grid;position:relative}.tgrid .hours div{height:48px;font-size:11px;color:var(--muted);text-align:right;padding-right:6px;transform:translateY(-7px)}.tgrid .col{position:relative;border-right:1px solid var(--line)}.tgrid .col .slot{height:48px;border-bottom:1px solid var(--line)}.tgrid .col .slot:nth-child(odd){border-bottom-style:dotted}.tgrid .col.today{background:color-mix(in srgb,var(--teal) 5%,transparent)}.tev{position:absolute;border-radius:5px;padding:2px 5px;font-size:12px;color:#fff;overflow:hidden;border:1px solid rgba(255,255,255,.6);line-height:1.35;cursor:default}.tev .tm{font-size:11px;opacity:.9}.nowline{position:absolute;left:0;right:0;height:2px;background:var(--danger);z-index:2;pointer-events:none}.rec-note{color:var(--muted);font-size:12px;background:var(--bg);border-radius:6px;padding:6px 9px}.timepair{display:grid;grid-template-columns:1fr 1fr;gap:6px}:root{--navy: #12345c;--teal: #1fa3a3;--bg: #faf8f3;--panel: #ffffff;--line: #e3e0d8;--text: #1d2430;--muted: #6b7280;--hover: #eef2f7;--sel: #dbe7f5;--sel-strong: #c7daf0;--danger: #ba262c;--unread: #12345c;--shadow: 0 8px 28px rgba(18, 52, 92, .18);color-scheme:light}:root[data-theme=dark]{--bg: #12161d;--panel: #1a2029;--line: #2b3340;--text: #e6e9ee;--muted: #98a2b3;--hover: #232b36;--sel: #233a57;--sel-strong: #2b4a70;--unread: #8ec5ff;--navy: #8ec5ff;color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #12161d;--panel: #1a2029;--line: #2b3340;--text: #e6e9ee;--muted: #98a2b3;--hover: #232b36;--sel: #233a57;--sel-strong: #2b4a70;--unread: #8ec5ff;--navy: #8ec5ff;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Malgun Gothic,맑은 고딕,Apple SD Gothic Neo,Noto Sans KR,system-ui,sans-serif;font-size:13px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;user-select:none;overflow:hidden}input,textarea,select,button{font:inherit;color:inherit}button{cursor:pointer}.app{display:grid;grid-template-columns:52px 230px minmax(320px,420px) 1fr;grid-template-rows:minmax(0,1fr);height:100%}.app>*{min-height:0;min-width:0}.app.no-list{grid-template-columns:52px 230px 1fr}.app.full{grid-template-columns:52px 1fr}.rail{background:#12345c;display:flex;flex-direction:column;align-items:center;padding:10px 0;gap:6px}.rail .logo{color:#fff;font-weight:800;font-size:11px;letter-spacing:1px;margin-bottom:10px}.rail .logo b{color:var(--teal)}.rail button{width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:#cfd9e6;font-size:18px;position:relative}.rail button:hover{background:#ffffff14}.rail button.on{background:#ffffff29;color:#fff}.rail .spacer{flex:1}.rail .badge{position:absolute;top:2px;right:2px;background:var(--teal);color:#fff;border-radius:9px;font-size:10px;padding:0 5px;line-height:16px}.side{background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:0}.side .new{margin:12px;padding:9px;border:0;border-radius:8px;background:var(--teal);color:#fff;font-weight:700}.side .new:hover{filter:brightness(1.05)}.side .tree{overflow-y:auto;flex:1;padding-bottom:12px}.acct{padding:10px 12px 4px;font-weight:700;color:var(--muted);font-size:12px;display:flex;align-items:center;gap:6px}.acct .dot{width:8px;height:8px;border-radius:4px;background:#9ca3af;flex:none}.acct .dot.idle{background:#22a06b}.acct .dot.syncing,.acct .dot.connecting{background:#e2a400}.acct .dot.error{background:var(--danger)}.acct .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder{display:flex;align-items:center;gap:6px;padding:6px 12px;cursor:default;border-radius:6px;margin:0 6px}.folder:hover{background:var(--hover)}.folder.on{background:var(--sel);font-weight:700}.folder.drop{outline:2px dashed var(--teal)}.folder .n{margin-left:auto;color:var(--navy);font-weight:700;font-size:12px}.folder .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side .status{border-top:1px solid var(--line);padding:8px 12px;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list{background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:0}.list .head{padding:10px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.search{display:flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:0 8px}.search input{border:0;outline:0;background:transparent;flex:1;padding:7px 0;user-select:text}.filters{display:flex;gap:4px;align-items:center}.chip{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:2px 10px;font-size:12px}.chip.on{background:var(--navy);border-color:var(--navy);color:var(--panel)}.filters .title{font-weight:700;margin-right:auto;font-size:14px}.rows{flex:1;overflow-y:auto;position:relative;outline:none}.row{position:absolute;left:0;right:0;height:64px;padding:7px 12px 7px 18px;border-bottom:1px solid var(--line);cursor:default;display:grid;grid-template-columns:1fr auto;grid-template-rows:18px 18px 18px;column-gap:8px}.row:hover{background:var(--hover)}.row.sel{background:var(--sel)}.row.sel.focus{background:var(--sel-strong)}.row .from{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .date{color:var(--muted);font-size:12px;text-align:right}.row .subj{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;grid-column:1 / 3}.row .prev{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px;grid-column:1 / 2}.row .icons{font-size:11px;text-align:right;white-space:nowrap}.row.unread .from,.row.unread .subj{font-weight:700;color:var(--unread)}.row.unread:before{content:"";position:absolute;left:6px;top:12px;width:6px;height:6px;border-radius:3px;background:var(--teal)}.empty{color:var(--muted);text-align:center;padding:40px 16px;line-height:1.7}.reader{display:flex;flex-direction:column;min-width:0;background:var(--panel)}.toolbar{display:flex;gap:2px;padding:6px 10px;border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center}.tb{border:0;background:transparent;padding:6px 9px;border-radius:6px;display:inline-flex;gap:5px;align-items:center;white-space:nowrap}.tb:hover{background:var(--hover)}.tb:disabled{opacity:.4;cursor:default}.tb.primary{background:var(--teal);color:#fff;font-weight:700}.tb.primary:hover{filter:brightness(1.05);background:var(--teal)}.tb.danger{color:var(--danger)}.sep{width:1px;height:20px;background:var(--line);margin:0 4px}.msg{flex:1;overflow-y:auto;padding:18px 22px;user-select:text}.msg h1{font-size:18px;margin:0 0 14px;font-weight:700;word-break:break-word}.msg .meta{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:start;margin-bottom:12px}.avatar{width:40px;height:40px;border-radius:20px;background:var(--navy);color:var(--panel);display:grid;place-items:center;font-weight:700}.msg .meta .who b{font-size:14px}.msg .meta .who div{color:var(--muted);font-size:12px;margin-top:2px;word-break:break-all}.msg .meta .when{color:var(--muted);font-size:12px}.banner{background:#fff6dd;color:#5c4400;border:1px solid #f1dc9c;border-radius:8px;padding:8px 12px;margin-bottom:10px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.banner button{border:1px solid #d9c27a;background:#fff;border-radius:6px;padding:3px 8px;color:#5c4400}:root[data-theme=dark] .banner{background:#3a3218;color:#f1dc9c;border-color:#5c4d1f}.atts{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 14px}.att{border:1px solid var(--line);border-radius:8px;padding:6px 10px;display:flex;gap:8px;align-items:center;background:var(--bg);max-width:280px}.att .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att .sz{color:var(--muted);font-size:11px}.att button{border:0;background:transparent;padding:2px 4px;border-radius:4px;color:var(--navy)}.att button:hover{background:var(--hover)}.body-frame{width:100%;border:0;min-height:120px;display:block;background:#fff;border-radius:4px}.body-text{white-space:pre-wrap;word-break:break-word;font-family:inherit;line-height:1.6;margin:0}.invite{border:1px solid var(--teal);border-radius:10px;padding:12px 14px;margin-bottom:14px;background:color-mix(in srgb,var(--teal) 8%,var(--panel))}.invite .t{font-weight:700;font-size:14px;margin-bottom:4px}.invite .btns{display:flex;gap:6px;margin-top:10px}.btn{border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:6px 12px}.btn:hover{background:var(--hover)}.btn.primary{background:var(--navy);border-color:var(--navy);color:var(--panel);font-weight:700}.btn.teal{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:700}.btn.danger{color:var(--danger)}.btn:disabled{opacity:.5;cursor:default}.thread{border-top:1px solid var(--line);margin-top:18px;padding-top:10px}.thread .t{color:var(--muted);font-size:12px;margin-bottom:6px}.thread .it{padding:5px 8px;border-radius:6px;display:flex;gap:8px;cursor:default}.thread .it:hover{background:var(--hover)}.thread .it.cur{font-weight:700}.composer-wrap{position:fixed;inset:0;background:#0a142347;display:flex;align-items:center;justify-content:center;z-index:50}.composer{width:min(980px,94vw);height:min(760px,92vh);background:var(--panel);border-radius:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.composer .ctop{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line)}.composer .ctop .ttl{font-weight:700;margin-right:auto;padding-left:4px}.composer .saved{color:var(--muted);font-size:11px}.fieldrow{display:flex;align-items:center;border-bottom:1px solid var(--line);padding:0 12px;min-height:36px;gap:8px}.fieldrow label{width:70px;color:var(--muted);flex:none}.fieldrow input,.fieldrow select{flex:1;border:0;outline:0;background:transparent;padding:8px 0;user-select:text;min-width:0}.fieldrow .lnk{border:0;background:transparent;color:var(--navy);font-size:12px}.addr{position:relative;flex:1;display:flex}.suggest{position:absolute;top:100%;left:0;right:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);z-index:5;max-height:240px;overflow-y:auto}.suggest div{padding:6px 10px}.suggest div.on,.suggest div:hover{background:var(--sel)}.suggest small{color:var(--muted);margin-left:6px}.fmt{display:flex;gap:2px;padding:4px 8px;border-bottom:1px solid var(--line);flex-wrap:wrap}.fmt button,.fmt select{border:0;background:transparent;border-radius:4px;padding:4px 8px;min-width:28px}.fmt button:hover{background:var(--hover)}.editor{flex:1;overflow-y:auto;padding:14px 16px;outline:none;user-select:text;line-height:1.6;font-size:10pt;background:#fff;color:#1d2430}.editor blockquote{margin:0 0 0 8px;padding-left:8px;border-left:2px solid #ccc}.catts{display:flex;flex-wrap:wrap;gap:6px;padding:6px 12px;border-top:1px solid var(--line)}.catts:empty{display:none}.dropzone{outline:3px dashed var(--teal);outline-offset:-8px}.modal-wrap{position:fixed;inset:0;background:#0a142347;display:flex;align-items:center;justify-content:center;z-index:60}.modal{background:var(--panel);border-radius:12px;box-shadow:var(--shadow);width:min(560px,94vw);max-height:90vh;display:flex;flex-direction:column}.modal h2{margin:0;padding:14px 18px;font-size:15px;border-bottom:1px solid var(--line)}.modal .mbody{padding:14px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.modal .mfoot{padding:10px 18px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end}.form label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:12px}.form input,.form select,.form textarea{border:1px solid var(--line);border-radius:6px;padding:7px 9px;background:var(--panel);color:var(--text);user-select:text;font-size:13px}.form .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form .chk{flex-direction:row;align-items:center;gap:6px;color:var(--text);font-size:13px}.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:100}.toast{background:#1d2430;color:#fff;padding:10px 14px;border-radius:8px;box-shadow:var(--shadow);max-width:420px;line-height:1.5}.toast.error{background:var(--danger)}.ctx{position:fixed;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);z-index:80;padding:4px;min-width:170px}.ctx div{padding:6px 12px;border-radius:5px}.ctx div:hover{background:var(--sel)}.ctx hr{border:0;border-top:1px solid var(--line);margin:4px 0}.page{overflow-y:auto;padding:22px 28px;background:var(--bg)}.page h1{font-size:20px;margin:0 0 16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px}.card h3{margin:0 0 10px;font-size:14px}table.grid{width:100%;border-collapse:collapse}table.grid th,table.grid td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}table.grid th{color:var(--muted);font-weight:600;font-size:12px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 40%,transparent);border-radius:5px;border:2px solid transparent;background-clip:padding-box}.auth{height:100%;overflow-y:auto;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 24px;background:var(--bg);user-select:text}.auth-card{width:min(400px,100%);background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:28px 26px}.auth-logo{font-weight:800;font-size:26px;letter-spacing:2px;color:#12345c;text-align:center;margin-bottom:20px}:root[data-theme=dark] .auth-logo{color:#e6e9ee}.auth-logo b{color:var(--teal)}.auth-logo span{font-weight:600;letter-spacing:0;font-size:18px;color:var(--muted)}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form h2{margin:0;font-size:16px}.auth-form input{font-size:16px;padding:10px 12px}.auth-note{color:var(--muted);font-size:12px;line-height:1.6;margin:0;text-align:center}.auth-msg{color:var(--danger);font-size:13px;line-height:1.5}.auth-steps{margin:0;padding-left:20px;line-height:1.7;color:var(--text);font-size:13px}.btn.big{padding:11px;font-size:15px}.btn.link{border:0;background:transparent;color:var(--muted);text-decoration:underline;font-size:12px}input.otp{font-size:26px!important;letter-spacing:10px;text-align:center;font-family:ui-monospace,Consolas,monospace}.otp-qr{display:flex;flex-direction:column;align-items:center;gap:8px}.otp-qr .qr svg{width:200px;height:200px;background:#fff;border-radius:8px}.otp-key{font-size:15px;letter-spacing:1px;background:var(--bg);border:1px solid var(--line);padding:8px 10px;border-radius:6px;user-select:all;word-break:break-all;text-align:center}.m-only{display:none!important}@media(max-width:760px){body{font-size:15px}.m-only{display:inline-flex!important}.app,.app.no-list,.app.full{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.app>.rail{grid-row:2;flex-direction:row;justify-content:space-around;padding:4px 0 calc(4px + env(safe-area-inset-bottom));gap:0}.rail .logo,.rail .spacer{display:none}.rail button{width:64px;height:44px}.app>.side,.app>.list,.app>.reader,.app>.outbox-page{grid-row:1;grid-column:1}.app.m-folders>.list,.app.m-folders>.reader,.app.m-folders>.outbox-page{display:none}.app.m-list>.side,.app.m-list>.reader{display:none}.app.m-read>.side,.app.m-read>.list{display:none}.app.m-read>.outbox-page{display:block}.app.m-read.no-list>.side{display:none}.app.full>.page{grid-row:1;padding:14px 12px}.side{border-right:0}.folder{padding:11px 14px}.list{border-right:0}.search input{font-size:16px}.toolbar{flex-wrap:nowrap;overflow-x:auto}.tb{padding:8px 9px}.msg{padding:14px}.msg h1{font-size:17px}.composer-wrap{align-items:stretch}.composer{width:100vw;height:100%;border-radius:0}.fieldrow input,.fieldrow select{font-size:16px}.fieldrow label{width:auto;min-width:52px;white-space:nowrap;font-size:13px}.card{overflow-x:auto;padding:12px}table.grid th,table.grid td{white-space:nowrap}.cal{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.cal-side{display:flex;align-items:center;gap:10px;padding:6px 10px;border-right:0;border-bottom:1px solid var(--line);overflow:visible}.cal-side .new{width:auto;margin:0;padding:7px 12px;white-space:nowrap}.cal-side h4{display:none}.cal-list{display:flex;gap:4px;overflow-x:auto}.cal-list label{white-space:nowrap}.cal-list .def{display:none}.cal-top{gap:2px;padding:6px 8px}.cal-top .btn{padding:5px 8px;white-space:nowrap}.cal-top .ttl{font-size:15px;margin:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.cal-top .chip{padding:2px 8px}.editor{font-size:15px}.modal{width:100vw;max-height:100%;border-radius:0}.form .two{grid-template-columns:1fr}.form input,.form select,.form textarea{font-size:16px}.toasts{left:12px;right:12px;bottom:70px}.toast{max-width:none}.page h1{font-size:18px;display:flex;align-items:center;gap:6px}}.offline-bar{position:fixed;bottom:16px;left:50%;transform:translate(-50%);z-index:90;background:#5c4400;color:#fff6dd;padding:5px 14px;border-radius:14px;font-size:12px;box-shadow:var(--shadow);max-width:calc(100vw - 24px);text-align:center;pointer-events:none}@media(max-width:760px){.offline-bar{top:auto;bottom:64px}}
