@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&family=Playfair+Display:wght@500;700&display=swap";:root{font-family:Montserrat,Pretendard,Noto Sans KR,sans-serif;line-height:1.5;font-weight:400;color:#0b1b1f;background-color:#e8f6f3;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top left,rgba(118,228,212,.35),transparent 55%),radial-gradient(circle at 30% 20%,rgba(10,161,168,.25),transparent 50%),radial-gradient(circle at 80% 10%,rgba(255,255,255,.65),transparent 45%),linear-gradient(180deg,#e8f6f3,#f5faf9 45%,#fff)}a{color:inherit;text-decoration:none}button,input{font-family:inherit}.page{min-height:100vh;display:flex;flex-direction:column;gap:2rem;padding:2.5rem clamp(1.5rem,4vw,4rem) 2rem}body.modal-open{overflow:hidden}.topbar{display:flex;align-items:center;gap:.75rem;font-family:Montserrat,Pretendard,Noto Sans KR,sans-serif;color:#0b1b1f}.top-links{margin-left:auto;display:flex;gap:1rem;font-size:.85rem}.top-links a{color:#0b1b1f;text-decoration:none;font-weight:600}.top-links button{border:none;background:transparent;color:#0b1b1f;font-weight:600;cursor:pointer;padding:0}.top-links a:hover,.top-links button:hover{color:#0aa1a8}.logo-mark{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#0aa1a8,#76e4d4);box-shadow:0 12px 24px #0aa1a859}.brand{font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.85rem}.content{flex:1;display:grid;gap:2.5rem;align-items:start;align-content:start}.admin-page .content,.user-page .content{grid-template-columns:1fr;align-items:stretch}.intro h1{margin:.6rem 0 1rem;font-size:clamp(2.2rem,3.6vw,3.6rem);font-family:Playfair Display,Pretendard,"Noto Serif KR",serif;color:#061314;letter-spacing:-.02em}.kicker{margin:0;font-size:.75rem;letter-spacing:.45em;text-transform:uppercase;color:#0aa1a8;font-weight:700}.lead{max-width:36rem;color:#2d4a50;font-size:1.05rem;line-height:1.7}.info-strip{display:grid;gap:1rem;margin-top:2rem;padding:1.2rem 1.4rem;border-radius:18px;background:#ffffffbf;border:1px solid rgba(255,255,255,.6);box-shadow:0 16px 30px #0f2c2b1f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.info-strip .label{display:block;font-size:.75rem;color:#5b7880;text-transform:uppercase;letter-spacing:.18em;margin-bottom:.3rem}.info-strip strong{color:#0b1b1f;font-weight:600}.login{display:grid;place-items:center}.intro,.login{align-self:start}.admin{display:grid;gap:2rem;width:100%;align-content:start}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem}.admin-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:2rem;align-items:start}.admin-menu{display:grid;gap:.75rem;background:#ffffffd9;padding:1.25rem;border-radius:20px;box-shadow:0 18px 36px #0613141f}.admin-tab{border:none;background:#0b1b1f14;color:#0b1b1f;padding:.75rem 1rem;border-radius:14px;text-align:left;font-weight:600;cursor:pointer}.admin-tab.active{background:linear-gradient(135deg,#0aa1a8,#76e4d4);color:#062024}.admin-panel{display:grid;gap:1.5rem}.admin-card{background:#0f2025eb;color:#f4fbfb;padding:1.8rem;border-radius:24px;border:1px solid rgba(255,255,255,.08);box-shadow:0 30px 60px #06131459}.fixed-table .table{max-height:280px;overflow-y:auto;padding-right:.2rem;scrollbar-gutter:stable;scrollbar-color:rgba(118,228,212,.5) rgba(255,255,255,.04)}.load-more{display:none;justify-self:center;margin-top:.4rem;background:#76e4d42e;color:#baf6ee;border:1px solid rgba(118,228,212,.4);padding:.5rem 1.2rem;border-radius:999px;font-weight:700;cursor:pointer}.load-more:hover{background:#76e4d44d}.fixed-table .table::-webkit-scrollbar{width:8px}.fixed-table .table::-webkit-scrollbar-track{background:#06131499;border-radius:999px}.fixed-table .table::-webkit-scrollbar-thumb{background:#76e4d48c;border-radius:999px;border:2px solid rgba(6,19,20,.9)}.fixed-table .table::-webkit-scrollbar-thumb:hover{background:#76e4d4cc}.time-grid,.detail-list{scrollbar-gutter:stable;scrollbar-color:rgba(118,228,212,.5) rgba(255,255,255,.04)}.time-grid::-webkit-scrollbar,.detail-list::-webkit-scrollbar{width:8px}.time-grid::-webkit-scrollbar-track,.detail-list::-webkit-scrollbar-track{background:#06131499;border-radius:999px}.time-grid::-webkit-scrollbar-thumb,.detail-list::-webkit-scrollbar-thumb{background:#76e4d48c;border-radius:999px;border:2px solid rgba(6,19,20,.9)}.time-grid::-webkit-scrollbar-thumb:hover,.detail-list::-webkit-scrollbar-thumb:hover{background:#76e4d4cc}.admin-card select{border-radius:12px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;color:#f4fbfb;padding:.4rem .6rem}.admin-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.4rem}.admin-card .meta{color:#f4fbfb99;font-size:.85rem}.table{display:grid;gap:.75rem}.table-head,.table-row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:.75rem;align-items:center}.table-head{font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;color:#f4fbfb99}.table-row{padding:.75rem .5rem;border-radius:12px;background:#ffffff0d}.table-row button{background:#76e4d4e6;color:#062024;border:none;border-radius:999px;padding:.4rem .8rem;font-weight:700;cursor:pointer}.table-row button.danger{background:#ff7878e6;color:#3a0b0b}.table.stacked-4 .table-head,.table.stacked-4 .table-row{grid-template-columns:minmax(0,2fr) minmax(0,1.1fr) minmax(0,1fr) auto}.table.stacked-5 .table-head,.table.stacked-5 .table-row{grid-template-columns:minmax(0,2fr) minmax(0,1.1fr) minmax(0,1fr) minmax(0,.9fr) auto}.table.stacked-4 .table-head span:last-child,.table.stacked-4 .table-row button:last-child,.table.stacked-5 .table-head span:last-child,.table.stacked-5 .table-row button:last-child{justify-self:end}.ghost-text{color:#f4fbfb59}.badge{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700;background:#ffffff1a}.badge.approved{background:#76e4d459;color:#baf6ee}.badge.pending{background:#ffd66640;color:#ffe6a8}.badge.rejected{background:#ff787840;color:#ffd3d3}.badge.canceled{background:#bbc2cd47;color:#e4e9f0}.badge.neutral{background:#ffffff24;color:#f4fbfbbf}.approval-card{gap:1rem}.approval-header{margin-bottom:.6rem}.approval-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.9rem}.approval-place-grid{margin-bottom:.9rem}.approval-place-grid .place-card{min-height:74px}.approval-place-select{margin-bottom:.9rem;max-width:320px}.filter-chip{border:1px solid rgba(255,255,255,.2);background:#ffffff0f;color:#f4fbfb;padding:.45rem .85rem;border-radius:999px;font-weight:700;font-size:.78rem;cursor:pointer}.filter-chip.active{background:linear-gradient(135deg,#76e4d4,#0aa1a8);color:#05252a;border-color:transparent}.approval-table{display:grid;gap:.65rem}.approval-scroll{max-height:520px;overflow-y:auto;display:grid;gap:.65rem;padding-right:.2rem;scrollbar-gutter:stable;scrollbar-color:rgba(118,228,212,.5) rgba(255,255,255,.04)}.approval-scroll::-webkit-scrollbar{width:8px}.approval-scroll::-webkit-scrollbar-track{background:#06131499;border-radius:999px}.approval-scroll::-webkit-scrollbar-thumb{background:#76e4d48c;border-radius:999px;border:2px solid rgba(6,19,20,.9)}.approval-scroll::-webkit-scrollbar-thumb:hover{background:#76e4d4cc}.approval-head,.approval-row{display:grid;grid-template-columns:minmax(220px,1.3fr) repeat(3,minmax(170px,1fr)) minmax(110px,.7fr);gap:.65rem}.approval-head{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:#f4fbfb9e}.approval-row{background:#ffffff0d;border-radius:14px;padding:.8rem;align-items:stretch}.approval-row.expired,.approval-mobile-item.expired{opacity:.62}.approval-request{display:grid;gap:.2rem;color:#f4fbfbe0}.approval-request strong{color:#fff}.approval-request span{font-size:.8rem}.committee-cell{border-radius:12px;background:#ffffff0a;padding:.5rem;display:grid;gap:.45rem;align-content:start}.committee-head{display:flex;justify-content:space-between;align-items:center;gap:.4rem}.committee-label{font-size:.72rem;letter-spacing:.1em;font-weight:700;color:#f4fbfb9e;text-transform:uppercase}.committee-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.committee-buttons .decision-btn{border:1px solid transparent;border-radius:10px;padding:.42rem .5rem;font-weight:700;font-size:.78rem;cursor:pointer}.committee-buttons .decision-btn.approve{background:#76e4d433;color:#baf6ee}.committee-buttons .decision-btn.approve.active{background:#76e4d4e6;color:#05262a}.committee-buttons .decision-btn.reject{background:#ff787833;color:#ffd3d3}.committee-buttons .decision-btn.reject.active{background:#ff7878eb;color:#380909}.committee-buttons .decision-btn:disabled{opacity:.45;cursor:not-allowed}.committee-actor{color:#f4fbfb99;font-size:.72rem}.approval-final{display:grid;place-items:center}.approval-mobile-list{display:grid;gap:.75rem}.approval-mobile-item{border-radius:14px;background:#ffffff0f;padding:.85rem;display:grid;gap:.55rem}.approval-mobile-item .meta{margin:0;line-height:1.25}.approval-load-more{display:inline-flex;align-items:center;justify-content:center;justify-self:center;margin-top:.4rem;background:#76e4d42e;color:#baf6ee;border:1px solid rgba(118,228,212,.4);padding:.5rem 1.2rem;border-radius:999px;font-weight:700;cursor:pointer}.approval-mobile-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.calendar-actions{display:flex;align-items:center;gap:.75rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.6rem}.mobile-date-panel{display:grid;gap:.9rem;max-width:420px}.mobile-date-actions{display:flex;gap:.6rem}.calendar-head{font-size:.75rem;color:#f4fbfb99;text-align:center}.calendar-cell{min-height:120px;border-radius:16px;padding:.7rem;background:#ffffff0d;display:grid;gap:.5rem;position:relative;align-content:start}.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:1.4rem}.calendar-cell .date{font-weight:700;color:#f4fbfb}.calendar-cell .pill{background:#76e4d438;color:#baf6ee;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;width:fit-content;border:none;cursor:pointer;display:inline-flex;align-items:center}.calendar-cell.muted{opacity:.35}.calendar-cell.today{outline:2px solid rgba(118,228,212,.6)}.calendar-button{border:none;cursor:pointer;text-align:left}.calendar-button:focus-visible{outline:2px solid rgba(118,228,212,.8);outline-offset:3px}.calendar-button[aria-disabled=true]{cursor:not-allowed}.calendar-button.past{opacity:.4;cursor:not-allowed}.calendar-button.past .pill{background:#ffffff14;color:#f4fbfb80}.cell-preview{display:grid;gap:.35rem;font-size:.7rem;color:#f4fbfbb3}.cell-preview span{display:inline-flex;gap:.25rem;align-items:center}.place-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.place-card{border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:1rem;background:#ffffff0d;color:inherit;display:grid;gap:.4rem;text-align:left;cursor:pointer}.place-card strong{font-size:1rem}.place-card span{color:#f4fbfb99;font-size:.85rem}.place-card.active{border-color:#76e4d4cc;box-shadow:0 12px 24px #76e4d433}.modal-backdrop{position:fixed;inset:0;background:#06131499;display:grid;place-items:center;z-index:20;padding:1.5rem}.modal{width:min(520px,100%);background:#0f2025;color:#f4fbfb;border-radius:24px;padding:1.6rem;box-shadow:0 30px 60px #06131473;display:grid;gap:1rem;max-height:70vh;overflow-y:auto}.time-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;overflow-y:auto;max-height:320px;padding-right:.2rem}.time-chip{border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:.5rem .75rem;background:transparent;color:#f4fbfb;font-size:.85rem;cursor:pointer}.time-chip.active{background:#76e4d4d9;color:#062024;border-color:transparent}.time-chip:disabled{opacity:.35;cursor:not-allowed}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem}.primary-round{background:linear-gradient(135deg,#76e4d4,#0aa1a8);color:#072327;border:none;padding:.6rem 1.2rem;border-radius:999px;font-weight:700;cursor:pointer;box-shadow:0 12px 24px #76e4d440}.primary-round:hover{transform:translateY(-2px)}.detail-list{display:grid;gap:.75rem;overflow-y:auto;max-height:360px;padding-right:.2rem}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:.6rem .8rem;border-radius:12px;background:#ffffff0d}.detail-item button{border:none;border-radius:999px;padding:.35rem .9rem;font-weight:700;cursor:pointer;color:#3a0b0b;background:linear-gradient(135deg,#ff7878e6,#ffa8a8f2);box-shadow:0 10px 24px #ff787859;transition:transform .2s ease,box-shadow .2s ease}.detail-item button:hover{transform:translateY(-1px);box-shadow:0 12px 26px #ff787873}.detail-item button:active{transform:translateY(0);box-shadow:0 6px 16px #ff78784d}.empty{color:#f4fbfb99;font-size:.9rem}.form.grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end}.card{width:min(420px,100%);padding:2.2rem;border-radius:24px;background:#0f2025;color:#f4fbfb;box-shadow:0 30px 60px #06131459;border:1px solid rgba(255,255,255,.08)}.card h2{margin:0 0 .6rem;font-size:1.7rem;font-family:Montserrat,Pretendard,Noto Sans KR,sans-serif}.tab-row{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:1.4rem;background:#ffffff14;padding:.35rem;border-radius:999px}.tab{border:none;background:transparent;color:#f4fbfbb3;padding:.5rem .8rem;border-radius:999px;font-size:.85rem;cursor:pointer;transition:all .2s ease}.tab.active{background:#76e4d4e6;color:#072327;font-weight:700}.card-sub{margin:0 0 1.8rem;color:#f4fbfbb3;line-height:1.6}.status{margin-bottom:1rem;padding:.75rem 1rem;border-radius:14px;font-size:.9rem;white-space:pre-line}.status.success{background:#76e4d433;border:1px solid rgba(118,228,212,.5);color:#baf6ee}.status.error{background:#ff787826;border:1px solid rgba(255,120,120,.45);color:#ffd3d3}.form{display:grid;gap:1.1rem}.field{display:grid;gap:.45rem;font-size:.85rem;color:#f4fbfbb3}.field input{border-radius:14px;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:#fff;padding:.85rem 1rem;font-size:1rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.input-with-action{position:relative}.input-with-action input{width:100%;padding-right:3rem}.eye-button{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);border:none;background:transparent;color:#f4fbfbbf;font-size:1rem;cursor:pointer;padding:0;line-height:1}.eye-button:hover{color:#baf6ee}.field select,.field textarea{border-radius:14px;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:#fff;padding:.85rem 1rem;font-size:1rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease}select option{color:#0b1b1f;background:#f4fbfb}.field select:focus,.field textarea:focus{border-color:#78e2d4;box-shadow:0 0 0 3px #76e4d433}.field input:focus{border-color:#78e2d4;box-shadow:0 0 0 3px #76e4d433}.field input.readonly{opacity:.7;cursor:not-allowed;background:#ffffff08}.field input.input-error{border-color:#ff7878cc;box-shadow:0 0 0 2px #ff787833;color:#ffd3d3}.field input.input-error::placeholder{color:#ffd3d3e6}.status-line{min-height:1.4rem;font-size:.85rem;color:#f4fbfba6;display:flex;align-items:center}.status-line.error{color:#ffd3d3}.form-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem}.compact-button{padding:.5rem 1rem;font-size:.85rem;border-radius:10px}.form button:not(.eye-button){margin-top:.6rem;background:linear-gradient(135deg,#76e4d4,#0aa1a8);border:none;color:#072327;padding:.95rem 1.1rem;border-radius:14px;font-weight:700;font-size:1rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.form button:hover{transform:translateY(-6px);box-shadow:0 12px 20px #76e4d459}.card-footer{margin-top:1.4rem;display:flex;align-items:center;justify-content:space-between;color:#f4fbfba6;font-size:.85rem;gap:.75rem}.ghost{border:1px solid rgba(255,255,255,.4);background:transparent;color:#f4fbfb;padding:.5rem .9rem;border-radius:999px;font-size:.8rem;cursor:pointer}.footer{color:#5b7880;font-size:.85rem}@media(min-width:900px){.content{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.admin-page .content{grid-template-columns:1fr}}@media(max-width:600px){.page{padding:2rem 1rem 2.5rem}.content{grid-template-columns:1fr}.admin{overflow-x:hidden}.admin-layout{grid-template-columns:1fr;gap:1rem}.admin-menu{width:100%;box-sizing:border-box}.admin-panel{min-width:0}.admin-header{flex-direction:column;align-items:stretch}.admin-header .ghost{align-self:flex-start}.admin-card{padding:1.2rem}.admin-card-header{align-items:flex-start;gap:.75rem}.admin-card-header>div{width:100%}.admin-card-header h2{margin:0;line-height:1.25;word-break:keep-all}.admin-card-header .meta{margin-top:.35rem;display:block;word-break:keep-all}.mobile-admin-table .table-row{grid-template-columns:1fr;gap:.45rem;padding:.8rem}.mobile-admin-table .table-row>span{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%}.mobile-admin-table .table-row>span:before{content:attr(data-label);font-size:.72rem;letter-spacing:.08em;color:#f4fbfb99;text-transform:uppercase}.mobile-admin-table .table-row>span.ghost-text:before,.mobile-admin-table .table-row>span.badge:before{content:none}.approval-head{display:none}.approval-place-select{max-width:none}.approval-place-select .field{gap:.4rem}.approval-place-select .field select{height:52px;border-radius:16px;padding:.85rem 1rem;font-size:1rem}.approval-row{grid-template-columns:1fr;gap:.65rem}.committee-cell{padding:.65rem}.approval-mobile-item .committee-cell{padding:.5rem;gap:.35rem;border-radius:10px}.approval-mobile-item .committee-buttons .decision-btn{padding:.34rem .45rem;font-size:.74rem;border-radius:9px}.approval-mobile-item .committee-head .badge{font-size:.68rem;padding:.16rem .45rem}.approval-mobile-item .committee-actor{font-size:.68rem}.table.stacked-4 .table-head,.table.stacked-5 .table-head{display:none}.table.stacked-4 .table-row,.table.stacked-5 .table-row{grid-template-columns:1fr;gap:.5rem;padding:.85rem}.table.stacked-4 .table-row>span,.table.stacked-5 .table-row>span{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%}.table.stacked-4 .table-row>span:before,.table.stacked-4 .table-row>button:before,.table.stacked-5 .table-row>span:before,.table.stacked-5 .table-row>button:before{content:attr(data-label);font-size:.72rem;letter-spacing:.08em;color:#f4fbfb99;text-transform:uppercase}.table.stacked-4 .table-row>span.ghost-text:before,.table.stacked-4 .table-row>span.badge:before,.table.stacked-5 .table-row>span.ghost-text:before,.table.stacked-5 .table-row>span.badge:before{content:none}.table.stacked-4 .table-row>button:before,.table.stacked-5 .table-row>button:before{content:none}.table.stacked-4 .table-row>button,.table.stacked-5 .table-row>button{display:inline-flex;align-items:center;justify-content:center;width:auto;margin-left:auto;justify-content:flex-end}.table.stacked-5 .table-row>span.badge{width:auto;margin-left:auto;justify-content:center}.fixed-table .table{max-height:none;overflow:visible;padding-right:0}.load-more{display:inline-flex;align-items:center;justify-content:center}.mobile-row-actions{display:flex;justify-content:flex-end;gap:.5rem;width:100%}.mobile-row-actions button{width:auto;margin:0}.modal{max-height:calc(100vh - 1.5rem);padding:1.2rem}.time-grid{max-height:48vh}}
