:root{--ink:#142c25;--ink-soft:#50645c;--green:#1b5947;--green-dark:#103b30;--mint:#dcece3;--cream:#f7f7f1;--paper:#fff;--line:#e4e9e3;--gold:#d8b66c;--muted:#7a8981;--red:#b84b49;--amber:#a36e1f;--shadow:0 16px 42px rgba(20,44,37,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'Noto Sans KR',system-ui,-apple-system,'Malgun Gothic',sans-serif;font-size:15px;line-height:1.55}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px);background:rgba(255,255,255,.92);border-bottom:1px solid rgba(20,44,37,.07);position:relative;z-index:3}.brand{display:inline-flex;align-items:center;gap:11px;font-size:12px;font-weight:900;letter-spacing:.16em;color:var(--green-dark)}.brand-mark,.auth-symbol{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:var(--green-dark);color:#fff;font-size:18px;font-weight:800;letter-spacing:0}.top-actions{display:flex;align-items:center;gap:14px}.nav-link{font-size:13px;font-weight:700;color:var(--ink-soft)}.nav-link span{color:var(--gold);margin-left:5px}.page-shell{max-width:1180px;margin:0 auto;padding:0 24px}.hero{min-height:365px;margin:34px 0 62px;padding:54px 7%;border-radius:26px;background:linear-gradient(118deg,#11382e 0%,#1b5947 58%,#2b6e58 100%);color:#fff;display:flex;align-items:center;justify-content:space-between;overflow:hidden;position:relative}.hero:after{content:"";position:absolute;width:500px;height:500px;border:1px solid rgba(255,255,255,.09);border-radius:50%;right:-170px;top:-195px}.hero-copy{position:relative;z-index:1}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:10px;font-weight:800;letter-spacing:.19em;color:#d2e5da}.eyebrow.muted{color:#84948b}.live-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:#8ed7a7;box-shadow:0 0 0 4px rgba(142,215,167,.13)}.hero h1{margin:17px 0 5px;font-size:clamp(42px,6vw,66px);line-height:1.14;letter-spacing:-.055em;font-weight:900}.hero-subtitle{font-size:16px;font-weight:700;color:#e8f1e9;margin:0 0 20px}.hero-description{margin:0;color:#c7dacf;font-size:13px;line-height:1.9}.hero-meta{margin-top:26px;color:#e7d5a9;font-size:11px;font-weight:700;letter-spacing:.04em}.meta-icon{margin-right:8px}.hero-art{width:350px;height:270px;flex:0 0 350px;position:relative;margin-left:32px}.art-orbit{position:absolute;border:1px solid rgba(255,255,255,.19);border-radius:50%;transform:rotate(-28deg)}.orbit-one{width:300px;height:135px;right:0;top:68px}.orbit-two{width:275px;height:185px;right:4px;top:43px;transform:rotate(39deg)}.art-sun{width:154px;height:154px;border-radius:50%;position:absolute;right:68px;top:48px;background:linear-gradient(135deg,#f0d69b,#c69a58);box-shadow:0 0 70px rgba(227,187,112,.18)}.art-card{position:absolute;right:105px;top:81px;width:94px;height:114px;border:1px solid rgba(255,255,255,.48);background:rgba(16,59,48,.75);backdrop-filter:blur(5px);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-direction:column;box-shadow:0 15px 40px rgba(0,0,0,.2);transform:rotate(8deg)}.art-card span{font-family:serif;font-size:47px;font-weight:900;line-height:1;color:#f4dfb2}.art-card small{font-size:8px;letter-spacing:.17em;text-align:center;color:#d9e8de;margin-top:7px}.art-line{position:absolute;background:rgba(255,255,255,.3);height:1px;transform:rotate(-35deg)}.line-one{width:235px;right:4px;top:48px}.line-two{width:200px;right:24px;bottom:35px}.art-star{position:absolute;color:#f0d69b}.star-one{font-size:25px;right:32px;top:38px}.star-two{font-size:16px;left:25px;bottom:40px}
.list-section{padding:0 1% 65px}.section-heading,.panel-title{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.section-heading h2{font-size:30px;letter-spacing:-.045em;margin:7px 0 0}.button{border:0;border-radius:11px;padding:12px 17px;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:transform .15s,background .15s,box-shadow .15s}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--green-dark);color:#fff;box-shadow:0 7px 16px rgba(16,59,48,.17)}.button-primary:hover{background:#1d604b}.button-light{background:#fff;border:1px solid var(--line);color:var(--ink-soft)}.button-light:hover{background:#f3f7f3}.button-small{padding:9px 13px;font-size:11px}.full-button{width:100%;height:48px;margin-top:5px}.toolbar{margin-top:26px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px;display:flex;justify-content:space-between;align-items:center;gap:14px}.search-box{height:42px;flex:1;max-width:390px;display:flex;align-items:center;gap:10px;padding:0 13px;border:1px solid #edf0eb;border-radius:10px;background:#fafbf8;color:#84948b}.search-box span{font-size:25px;line-height:1}.search-box input{width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:12px}.filter-group{display:flex;align-items:center;gap:5px}.filter-chip{padding:8px 14px;border:0;background:transparent;color:#718078;border-radius:8px;font-size:11px;font-weight:700}.filter-chip.active{background:var(--green-dark);color:#fff}.list-status{display:flex;justify-content:space-between;margin:18px 2px 12px;color:#819087;font-size:11px}.booth-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.booth-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px 20px 18px;min-height:230px;box-shadow:0 5px 18px rgba(20,44,37,.025);display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s}.booth-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.booth-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.dept-tag{font-size:10px;color:#71847a;background:#edf4ef;padding:5px 9px;border-radius:6px;font-weight:700}.congestion{font-size:10px;font-weight:800;border-radius:20px;padding:5px 10px;white-space:nowrap}.congestion.low{color:#28704f;background:#e8f5ec}.congestion.normal{color:#976919;background:#fbf2dc}.congestion.high{color:#a43f3f;background:#fae9e8}.booth-card h3{font-size:19px;margin:18px 0 13px;letter-spacing:-.035em}.wait-row{display:flex;align-items:baseline;gap:6px;margin-bottom:15px}.wait-label{font-size:10px;color:#89968f}.wait-number{font-size:27px;font-weight:900;letter-spacing:-.05em;color:var(--green-dark)}.wait-unit{font-size:11px;color:#7d8983;font-weight:700}.card-detail{border-top:1px solid #eff1ed;padding-top:12px;margin-top:auto;display:grid;gap:8px}.detail-line{display:flex;gap:8px;align-items:flex-start;font-size:11px;color:#718078;line-height:1.55}.detail-icon{width:16px;flex:0 0 16px;color:#a18a5b;font-weight:800}.detail-value{color:#44584e;white-space:pre-wrap;overflow-wrap:anywhere}.empty-state,.loading-card{grid-column:1/-1;text-align:center;background:#fff;border:1px dashed #d9e2da;border-radius:18px;padding:46px 20px;color:#819087}.empty-state h3{margin:8px 0 5px;color:var(--ink);font-size:18px}.empty-state p,.loading-card p{margin:0;font-size:12px}.empty-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#edf4ef;color:var(--green);font-size:22px;margin:0 auto 12px}.spinner{width:22px;height:22px;border:2px solid #dfe9e2;border-top-color:var(--green);border-radius:50%;display:inline-block;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auto-refresh-note{color:#829087;font-size:10px;text-align:right;margin:15px 2px 0}.auto-refresh-note .live-dot{width:6px;height:6px;margin-right:5px}.site-footer{min-height:70px;padding:18px max(5vw,24px);background:#102b25;color:#9eb4a8;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:9px;letter-spacing:.1em}.site-footer a{color:#e7d5a9;letter-spacing:0;font-weight:700}
/* authentication */
.auth-body{min-height:100vh;background:radial-gradient(circle at 50% 15%,#e9f0e9 0%,var(--cream) 45%,#f4f3eb 100%)}.auth-shell{min-height:calc(100vh - 142px);display:grid;place-items:center;padding:48px 20px}.auth-card{width:min(100%,440px);background:#fff;border:1px solid var(--line);border-radius:22px;padding:36px 38px;box-shadow:var(--shadow)}.auth-symbol{width:46px;height:46px;border-radius:14px;font-size:24px;margin-bottom:23px}.auth-card h1{font-size:27px;letter-spacing:-.05em;margin:8px 0 4px}.auth-intro{font-size:12px;color:#7c8b82;margin:0 0 26px;line-height:1.8}.stack-form{display:grid;gap:16px}.stack-form label,.form-grid label{display:grid;gap:7px;font-size:11px;font-weight:800;color:#4f6258}.stack-form input,.form-grid input,.form-grid textarea,.form-grid select{width:100%;height:44px;border:1px solid #e1e8e1;border-radius:9px;padding:0 12px;background:#fcfdfa;outline:none;color:var(--ink);font-size:12px;font-weight:500}.stack-form input:focus,.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus{border-color:#7da894;box-shadow:0 0 0 3px rgba(52,125,91,.09)}.form-grid textarea,.stack-form textarea{height:auto;min-height:76px;padding:10px 12px;resize:vertical}.form-message{margin:0;color:#a13f3f;font-size:11px;line-height:1.6}.form-message.success{color:#28704f}.auth-divider{height:1px;background:#eef0ed;margin:23px 0 16px}.small-note{font-size:11px;color:#829087;margin:0;text-align:center}.small-note a{color:var(--green);font-weight:800;text-decoration:underline;text-underline-offset:3px}.notice-box{margin-top:20px;padding:12px 14px;border-radius:10px;background:#f3f6f0;color:#718078;font-size:10px;line-height:1.7}.setup-card{width:min(100%,480px)}
/* dashboard */
.dashboard-shell{max-width:1080px;min-height:calc(100vh - 142px);margin:0 auto;padding:48px 24px 70px}.dashboard-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:28px}.dashboard-heading h1{font-size:33px;letter-spacing:-.05em;margin:7px 0 4px}.dashboard-heading p{margin:0;color:#829087;font-size:12px}.account-label{font-size:11px;color:#728278;font-weight:700}.panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:25px 27px;box-shadow:0 5px 18px rgba(20,44,37,.025)}.intro-panel{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;background:linear-gradient(110deg,#fff 0%,#f2f7f1 100%)}.panel-kicker{font-size:9px;letter-spacing:.17em;color:#8b9a90;font-weight:900}.panel h2{font-size:21px;letter-spacing:-.04em;margin:5px 0 5px}.panel p{font-size:11px;color:#839087;margin:0;line-height:1.7}.panel-count{display:grid;justify-items:center;gap:2px;padding:12px 20px;border-radius:12px;background:#fff;border:1px solid #e5ece5}.panel-count strong{font-size:27px;color:var(--green-dark)}.panel-count span{font-size:9px;color:#829087}.panel-title{align-items:center;margin-bottom:20px}.required-mark{font-size:10px;color:#a27b3c}.admin-form{display:grid;gap:18px}.form-grid{display:grid;gap:16px}.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.span-two{grid-column:1/-1}.form-grid textarea{min-height:70px}.form-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;padding-top:6px;border-top:1px solid #eff2ed}.form-hint{font-size:10px!important}.admin-list-section{margin-top:35px}.list-title{margin-bottom:16px}.admin-booth-list{display:grid;gap:13px}.admin-booth-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px 22px}.admin-booth-card .panel-title{margin-bottom:14px}.admin-booth-card h3{font-size:16px;margin:0}.admin-booth-card .manager-id-tag{font-size:10px;color:#7c8c82;background:#f1f5f0;border-radius:20px;padding:5px 9px}.admin-booth-card .form-grid{gap:12px}.admin-booth-card .form-grid input,.admin-booth-card .form-grid select{height:40px}.admin-booth-card .form-grid textarea{min-height:58px}.admin-card-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:13px;border-top:1px solid #eff2ed}.button-danger{background:#fff4f3;color:#a34240;border:1px solid #f0d8d6}.manager-intro{background:linear-gradient(110deg,#133d31,#215b48);color:#fff;border:0}.manager-intro .panel-kicker,.manager-intro p{color:#c4d8cb}.manager-intro h2{font-size:26px;color:#fff}.manager-lock-note{margin-top:9px!important}.manager-icon{width:64px;height:64px;border:1px solid rgba(255,255,255,.25);border-radius:20px;display:grid;place-items:center;color:#e6cf9c;font-size:28px}.manager-edit-panel{margin-top:20px}.manager-form{gap:20px}.panel-description{margin-top:4px!important}.empty-state .button{margin-top:18px}.dashboard-error-link{display:inline-flex;margin-top:15px}
@media(max-width:850px){.hero{padding:42px 6%;min-height:330px}.hero-art{transform:scale(.82);transform-origin:center right;margin-left:0;width:280px;flex-basis:280px}.booth-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-shell{padding:0 18px}.toolbar{align-items:stretch;flex-direction:column}.search-box{max-width:none}.filter-group{justify-content:flex-start;flex-wrap:wrap}.dashboard-shell{padding:35px 18px 60px}}
@media(max-width:600px){.topbar{height:62px;padding:0 17px}.brand{font-size:10px;letter-spacing:.11em}.brand-mark{width:31px;height:31px}.nav-link{font-size:11px}.hero{margin:17px 0 42px;padding:33px 24px;border-radius:19px;min-height:330px}.hero h1{font-size:48px}.hero-subtitle{font-size:13px;max-width:260px}.hero-description{font-size:11px}.hero-art{position:absolute;right:-80px;bottom:-70px;opacity:.28;transform:scale(.75)}.section-heading h2{font-size:25px}.section-heading{align-items:center}.refresh-button{padding:9px 11px;font-size:10px}.booth-grid{grid-template-columns:1fr;gap:11px}.booth-card{min-height:205px;padding:17px}.booth-card h3{margin:13px 0 10px}.list-section{padding-bottom:45px}.site-footer{font-size:8px;flex-wrap:wrap;min-height:62px}.auth-card{padding:29px 23px}.auth-card h1{font-size:24px}.auth-shell{min-height:calc(100vh - 124px);padding:30px 16px}.dashboard-shell{padding:30px 15px 48px}.dashboard-heading{align-items:flex-start;flex-direction:column}.dashboard-heading h1{font-size:28px}.panel{padding:20px 17px}.panel-title{align-items:flex-start}.two-col{grid-template-columns:1fr}.span-two{grid-column:auto}.form-bottom{align-items:stretch;flex-direction:column}.form-bottom .button{width:100%}.intro-panel{align-items:flex-start}.panel-count{padding:9px 13px}.panel-count strong{font-size:22px}.admin-booth-card{padding:17px}.admin-booth-card .panel-title{align-items:center}.admin-card-actions .button{flex:1}.manager-icon{width:49px;height:49px;border-radius:15px;font-size:22px}.account-label{display:none}}
